summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTushar Gohad <tushar.gohad@intel.com>2015-03-08 19:41:15 +0000
committerTushar Gohad <tushar.gohad@intel.com>2015-03-08 23:39:59 +0000
commit69a9ee44a88ebe66802c24a4d09afe73477b170b (patch)
tree44c3a993ac819174567ee243e4dc5f16e8787260
parent8319bc6f36461c053e3dfaf47399ddc671551cbd (diff)
downloadpyeclib-69a9ee44a88ebe66802c24a4d09afe73477b170b.tar.gz
Replace liberasurecode, jerasure, gf-complete w/ "make dist" vers
-rw-r--r--setup.py57
-rw-r--r--src/c/gf-complete-1.0.tar.gzbin0 -> 428468 bytes
-rw-r--r--src/c/gf-complete/.gitignore69
-rw-r--r--src/c/gf-complete/AUTHORS0
-rw-r--r--src/c/gf-complete/COPYING32
-rw-r--r--src/c/gf-complete/ChangeLog0
-rw-r--r--src/c/gf-complete/License.txt32
-rw-r--r--src/c/gf-complete/Makefile.am7
-rw-r--r--src/c/gf-complete/Makefile.in857
-rw-r--r--src/c/gf-complete/Manual.pdfbin501334 -> 0 bytes
-rw-r--r--src/c/gf-complete/NEWS0
-rw-r--r--src/c/gf-complete/README21
-rw-r--r--src/c/gf-complete/README.txt21
-rw-r--r--src/c/gf-complete/aclocal.m4879
-rwxr-xr-xsrc/c/gf-complete/autogen.sh2
-rwxr-xr-xsrc/c/gf-complete/compile347
-rwxr-xr-xsrc/c/gf-complete/config.guess1558
-rwxr-xr-xsrc/c/gf-complete/config.sub1791
-rwxr-xr-xsrc/c/gf-complete/configure15323
-rw-r--r--src/c/gf-complete/configure.ac64
-rw-r--r--src/c/gf-complete/examples/Makefile.am35
-rw-r--r--src/c/gf-complete/examples/Makefile.in670
-rw-r--r--src/c/gf-complete/examples/gf_example_1.c58
-rw-r--r--src/c/gf-complete/examples/gf_example_2.c107
-rw-r--r--src/c/gf-complete/examples/gf_example_3.c74
-rw-r--r--src/c/gf-complete/examples/gf_example_4.c69
-rw-r--r--src/c/gf-complete/examples/gf_example_5.c78
-rw-r--r--src/c/gf-complete/examples/gf_example_6.c84
-rw-r--r--src/c/gf-complete/examples/gf_example_7.c75
-rw-r--r--src/c/gf-complete/include/config.h.in104
-rw-r--r--src/c/gf-complete/include/gf_complete.h204
-rw-r--r--src/c/gf-complete/include/gf_general.h61
-rw-r--r--src/c/gf-complete/include/gf_int.h199
-rw-r--r--src/c/gf-complete/include/gf_method.h20
-rw-r--r--src/c/gf-complete/include/gf_rand.h22
-rw-r--r--src/c/gf-complete/include/gf_w16.h66
-rw-r--r--src/c/gf-complete/include/gf_w32.h71
-rw-r--r--src/c/gf-complete/include/gf_w4.h63
-rw-r--r--src/c/gf-complete/include/gf_w64.h50
-rw-r--r--src/c/gf-complete/include/gf_w8.h99
-rwxr-xr-xsrc/c/gf-complete/install-sh527
-rw-r--r--src/c/gf-complete/ltmain.sh9660
-rw-r--r--src/c/gf-complete/m4/ax_check_compile_flag.m472
-rw-r--r--src/c/gf-complete/m4/ax_ext.m4308
-rw-r--r--src/c/gf-complete/m4/ax_gcc_x86_avx_xgetbv.m479
-rw-r--r--src/c/gf-complete/m4/ax_gcc_x86_cpuid.m479
-rw-r--r--src/c/gf-complete/m4/libtool.m47997
-rw-r--r--src/c/gf-complete/m4/ltoptions.m4384
-rw-r--r--src/c/gf-complete/m4/ltsugar.m4123
-rw-r--r--src/c/gf-complete/m4/ltversion.m423
-rw-r--r--src/c/gf-complete/m4/lt~obsolete.m498
-rwxr-xr-xsrc/c/gf-complete/missing215
-rw-r--r--src/c/gf-complete/src/Makefile.am21
-rw-r--r--src/c/gf-complete/src/Makefile.in649
-rw-r--r--src/c/gf-complete/src/gf.c1076
-rw-r--r--src/c/gf-complete/src/gf_general.c539
-rw-r--r--src/c/gf-complete/src/gf_method.c193
-rw-r--r--src/c/gf-complete/src/gf_rand.c79
-rw-r--r--src/c/gf-complete/src/gf_w128.c1783
-rw-r--r--src/c/gf-complete/src/gf_w16.c2451
-rw-r--r--src/c/gf-complete/src/gf_w32.c2823
-rw-r--r--src/c/gf-complete/src/gf_w4.c2050
-rw-r--r--src/c/gf-complete/src/gf_w64.c2218
-rw-r--r--src/c/gf-complete/src/gf_w8.c2392
-rw-r--r--src/c/gf-complete/src/gf_wgen.c1019
-rw-r--r--src/c/gf-complete/src/neon/gf_w16_neon.c356
-rw-r--r--src/c/gf-complete/src/neon/gf_w32_neon.c269
-rw-r--r--src/c/gf-complete/src/neon/gf_w4_neon.c247
-rw-r--r--src/c/gf-complete/src/neon/gf_w64_neon.c333
-rw-r--r--src/c/gf-complete/src/neon/gf_w8_neon.c302
-rwxr-xr-xsrc/c/gf-complete/test-driver139
-rw-r--r--src/c/gf-complete/test/Makefile.am10
-rw-r--r--src/c/gf-complete/test/Makefile.in601
-rw-r--r--src/c/gf-complete/test/gf_unit.c458
-rw-r--r--src/c/gf-complete/tools/Makefile.am51
-rw-r--r--src/c/gf-complete/tools/Makefile.in1045
-rw-r--r--src/c/gf-complete/tools/gf_add.c114
-rw-r--r--src/c/gf-complete/tools/gf_div.c68
-rw-r--r--src/c/gf-complete/tools/gf_inline_time.c170
-rw-r--r--src/c/gf-complete/tools/gf_methods.c228
-rw-r--r--src/c/gf-complete/tools/gf_mult.c68
-rw-r--r--src/c/gf-complete/tools/gf_poly.c275
-rw-r--r--src/c/gf-complete/tools/gf_time.c232
-rw-r--r--src/c/gf-complete/tools/time_tool.sh98
-rw-r--r--src/c/jerasure-2.0.tar.gzbin0 -> 779726 bytes
-rw-r--r--src/c/jerasure/.gitattributes3
-rw-r--r--src/c/jerasure/.gitignore28
-rw-r--r--src/c/jerasure/AUTHORS0
-rw-r--r--src/c/jerasure/COPYING36
-rw-r--r--src/c/jerasure/ChangeLog0
-rw-r--r--src/c/jerasure/Examples/.gitignore9
-rw-r--r--src/c/jerasure/Examples/Makefile.am67
-rw-r--r--src/c/jerasure/Examples/Makefile.in1264
-rw-r--r--src/c/jerasure/Examples/cauchy_01.c112
-rw-r--r--src/c/jerasure/Examples/cauchy_02.c272
-rw-r--r--src/c/jerasure/Examples/cauchy_03.c290
-rw-r--r--src/c/jerasure/Examples/cauchy_04.c272
-rw-r--r--src/c/jerasure/Examples/decoder.c397
-rwxr-xr-xsrc/c/jerasure/Examples/encode_decode.sh21
-rw-r--r--src/c/jerasure/Examples/encoder.c627
-rw-r--r--src/c/jerasure/Examples/jerasure_01.c91
-rw-r--r--src/c/jerasure/Examples/jerasure_02.c93
-rw-r--r--src/c/jerasure/Examples/jerasure_03.c118
-rw-r--r--src/c/jerasure/Examples/jerasure_04.c117
-rw-r--r--src/c/jerasure/Examples/jerasure_05.c217
-rw-r--r--src/c/jerasure/Examples/jerasure_06.c233
-rw-r--r--src/c/jerasure/Examples/jerasure_07.c223
-rw-r--r--src/c/jerasure/Examples/jerasure_08.c232
-rw-r--r--src/c/jerasure/Examples/liberation_01.c192
-rw-r--r--src/c/jerasure/Examples/reed_sol_01.c195
-rw-r--r--src/c/jerasure/Examples/reed_sol_02.c104
-rw-r--r--src/c/jerasure/Examples/reed_sol_03.c195
-rw-r--r--src/c/jerasure/Examples/reed_sol_04.c120
-rw-r--r--src/c/jerasure/Examples/reed_sol_test_gf.c191
-rw-r--r--src/c/jerasure/Examples/reed_sol_time_gf.c204
-rwxr-xr-xsrc/c/jerasure/Examples/test_all_gfs.sh98
-rw-r--r--src/c/jerasure/Examples/test_galois.c23
-rwxr-xr-xsrc/c/jerasure/Examples/time_all_gfs_argv_init.sh64
-rw-r--r--src/c/jerasure/INSTALL370
-rw-r--r--src/c/jerasure/License.txt36
-rw-r--r--src/c/jerasure/Makefile.am5
-rw-r--r--src/c/jerasure/Makefile.in810
-rw-r--r--src/c/jerasure/Manual.pdfbin409116 -> 0 bytes
-rw-r--r--src/c/jerasure/NEWS0
-rw-r--r--src/c/jerasure/PERF.txt243
-rw-r--r--src/c/jerasure/README95
-rw-r--r--src/c/jerasure/aclocal.m41159
-rwxr-xr-xsrc/c/jerasure/build-aux/compile347
-rwxr-xr-xsrc/c/jerasure/build-aux/config.guess1558
-rwxr-xr-xsrc/c/jerasure/build-aux/config.sub1791
-rwxr-xr-xsrc/c/jerasure/build-aux/depcomp791
-rwxr-xr-xsrc/c/jerasure/build-aux/install-sh527
-rw-r--r--src/c/jerasure/build-aux/ltmain.sh9660
-rwxr-xr-xsrc/c/jerasure/build-aux/missing215
-rwxr-xr-xsrc/c/jerasure/build-aux/test-driver139
-rwxr-xr-xsrc/c/jerasure/configure15530
-rw-r--r--src/c/jerasure/configure.ac54
-rw-r--r--src/c/jerasure/include/cauchy.h54
-rw-r--r--src/c/jerasure/include/config.h.in156
-rw-r--r--src/c/jerasure/include/galois.h103
-rw-r--r--src/c/jerasure/include/jerasure.h302
-rw-r--r--src/c/jerasure/include/liberation.h52
-rw-r--r--src/c/jerasure/include/reed_sol.h59
-rw-r--r--src/c/jerasure/include/timing.h43
-rw-r--r--src/c/jerasure/m4/ax_check_compile_flag.m474
-rw-r--r--src/c/jerasure/m4/ax_ext.m4247
-rw-r--r--src/c/jerasure/m4/ax_gcc_x86_avx_xgetbv.m479
-rw-r--r--src/c/jerasure/m4/ax_gcc_x86_cpuid.m479
-rw-r--r--src/c/jerasure/m4/ax_require_defined.m437
-rw-r--r--src/c/jerasure/m4/libtool.m47997
-rw-r--r--src/c/jerasure/m4/ltoptions.m4384
-rw-r--r--src/c/jerasure/m4/ltsugar.m4123
-rw-r--r--src/c/jerasure/m4/ltversion.m423
-rw-r--r--src/c/jerasure/m4/lt~obsolete.m498
-rw-r--r--src/c/jerasure/src/Makefile.am22
-rw-r--r--src/c/jerasure/src/Makefile.in729
-rw-r--r--src/c/jerasure/src/cauchy.c404
-rw-r--r--src/c/jerasure/src/cauchy_best_r6.c1983
-rw-r--r--src/c/jerasure/src/galois.c377
-rw-r--r--src/c/jerasure/src/jerasure.c1484
-rw-r--r--src/c/jerasure/src/liberation.c262
-rw-r--r--src/c/jerasure/src/reed_sol.c301
-rw-r--r--src/c/jerasure/src/timing.c63
-rw-r--r--src/c/liberasurecode-1.0.1.tar.gzbin0 -> 513287 bytes
-rw-r--r--src/c/liberasurecode/.gitignore63
-rw-r--r--src/c/liberasurecode/AUTHORS13
-rw-r--r--src/c/liberasurecode/COPYING23
-rw-r--r--src/c/liberasurecode/ChangeLog1
-rw-r--r--src/c/liberasurecode/INSTALL370
-rw-r--r--src/c/liberasurecode/Makefile.am55
-rw-r--r--src/c/liberasurecode/Makefile.in918
-rw-r--r--src/c/liberasurecode/NEWS1
l---------src/c/liberasurecode/README1
-rw-r--r--src/c/liberasurecode/README.md406
-rw-r--r--src/c/liberasurecode/Xorcode.pc.in15
-rw-r--r--src/c/liberasurecode/aclocal.m41231
-rwxr-xr-xsrc/c/liberasurecode/autogen.sh2
-rwxr-xr-xsrc/c/liberasurecode/compile347
-rwxr-xr-xsrc/c/liberasurecode/config.guess1558
-rwxr-xr-xsrc/c/liberasurecode/config.sub1791
-rwxr-xr-xsrc/c/liberasurecode/configure19779
-rw-r--r--src/c/liberasurecode/configure.ac142
-rwxr-xr-xsrc/c/liberasurecode/depcomp791
-rw-r--r--src/c/liberasurecode/doc/Makefile.am36
-rw-r--r--src/c/liberasurecode/doc/Makefile.in477
-rw-r--r--src/c/liberasurecode/doc/doxygen.cfg.in2331
-rw-r--r--src/c/liberasurecode/erasurecode.pc.in15
-rw-r--r--src/c/liberasurecode/include/config_liberasurecode.h.in172
-rw-r--r--src/c/liberasurecode/include/erasurecode/alg_sig.h57
-rw-r--r--src/c/liberasurecode/include/erasurecode/erasurecode.h365
-rw-r--r--src/c/liberasurecode/include/erasurecode/erasurecode_backend.h166
-rw-r--r--src/c/liberasurecode/include/erasurecode/erasurecode_helpers.h154
-rw-r--r--src/c/liberasurecode/include/erasurecode/erasurecode_log.h55
-rw-r--r--src/c/liberasurecode/include/erasurecode/erasurecode_postprocessing.h40
-rw-r--r--src/c/liberasurecode/include/erasurecode/erasurecode_preprocessing.h57
-rw-r--r--src/c/liberasurecode/include/erasurecode/erasurecode_stdinc.h167
-rw-r--r--src/c/liberasurecode/include/erasurecode/erasurecode_version.h35
-rw-r--r--src/c/liberasurecode/include/erasurecode/list.h112
-rw-r--r--src/c/liberasurecode/include/xor_codes/xor_code.h100
-rw-r--r--src/c/liberasurecode/include/xor_codes/xor_hd_code_defs.h134
-rwxr-xr-xsrc/c/liberasurecode/install-sh527
-rw-r--r--src/c/liberasurecode/ltmain.sh9660
-rw-r--r--src/c/liberasurecode/m4/ax_check_compile_flag.m472
-rw-r--r--src/c/liberasurecode/m4/ax_ext.m4245
-rw-r--r--src/c/liberasurecode/m4/ax_gcc_x86_avx_xgetbv.m479
-rw-r--r--src/c/liberasurecode/m4/ax_gcc_x86_cpuid.m479
-rw-r--r--src/c/liberasurecode/m4/libtool.m47997
-rw-r--r--src/c/liberasurecode/m4/ltoptions.m4384
-rw-r--r--src/c/liberasurecode/m4/ltsugar.m4123
-rw-r--r--src/c/liberasurecode/m4/ltversion.m423
-rw-r--r--src/c/liberasurecode/m4/lt~obsolete.m498
-rwxr-xr-xsrc/c/liberasurecode/missing215
-rw-r--r--src/c/liberasurecode/src/Makefile.am42
-rw-r--r--src/c/liberasurecode/src/Makefile.in1029
-rw-r--r--src/c/liberasurecode/src/backends/isa-l/isa_l_rs_vand.c615
-rw-r--r--src/c/liberasurecode/src/backends/jerasure/jerasure_rs_cauchy.c434
-rw-r--r--src/c/liberasurecode/src/backends/jerasure/jerasure_rs_vand.c349
-rw-r--r--src/c/liberasurecode/src/backends/null/null.c238
-rw-r--r--src/c/liberasurecode/src/backends/shss/shss.c306
-rw-r--r--src/c/liberasurecode/src/backends/xor/flat_xor_hd.c193
-rw-r--r--src/c/liberasurecode/src/builtin/null_code/Makefile.am10
-rw-r--r--src/c/liberasurecode/src/builtin/null_code/Makefile.in663
-rw-r--r--src/c/liberasurecode/src/builtin/null_code/null_code.c69
-rw-r--r--src/c/liberasurecode/src/builtin/xor_codes/Makefile.am10
-rw-r--r--src/c/liberasurecode/src/builtin/xor_codes/Makefile.in671
-rw-r--r--src/c/liberasurecode/src/builtin/xor_codes/xor_code.c382
-rw-r--r--src/c/liberasurecode/src/builtin/xor_codes/xor_hd_code.c695
-rw-r--r--src/c/liberasurecode/src/erasurecode.c1185
-rw-r--r--src/c/liberasurecode/src/erasurecode_helpers.c499
-rw-r--r--src/c/liberasurecode/src/erasurecode_postprocessing.c75
-rw-r--r--src/c/liberasurecode/src/erasurecode_preprocessing.c353
-rw-r--r--src/c/liberasurecode/src/utils/chksum/alg_sig.c399
-rw-r--r--src/c/liberasurecode/src/utils/chksum/crc32.c131
-rw-r--r--src/c/liberasurecode/test/Makefile.am28
-rw-r--r--src/c/liberasurecode/test/Makefile.in747
-rw-r--r--src/c/liberasurecode/test/builtin/xor_codes/test_xor_hd_code.c379
-rw-r--r--src/c/liberasurecode/test/builtin/xor_codes/test_xor_hd_code.h92
-rw-r--r--src/c/liberasurecode/test/libec_slap.c487
-rw-r--r--src/c/liberasurecode/test/libec_slap.h92
-rw-r--r--src/c/liberasurecode/test/liberasurecode_test.c1560
-rw-r--r--src/c/liberasurecode/test/utils/chksum/test_alg_sig.c263
241 files changed, 35 insertions, 183607 deletions
diff --git a/setup.py b/setup.py
index 1023a0c..dcd095e 100644
--- a/setup.py
+++ b/setup.py
@@ -50,6 +50,10 @@ default_python_libdir = get_python_lib()
default_library_paths = [default_python_libdir,
('%s/usr/local/lib' % _exec_prefix),
'/lib', '/usr/lib', '/usr/local/lib']
+default_include_paths = [default_python_incdir,
+ '/usr/local/include', '/usr/local/include/jerasure',
+ '/usr/include', 'src/c/pyeclib_c',
+ '/usr/local/include']
# utility routines
def _read_file_as_str(name):
@@ -85,11 +89,6 @@ def _get_installroot(distribution):
if installroot.startswith("/usr"):
installroot = "/"
- # patch default_library_paths
- topdir = os.getcwd()
- default_library_paths.insert(0, topdir + "/src/c/liberasurecode/.libs")
- default_library_paths.insert(0, topdir + "/src/c/liberasurecode/src/.libs")
-
return installroot
def _check_library(library, soname, library_url, mode, distribution):
@@ -105,14 +104,35 @@ def _check_library(library, soname, library_url, mode, distribution):
break
if missing:
# try using an integrated copy of the library
- locallibsrcdir = ("src/c/" + library)
+ srcpath = "src/c/"
+ locallibsrcdir = (srcpath + library)
installroot = _get_installroot(distribution)
+
+ retval = os.system("tar xf %s/%s.tar.gz -C %s" % (srcpath, library, srcpath))
+
if (os.path.isdir(locallibsrcdir)):
+ # patch default include, lib paths
+ topdir = os.getcwd()
+ libdirs = [ (topdir + "/" + locallibsrcdir + "/.libs "),
+ (topdir + "/" + locallibsrcdir + "/src/.libs ")]
+ libflags = ""
+ for d in libdirs:
+ libflags = libflags + " -L" + d
+ default_library_paths.insert(0, d)
+
+ includeflags = " -I" + topdir + "/" + locallibsrcdir + "/include"
+ for subdir in os.walk(topdir + "/" + locallibsrcdir + "/include"):
+ if (os.path.isdir(subdir[0])):
+ includeflags = includeflags + " -I" + subdir[0]
+
curdir = os.getcwd()
os.chdir(locallibsrcdir)
statefile = "." + library + "_configured"
if (not os.path.isfile(statefile)):
- configure_cmd = ("./configure --prefix=%s/usr/local" % installroot)
+ configure_cmd = ("CFLAGS=\"%s\" LDFLAGS=\"%s\" " % (includeflags, libflags))
+ configure_cmd = ("%s ./configure --prefix=%s/usr/local" % \
+ (configure_cmd, installroot))
+ print configure_cmd
retval = os.system(configure_cmd)
if retval == 0:
touch_cmd = ("touch " + statefile)
@@ -120,7 +140,7 @@ def _check_library(library, soname, library_url, mode, distribution):
elif retval != 0:
print("***************************************************")
print("*** Error: " + library + " build failed!")
- print("*** Please install liberasurecode manually and retry")
+ print("*** Please install " + library + " manually and retry")
print("** " + library_url)
print("***************************************************")
os.chdir(curdir)
@@ -132,7 +152,7 @@ def _check_library(library, soname, library_url, mode, distribution):
if retval != 0:
print("***************************************************")
print("*** Error: " + library + " install failed!")
- print("** Please install liberasurecode manually and retry")
+ print("** Please install " + library + " manually and retry")
print("** " + library_url)
print("***************************************************")
os.chdir(curdir)
@@ -155,9 +175,9 @@ def _check_library(library, soname, library_url, mode, distribution):
class build(_build):
def run(self):
- _check_library("liberasurecode", "liberasurecode",
+ _check_library("liberasurecode-1.0.1", "liberasurecode",
"https://bitbucket.org/tsg-/liberasurecode.git",
- "build", self.distribution)
+ "install", self.distribution)
_build.run(self)
@@ -170,15 +190,13 @@ class clean(_clean):
class install(_install):
def run(self):
- _check_library("liberasurecode", "liberasurecode",
- "https://bitbucket.org/tsg-/liberasurecode.git",
- "install", self.distribution)
- _check_library("gf-complete", "libgf_complete",
+ _check_library("gf-complete-1.0", "libgf_complete",
"http://lab.jerasure.org/jerasure/gf-complete.git",
"install", self.distribution)
- _check_library("jerasure", "libJerasure",
+ _check_library("jerasure-2.0", "libJerasure",
"http://lab.jerasure.org/jerasure/jerasure.git",
"install", self.distribution)
+
installroot = _get_installroot(self.distribution)
default_library_paths.insert(0, "%s/usr/local/lib" % installroot)
_install.run(self)
@@ -223,12 +241,7 @@ class install(_install):
module = Extension('pyeclib_c',
define_macros=[('MAJOR VERSION', '0'),
('MINOR VERSION', '9')],
- include_dirs=[default_python_incdir,
- '/usr/local/include',
- '/usr/local/include/jerasure',
- '/usr/include',
- 'src/c/pyeclib_c',
- '/usr/local/include'],
+ include_dirs=default_include_paths,
library_dirs=default_library_paths,
runtime_library_dirs=default_library_paths,
libraries=['erasurecode'],
diff --git a/src/c/gf-complete-1.0.tar.gz b/src/c/gf-complete-1.0.tar.gz
new file mode 100644
index 0000000..e4b20b2
--- /dev/null
+++ b/src/c/gf-complete-1.0.tar.gz
Binary files differ
diff --git a/src/c/gf-complete/.gitignore b/src/c/gf-complete/.gitignore
deleted file mode 100644
index 6dfcd89..0000000
--- a/src/c/gf-complete/.gitignore
+++ /dev/null
@@ -1,69 +0,0 @@
-Makefile
-Makefile.in
-/autom4te.cache
-/aclocal.m4
-/compile
-/configure
-/depcomp
-/install-sh
-/missing
-include/config.h
-include/config.h.in
-include/config.h.in~
-include/stamp-h1
-
-# Object files
-*.o
-*.ko
-*.obj
-*.elf
-
-# Libraries
-*.lib
-*.la
-*.a
-
-# Shared objects (inc. Windows DLLs)
-*.dll
-*.lo
-*.so
-*.so.*
-*.dylib
-
-# Executables
-*.exe
-*.out
-*.app
-*.i*86
-*.x86_64
-*.hex
-
-# Other stuff
-.deps/
-.libs/
-/config.log
-/config.status
-/libtool
-INSTALL
-config.guess
-config.sub
-ltmain.sh
-m4/libtool.m4
-m4/ltversion.m4
-src/.dirstamp
-
-examples/gf_example_1
-examples/gf_example_2
-examples/gf_example_3
-examples/gf_example_4
-examples/gf_example_5
-examples/gf_example_6
-examples/gf_example_7
-test/gf_unit
-tools/gf_add
-tools/gf_div
-tools/gf_inline_time
-tools/gf_methods
-tools/gf_mult
-tools/gf_poly
-tools/gf_time
diff --git a/src/c/gf-complete/AUTHORS b/src/c/gf-complete/AUTHORS
deleted file mode 100644
index e69de29..0000000
--- a/src/c/gf-complete/AUTHORS
+++ /dev/null
diff --git a/src/c/gf-complete/COPYING b/src/c/gf-complete/COPYING
deleted file mode 100644
index df8d9ed..0000000
--- a/src/c/gf-complete/COPYING
+++ /dev/null
@@ -1,32 +0,0 @@
-Copyright (c) 2013, James S. Plank, Ethan L. Miller, Kevin M. Greenan,
-Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride
-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 the name of the University of Tennessee 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 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
-HOLDER 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.
diff --git a/src/c/gf-complete/ChangeLog b/src/c/gf-complete/ChangeLog
deleted file mode 100644
index e69de29..0000000
--- a/src/c/gf-complete/ChangeLog
+++ /dev/null
diff --git a/src/c/gf-complete/License.txt b/src/c/gf-complete/License.txt
deleted file mode 100644
index df8d9ed..0000000
--- a/src/c/gf-complete/License.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Copyright (c) 2013, James S. Plank, Ethan L. Miller, Kevin M. Greenan,
-Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride
-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 the name of the University of Tennessee 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 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
-HOLDER 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.
diff --git a/src/c/gf-complete/Makefile.am b/src/c/gf-complete/Makefile.am
deleted file mode 100644
index 266a23a..0000000
--- a/src/c/gf-complete/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-# Top-level GF-Complete AM file
-# Distributes headers
-
-SUBDIRS = src tools test examples
-ACLOCAL_AMFLAGS = -I m4
-
-include_HEADERS = include/gf_complete.h include/gf_method.h include/gf_rand.h include/gf_general.h
diff --git a/src/c/gf-complete/Makefile.in b/src/c/gf-complete/Makefile.in
deleted file mode 100644
index 3ec9561..0000000
--- a/src/c/gf-complete/Makefile.in
+++ /dev/null
@@ -1,857 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# Top-level GF-Complete AM file
-# Distributes headers
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = .
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/configure $(am__configure_deps) \
- $(top_srcdir)/include/config.h.in $(include_HEADERS) AUTHORS \
- COPYING ChangeLog NEWS README compile config.guess config.sub \
- install-sh missing ltmain.sh
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_ext.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-depcomp =
-am__depfiles_maybe =
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
- ctags-recursive dvi-recursive html-recursive info-recursive \
- install-data-recursive install-dvi-recursive \
- install-exec-recursive install-html-recursive \
- install-info-recursive install-pdf-recursive \
- install-ps-recursive install-recursive installcheck-recursive \
- installdirs-recursive pdf-recursive ps-recursive \
- tags-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(includedir)"
-HEADERS = $(include_HEADERS)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
- $(RECURSIVE_TARGETS) \
- $(RECURSIVE_CLEAN_TARGETS) \
- $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- cscope distdir dist dist-all distcheck
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-CSCOPE = cscope
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- if test -d "$(distdir)"; then \
- find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -rf "$(distdir)" \
- || { sleep 5 && rm -rf "$(distdir)"; }; \
- else :; fi
-am__post_remove_distdir = $(am__remove_distdir)
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-DIST_TARGETS = dist-gzip
-distuninstallcheck_listfiles = find . -type f -print
-am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
- | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIMD_FLAGS = @SIMD_FLAGS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__leading_dot = @am__leading_dot@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = src tools test examples
-ACLOCAL_AMFLAGS = -I m4
-include_HEADERS = include/gf_complete.h include/gf_method.h include/gf_rand.h include/gf_general.h
-all: all-recursive
-
-.SUFFIXES:
-am--refresh: Makefile
- @:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign --ignore-deps'; \
- $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign --ignore-deps \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign --ignore-deps Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- $(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-include/config.h: include/stamp-h1
- @test -f $@ || rm -f include/stamp-h1
- @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) include/stamp-h1
-
-include/stamp-h1: $(top_srcdir)/include/config.h.in $(top_builddir)/config.status
- @rm -f include/stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status include/config.h
-$(top_srcdir)/include/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
- rm -f include/stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f include/config.h include/stamp-h1
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
- -rm -f libtool config.lt
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
- $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-# (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
- @fail=; \
- if $(am__make_keepgoing); then \
- failcom='fail=yes'; \
- else \
- failcom='exit 1'; \
- fi; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscope: cscope.files
- test ! -s cscope.files \
- || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-clean-cscope:
- -rm -f cscope.files
-cscope.files: clean-cscope cscopelist
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
- -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-
-distdir: $(DISTFILES)
- $(am__remove_distdir)
- test -d "$(distdir)" || mkdir "$(distdir)"
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
- -test -n "$(am__skip_mode_fix)" \
- || find "$(distdir)" -type d ! -perm -755 \
- -exec chmod u+rwx,go+rx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r "$(distdir)"
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__post_remove_distdir)
-
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
- $(am__post_remove_distdir)
-
-dist-lzip: distdir
- tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
- $(am__post_remove_distdir)
-
-dist-xz: distdir
- tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
- $(am__post_remove_distdir)
-
-dist-tarZ: distdir
- @echo WARNING: "Support for shar distribution archives is" \
- "deprecated." >&2
- @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__post_remove_distdir)
-
-dist-shar: distdir
- @echo WARNING: "Support for distribution archives compressed with" \
- "legacy program 'compress' is deprecated." >&2
- @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
- $(am__post_remove_distdir)
-
-dist-zip: distdir
- -rm -f $(distdir).zip
- zip -rq $(distdir).zip $(distdir)
- $(am__post_remove_distdir)
-
-dist dist-all:
- $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
- $(am__post_remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- case '$(DIST_ARCHIVES)' in \
- *.tar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
- *.tar.bz2*) \
- bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
- *.tar.lz*) \
- lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
- *.tar.xz*) \
- xz -dc $(distdir).tar.xz | $(am__untar) ;;\
- *.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- *.shar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
- *.zip*) \
- unzip $(distdir).zip ;;\
- esac
- chmod -R a-w $(distdir)
- chmod u+w $(distdir)
- mkdir $(distdir)/_build $(distdir)/_inst
- chmod a-w $(distdir)
- test -d $(distdir)/_build || exit 0; \
- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && am__cwd=`pwd` \
- && $(am__cd) $(distdir)/_build \
- && ../configure \
- $(AM_DISTCHECK_CONFIGURE_FLAGS) \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- --srcdir=.. --prefix="$$dc_install_base" \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
- distuninstallcheck \
- && chmod -R a-w "$$dc_install_base" \
- && ({ \
- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
- } || { rm -rf "$$dc_destdir"; exit 1; }) \
- && rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
- && cd "$$am__cwd" \
- || exit 1
- $(am__post_remove_distdir)
- @(echo "$(distdir) archives ready for distribution: "; \
- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
- sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
- @test -n '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: trying to run $@ with an empty' \
- '$$(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- $(am__cd) '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
-check-am: all-am
-check: check-recursive
-all-am: Makefile $(HEADERS)
-installdirs: installdirs-recursive
-installdirs-am:
- for dir in "$(DESTDIR)$(includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr \
- distclean-libtool distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am: install-includeHEADERS
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-includeHEADERS
-
-.MAKE: $(am__recursive_targets) install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
- am--refresh check check-am clean clean-cscope clean-generic \
- clean-libtool cscope cscopelist-am ctags ctags-am dist \
- dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
- dist-xz dist-zip distcheck distclean distclean-generic \
- distclean-hdr distclean-libtool distclean-tags distcleancheck \
- distdir distuninstallcheck dvi dvi-am html html-am info \
- info-am install install-am install-data install-data-am \
- install-dvi install-dvi-am install-exec install-exec-am \
- install-html install-html-am install-includeHEADERS \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs installdirs-am \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-am uninstall uninstall-am uninstall-includeHEADERS
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/gf-complete/Manual.pdf b/src/c/gf-complete/Manual.pdf
deleted file mode 100644
index 59968bb..0000000
--- a/src/c/gf-complete/Manual.pdf
+++ /dev/null
Binary files differ
diff --git a/src/c/gf-complete/NEWS b/src/c/gf-complete/NEWS
deleted file mode 100644
index e69de29..0000000
--- a/src/c/gf-complete/NEWS
+++ /dev/null
diff --git a/src/c/gf-complete/README b/src/c/gf-complete/README
deleted file mode 100644
index ce3b6cd..0000000
--- a/src/c/gf-complete/README
+++ /dev/null
@@ -1,21 +0,0 @@
-This is GF-Complete, Revision 1.03. January 1, 2015.
-
-Authors: James S. Plank (University of Tennessee)
- Ethan L. Miller (UC Santa Cruz)
- Kevin M. Greenan (Box)
- Benjamin A. Arnold (University of Tennessee)
- John A. Burnum (University of Tennessee)
- Adam W. Disney (University of Tennessee,
- Allen C. McBride (University of Tennessee)
-
-The user's manual is in the file Manual.pdf.
-
-The online home for GF-Complete is:
-
- - https://jerasure.org/jerasure/gf-complete
-
-To compile, do:
-
- ./configure
- make
- sudo make install
diff --git a/src/c/gf-complete/README.txt b/src/c/gf-complete/README.txt
deleted file mode 100644
index a6f924a..0000000
--- a/src/c/gf-complete/README.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-This is GF-Complete, Revision 1.03. January 1, 2015.
-
-Authors: James S. Plank (University of Tennessee)
- Ethan L. Miller (UC Santa Cruz)
- Kevin M. Greenan (Box)
- Benjamin A. Arnold (University of Tennessee)
- John A. Burnum (University of Tennessee)
- Adam W. Disney (University of Tennessee,
- Allen C. McBride (University of Tennessee)
-
-The user's manual is in the file Manual.pdf.
-
-The online home for GF-Complete is:
-
- - http://jerasure.org/jerasure/gf-complete
-
-To compile, do:
-
- ./configure
- make
- sudo make install
diff --git a/src/c/gf-complete/aclocal.m4 b/src/c/gf-complete/aclocal.m4
deleted file mode 100644
index 21da185..0000000
--- a/src/c/gf-complete/aclocal.m4
+++ /dev/null
@@ -1,879 +0,0 @@
-# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
-You have another version of autoconf. It may work, but is not guaranteed to.
-If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-# (This private macro should not be called outside this file.)
-AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.14'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.14.1], [],
- [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-
-# _AM_AUTOCONF_VERSION(VERSION)
-# -----------------------------
-# aclocal traces this macro to find the Autoconf version.
-# This is a private macro too. Using m4_define simplifies
-# the logic in aclocal, which can simply ignore this definition.
-m4_define([_AM_AUTOCONF_VERSION], [])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.14.1])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
-# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is '.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ([2.52])dnl
- m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])dnl
-AC_SUBST([$1_FALSE])dnl
-_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-m4_define([_AM_COND_VALUE_$1], [$2])dnl
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This macro actually does too much. Some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
-m4_define([AC_PROG_CC],
-m4_defn([AC_PROG_CC])
-[_AM_PROG_CC_C_O
-])
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.65])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[AC_DIAGNOSE([obsolete],
- [$0: two- and three-arguments forms are deprecated.])
-m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(
- m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
- [ok:ok],,
- [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
- AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
-AM_MISSING_PROG([AUTOCONF], [autoconf])
-AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
-AM_MISSING_PROG([AUTOHEADER], [autoheader])
-AM_MISSING_PROG([MAKEINFO], [makeinfo])
-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES([CC])],
- [m4_define([AC_PROG_CC],
- m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES([CXX])],
- [m4_define([AC_PROG_CXX],
- m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
- [_AM_DEPENDENCIES([OBJC])],
- [m4_define([AC_PROG_OBJC],
- m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
- [_AM_DEPENDENCIES([OBJCXX])],
- [m4_define([AC_PROG_OBJCXX],
- m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
-])
-AC_REQUIRE([AM_SILENT_RULES])dnl
-dnl The testsuite driver may need to know about EXEEXT, so add the
-dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
-dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
-AC_CONFIG_COMMANDS_PRE(dnl
-[m4_provide_if([_AM_COMPILER_EXEEXT],
- [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
- fi
-fi])
-
-dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
-dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
-dnl mangled by Autoconf and run in a shell conditional statement.
-m4_define([_AC_COMPILER_EXEEXT],
-m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_arg=$1
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-AC_SUBST([install_sh])])
-
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
-# From Jim Meyering
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MAINTAINER_MODE([DEFAULT-MODE])
-# ----------------------------------
-# Control maintainer-specific portions of Makefiles.
-# Default is to disable them, unless 'enable' is passed literally.
-# For symmetry, 'disable' may be passed as well. Anyway, the user
-# can override the default with the --enable/--disable switch.
-AC_DEFUN([AM_MAINTAINER_MODE],
-[m4_case(m4_default([$1], [disable]),
- [enable], [m4_define([am_maintainer_other], [disable])],
- [disable], [m4_define([am_maintainer_other], [enable])],
- [m4_define([am_maintainer_other], [enable])
- m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode's default is 'disable' unless 'enable' is passed
- AC_ARG_ENABLE([maintainer-mode],
- [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
- am_maintainer_other[ make rules and dependencies not useful
- (and sometimes confusing) to the casual installer])],
- [USE_MAINTAINER_MODE=$enableval],
- [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
- AC_MSG_RESULT([$USE_MAINTAINER_MODE])
- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST([MAINT])dnl
-]
-)
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it is modern enough.
-# If it is, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([missing])dnl
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- AC_MSG_WARN(['missing' script is too old or missing])
-fi
-])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# --------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_CC_C_O
-# ---------------
-# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
-# to automatically call this.
-AC_DEFUN([_AM_PROG_CC_C_O],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-AC_LANG_PUSH([C])dnl
-AC_CACHE_CHECK(
- [whether $CC understands -c and -o together],
- [am_cv_prog_cc_c_o],
- [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i])
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-AC_LANG_POP([C])])
-
-# For backward compatibility.
-AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_RUN_LOG(COMMAND)
-# -------------------
-# Run COMMAND, save the exit status in ac_status, and log it.
-# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
-AC_DEFUN([AM_RUN_LOG],
-[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
- ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- (exit $ac_status); }])
-
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[[\\\"\#\$\&\'\`$am_lf]]*)
- AC_MSG_ERROR([unsafe absolute working directory name]);;
-esac
-case $srcdir in
- *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
- AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
- alias in your environment])
- fi
- if test "$[2]" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT([yes])
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-AC_CONFIG_COMMANDS_PRE(
- [AC_MSG_CHECKING([that generated files are newer than configure])
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- AC_MSG_RESULT([done])])
-rm -f conftest.file
-])
-
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SILENT_RULES([DEFAULT])
-# --------------------------
-# Enable less verbose build rules; with the default set to DEFAULT
-# ("yes" being less verbose, "no" or empty being verbose).
-AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules], [dnl
-AS_HELP_STRING(
- [--enable-silent-rules],
- [less verbose build output (undo: "make V=1")])
-AS_HELP_STRING(
- [--disable-silent-rules],
- [verbose build output (undo: "make V=0")])dnl
-])
-case $enable_silent_rules in @%:@ (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
-esac
-dnl
-dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
-dnl do not support nested variable expansions.
-dnl See automake bug#9928 and bug#10237.
-am_make=${MAKE-make}
-AC_CACHE_CHECK([whether $am_make supports nested variables],
- [am_cv_make_support_nested_variables],
- [if AS_ECHO([['TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi])
-if test $am_cv_make_support_nested_variables = yes; then
- dnl Using '$V' instead of '$(V)' breaks IRIX make.
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AC_SUBST([AM_V])dnl
-AM_SUBST_NOTMAKE([AM_V])dnl
-AC_SUBST([AM_DEFAULT_V])dnl
-AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
-AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
-AM_BACKSLASH='\'
-AC_SUBST([AM_BACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
-])
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor 'install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in "make install-strip", and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Copyright (C) 2006-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
-# This macro is traced by Automake.
-AC_DEFUN([_AM_SUBST_NOTMAKE])
-
-# AM_SUBST_NOTMAKE(VARIABLE)
-# --------------------------
-# Public sister of _AM_SUBST_NOTMAKE.
-AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of 'v7', 'ustar', or 'pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-#
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AC_SUBST([AMTAR], ['$${TAR-tar}'])
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-
-m4_if([$1], [v7],
- [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-
- [m4_case([$1],
- [ustar],
- [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
- # There is notably a 21 bits limit for the UID and the GID. In fact,
- # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
- # and bug#13588).
- am_max_uid=2097151 # 2^21 - 1
- am_max_gid=$am_max_uid
- # The $UID and $GID variables are not portable, so we need to resort
- # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
- # below are definitely unexpected, so allow the users to see them
- # (that is, avoid stderr redirection).
- am_uid=`id -u || echo unknown`
- am_gid=`id -g || echo unknown`
- AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
- if test $am_uid -le $am_max_uid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi
- AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
- if test $am_gid -le $am_max_gid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi],
-
- [pax],
- [],
-
- [m4_fatal([Unknown tar format])])
-
- AC_MSG_CHECKING([how to create a $1 tar archive])
-
- # Go ahead even if we have the value already cached. We do so because we
- # need to set the values for the 'am__tar' and 'am__untar' variables.
- _am_tools=${am_cv_prog_tar_$1-$_am_tools}
-
- for _am_tool in $_am_tools; do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar; do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works.
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- AM_RUN_LOG([cat conftest.dir/file])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
- done
- rm -rf conftest.dir
-
- AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
- AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([m4/ax_check_compile_flag.m4])
-m4_include([m4/ax_ext.m4])
-m4_include([m4/ax_gcc_x86_avx_xgetbv.m4])
-m4_include([m4/ax_gcc_x86_cpuid.m4])
-m4_include([m4/libtool.m4])
-m4_include([m4/ltoptions.m4])
-m4_include([m4/ltsugar.m4])
-m4_include([m4/ltversion.m4])
-m4_include([m4/lt~obsolete.m4])
diff --git a/src/c/gf-complete/autogen.sh b/src/c/gf-complete/autogen.sh
deleted file mode 100755
index b483139..0000000
--- a/src/c/gf-complete/autogen.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-autoreconf --force --install -I m4
diff --git a/src/c/gf-complete/compile b/src/c/gf-complete/compile
deleted file mode 100755
index 531136b..0000000
--- a/src/c/gf-complete/compile
+++ /dev/null
@@ -1,347 +0,0 @@
-#! /bin/sh
-# Wrapper for compilers which do not understand '-c -o'.
-
-scriptversion=2012-10-14.11; # UTC
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-# Written by Tom Tromey <tromey@cygnus.com>.
-#
-# This program 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 2, 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 file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-nl='
-'
-
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent tools from complaining about whitespace usage.
-IFS=" "" $nl"
-
-file_conv=
-
-# func_file_conv build_file lazy
-# Convert a $build file to $host form and store it in $file
-# Currently only supports Windows hosts. If the determined conversion
-# type is listed in (the comma separated) LAZY, no conversion will
-# take place.
-func_file_conv ()
-{
- file=$1
- case $file in
- / | /[!/]*) # absolute file, and not a UNC file
- if test -z "$file_conv"; then
- # lazily determine how to convert abs files
- case `uname -s` in
- MINGW*)
- file_conv=mingw
- ;;
- CYGWIN*)
- file_conv=cygwin
- ;;
- *)
- file_conv=wine
- ;;
- esac
- fi
- case $file_conv/,$2, in
- *,$file_conv,*)
- ;;
- mingw/*)
- file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
- ;;
- cygwin/*)
- file=`cygpath -m "$file" || echo "$file"`
- ;;
- wine/*)
- file=`winepath -w "$file" || echo "$file"`
- ;;
- esac
- ;;
- esac
-}
-
-# func_cl_dashL linkdir
-# Make cl look for libraries in LINKDIR
-func_cl_dashL ()
-{
- func_file_conv "$1"
- if test -z "$lib_path"; then
- lib_path=$file
- else
- lib_path="$lib_path;$file"
- fi
- linker_opts="$linker_opts -LIBPATH:$file"
-}
-
-# func_cl_dashl library
-# Do a library search-path lookup for cl
-func_cl_dashl ()
-{
- lib=$1
- found=no
- save_IFS=$IFS
- IFS=';'
- for dir in $lib_path $LIB
- do
- IFS=$save_IFS
- if $shared && test -f "$dir/$lib.dll.lib"; then
- found=yes
- lib=$dir/$lib.dll.lib
- break
- fi
- if test -f "$dir/$lib.lib"; then
- found=yes
- lib=$dir/$lib.lib
- break
- fi
- if test -f "$dir/lib$lib.a"; then
- found=yes
- lib=$dir/lib$lib.a
- break
- fi
- done
- IFS=$save_IFS
-
- if test "$found" != yes; then
- lib=$lib.lib
- fi
-}
-
-# func_cl_wrapper cl arg...
-# Adjust compile command to suit cl
-func_cl_wrapper ()
-{
- # Assume a capable shell
- lib_path=
- shared=:
- linker_opts=
- for arg
- do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- eat=1
- case $2 in
- *.o | *.[oO][bB][jJ])
- func_file_conv "$2"
- set x "$@" -Fo"$file"
- shift
- ;;
- *)
- func_file_conv "$2"
- set x "$@" -Fe"$file"
- shift
- ;;
- esac
- ;;
- -I)
- eat=1
- func_file_conv "$2" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -I*)
- func_file_conv "${1#-I}" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -l)
- eat=1
- func_cl_dashl "$2"
- set x "$@" "$lib"
- shift
- ;;
- -l*)
- func_cl_dashl "${1#-l}"
- set x "$@" "$lib"
- shift
- ;;
- -L)
- eat=1
- func_cl_dashL "$2"
- ;;
- -L*)
- func_cl_dashL "${1#-L}"
- ;;
- -static)
- shared=false
- ;;
- -Wl,*)
- arg=${1#-Wl,}
- save_ifs="$IFS"; IFS=','
- for flag in $arg; do
- IFS="$save_ifs"
- linker_opts="$linker_opts $flag"
- done
- IFS="$save_ifs"
- ;;
- -Xlinker)
- eat=1
- linker_opts="$linker_opts $2"
- ;;
- -*)
- set x "$@" "$1"
- shift
- ;;
- *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
- func_file_conv "$1"
- set x "$@" -Tp"$file"
- shift
- ;;
- *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
- func_file_conv "$1" mingw
- set x "$@" "$file"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
- done
- if test -n "$linker_opts"; then
- linker_opts="-link$linker_opts"
- fi
- exec "$@" $linker_opts
- exit 1
-}
-
-eat=
-
-case $1 in
- '')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: compile [--help] [--version] PROGRAM [ARGS]
-
-Wrapper for compilers which do not understand '-c -o'.
-Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
-arguments, and rename the output as expected.
-
-If you are trying to build a whole package this is not the
-right script to run: please start by reading the file 'INSTALL'.
-
-Report bugs to <bug-automake@gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "compile $scriptversion"
- exit $?
- ;;
- cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
- func_cl_wrapper "$@" # Doesn't return...
- ;;
-esac
-
-ofile=
-cfile=
-
-for arg
-do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- # So we strip '-o arg' only if arg is an object.
- eat=1
- case $2 in
- *.o | *.obj)
- ofile=$2
- ;;
- *)
- set x "$@" -o "$2"
- shift
- ;;
- esac
- ;;
- *.c)
- cfile=$1
- set x "$@" "$1"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
-done
-
-if test -z "$ofile" || test -z "$cfile"; then
- # If no '-o' option was seen then we might have been invoked from a
- # pattern rule where we don't need one. That is ok -- this is a
- # normal compilation that the losing compiler can handle. If no
- # '.c' file was seen then we are probably linking. That is also
- # ok.
- exec "$@"
-fi
-
-# Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
-
-# Create the lock directory.
-# Note: use '[/\\:.-]' here to ensure that we don't use the same name
-# that we are using for the .o file. Also, base the name on the expected
-# object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
-while true; do
- if mkdir "$lockdir" >/dev/null 2>&1; then
- break
- fi
- sleep 1
-done
-# FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir '$lockdir'; exit 1" 1 2 15
-
-# Run the compile.
-"$@"
-ret=$?
-
-if test -f "$cofile"; then
- test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
-elif test -f "${cofile}bj"; then
- test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
-fi
-
-rmdir "$lockdir"
-exit $ret
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# 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:
diff --git a/src/c/gf-complete/config.guess b/src/c/gf-complete/config.guess
deleted file mode 100755
index b79252d..0000000
--- a/src/c/gf-complete/config.guess
+++ /dev/null
@@ -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:
diff --git a/src/c/gf-complete/config.sub b/src/c/gf-complete/config.sub
deleted file mode 100755
index 9633db7..0000000
--- a/src/c/gf-complete/config.sub
+++ /dev/null
@@ -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:
diff --git a/src/c/gf-complete/configure b/src/c/gf-complete/configure
deleted file mode 100755
index 0903ccf..0000000
--- a/src/c/gf-complete/configure
+++ /dev/null
@@ -1,15323 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gf-complete 1.0.
-#
-#
-# 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 -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
- || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || 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 about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a 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'"
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-
-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='gf-complete'
-PACKAGE_TARNAME='gf-complete'
-PACKAGE_VERSION='1.0'
-PACKAGE_STRING='gf-complete 1.0'
-PACKAGE_BUGREPORT=''
-PACKAGE_URL=''
-
-# 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='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIBOBJS
-HAVE_NEON_FALSE
-HAVE_NEON_TRUE
-SIMD_FLAGS
-MAINT
-MAINTAINER_MODE_FALSE
-MAINTAINER_MODE_TRUE
-CPP
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-MANIFEST_TOOL
-RANLIB
-ac_ct_AR
-AR
-DLLTOOL
-OBJDUMP
-LN_S
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-EGREP
-GREP
-SED
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-LIBTOOL
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-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
-enable_silent_rules
-enable_shared
-enable_static
-with_pic
-enable_fast_install
-with_gnu_ld
-with_sysroot
-enable_libtool_lock
-enable_maintainer_mode
-enable_neon
-enable_sse
-'
- 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 gf-complete 1.0 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --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/gf-complete]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of gf-complete 1.0:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-silent-rules less verbose build output (undo: "make V=1")
- --disable-silent-rules verbose build output (undo: "make V=0")
- --enable-shared[=PKGS] build shared libraries [default=yes]
- --enable-static[=PKGS] build static libraries [default=yes]
- --enable-fast-install[=PKGS]
- optimize for fast installation [default=yes]
- --disable-libtool-lock avoid locking (might break parallel builds)
- --enable-maintainer-mode
- enable make rules and dependencies not useful (and
- sometimes confusing) to the casual installer
- --disable-neon Build without NEON optimizations
- --disable-sse Build without SSE optimizations
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
- both]
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]
- --with-sysroot=DIR Search for dependent libraries within DIR
- (or the compiler's sysroot if not specified).
-
-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 the package provider.
-_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
-gf-complete configure 1.0
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_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_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_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_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_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
- 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. */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* 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 $2 ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext 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_func
-
-# 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;}
- ;;
-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
-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 gf-complete $as_me 1.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-# Override default CFLAGS
-: ${CFLAGS="-Wall -Wpointer-arith -O3 -g"}
-
-
-
-am__api_version='1.14'
-
-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.
-
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
-
- done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[\\\"\#\$\&\'\`$am_lf]*)
- as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
-esac
-case $srcdir in
- *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
- as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
- alias in your environment" "$LINENO" 5
- fi
- if test "$2" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-
-rm -f conftest.file
-
-test "$program_prefix" != NONE &&
- program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; 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_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # 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_STRIP="${ac_tool_prefix}strip"
- $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
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; 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_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # 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_STRIP="strip"
- $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_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- 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
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
- if ${ac_cv_path_mkdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
- done
-IFS=$as_save_IFS
-
-fi
-
- test -d ./--version && rmdir ./--version
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- MKDIR_P="$ac_install_sh -d"
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-for ac_prog in gawk mawk nawk awk
-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_AWK+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # 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_AWK="$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
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
- enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=1;;
-esac
-am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if $as_echo 'TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- am__isrc=' -I$(srcdir)'
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='gf-complete'
- VERSION='1.0'
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-mkdir_p='$(MKDIR_P)'
-
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AMTAR='$${TAR-tar}'
-
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar pax cpio none'
-
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
-
-
-
-
-
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
- fi
-fi
-case `pwd` in
- *\ * | *\ *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.4.2'
-macro_revision='1.3337'
-
-
-
-
-
-
-
-
-
-
-
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-# 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
-
-
-# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO ""
-}
-
-case "$ECHO" in
- printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
- print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
- { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if { ac_try='./conftest$ac_cv_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-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 a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
- for ac_i in 1 2 3 4 5 6 7; do
- ac_script="$ac_script$as_nl$ac_script"
- done
- echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
- { ac_script=; unset ac_script;}
- if test -z "$SED"; then
- ac_path_SED_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
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_SED" || continue
-# Check for GNU ac_path_SED and select it if it is found.
- # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
- ac_cv_path_SED="$ac_path_SED" ac_path_SED_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 '' >> "conftest.nl"
- "$ac_path_SED" -f conftest.sed < "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_SED_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_SED="$ac_path_SED"
- ac_path_SED_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_SED_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_SED"; then
- as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
- fi
-else
- ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
- rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-
-
-
-
-
-
-
-
-
-
-{ $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 fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
- then ac_cv_path_FGREP="$GREP -F"
- else
- if test -z "$FGREP"; then
- ac_path_FGREP_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 fgrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_FGREP" || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
- # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_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 'FGREP' >> "conftest.nl"
- "$ac_path_FGREP" FGREP < "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_FGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_FGREP="$ac_path_FGREP"
- ac_path_FGREP_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_FGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_FGREP"; then
- as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_FGREP=$FGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
-
-
-test -z "$GREP" && GREP=grep
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
- withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- if test -n "$ac_tool_prefix"; then
- for ac_prog in dumpbin "link -dump"
- 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_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DUMPBIN"; then
- ac_cv_prog_DUMPBIN="$DUMPBIN" # 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_DUMPBIN="$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
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$DUMPBIN" && break
- done
-fi
-if test -z "$DUMPBIN"; then
- ac_ct_DUMPBIN=$DUMPBIN
- for ac_prog in dumpbin "link -dump"
-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_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DUMPBIN"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # 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_DUMPBIN="$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_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_DUMPBIN" && break
-done
-
- if test "x$ac_ct_DUMPBIN" = x; then
- DUMPBIN=":"
- 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
- DUMPBIN=$ac_ct_DUMPBIN
- fi
-fi
-
- case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
-
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: output\"" >&5)
- cat conftest.out >&5
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- os2*)
- # The test takes a long time on OS/2.
- lt_cv_sys_max_cmd_len=8192
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len" && \
- test undefined != "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-
-
-
-
-
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,b/c, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-
-
-
-
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-if ${lt_cv_to_host_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
- ;;
- esac
- ;;
- *-*-cygwin* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
- ;;
- esac
- ;;
- * ) # unhandled hosts (and "normal" native builds)
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
-esac
-
-fi
-
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-$as_echo "$lt_cv_to_host_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-if ${lt_cv_to_tool_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- #assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
- ;;
- esac
- ;;
-esac
-
-fi
-
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- if test "$GCC" != yes; then
- reload_cmds=false
- fi
- ;;
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; 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_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # 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_OBJDUMP="${ac_tool_prefix}objdump"
- $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
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
- ac_ct_OBJDUMP=$OBJDUMP
- # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; 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_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OBJDUMP"; then
- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # 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_OBJDUMP="objdump"
- $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_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OBJDUMP" = x; then
- OBJDUMP="false"
- 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
- OBJDUMP=$ac_ct_OBJDUMP
- fi
-else
- OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[45]*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
- if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- # Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[3-9]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
- case $host_os in
- mingw* | pw32*)
- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
- want_nocaseglob=yes
- else
- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
- fi
- ;;
- esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; 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_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # 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_DLLTOOL="${ac_tool_prefix}dlltool"
- $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
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
- ac_ct_DLLTOOL=$DLLTOOL
- # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; 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_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DLLTOOL"; then
- ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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_DLLTOOL="dlltool"
- $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_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DLLTOOL" = x; then
- DLLTOOL="false"
- 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
- DLLTOOL=$ac_ct_DLLTOOL
- fi
-else
- DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
- # two different shell functions defined in ltmain.sh
- # decide which to use based on capabilities of $DLLTOOL
- case `$DLLTOOL --help 2>&1` in
- *--identify-strict*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
- ;;
- *)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
- ;;
- esac
- ;;
-*)
- # fallback: assume linklib IS sharedlib
- lt_cv_sharedlib_from_linklib_cmd="$ECHO"
- ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- for ac_prog in ar
- 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_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # 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_AR="$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
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AR" && break
- done
-fi
-if test -z "$AR"; then
- ac_ct_AR=$AR
- for ac_prog in ar
-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_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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_AR="$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_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_AR" && break
-done
-
- if test "x$ac_ct_AR" = x; then
- AR="false"
- 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
- AR=$ac_ct_AR
- fi
-fi
-
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-$as_echo_n "checking for archiver @FILE support... " >&6; }
-if ${lt_cv_ar_at_file+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ar_at_file=no
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- echo conftest.$ac_objext > conftest.lst
- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test "$ac_status" -eq 0; then
- # Ensure the archiver fails upon bogus file names.
- rm -f conftest.$ac_objext libconftest.a
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test "$ac_status" -ne 0; then
- lt_cv_ar_at_file=@
- fi
- fi
- rm -f conftest.* libconftest.a
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-$as_echo "$lt_cv_ar_at_file" >&6; }
-
-if test "x$lt_cv_ar_at_file" = xno; then
- archiver_list_spec=
-else
- archiver_list_spec=$lt_cv_ar_at_file
-fi
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; 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_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # 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_STRIP="${ac_tool_prefix}strip"
- $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
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; 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_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # 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_STRIP="strip"
- $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_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- 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
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; 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_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # 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_RANLIB="${ac_tool_prefix}ranlib"
- $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
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; 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_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # 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_RANLIB="ranlib"
- $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_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- 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
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-
-
-
-
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[BCDT]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[ABCDGISTW]'
- ;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[ABCDEGRST]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[BCDEGRST]'
- ;;
-osf*)
- symcode='[BCDEGQRST]'
- ;;
-solaris*)
- symcode='[BDRT]'
- ;;
-sco3.2v5*)
- symcode='[DT]'
- ;;
-sysv4.2uw2*)
- symcode='[DT]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[ABDT]'
- ;;
-sysv4)
- symcode='[DFNSTU]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK '"\
-" {last_section=section; section=\$ 3};"\
-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
- (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-LT_DLSYM_CONST struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_globsym_save_LIBS=$LIBS
- lt_globsym_save_CFLAGS=$CFLAGS
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS=$lt_globsym_save_LIBS
- CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&5
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&5
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
- fi
- else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
- nm_file_list_spec='@'
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-$as_echo_n "checking for sysroot... " >&6; }
-
-# Check whether --with-sysroot was given.
-if test "${with_sysroot+set}" = set; then :
- withval=$with_sysroot;
-else
- with_sysroot=no
-fi
-
-
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
- if test "$GCC" = yes; then
- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
- fi
- ;; #(
- /*)
- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
- ;; #(
- no|'')
- ;; #(
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
-$as_echo "${with_sysroot}" >&6; }
- as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
- ;;
-esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-$as_echo "${lt_sysroot:-no}" >&6; }
-
-
-
-
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
- enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line '$LINENO' "configure"' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- case `/usr/bin/file conftest.o` in
- *x86-64*)
- LD="${LD-ld} -m elf32_x86_64"
- ;;
- *)
- LD="${LD-ld} -m elf_i386"
- ;;
- esac
- ;;
- powerpc64le-*)
- LD="${LD-ld} -m elf32lppclinux"
- ;;
- powerpc64-*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- powerpcle-*)
- LD="${LD-ld} -m elf64lppc"
- ;;
- powerpc-*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- 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
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_cc_needs_belf=yes
-else
- lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- 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
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*)
- case $host in
- i?86-*-solaris*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- sparc*-*-solaris*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
- LD="${LD-ld}_sol2"
- fi
- ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks="$enable_libtool_lock"
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
-set dummy ${ac_tool_prefix}mt; 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_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$MANIFEST_TOOL"; then
- ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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_MANIFEST_TOOL="${ac_tool_prefix}mt"
- $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
-MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
-if test -n "$MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-$as_echo "$MANIFEST_TOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
- ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
- # Extract the first word of "mt", so it can be a program name with args.
-set dummy mt; 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_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_MANIFEST_TOOL"; then
- ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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_MANIFEST_TOOL="mt"
- $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_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
-if test -n "$ac_ct_MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_MANIFEST_TOOL" = x; then
- MANIFEST_TOOL=":"
- 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
- MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
- fi
-else
- MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
-fi
-
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if ${lt_cv_path_mainfest_tool+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_path_mainfest_tool=no
- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
- cat conftest.err >&5
- if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_mainfest_tool=yes
- fi
- rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-$as_echo "$lt_cv_path_mainfest_tool" >&6; }
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
- MANIFEST_TOOL=:
-fi
-
-
-
-
-
-
- case $host_os in
- rhapsody* | darwin*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; 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_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DSYMUTIL"; then
- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # 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_DSYMUTIL="${ac_tool_prefix}dsymutil"
- $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
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
- ac_ct_DSYMUTIL=$DSYMUTIL
- # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; 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_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DSYMUTIL"; then
- ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # 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_DSYMUTIL="dsymutil"
- $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_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DSYMUTIL" = x; then
- DSYMUTIL=":"
- 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
- DSYMUTIL=$ac_ct_DSYMUTIL
- fi
-else
- DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; 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_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NMEDIT"; then
- ac_cv_prog_NMEDIT="$NMEDIT" # 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_NMEDIT="${ac_tool_prefix}nmedit"
- $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
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
- ac_ct_NMEDIT=$NMEDIT
- # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; 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_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_NMEDIT"; then
- ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # 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_NMEDIT="nmedit"
- $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_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_NMEDIT" = x; then
- NMEDIT=":"
- 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
- NMEDIT=$ac_ct_NMEDIT
- fi
-else
- NMEDIT="$ac_cv_prog_NMEDIT"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; 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_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$LIPO"; then
- ac_cv_prog_LIPO="$LIPO" # 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_LIPO="${ac_tool_prefix}lipo"
- $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
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_LIPO"; then
- ac_ct_LIPO=$LIPO
- # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; 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_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_LIPO"; then
- ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # 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_LIPO="lipo"
- $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_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_LIPO" = x; then
- LIPO=":"
- 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
- LIPO=$ac_ct_LIPO
- fi
-else
- LIPO="$ac_cv_prog_LIPO"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; 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_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL"; then
- ac_cv_prog_OTOOL="$OTOOL" # 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_OTOOL="${ac_tool_prefix}otool"
- $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
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
- ac_ct_OTOOL=$OTOOL
- # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; 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_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL"; then
- ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # 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_OTOOL="otool"
- $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_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL" = x; then
- OTOOL=":"
- 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
- OTOOL=$ac_ct_OTOOL
- fi
-else
- OTOOL="$ac_cv_prog_OTOOL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; 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_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL64"; then
- ac_cv_prog_OTOOL64="$OTOOL64" # 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_OTOOL64="${ac_tool_prefix}otool64"
- $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
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
- ac_ct_OTOOL64=$OTOOL64
- # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; 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_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL64"; then
- ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # 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_OTOOL64="otool64"
- $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_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL64" = x; then
- OTOOL64=":"
- 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
- OTOOL64=$ac_ct_OTOOL64
- fi
-else
- OTOOL64="$ac_cv_prog_OTOOL64"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- # If there is a non-empty error log, and "single_module"
- # appears in it, assume the flag caused a linker warning
- if test -s conftest.err && $GREP single_module conftest.err; then
- cat conftest.err >&5
- # Otherwise, if the output was created with a 0 exit code from
- # the compiler, it worked.
- elif test -f libconftest.dylib && test $_lt_result -eq 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&5
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_ld_exported_symbols_list=yes
-else
- lt_cv_ld_exported_symbols_list=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
- echo "$AR cru libconftest.a conftest.o" >&5
- $AR cru libconftest.a conftest.o 2>&5
- echo "$RANLIB libconftest.a" >&5
- $RANLIB libconftest.a 2>&5
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -s conftest.err && $GREP force_load conftest.err; then
- cat conftest.err >&5
- elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&5
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
- case $host_os in
- rhapsody* | darwin1.[012])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- 10.[012]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-
-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 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
-
-
-for ac_header in dlfcn.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-# Set options
-
-
-
- enable_dlopen=no
-
-
- enable_win32_dll=no
-
-
- # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
- enableval=$enable_shared; p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_shared=yes
-fi
-
-
-
-
-
-
-
-
-
- # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
- enableval=$enable_static; p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_static=yes
-fi
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
- withval=$with_pic; lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for lt_pkg in $withval; do
- IFS="$lt_save_ifs"
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-
-
-
-
-
- # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
- enableval=$enable_fast_install; p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_fast_install=yes
-fi
-
-
-
-
-
-
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-test -z "$LN_S" && LN_S="ln -s"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
-
-
-
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/${ac_tool_prefix}file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- else
- MAGIC_CMD=:
- fi
-fi
-
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC="$CC"
-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
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
- case $cc_basename in
- nvcc*)
- lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
- *)
- lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
- esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_rtti_exceptions=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="-fno-rtti -fno-exceptions"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_rtti_exceptions=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
- lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
- :
-fi
-
-fi
-
-
-
-
-
-
- lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-
- if test "$GCC" = yes; then
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_static='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- lt_prog_compiler_pic='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- lt_prog_compiler_static=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
- ;;
-
- interix[3-9]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- lt_prog_compiler_can_build_shared=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic=-Kconform_pic
- fi
- ;;
-
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- lt_prog_compiler_wl='-Xlinker '
- if test -n "$lt_prog_compiler_pic"; then
- lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
- fi
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- lt_prog_compiler_wl='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- else
- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- hpux9* | hpux10* | hpux11*)
- lt_prog_compiler_wl='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- lt_prog_compiler_static='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- lt_prog_compiler_wl='-Wl,'
- # PIC (with -KPIC) is the default.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='--shared'
- lt_prog_compiler_static='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- lt_prog_compiler_wl='-Wl,-Wl,,'
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- ccc*)
- lt_prog_compiler_wl='-Wl,'
- # All Alpha code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-qpic'
- lt_prog_compiler_static='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl=''
- ;;
- *Sun\ F* | *Sun*Fortran*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Qoption ld '
- ;;
- *Sun\ C*)
- # Sun C 5.9
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Wl,'
- ;;
- *Intel*\ [CF]*Compiler*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- *Portland\ Group*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- lt_prog_compiler_wl='-Wl,'
- # All OSF/1 code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- rdos*)
- lt_prog_compiler_static='-non_shared'
- ;;
-
- solaris*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- lt_prog_compiler_wl='-Qoption ld ';;
- *)
- lt_prog_compiler_wl='-Wl,';;
- esac
- ;;
-
- sunos4*)
- lt_prog_compiler_wl='-Qoption ld '
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- lt_prog_compiler_pic='-Kconform_pic'
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- unicos*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_can_build_shared=no
- ;;
-
- uts4*)
- lt_prog_compiler_pic='-pic'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *)
- lt_prog_compiler_can_build_shared=no
- ;;
- esac
- fi
-
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic=
- ;;
- *)
- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
- ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-$as_echo "$lt_cv_prog_compiler_pic" >&6; }
-lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic_works=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_pic_works=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
- case $lt_prog_compiler_pic in
- "" | " "*) ;;
- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
- esac
-else
- lt_prog_compiler_pic=
- lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_static_works=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_static_works=yes
- fi
- else
- lt_cv_prog_compiler_static_works=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
- :
-else
- lt_prog_compiler_static=
-fi
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
- if test "$hard_links" = no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
- runpath_var=
- allow_undefined_flag=
- always_export_symbols=no
- archive_cmds=
- archive_expsym_cmds=
- compiler_needs_object=no
- enable_shared_with_static_runtimes=no
- export_dynamic_flag_spec=
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- hardcode_automatic=no
- hardcode_direct=no
- hardcode_direct_absolute=no
- hardcode_libdir_flag_spec=
- hardcode_libdir_separator=
- hardcode_minus_L=no
- hardcode_shlibpath_var=unsupported
- inherit_rpath=no
- link_all_deplibs=unknown
- module_cmds=
- module_expsym_cmds=
- old_archive_from_new_cmds=
- old_archive_from_expsyms_cmds=
- thread_safe_flag_spec=
- whole_archive_flag_spec=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- include_expsyms=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- linux* | k*bsd*-gnu | gnu*)
- link_all_deplibs=no
- ;;
- esac
-
- ld_shlibs=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test "$with_gnu_ld" = yes; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
- *\ \(GNU\ Binutils\)\ [3-9]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test "$lt_use_gnu_ld_interface" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- export_dynamic_flag_spec='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[3-9]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- export_dynamic_flag_spec='${wl}--export-all-symbols'
- allow_undefined_flag=unsupported
- always_export_symbols=no
- enable_shared_with_static_runtimes=yes
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
- exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- haiku*)
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- link_all_deplibs=yes
- ;;
-
- interix[3-9]*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- whole_archive_flag_spec=
- tmp_sharedflag='--shared' ;;
- xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- ld_shlibs=no
- fi
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
-
- if test "$ld_shlibs" = no; then
- runpath_var=
- hardcode_libdir_flag_spec=
- export_dynamic_flag_spec=
- whole_archive_flag_spec=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
-
- aix[4-9]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds=''
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- file_list_spec='${wl}-f,'
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- link_all_deplibs=no
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- export_dynamic_flag_spec='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- always_export_symbols=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_="/usr/lib:/lib"
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath_
-fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
- allow_undefined_flag="-z nodefs"
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_="/usr/lib:/lib"
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath_
-fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag=' ${wl}-bernotok'
- allow_undefined_flag=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec='$convenience'
- fi
- archive_cmds_need_lc=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- bsdi[45]*)
- export_dynamic_flag_spec=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- case $cc_basename in
- cl*)
- # Native MSVC
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- file_list_spec='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
- enable_shared_with_static_runtimes=yes
- exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
- # Don't use ranlib
- old_postinstall_cmds='chmod 644 $oldlib'
- postlink_cmds='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # Assume MSVC wrapper
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- old_archive_from_new_cmds='true'
- # FIXME: Should let the user specify the lib program.
- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
- enable_shared_with_static_runtimes=yes
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
-
-
- archive_cmds_need_lc=no
- hardcode_direct=no
- hardcode_automatic=yes
- hardcode_shlibpath_var=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
- else
- whole_archive_flag_spec=''
- fi
- link_all_deplibs=yes
- allow_undefined_flag="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-
- else
- ld_shlibs=no
- fi
-
- ;;
-
- dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- export_dynamic_flag_spec='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
-
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler__b=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -b"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler__b=yes
- fi
- else
- lt_cv_prog_compiler__b=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
-
-if test x"$lt_cv_prog_compiler__b" = xyes; then
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-fi
-
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- ;;
- *)
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- # This should be the same for all languages, so no per-tag cache variable.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if ${lt_cv_irix_exported_symbol+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int foo (void) { return 0; }
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_irix_exported_symbol=yes
-else
- lt_cv_irix_exported_symbol=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-$as_echo "$lt_cv_irix_exported_symbol" >&6; }
- if test "$lt_cv_irix_exported_symbol" = yes; then
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
- fi
- else
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- inherit_rpath=yes
- link_all_deplibs=yes
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- newsos6)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_shlibpath_var=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- hardcode_direct_absolute=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- else
- case $host_os in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- ld_shlibs=no
- fi
- ;;
-
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec='-rpath $libdir'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_separator=:
- ;;
-
- solaris*)
- no_undefined_flag=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_shlibpath_var=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- link_all_deplibs=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- reload_cmds='$CC -r -o $output$reload_objs'
- hardcode_direct=no
- ;;
- motorola)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- ;;
-
- sysv4.3*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- export_dynamic_flag_spec='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- no_undefined_flag='${wl}-z,text'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag='${wl}-z,text'
- allow_undefined_flag='${wl}-z,nodefs'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-R,$libdir'
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- export_dynamic_flag_spec='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- *)
- ld_shlibs=no
- ;;
- esac
-
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- export_dynamic_flag_spec='${wl}-Blargedynsym'
- ;;
- esac
- fi
- fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $archive_cmds in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
- (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- then
- lt_cv_archive_cmds_need_lc=no
- else
- lt_cv_archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
- archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
- ;;
- esac
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
- *) lt_sed_strip_eq="s,=/,/,g" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[lt_foo]++; }
- if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's,/\([A-Za-z]:\),\1,g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[4-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- library_names_spec='${libname}.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec="$LIB"
- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[23].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[3-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
- lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
-
-fi
-
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[89] | openbsd2.[89].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
- test -n "$runpath_var" ||
- test "X$hardcode_automatic" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$hardcode_direct" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
- test "$hardcode_minus_L" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink ||
- test "$inherit_rpath" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-
-
-
-
- if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $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 dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=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_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
-
-fi
-
- ;;
-
- *)
- ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
- lt_cv_dlopen="shl_load"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $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 shl_load ();
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_shl_load=yes
-else
- ac_cv_lib_dld_shl_load=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_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
- ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $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 dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=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_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld $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 dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_svld_dlopen=yes
-else
- ac_cv_lib_svld_dlopen=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_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $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 dld_link ();
-int
-main ()
-{
-return dld_link ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_dld_link=yes
-else
- ac_cv_lib_dld_dld_link=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_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self_static=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self_static=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-striplib=
-old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- fi
- ;;
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
- # Report which library types will actually be built
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[4-9]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
-
-
-
-
-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
-
-CC="$lt_save_CC"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ac_config_commands="$ac_config_commands libtool"
-
-
-
-
-# Only expand once:
-
- # libtool
-
-ac_config_headers="$ac_config_headers include/config.h"
-
-
-
-
-# This prevents './configure; make' from trying to run autotools.
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
-$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
- # Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then :
- enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
-$as_echo "$USE_MAINTAINER_MODE" >&6; }
- if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
-
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-
-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
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-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 for functions to provide aligned memory
-#
-for ac_func in posix_memalign
-do :
- ac_fn_c_check_func "$LINENO" "posix_memalign" "ac_cv_func_posix_memalign"
-if test "x$ac_cv_func_posix_memalign" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_POSIX_MEMALIGN 1
-_ACEOF
- found_memalign=yes; break
-fi
-done
-
-
-if test "x$found_memalign" != "xyes"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No function for aligned memory allocation found" >&5
-$as_echo "$as_me: WARNING: No function for aligned memory allocation found" >&2;}
-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 x86 cpuid output" >&5
-$as_echo_n "checking for x86 cpuid output... " >&6; }
-if ${ax_cv_gcc_x86_cpuid_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ax_cv_gcc_x86_cpuid_=unknown
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = , eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ax_cv_gcc_x86_cpuid_=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- ax_cv_gcc_x86_cpuid_=unknown; rm -f conftest_cpuid
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86-AVX xgetbv output" >&5
-$as_echo_n "checking for x86-AVX xgetbv output... " >&6; }
-if ${ax_cv_gcc_x86_avx_xgetbv_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ax_cv_gcc_x86_avx_xgetbv_=unknown
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = , eax, edx;
- FILE *f;
- /* Opcodes for xgetbv */
- __asm__(".byte 0x0f, 0x01, 0xd0"
- : "=a" (eax), "=d" (edx)
- : "c" (op));
- f = fopen("conftest_xgetbv", "w"); if (!f) return 1;
- fprintf(f, "%x:%x\n", eax, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ax_cv_gcc_x86_avx_xgetbv_=`cat conftest_xgetbv`; rm -f conftest_xgetbv
-else
- ax_cv_gcc_x86_avx_xgetbv_=unknown; rm -f conftest_xgetbv
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_avx_xgetbv_" >&5
-$as_echo "$ax_cv_gcc_x86_avx_xgetbv_" >&6; }
-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
-
-
-
-
-
- case $host_cpu in
- aarch64*)
-
-$as_echo "#define HAVE_ARCH_AARCH64 /**/" >>confdefs.h
-
- SIMD_FLAGS="$SIMD_FLAGS -DARCH_AARCH64"
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NEON is supported" >&5
-$as_echo_n "checking whether NEON is supported... " >&6; }
-if ${ax_cv_have_neon_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- # TODO: detect / cross-compile
- ax_cv_have_neon_ext=yes
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_neon_ext" >&5
-$as_echo "$ax_cv_have_neon_ext" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cryptographic extension is supported" >&5
-$as_echo_n "checking whether cryptographic extension is supported... " >&6; }
-if ${ax_cv_have_arm_crypt_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- # TODO: detect / cross-compile
- ax_cv_have_arm_crypt_ext=yes
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_arm_crypt_ext" >&5
-$as_echo "$ax_cv_have_arm_crypt_ext" >&6; }
-
- if test "$ax_cv_have_arm_crypt_ext" = yes; then
-
-$as_echo "#define HAVE_ARM_CRYPT_EXT /**/" >>confdefs.h
-
- fi
-
- if test "$ax_cv_have_neon_ext" = yes; then
-
-$as_echo "#define HAVE_NEON /**/" >>confdefs.h
-
- fi
-
- if test "$ax_cv_have_arm_crypt_ext" = yes && test "$ax_cv_have_neon_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -march=armv8-a+simd+crypto" >&5
-$as_echo_n "checking whether C compiler accepts -march=armv8-a+simd+crypto... " >&6; }
-if ${ax_cv_check_cflags___march_armv8_apsimdpcrypto+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -march=armv8-a+simd+crypto"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___march_armv8_apsimdpcrypto=yes
-else
- ax_cv_check_cflags___march_armv8_apsimdpcrypto=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___march_armv8_apsimdpcrypto" >&5
-$as_echo "$ax_cv_check_cflags___march_armv8_apsimdpcrypto" >&6; }
-if test x"$ax_cv_check_cflags___march_armv8_apsimdpcrypto" = xyes; then :
- SIMD_FLAGS="$SIMD_FLAGS -march=armv8-a+simd+crypto -DARM_CRYPT -DARM_NEON"
-else
- :
-fi
-
- elif test "$ax_cv_have_arm_crypt_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -march=armv8-a+crypto" >&5
-$as_echo_n "checking whether C compiler accepts -march=armv8-a+crypto... " >&6; }
-if ${ax_cv_check_cflags___march_armv8_apcrypto+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -march=armv8-a+crypto"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___march_armv8_apcrypto=yes
-else
- ax_cv_check_cflags___march_armv8_apcrypto=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___march_armv8_apcrypto" >&5
-$as_echo "$ax_cv_check_cflags___march_armv8_apcrypto" >&6; }
-if test x"$ax_cv_check_cflags___march_armv8_apcrypto" = xyes; then :
- SIMD_FLAGS="$SIMD_FLAGS -march=armv8-a+crypto -DARM_CRYPT"
-else
- :
-fi
-
- elif test "$ax_cv_have_neon_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -march=armv8-a+simd" >&5
-$as_echo_n "checking whether C compiler accepts -march=armv8-a+simd... " >&6; }
-if ${ax_cv_check_cflags___march_armv8_apsimd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -march=armv8-a+simd"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___march_armv8_apsimd=yes
-else
- ax_cv_check_cflags___march_armv8_apsimd=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___march_armv8_apsimd" >&5
-$as_echo "$ax_cv_check_cflags___march_armv8_apsimd" >&6; }
-if test x"$ax_cv_check_cflags___march_armv8_apsimd" = xyes; then :
- SIMD_FLAGS="$SIMD_FLAGS -march=armv8-a+simd -DARM_NEON"
-else
- :
-fi
-
- fi
- ;;
-
- arm*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NEON is supported" >&5
-$as_echo_n "checking whether NEON is supported... " >&6; }
-if ${ax_cv_have_neon_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- # TODO: detect / cross-compile
- ax_cv_have_neon_ext=yes
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_neon_ext" >&5
-$as_echo "$ax_cv_have_neon_ext" >&6; }
-
- if test "$ax_cv_have_neon_ext" = yes; then
-
-$as_echo "#define HAVE_NEON /**/" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mfpu=neon" >&5
-$as_echo_n "checking whether C compiler accepts -mfpu=neon... " >&6; }
-if ${ax_cv_check_cflags___mfpu_neon+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -mfpu=neon"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___mfpu_neon=yes
-else
- ax_cv_check_cflags___mfpu_neon=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mfpu_neon" >&5
-$as_echo "$ax_cv_check_cflags___mfpu_neon" >&6; }
-if test x"$ax_cv_check_cflags___mfpu_neon" = xyes; then :
- SIMD_FLAGS="$SIMD_FLAGS -mfpu=neon -DARM_NEON"
-else
- :
-fi
-
- fi
- ;;
-
- powerpc*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether altivec is supported" >&5
-$as_echo_n "checking whether altivec is supported... " >&6; }
-if ${ax_cv_have_altivec_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- if test `/usr/sbin/sysctl -a 2>/dev/null| grep -c hw.optional.altivec` != 0; then
- if test `/usr/sbin/sysctl -n hw.optional.altivec` = 1; then
- ax_cv_have_altivec_ext=yes
- fi
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_altivec_ext" >&5
-$as_echo "$ax_cv_have_altivec_ext" >&6; }
-
- if test "$ax_cv_have_altivec_ext" = yes; then
-
-$as_echo "#define HAVE_ALTIVEC /**/" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -faltivec" >&5
-$as_echo_n "checking whether C compiler accepts -faltivec... " >&6; }
-if ${ax_cv_check_cflags___faltivec+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -faltivec"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___faltivec=yes
-else
- ax_cv_check_cflags___faltivec=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___faltivec" >&5
-$as_echo "$ax_cv_check_cflags___faltivec" >&6; }
-if test x"$ax_cv_check_cflags___faltivec" = xyes; then :
- SIMD_FLAGS="$SIMD_FLAGS -faltivec"
-else
- :
-fi
-
- fi
- ;;
-
-
- i[3456]86*|x86_64*|amd64*)
-
-
-
-
-
-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 x86 cpuid 0x00000001 output" >&5
-$as_echo_n "checking for x86 cpuid 0x00000001 output... " >&6; }
-if ${ax_cv_gcc_x86_cpuid_0x00000001+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ax_cv_gcc_x86_cpuid_0x00000001=unknown
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 0x00000001, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ax_cv_gcc_x86_cpuid_0x00000001=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- ax_cv_gcc_x86_cpuid_0x00000001=unknown; rm -f conftest_cpuid
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0x00000001" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_0x00000001" >&6; }
-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
-
-
- ecx=`echo $ax_cv_gcc_x86_cpuid_0x00000001 | cut -d ":" -f 3`
- edx=`echo $ax_cv_gcc_x86_cpuid_0x00000001 | cut -d ":" -f 4`
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mmx is supported" >&5
-$as_echo_n "checking whether mmx is supported... " >&6; }
-if ${ax_cv_have_mmx_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_mmx_ext=no
- if test "$((0x$edx>>23&0x01))" = 1; then
- ax_cv_have_mmx_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_mmx_ext" >&5
-$as_echo "$ax_cv_have_mmx_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse is supported" >&5
-$as_echo_n "checking whether sse is supported... " >&6; }
-if ${ax_cv_have_sse_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse_ext=no
- if test "$((0x$edx>>25&0x01))" = 1; then
- ax_cv_have_sse_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse_ext" >&5
-$as_echo "$ax_cv_have_sse_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse2 is supported" >&5
-$as_echo_n "checking whether sse2 is supported... " >&6; }
-if ${ax_cv_have_sse2_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse2_ext=no
- if test "$((0x$edx>>26&0x01))" = 1; then
- ax_cv_have_sse2_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse2_ext" >&5
-$as_echo "$ax_cv_have_sse2_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse3 is supported" >&5
-$as_echo_n "checking whether sse3 is supported... " >&6; }
-if ${ax_cv_have_sse3_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse3_ext=no
- if test "$((0x$ecx&0x01))" = 1; then
- ax_cv_have_sse3_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse3_ext" >&5
-$as_echo "$ax_cv_have_sse3_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pclmuldq is supported" >&5
-$as_echo_n "checking whether pclmuldq is supported... " >&6; }
-if ${ax_cv_have_pclmuldq_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_pclmuldq_ext=no
- if test "$((0x$ecx>>1&0x01))" = 1; then
- ax_cv_have_pclmuldq_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_pclmuldq_ext" >&5
-$as_echo "$ax_cv_have_pclmuldq_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ssse3 is supported" >&5
-$as_echo_n "checking whether ssse3 is supported... " >&6; }
-if ${ax_cv_have_ssse3_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_ssse3_ext=no
- if test "$((0x$ecx>>9&0x01))" = 1; then
- ax_cv_have_ssse3_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_ssse3_ext" >&5
-$as_echo "$ax_cv_have_ssse3_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse4.1 is supported" >&5
-$as_echo_n "checking whether sse4.1 is supported... " >&6; }
-if ${ax_cv_have_sse41_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse41_ext=no
- if test "$((0x$ecx>>19&0x01))" = 1; then
- ax_cv_have_sse41_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse41_ext" >&5
-$as_echo "$ax_cv_have_sse41_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse4.2 is supported" >&5
-$as_echo_n "checking whether sse4.2 is supported... " >&6; }
-if ${ax_cv_have_sse42_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse42_ext=no
- if test "$((0x$ecx>>20&0x01))" = 1; then
- ax_cv_have_sse42_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse42_ext" >&5
-$as_echo "$ax_cv_have_sse42_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether avx is supported by processor" >&5
-$as_echo_n "checking whether avx is supported by processor... " >&6; }
-if ${ax_cv_have_avx_cpu_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_avx_cpu_ext=no
- if test "$((0x$ecx>>28&0x01))" = 1; then
- ax_cv_have_avx_cpu_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_avx_cpu_ext" >&5
-$as_echo "$ax_cv_have_avx_cpu_ext" >&6; }
-
- if test x"$ax_cv_have_avx_cpu_ext" = x"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 for x86-AVX xgetbv 0x00000000 output" >&5
-$as_echo_n "checking for x86-AVX xgetbv 0x00000000 output... " >&6; }
-if ${ax_cv_gcc_x86_avx_xgetbv_0x00000000+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ax_cv_gcc_x86_avx_xgetbv_0x00000000=unknown
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 0x00000000, eax, edx;
- FILE *f;
- /* Opcodes for xgetbv */
- __asm__(".byte 0x0f, 0x01, 0xd0"
- : "=a" (eax), "=d" (edx)
- : "c" (op));
- f = fopen("conftest_xgetbv", "w"); if (!f) return 1;
- fprintf(f, "%x:%x\n", eax, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ax_cv_gcc_x86_avx_xgetbv_0x00000000=`cat conftest_xgetbv`; rm -f conftest_xgetbv
-else
- ax_cv_gcc_x86_avx_xgetbv_0x00000000=unknown; rm -f conftest_xgetbv
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_avx_xgetbv_0x00000000" >&5
-$as_echo "$ax_cv_gcc_x86_avx_xgetbv_0x00000000" >&6; }
-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
-
-
-
- xgetbv_eax="0"
- if test x"$ax_cv_gcc_x86_avx_xgetbv_0x00000000" != x"unknown"; then
- xgetbv_eax=`echo $ax_cv_gcc_x86_avx_xgetbv_0x00000000 | cut -d ":" -f 1`
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether avx is supported by operating system" >&5
-$as_echo_n "checking whether avx is supported by operating system... " >&6; }
-if ${ax_cv_have_avx_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_avx_ext=no
-
- if test "$((0x$ecx>>27&0x01))" = 1; then
- if test "$((0x$xgetbv_eax&0x6))" = 6; then
- ax_cv_have_avx_ext=yes
- fi
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_avx_ext" >&5
-$as_echo "$ax_cv_have_avx_ext" >&6; }
- if test x"$ax_cv_have_avx_ext" = x"no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports AVX, but your operating system doesn't" >&5
-$as_echo "$as_me: WARNING: Your processor supports AVX, but your operating system doesn't" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_mmx_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mmmx" >&5
-$as_echo_n "checking whether C compiler accepts -mmmx... " >&6; }
-if ${ax_cv_check_cflags___mmmx+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -mmmx"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___mmmx=yes
-else
- ax_cv_check_cflags___mmmx=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mmmx" >&5
-$as_echo "$ax_cv_check_cflags___mmmx" >&6; }
-if test x"$ax_cv_check_cflags___mmmx" = xyes; then :
- ax_cv_support_mmx_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_mmx_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mmmx"
-
-$as_echo "#define HAVE_MMX /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports mmx instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports mmx instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_sse_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse" >&5
-$as_echo_n "checking whether C compiler accepts -msse... " >&6; }
-if ${ax_cv_check_cflags___msse+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse=yes
-else
- ax_cv_check_cflags___msse=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse" >&5
-$as_echo "$ax_cv_check_cflags___msse" >&6; }
-if test x"$ax_cv_check_cflags___msse" = xyes; then :
- ax_cv_support_sse_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse -DINTEL_SSE"
-
-$as_echo "#define HAVE_SSE /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_sse2_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse2" >&5
-$as_echo_n "checking whether C compiler accepts -msse2... " >&6; }
-if ${ax_cv_check_cflags___msse2+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse2"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse2=yes
-else
- ax_cv_check_cflags___msse2=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse2" >&5
-$as_echo "$ax_cv_check_cflags___msse2" >&6; }
-if test x"$ax_cv_check_cflags___msse2" = xyes; then :
- ax_cv_support_sse2_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse2_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse2 -DINTEL_SSE2"
-
-$as_echo "#define HAVE_SSE2 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse2 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse2 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_sse3_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse3" >&5
-$as_echo_n "checking whether C compiler accepts -msse3... " >&6; }
-if ${ax_cv_check_cflags___msse3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse3"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse3=yes
-else
- ax_cv_check_cflags___msse3=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse3" >&5
-$as_echo "$ax_cv_check_cflags___msse3" >&6; }
-if test x"$ax_cv_check_cflags___msse3" = xyes; then :
- ax_cv_support_sse3_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse3_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse3 -DINTEL_SSE3"
-
-$as_echo "#define HAVE_SSE3 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse3 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse3 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_pclmuldq_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mpclmul" >&5
-$as_echo_n "checking whether C compiler accepts -mpclmul... " >&6; }
-if ${ax_cv_check_cflags___mpclmul+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -mpclmul"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___mpclmul=yes
-else
- ax_cv_check_cflags___mpclmul=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mpclmul" >&5
-$as_echo "$ax_cv_check_cflags___mpclmul" >&6; }
-if test x"$ax_cv_check_cflags___mpclmul" = xyes; then :
- ax_cv_support_pclmuldq_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_pclmuldq_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mpclmul -DINTEL_SSE4_PCLMUL"
-
-$as_echo "#define HAVE_PCLMULDQ /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports pclmuldq instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports pclmuldq instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_ssse3_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mssse3" >&5
-$as_echo_n "checking whether C compiler accepts -mssse3... " >&6; }
-if ${ax_cv_check_cflags___mssse3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -mssse3"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___mssse3=yes
-else
- ax_cv_check_cflags___mssse3=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mssse3" >&5
-$as_echo "$ax_cv_check_cflags___mssse3" >&6; }
-if test x"$ax_cv_check_cflags___mssse3" = xyes; then :
- ax_cv_support_ssse3_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_ssse3_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mssse3 -DINTEL_SSSE3"
-
-$as_echo "#define HAVE_SSSE3 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports ssse3 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports ssse3 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_sse41_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse4.1" >&5
-$as_echo_n "checking whether C compiler accepts -msse4.1... " >&6; }
-if ${ax_cv_check_cflags___msse4_1+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse4.1"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse4_1=yes
-else
- ax_cv_check_cflags___msse4_1=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse4_1" >&5
-$as_echo "$ax_cv_check_cflags___msse4_1" >&6; }
-if test x"$ax_cv_check_cflags___msse4_1" = xyes; then :
- ax_cv_support_sse41_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse41_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse4.1 -DINTEL_SSE4"
-
-$as_echo "#define HAVE_SSE4_1 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse4.1 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse4.1 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_sse42_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse4.2" >&5
-$as_echo_n "checking whether C compiler accepts -msse4.2... " >&6; }
-if ${ax_cv_check_cflags___msse4_2+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse4.2"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse4_2=yes
-else
- ax_cv_check_cflags___msse4_2=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse4_2" >&5
-$as_echo "$ax_cv_check_cflags___msse4_2" >&6; }
-if test x"$ax_cv_check_cflags___msse4_2" = xyes; then :
- ax_cv_support_sse42_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse42_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse4.2 -DINTEL_SSE4"
-
-$as_echo "#define HAVE_SSE4_2 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse4.2 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse4.2 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_avx_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx" >&5
-$as_echo_n "checking whether C compiler accepts -mavx... " >&6; }
-if ${ax_cv_check_cflags___mavx+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -mavx"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___mavx=yes
-else
- ax_cv_check_cflags___mavx=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx" >&5
-$as_echo "$ax_cv_check_cflags___mavx" >&6; }
-if test x"$ax_cv_check_cflags___mavx" = xyes; then :
- ax_cv_support_avx_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_avx_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mavx"
-
-$as_echo "#define HAVE_AVX /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports avx instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports avx instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- ;;
- esac
-
-
-
-
-# Check whether --enable-neon was given.
-if test "${enable_neon+set}" = set; then :
- enableval=$enable_neon;
-fi
-
-
-if test "x$enable_neon" != "xno"; then :
- noneon_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $SIMD_FLAGS"
- ac_fn_c_check_header_mongrel "$LINENO" "arm_neon.h" "ac_cv_header_arm_neon_h" "$ac_includes_default"
-if test "x$ac_cv_header_arm_neon_h" = xyes; then :
- have_neon=yes
-else
- have_neon=no
- CPPFLAGS=$noneon_CPPFLAGS
-fi
-
-
-else
- have_neon=no
- if test "x$ax_cv_have_neon_ext" = "xyes"; then :
- SIMD_FLAGS=""
-fi
-
-fi
-
-if test "x$have_neon" = "xno"; then :
- if test "x$enable_neon" = "xyes"; then :
- as_fn_error $? "neon requested but arm_neon.h not found" "$LINENO" 5
-fi
-
-fi
- if test "x$have_neon" = "xyes"; then
- HAVE_NEON_TRUE=
- HAVE_NEON_FALSE='#'
-else
- HAVE_NEON_TRUE='#'
- HAVE_NEON_FALSE=
-fi
-
-
-# Check whether --enable-sse was given.
-if test "${enable_sse+set}" = set; then :
- enableval=$enable_sse; if test "x$enableval" = "xno" ; then
- SIMD_FLAGS=""
- echo "DISABLED SSE!!!"
- fi
-
-fi
-
-
-ac_config_files="$ac_config_files Makefile src/Makefile tools/Makefile test/Makefile examples/Makefile"
-
-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}'
-
-DEFS=-DHAVE_CONFIG_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
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
-$as_echo_n "checking that generated files are newer than configure... " >&6; }
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
-$as_echo "done" >&6; }
- if test -n "$EXEEXT"; then
- am__EXEEXT_TRUE=
- am__EXEEXT_FALSE='#'
-else
- am__EXEEXT_TRUE='#'
- am__EXEEXT_FALSE=
-fi
-
-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
- as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_NEON_TRUE}" && test -z "${HAVE_NEON_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_NEON\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-: "${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 gf-complete $as_me 1.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_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
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to the package provider."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-gf-complete config.status 1.0
-configured by $0, generated by GNU Autoconf 2.69,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-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;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_HEADERS " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
- --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
-#
-# INIT-COMMANDS
-#
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
-enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
-PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
-host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
-host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
-host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
-build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
-build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
-build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
-SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
-Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
-GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
-EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
-FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
-LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
-NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
-LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
-exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
-file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
-want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
-archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
-STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
-lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
-CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
-compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
-GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
-nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
-lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
-objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
-need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
-MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
-LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
-libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
-postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
-version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
-install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
-striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in SHELL \
-ECHO \
-PATH_SEPARATOR \
-SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-OBJDUMP \
-deplibs_check_method \
-file_magic_cmd \
-file_magic_glob \
-want_nocaseglob \
-DLLTOOL \
-sharedlib_from_linklib_cmd \
-AR \
-AR_FLAGS \
-archiver_list_spec \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-nm_file_list_spec \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_pic \
-lt_prog_compiler_wl \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-MANIFEST_TOOL \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_separator \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-install_override_mode \
-finish_eval \
-old_striplib \
-striplib; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postlink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
-
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
- RM='$RM'
- ofile='$ofile'
-
-
-
-
-_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
- "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
- "include/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/config.h" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
- "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
- "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;;
- "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
-
- *) 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
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-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"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_tt"; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
-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
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
- ac_MKDIR_P=$MKDIR_P
- case $MKDIR_P in
- [\\/$]* | ?:[\\/]* ) ;;
- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
- esac
-_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
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;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
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
- } >"$ac_tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$ac_tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
- fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_arg="$ac_file"
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$_am_arg" : 'X\(//\)[^/]' \| \
- X"$_am_arg" : 'X\(//\)$' \| \
- X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-
- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
- esac
-
-
- case $ac_file$ac_mode in
- "libtool":C)
-
- # See if we are running on zsh, and set the options which allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile="${ofile}T"
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool 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 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags=""
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that protects backslashes.
-ECHO=$lt_ECHO
-
-# The PATH separator for the build system.
-PATH_SEPARATOR=$lt_PATH_SEPARATOR
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# convert \$build file names to \$host format.
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-
-# convert \$build files to toolchain format.
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-
-# An object symbol dumper.
-OBJDUMP=$lt_OBJDUMP
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method = "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# How to find potential files when deplibs_check_method = "file_magic".
-file_magic_glob=$lt_file_magic_glob
-
-# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
-want_nocaseglob=$lt_want_nocaseglob
-
-# DLL creation program.
-DLLTOOL=$lt_DLLTOOL
-
-# Command to associate shared and link libraries.
-sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
-
-# The archiver.
-AR=$lt_AR
-
-# Flags to create an archive.
-AR_FLAGS=$lt_AR_FLAGS
-
-# How to feed a file listing to the archiver.
-archiver_list_spec=$lt_archiver_list_spec
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Whether to use a lock for old archive extraction.
-lock_old_archive_extraction=$lock_old_archive_extraction
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# Specify filename containing input files for \$NM.
-nm_file_list_spec=$lt_nm_file_list_spec
-
-# The root where to search for dependent libraries,and in which our libraries should be installed.
-lt_sysroot=$lt_sysroot
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Manifest tool.
-MANIFEST_TOOL=$lt_MANIFEST_TOOL
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Permission mode override for installation of shared libraries.
-install_override_mode=$lt_install_override_mode
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- if test x"$xsi_shell" = xyes; then
- sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
-func_dirname ()\
-{\
-\ case ${1} in\
-\ */*) func_dirname_result="${1%/*}${2}" ;;\
-\ * ) func_dirname_result="${3}" ;;\
-\ esac\
-} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_basename ()$/,/^} # func_basename /c\
-func_basename ()\
-{\
-\ func_basename_result="${1##*/}"\
-} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
-func_dirname_and_basename ()\
-{\
-\ case ${1} in\
-\ */*) func_dirname_result="${1%/*}${2}" ;;\
-\ * ) func_dirname_result="${3}" ;;\
-\ esac\
-\ func_basename_result="${1##*/}"\
-} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
-func_stripname ()\
-{\
-\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
-\ # positional parameters, so assign one to ordinary parameter first.\
-\ func_stripname_result=${3}\
-\ func_stripname_result=${func_stripname_result#"${1}"}\
-\ func_stripname_result=${func_stripname_result%"${2}"}\
-} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
-func_split_long_opt ()\
-{\
-\ func_split_long_opt_name=${1%%=*}\
-\ func_split_long_opt_arg=${1#*=}\
-} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
-func_split_short_opt ()\
-{\
-\ func_split_short_opt_arg=${1#??}\
-\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
-} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
-func_lo2o ()\
-{\
-\ case ${1} in\
-\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
-\ *) func_lo2o_result=${1} ;;\
-\ esac\
-} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_xform ()$/,/^} # func_xform /c\
-func_xform ()\
-{\
- func_xform_result=${1%.*}.lo\
-} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_arith ()$/,/^} # func_arith /c\
-func_arith ()\
-{\
- func_arith_result=$(( $* ))\
-} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_len ()$/,/^} # func_len /c\
-func_len ()\
-{\
- func_len_result=${#1}\
-} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-fi
-
-if test x"$lt_shell_append" = xyes; then
- sed -e '/^func_append ()$/,/^} # func_append /c\
-func_append ()\
-{\
- eval "${1}+=\\${2}"\
-} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
-func_append_quoted ()\
-{\
-\ func_quote_for_eval "${2}"\
-\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
-} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- # Save a `func_append' function call where possible by direct use of '+='
- sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-else
- # Save a `func_append' function call even when '+=' is not available
- sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
-$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
-fi
-
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-
- ;;
-
- 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
diff --git a/src/c/gf-complete/configure.ac b/src/c/gf-complete/configure.ac
deleted file mode 100644
index ad7bb83..0000000
--- a/src/c/gf-complete/configure.ac
+++ /dev/null
@@ -1,64 +0,0 @@
-# gf-complete autoconf template
-
-# FIXME - add project url as the last argument
-AC_INIT(gf-complete, 1.0)
-
-# Override default CFLAGS
-: ${CFLAGS="-Wall -Wpointer-arith -O3 -g"}
-
-AC_PREREQ([2.61])
-
-AM_INIT_AUTOMAKE([no-dependencies foreign parallel-tests])
-LT_INIT # libtool
-
-AC_CONFIG_HEADER(include/config.h)
-
-dnl Needed when reconfiguring with 'autoreconf -i -s'
-AC_CONFIG_MACRO_DIR([m4])
-
-# This prevents './configure; make' from trying to run autotools.
-AM_MAINTAINER_MODE([disable])
-
-dnl Compiling with per-target flags requires AM_PROG_CC_C_O.
-AC_PROG_CC
-
-# Check for functions to provide aligned memory
-#
-AC_CHECK_FUNCS([posix_memalign],
- [found_memalign=yes; break])
-
-AS_IF([test "x$found_memalign" != "xyes"], [AC_MSG_WARN([No function for aligned memory allocation found])])
-
-AX_EXT()
-
-AC_ARG_ENABLE([neon],
- AS_HELP_STRING([--disable-neon], [Build without NEON optimizations]))
-
-AS_IF([test "x$enable_neon" != "xno"],
- [noneon_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $SIMD_FLAGS"
- AC_CHECK_HEADER([arm_neon.h],
- [have_neon=yes],
- [have_neon=no
- CPPFLAGS=$noneon_CPPFLAGS])],
- [have_neon=no
- AS_IF([test "x$ax_cv_have_neon_ext" = "xyes"],
- [SIMD_FLAGS=""])
- ])
-
-AS_IF([test "x$have_neon" = "xno"],
- [AS_IF([test "x$enable_neon" = "xyes"],
- [AC_MSG_ERROR([neon requested but arm_neon.h not found])])
- ])
-AM_CONDITIONAL([HAVE_NEON], [test "x$have_neon" = "xyes"])
-
-AC_ARG_ENABLE([sse],
- AS_HELP_STRING([--disable-sse], [Build without SSE optimizations]),
- [if test "x$enableval" = "xno" ; then
- SIMD_FLAGS=""
- echo "DISABLED SSE!!!"
- fi]
-)
-
-AC_CONFIG_FILES([Makefile src/Makefile tools/Makefile test/Makefile examples/Makefile])
-AC_OUTPUT
diff --git a/src/c/gf-complete/examples/Makefile.am b/src/c/gf-complete/examples/Makefile.am
deleted file mode 100644
index 60ecd20..0000000
--- a/src/c/gf-complete/examples/Makefile.am
+++ /dev/null
@@ -1,35 +0,0 @@
-# GF-Complete 'examples' AM file
-
-AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include
-AM_CFLAGS = -O3 $(SIMD_FLAGS) -fPIC
-
-bin_PROGRAMS = gf_example_1 gf_example_2 gf_example_3 gf_example_4 \
- gf_example_5 gf_example_6 gf_example_7
-
-gf_example_1_SOURCES = gf_example_1.c
-#gf_example_1_LDFLAGS = -lgf_complete
-gf_example_1_LDADD = ../src/libgf_complete.la
-
-gf_example_2_SOURCES = gf_example_2.c
-#gf_example_2_LDFLAGS = -lgf_complete
-gf_example_2_LDADD = ../src/libgf_complete.la
-
-gf_example_3_SOURCES = gf_example_3.c
-#gf_example_3_LDFLAGS = -lgf_complete
-gf_example_3_LDADD = ../src/libgf_complete.la
-
-gf_example_4_SOURCES = gf_example_4.c
-#gf_example_4_LDFLAGS = -lgf_complete
-gf_example_4_LDADD = ../src/libgf_complete.la
-
-gf_example_5_SOURCES = gf_example_5.c
-#gf_example_5_LDFLAGS = -lgf_complete
-gf_example_5_LDADD = ../src/libgf_complete.la
-
-gf_example_6_SOURCES = gf_example_6.c
-#gf_example_6_LDFLAGS = -lgf_complete
-gf_example_6_LDADD = ../src/libgf_complete.la
-
-gf_example_7_SOURCES = gf_example_7.c
-#gf_example_7_LDFLAGS = -lgf_complete
-gf_example_7_LDADD = ../src/libgf_complete.la
diff --git a/src/c/gf-complete/examples/Makefile.in b/src/c/gf-complete/examples/Makefile.in
deleted file mode 100644
index 9b468ac..0000000
--- a/src/c/gf-complete/examples/Makefile.in
+++ /dev/null
@@ -1,670 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# GF-Complete 'examples' AM file
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = gf_example_1$(EXEEXT) gf_example_2$(EXEEXT) \
- gf_example_3$(EXEEXT) gf_example_4$(EXEEXT) \
- gf_example_5$(EXEEXT) gf_example_6$(EXEEXT) \
- gf_example_7$(EXEEXT)
-subdir = examples
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_ext.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_gf_example_1_OBJECTS = gf_example_1.$(OBJEXT)
-gf_example_1_OBJECTS = $(am_gf_example_1_OBJECTS)
-gf_example_1_DEPENDENCIES = ../src/libgf_complete.la
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-am_gf_example_2_OBJECTS = gf_example_2.$(OBJEXT)
-gf_example_2_OBJECTS = $(am_gf_example_2_OBJECTS)
-gf_example_2_DEPENDENCIES = ../src/libgf_complete.la
-am_gf_example_3_OBJECTS = gf_example_3.$(OBJEXT)
-gf_example_3_OBJECTS = $(am_gf_example_3_OBJECTS)
-gf_example_3_DEPENDENCIES = ../src/libgf_complete.la
-am_gf_example_4_OBJECTS = gf_example_4.$(OBJEXT)
-gf_example_4_OBJECTS = $(am_gf_example_4_OBJECTS)
-gf_example_4_DEPENDENCIES = ../src/libgf_complete.la
-am_gf_example_5_OBJECTS = gf_example_5.$(OBJEXT)
-gf_example_5_OBJECTS = $(am_gf_example_5_OBJECTS)
-gf_example_5_DEPENDENCIES = ../src/libgf_complete.la
-am_gf_example_6_OBJECTS = gf_example_6.$(OBJEXT)
-gf_example_6_OBJECTS = $(am_gf_example_6_OBJECTS)
-gf_example_6_DEPENDENCIES = ../src/libgf_complete.la
-am_gf_example_7_OBJECTS = gf_example_7.$(OBJEXT)
-gf_example_7_OBJECTS = $(am_gf_example_7_OBJECTS)
-gf_example_7_DEPENDENCIES = ../src/libgf_complete.la
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
-depcomp =
-am__depfiles_maybe =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(gf_example_1_SOURCES) $(gf_example_2_SOURCES) \
- $(gf_example_3_SOURCES) $(gf_example_4_SOURCES) \
- $(gf_example_5_SOURCES) $(gf_example_6_SOURCES) \
- $(gf_example_7_SOURCES)
-DIST_SOURCES = $(gf_example_1_SOURCES) $(gf_example_2_SOURCES) \
- $(gf_example_3_SOURCES) $(gf_example_4_SOURCES) \
- $(gf_example_5_SOURCES) $(gf_example_6_SOURCES) \
- $(gf_example_7_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIMD_FLAGS = @SIMD_FLAGS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__leading_dot = @am__leading_dot@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include
-AM_CFLAGS = -O3 $(SIMD_FLAGS) -fPIC
-gf_example_1_SOURCES = gf_example_1.c
-#gf_example_1_LDFLAGS = -lgf_complete
-gf_example_1_LDADD = ../src/libgf_complete.la
-gf_example_2_SOURCES = gf_example_2.c
-#gf_example_2_LDFLAGS = -lgf_complete
-gf_example_2_LDADD = ../src/libgf_complete.la
-gf_example_3_SOURCES = gf_example_3.c
-#gf_example_3_LDFLAGS = -lgf_complete
-gf_example_3_LDADD = ../src/libgf_complete.la
-gf_example_4_SOURCES = gf_example_4.c
-#gf_example_4_LDFLAGS = -lgf_complete
-gf_example_4_LDADD = ../src/libgf_complete.la
-gf_example_5_SOURCES = gf_example_5.c
-#gf_example_5_LDFLAGS = -lgf_complete
-gf_example_5_LDADD = ../src/libgf_complete.la
-gf_example_6_SOURCES = gf_example_6.c
-#gf_example_6_LDFLAGS = -lgf_complete
-gf_example_6_LDADD = ../src/libgf_complete.la
-gf_example_7_SOURCES = gf_example_7.c
-#gf_example_7_LDFLAGS = -lgf_complete
-gf_example_7_LDADD = ../src/libgf_complete.la
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps examples/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign --ignore-deps examples/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-gf_example_1$(EXEEXT): $(gf_example_1_OBJECTS) $(gf_example_1_DEPENDENCIES) $(EXTRA_gf_example_1_DEPENDENCIES)
- @rm -f gf_example_1$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_example_1_OBJECTS) $(gf_example_1_LDADD) $(LIBS)
-
-gf_example_2$(EXEEXT): $(gf_example_2_OBJECTS) $(gf_example_2_DEPENDENCIES) $(EXTRA_gf_example_2_DEPENDENCIES)
- @rm -f gf_example_2$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_example_2_OBJECTS) $(gf_example_2_LDADD) $(LIBS)
-
-gf_example_3$(EXEEXT): $(gf_example_3_OBJECTS) $(gf_example_3_DEPENDENCIES) $(EXTRA_gf_example_3_DEPENDENCIES)
- @rm -f gf_example_3$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_example_3_OBJECTS) $(gf_example_3_LDADD) $(LIBS)
-
-gf_example_4$(EXEEXT): $(gf_example_4_OBJECTS) $(gf_example_4_DEPENDENCIES) $(EXTRA_gf_example_4_DEPENDENCIES)
- @rm -f gf_example_4$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_example_4_OBJECTS) $(gf_example_4_LDADD) $(LIBS)
-
-gf_example_5$(EXEEXT): $(gf_example_5_OBJECTS) $(gf_example_5_DEPENDENCIES) $(EXTRA_gf_example_5_DEPENDENCIES)
- @rm -f gf_example_5$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_example_5_OBJECTS) $(gf_example_5_LDADD) $(LIBS)
-
-gf_example_6$(EXEEXT): $(gf_example_6_OBJECTS) $(gf_example_6_DEPENDENCIES) $(EXTRA_gf_example_6_DEPENDENCIES)
- @rm -f gf_example_6$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_example_6_OBJECTS) $(gf_example_6_LDADD) $(LIBS)
-
-gf_example_7$(EXEEXT): $(gf_example_7_OBJECTS) $(gf_example_7_DEPENDENCIES) $(EXTRA_gf_example_7_DEPENDENCIES)
- @rm -f gf_example_7$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_example_7_OBJECTS) $(gf_example_7_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-.c.o:
- $(AM_V_CC)$(COMPILE) -c -o $@ $<
-
-.c.obj:
- $(AM_V_CC)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
- $(AM_V_CC)$(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-am uninstall uninstall-am uninstall-binPROGRAMS
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/gf-complete/examples/gf_example_1.c b/src/c/gf-complete/examples/gf_example_1.c
deleted file mode 100644
index fc39c8d..0000000
--- a/src/c/gf-complete/examples/gf_example_1.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_example_1.c
- *
- * Demonstrates using the procedures for examples in GF(2^w) for w <= 32.
- */
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-
-#include "gf_complete.h"
-#include "gf_rand.h"
-
-void usage(char *s)
-{
- fprintf(stderr, "usage: gf_example_1 w - w must be between 1 and 32\n");
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- uint32_t a, b, c;
- int w;
- gf_t gf;
-
- if (argc != 2) usage(NULL);
- w = atoi(argv[1]);
- if (w <= 0 || w > 32) usage("Bad w");
-
- /* Get two random numbers in a and b */
-
- MOA_Seed(time(0));
- a = MOA_Random_W(w, 0);
- b = MOA_Random_W(w, 0);
-
- /* Create the proper instance of the gf_t object using defaults: */
-
- gf_init_easy(&gf, w);
-
- /* And multiply a and b using the galois field: */
-
- c = gf.multiply.w32(&gf, a, b);
- printf("%u * %u = %u\n", a, b, c);
-
- /* Divide the product by a and b */
-
- printf("%u / %u = %u\n", c, a, gf.divide.w32(&gf, c, a));
- printf("%u / %u = %u\n", c, b, gf.divide.w32(&gf, c, b));
-
- exit(0);
-}
diff --git a/src/c/gf-complete/examples/gf_example_2.c b/src/c/gf-complete/examples/gf_example_2.c
deleted file mode 100644
index 4be9f6f..0000000
--- a/src/c/gf-complete/examples/gf_example_2.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_example_2.c
- *
- * Demonstrates using the procedures for examples in GF(2^w) for w <= 32.
- */
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-
-#include "gf_complete.h"
-#include "gf_rand.h"
-
-void usage(char *s)
-{
- fprintf(stderr, "usage: gf_example_2 w - w must be between 1 and 32\n");
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- uint32_t a, b, c;
- uint8_t *r1, *r2;
- uint16_t *r16 = NULL;
- uint32_t *r32 = NULL;
- int w, i;
- gf_t gf;
-
- if (argc != 2) usage(NULL);
- w = atoi(argv[1]);
- if (w <= 0 || w > 32) usage("Bad w");
-
- /* Get two random numbers in a and b */
-
- MOA_Seed(time(0));
- a = MOA_Random_W(w, 0);
- b = MOA_Random_W(w, 0);
-
- /* Create the proper instance of the gf_t object using defaults: */
-
- gf_init_easy(&gf, w);
-
- /* And multiply a and b using the galois field: */
-
- c = gf.multiply.w32(&gf, a, b);
- printf("%u * %u = %u\n", a, b, c);
-
- /* Divide the product by a and b */
-
- printf("%u / %u = %u\n", c, a, gf.divide.w32(&gf, c, a));
- printf("%u / %u = %u\n", c, b, gf.divide.w32(&gf, c, b));
-
- /* If w is 4, 8, 16 or 32, do a very small region operation */
-
- if (w == 4 || w == 8 || w == 16 || w == 32) {
- r1 = (uint8_t *) malloc(16);
- r2 = (uint8_t *) malloc(16);
-
- if (w == 4 || w == 8) {
- r1[0] = b;
- for (i = 1; i < 16; i++) r1[i] = MOA_Random_W(8, 1);
- } else if (w == 16) {
- r16 = (uint16_t *) r1;
- r16[0] = b;
- for (i = 1; i < 8; i++) r16[i] = MOA_Random_W(16, 1);
- } else {
- r32 = (uint32_t *) r1;
- r32[0] = b;
- for (i = 1; i < 4; i++) r32[i] = MOA_Random_W(32, 1);
- }
-
- gf.multiply_region.w32(&gf, r1, r2, a, 16, 0);
-
- printf("\nmultiply_region by 0x%x (%u)\n\n", a, a);
- printf("R1 (the source): ");
- if (w == 4) {
- for (i = 0; i < 16; i++) printf(" %x %x", r1[i] >> 4, r1[i] & 0xf);
- } else if (w == 8) {
- for (i = 0; i < 16; i++) printf(" %02x", r1[i]);
- } else if (w == 16) {
- for (i = 0; i < 8; i++) printf(" %04x", r16[i]);
- } else if (w == 32) {
- for (i = 0; i < 4; i++) printf(" %08x", r32[i]);
- }
- printf("\nR2 (the product): ");
- if (w == 4) {
- for (i = 0; i < 16; i++) printf(" %x %x", r2[i] >> 4, r2[i] & 0xf);
- } else if (w == 8) {
- for (i = 0; i < 16; i++) printf(" %02x", r2[i]);
- } else if (w == 16) {
- r16 = (uint16_t *) r2;
- for (i = 0; i < 8; i++) printf(" %04x", r16[i]);
- } else if (w == 32) {
- r32 = (uint32_t *) r2;
- for (i = 0; i < 4; i++) printf(" %08x", r32[i]);
- }
- printf("\n");
- }
- exit(0);
-}
diff --git a/src/c/gf-complete/examples/gf_example_3.c b/src/c/gf-complete/examples/gf_example_3.c
deleted file mode 100644
index d6fef87..0000000
--- a/src/c/gf-complete/examples/gf_example_3.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_example_3.c
- *
- * Identical to example_2 except it works in GF(2^64)
- */
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-
-#include "gf_complete.h"
-#include "gf_rand.h"
-
-void usage(char *s)
-{
- fprintf(stderr, "usage: gf_example_3\n");
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- uint64_t a, b, c;
- uint64_t *r1, *r2;
- int i;
- gf_t gf;
-
- if (argc != 1) usage(NULL);
-
- /* Get two random numbers in a and b */
-
- MOA_Seed(time(0));
- a = MOA_Random_64();
- b = MOA_Random_64();
-
- /* Create the proper instance of the gf_t object using defaults: */
-
- gf_init_easy(&gf, 64);
-
- /* And multiply a and b using the galois field: */
-
- c = gf.multiply.w64(&gf, a, b);
- printf("%llx * %llx = %llx\n", (long long unsigned int) a, (long long unsigned int) b, (long long unsigned int) c);
-
- /* Divide the product by a and b */
-
- printf("%llx / %llx = %llx\n", (long long unsigned int) c, (long long unsigned int) a, (long long unsigned int) gf.divide.w64(&gf, c, a));
- printf("%llx / %llx = %llx\n", (long long unsigned int) c, (long long unsigned int) b, (long long unsigned int) gf.divide.w64(&gf, c, b));
-
- r1 = (uint64_t *) malloc(32);
- r2 = (uint64_t *) malloc(32);
-
- r1[0] = b;
-
- for (i = 1; i < 4; i++) r1[i] = MOA_Random_64();
-
- gf.multiply_region.w64(&gf, r1, r2, a, 32, 0);
-
- printf("\nmultiply_region by %llx\n\n", (long long unsigned int) a);
- printf("R1 (the source): ");
- for (i = 0; i < 4; i++) printf(" %016llx", (long long unsigned int) r1[i]);
-
- printf("\nR2 (the product): ");
- for (i = 0; i < 4; i++) printf(" %016llx", (long long unsigned int) r2[i]);
- printf("\n");
-
- exit(0);
-}
diff --git a/src/c/gf-complete/examples/gf_example_4.c b/src/c/gf-complete/examples/gf_example_4.c
deleted file mode 100644
index d5a1c58..0000000
--- a/src/c/gf-complete/examples/gf_example_4.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_example_4.c
- *
- * Identical to example_3 except it works in GF(2^128)
- */
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-
-#include "gf_complete.h"
-#include "gf_rand.h"
-
-#define LLUI (long long unsigned int)
-
-void usage(char *s)
-{
- fprintf(stderr, "usage: gf_example_3\n");
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- uint64_t a[2], b[2], c[2];
- uint64_t *r1, *r2;
- int i;
- gf_t gf;
-
- if (argc != 1) usage(NULL);
-
- /* Get two random numbers in a and b */
-
- MOA_Seed(time(0));
- MOA_Random_128(a);
- MOA_Random_128(b);
-
- /* Create the proper instance of the gf_t object using defaults: */
-
- gf_init_easy(&gf, 128);
-
- /* And multiply a and b using the galois field: */
-
- gf.multiply.w128(&gf, a, b, c);
- printf("%016llx%016llx * %016llx%016llx =\n%016llx%016llx\n",
- LLUI a[0], LLUI a[1], LLUI b[0], LLUI b[1], LLUI c[0], LLUI c[1]);
-
- r1 = (uint64_t *) malloc(32);
- r2 = (uint64_t *) malloc(32);
-
- for (i = 0; i < 4; i++) r1[i] = MOA_Random_64();
-
- gf.multiply_region.w128(&gf, r1, r2, a, 32, 0);
-
- printf("\nmultiply_region by %016llx%016llx\n\n", LLUI a[0], LLUI a[1]);
- printf("R1 (the source): ");
- for (i = 0; i < 4; i += 2) printf(" %016llx%016llx", LLUI r1[i], LLUI r1[i+1]);
-
- printf("\nR2 (the product): ");
- for (i = 0; i < 4; i += 2) printf(" %016llx%016llx", LLUI r2[i], LLUI r2[i+1]);
- printf("\n");
- exit(0);
-}
diff --git a/src/c/gf-complete/examples/gf_example_5.c b/src/c/gf-complete/examples/gf_example_5.c
deleted file mode 100644
index 4a753b2..0000000
--- a/src/c/gf-complete/examples/gf_example_5.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_example_5.c
- *
- * Demonstrating altmap and extract_word
- */
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-
-#include "gf_complete.h"
-#include "gf_rand.h"
-
-void usage(char *s)
-{
- fprintf(stderr, "usage: gf_example_5\n");
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- uint16_t *a, *b;
- int i, j;
- gf_t gf;
-
- if (gf_init_hard(&gf, 16, GF_MULT_SPLIT_TABLE, GF_REGION_ALTMAP, GF_DIVIDE_DEFAULT,
- 0, 16, 4, NULL, NULL) == 0) {
- fprintf(stderr, "gf_init_hard failed\n");
- exit(1);
- }
-
- a = (uint16_t *) malloc(200);
- b = (uint16_t *) malloc(200);
-
- a += 6;
- b += 6;
-
- MOA_Seed(0);
-
- for (i = 0; i < 30; i++) a[i] = MOA_Random_W(16, 1);
-
- gf.multiply_region.w32(&gf, a, b, 0x1234, 30*2, 0);
-
- printf("a: 0x%lx b: 0x%lx\n", (unsigned long) a, (unsigned long) b);
-
- for (i = 0; i < 30; i += 10) {
- printf("\n");
- printf(" ");
- for (j = 0; j < 10; j++) printf(" %4d", i+j);
- printf("\n");
-
- printf("a:");
- for (j = 0; j < 10; j++) printf(" %04x", a[i+j]);
- printf("\n");
-
- printf("b:");
- for (j = 0; j < 10; j++) printf(" %04x", b[i+j]);
- printf("\n");
- printf("\n");
- }
-
- for (i = 0; i < 15; i ++) {
- printf("Word %2d: 0x%04x * 0x1234 = 0x%04x ", i,
- gf.extract_word.w32(&gf, a, 30*2, i),
- gf.extract_word.w32(&gf, b, 30*2, i));
- printf("Word %2d: 0x%04x * 0x1234 = 0x%04x\n", i+15,
- gf.extract_word.w32(&gf, a, 30*2, i+15),
- gf.extract_word.w32(&gf, b, 30*2, i+15));
- }
- return 0;
-}
diff --git a/src/c/gf-complete/examples/gf_example_6.c b/src/c/gf-complete/examples/gf_example_6.c
deleted file mode 100644
index fc5094c..0000000
--- a/src/c/gf-complete/examples/gf_example_6.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_example_6.c
- *
- * Demonstrating altmap and extract_word
- */
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-
-#include "gf_complete.h"
-#include "gf_rand.h"
-
-void usage(char *s)
-{
- fprintf(stderr, "usage: gf_example_6\n");
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- uint32_t *a, *b;
- int i, j;
- gf_t gf, gf_16;
-
- if (gf_init_hard(&gf_16, 16, GF_MULT_LOG_TABLE, GF_REGION_DEFAULT, GF_DIVIDE_DEFAULT,
- 0, 0, 0, NULL, NULL) == 0) {
- fprintf(stderr, "gf_init_hard (6) failed\n");
- exit(1);
- }
-
- if (gf_init_hard(&gf, 32, GF_MULT_COMPOSITE, GF_REGION_ALTMAP, GF_DIVIDE_DEFAULT,
- 0, 2, 0, &gf_16, NULL) == 0) {
- fprintf(stderr, "gf_init_hard (32) failed\n");
- exit(1);
- }
-
- a = (uint32_t *) malloc(200);
- b = (uint32_t *) malloc(200);
-
- a += 3;
- b += 3;
-
- MOA_Seed(0);
-
- for (i = 0; i < 30; i++) a[i] = MOA_Random_W(32, 1);
-
- gf.multiply_region.w32(&gf, a, b, 0x12345678, 30*4, 0);
-
- printf("a: 0x%lx b: 0x%lx\n", (unsigned long) a, (unsigned long) b);
-
- for (i = 0; i < 30; i += 10) {
- printf("\n");
- printf(" ");
- for (j = 0; j < 10; j++) printf(" %8d", i+j);
- printf("\n");
-
- printf("a:");
- for (j = 0; j < 10; j++) printf(" %08x", a[i+j]);
- printf("\n");
-
- printf("b:");
- for (j = 0; j < 10; j++) printf(" %08x", b[i+j]);
- printf("\n");
- printf("\n");
- }
-
- for (i = 0; i < 15; i ++) {
- printf("Word %2d: 0x%08x * 0x12345678 = 0x%08x ", i,
- gf.extract_word.w32(&gf, a, 30*4, i),
- gf.extract_word.w32(&gf, b, 30*4, i));
- printf("Word %2d: 0x%08x * 0x12345678 = 0x%08x\n", i+15,
- gf.extract_word.w32(&gf, a, 30*4, i+15),
- gf.extract_word.w32(&gf, b, 30*4, i+15));
- }
- return 0;
-}
diff --git a/src/c/gf-complete/examples/gf_example_7.c b/src/c/gf-complete/examples/gf_example_7.c
deleted file mode 100644
index ee07d53..0000000
--- a/src/c/gf-complete/examples/gf_example_7.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_example_7.c
- *
- * Demonstrating extract_word and Cauchy
- */
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-
-#include "gf_complete.h"
-#include "gf_rand.h"
-
-void usage(char *s)
-{
- fprintf(stderr, "usage: gf_example_7\n");
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- uint8_t *a, *b;
- int i, j;
- gf_t gf;
-
- if (gf_init_hard(&gf, 3, GF_MULT_TABLE, GF_REGION_CAUCHY, GF_DIVIDE_DEFAULT, 0, 0, 0, NULL, NULL) == 0) {
- fprintf(stderr, "gf_init_hard failed\n");
- exit(1);
- }
-
- a = (uint8_t *) malloc(3);
- b = (uint8_t *) malloc(3);
-
- MOA_Seed(0);
-
- for (i = 0; i < 3; i++) a[i] = MOA_Random_W(8, 1);
-
- gf.multiply_region.w32(&gf, a, b, 5, 3, 0);
-
- printf("a: 0x%lx b: 0x%lx\n", (unsigned long) a, (unsigned long) b);
-
- printf("\n");
- printf("a: 0x%02x 0x%02x 0x%02x\n", a[0], a[1], a[2]);
- printf("b: 0x%02x 0x%02x 0x%02x\n", b[0], b[1], b[2]);
- printf("\n");
-
- printf("a bits:");
- for (i = 0; i < 3; i++) {
- printf(" ");
- for (j = 7; j >= 0; j--) printf("%c", (a[i] & (1 << j)) ? '1' : '0');
- }
- printf("\n");
-
- printf("b bits:");
- for (i = 0; i < 3; i++) {
- printf(" ");
- for (j = 7; j >= 0; j--) printf("%c", (b[i] & (1 << j)) ? '1' : '0');
- }
- printf("\n");
-
- printf("\n");
- for (i = 0; i < 8; i++) {
- printf("Word %2d: %d * 5 = %d\n", i,
- gf.extract_word.w32(&gf, a, 3, i),
- gf.extract_word.w32(&gf, b, 3, i));
- }
- return 0;
-}
diff --git a/src/c/gf-complete/include/config.h.in b/src/c/gf-complete/include/config.h.in
deleted file mode 100644
index bec31ee..0000000
--- a/src/c/gf-complete/include/config.h.in
+++ /dev/null
@@ -1,104 +0,0 @@
-/* include/config.h.in. Generated from configure.ac by autoheader. */
-
-/* Support Altivec instructions */
-#undef HAVE_ALTIVEC
-
-/* targeting AArch64 */
-#undef HAVE_ARCH_AARCH64
-
-/* Support ARM cryptographic extension */
-#undef HAVE_ARM_CRYPT_EXT
-
-/* Support AVX (Advanced Vector Extensions) instructions */
-#undef HAVE_AVX
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Support mmx instructions */
-#undef HAVE_MMX
-
-/* Support NEON instructions */
-#undef HAVE_NEON
-
-/* Support (PCLMULDQ) Carry-Free Muliplication */
-#undef HAVE_PCLMULDQ
-
-/* Define to 1 if you have the `posix_memalign' function. */
-#undef HAVE_POSIX_MEMALIGN
-
-/* Support SSE (Streaming SIMD Extensions) instructions */
-#undef HAVE_SSE
-
-/* Support SSE2 (Streaming SIMD Extensions 2) instructions */
-#undef HAVE_SSE2
-
-/* Support SSE3 (Streaming SIMD Extensions 3) instructions */
-#undef HAVE_SSE3
-
-/* Support SSSE4.1 (Streaming SIMD Extensions 4.1) instructions */
-#undef HAVE_SSE4_1
-
-/* Support SSSE4.2 (Streaming SIMD Extensions 4.2) instructions */
-#undef HAVE_SSE4_2
-
-/* Support SSSE3 (Supplemental Streaming SIMD Extensions 3) instructions */
-#undef HAVE_SSSE3
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#undef LT_OBJDIR
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
diff --git a/src/c/gf-complete/include/gf_complete.h b/src/c/gf-complete/include/gf_complete.h
deleted file mode 100644
index 0d1564b..0000000
--- a/src/c/gf-complete/include/gf_complete.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_complete.h
- *
- * The main include file for gf_complete.
- */
-
-#ifndef _GF_COMPLETE_H_
-#define _GF_COMPLETE_H_
-#include <stdint.h>
-
-#ifdef INTEL_SSE4
- #ifdef __SSE4_2__
- #include <nmmintrin.h>
- #endif
- #ifdef __SSE4_1__
- #include <smmintrin.h>
- #endif
-#endif
-
-#ifdef INTEL_SSSE3
- #include <tmmintrin.h>
-#endif
-
-#ifdef INTEL_SSE2
- #include <emmintrin.h>
-#endif
-
-#ifdef INTEL_SSE4_PCLMUL
- #include <wmmintrin.h>
-#endif
-
-#if defined(ARM_NEON)
- #include <arm_neon.h>
-#endif
-
-
-/* These are the different ways to perform multiplication.
- Not all are implemented for all values of w.
- See the paper for an explanation of how they work. */
-
-typedef enum {GF_MULT_DEFAULT,
- GF_MULT_SHIFT,
- GF_MULT_CARRY_FREE,
- GF_MULT_CARRY_FREE_GK,
- GF_MULT_GROUP,
- GF_MULT_BYTWO_p,
- GF_MULT_BYTWO_b,
- GF_MULT_TABLE,
- GF_MULT_LOG_TABLE,
- GF_MULT_LOG_ZERO,
- GF_MULT_LOG_ZERO_EXT,
- GF_MULT_SPLIT_TABLE,
- GF_MULT_COMPOSITE } gf_mult_type_t;
-
-/* These are the different ways to optimize region
- operations. They are bits because you can compose them.
- Certain optimizations only apply to certain gf_mult_type_t's.
- Again, please see documentation for how to use these */
-
-#define GF_REGION_DEFAULT (0x0)
-#define GF_REGION_DOUBLE_TABLE (0x1)
-#define GF_REGION_QUAD_TABLE (0x2)
-#define GF_REGION_LAZY (0x4)
-#define GF_REGION_SIMD (0x8)
-#define GF_REGION_SSE (0x8)
-#define GF_REGION_NOSIMD (0x10)
-#define GF_REGION_NOSSE (0x10)
-#define GF_REGION_ALTMAP (0x20)
-#define GF_REGION_CAUCHY (0x40)
-
-typedef uint32_t gf_region_type_t;
-
-/* These are different ways to implement division.
- Once again, it's best to use "DEFAULT". However,
- there are times when you may want to experiment
- with the others. */
-
-typedef enum { GF_DIVIDE_DEFAULT,
- GF_DIVIDE_MATRIX,
- GF_DIVIDE_EUCLID } gf_division_type_t;
-
-/* We support w=4,8,16,32,64 and 128 with their own data types and
- operations for multiplication, division, etc. We also support
- a "gen" type so that you can do general gf arithmetic for any
- value of w from 1 to 32. You can perform a "region" operation
- on these if you use "CAUCHY" as the mapping.
- */
-
-typedef uint32_t gf_val_32_t;
-typedef uint64_t gf_val_64_t;
-typedef uint64_t *gf_val_128_t;
-
-extern int _gf_errno;
-extern void gf_error();
-
-typedef struct gf *GFP;
-
-typedef union gf_func_a_b {
- gf_val_32_t (*w32) (GFP gf, gf_val_32_t a, gf_val_32_t b);
- gf_val_64_t (*w64) (GFP gf, gf_val_64_t a, gf_val_64_t b);
- void (*w128)(GFP gf, gf_val_128_t a, gf_val_128_t b, gf_val_128_t c);
-} gf_func_a_b;
-
-typedef union {
- gf_val_32_t (*w32) (GFP gf, gf_val_32_t a);
- gf_val_64_t (*w64) (GFP gf, gf_val_64_t a);
- void (*w128)(GFP gf, gf_val_128_t a, gf_val_128_t b);
-} gf_func_a;
-
-typedef union {
- void (*w32) (GFP gf, void *src, void *dest, gf_val_32_t val, int bytes, int add);
- void (*w64) (GFP gf, void *src, void *dest, gf_val_64_t val, int bytes, int add);
- void (*w128)(GFP gf, void *src, void *dest, gf_val_128_t val, int bytes, int add);
-} gf_region;
-
-typedef union {
- gf_val_32_t (*w32) (GFP gf, void *start, int bytes, int index);
- gf_val_64_t (*w64) (GFP gf, void *start, int bytes, int index);
- void (*w128)(GFP gf, void *start, int bytes, int index, gf_val_128_t rv);
-} gf_extract;
-
-typedef struct gf {
- gf_func_a_b multiply;
- gf_func_a_b divide;
- gf_func_a inverse;
- gf_region multiply_region;
- gf_extract extract_word;
- void *scratch;
-} gf_t;
-
-/* Initializes the GF to defaults. Pass it a pointer to a gf_t.
- Returns 0 on failure, 1 on success. */
-
-extern int gf_init_easy(GFP gf, int w);
-
-/* Initializes the GF changing the defaults.
- Returns 0 on failure, 1 on success.
- Pass it a pointer to a gf_t.
- For mult_type and divide_type, use one of gf_mult_type_t gf_divide_type_t .
- For region_type, OR together the GF_REGION_xxx's defined above.
- Use 0 as prim_poly for defaults. Otherwise, the leading 1 is optional.
- Use NULL for scratch_memory to have init_hard allocate memory. Otherwise,
- use gf_scratch_size() to determine how big scratch_memory has to be.
- */
-
-extern int gf_init_hard(GFP gf,
- int w,
- int mult_type,
- int region_type,
- int divide_type,
- uint64_t prim_poly,
- int arg1,
- int arg2,
- GFP base_gf,
- void *scratch_memory);
-
-/* Determines the size for scratch_memory.
- Returns 0 on failure and non-zero on success. */
-
-extern int gf_scratch_size(int w,
- int mult_type,
- int region_type,
- int divide_type,
- int arg1,
- int arg2);
-
-/* This reports the gf_scratch_size of a gf_t that has already been created */
-
-extern int gf_size(GFP gf);
-
-/* Frees scratch memory if gf_init_easy/gf_init_hard called malloc.
- If recursive = 1, then it calls itself recursively on base_gf. */
-
-extern int gf_free(GFP gf, int recursive);
-
-/* This is support for inline single multiplications and divisions.
- I know it's yucky, but if you've got to be fast, you've got to be fast.
- We support inlining for w=4, w=8 and w=16.
-
- To use inline multiplication and division with w=4 or 8, you should use the
- default gf_t, or one with a single table. Otherwise, gf_w4/8_get_mult_table()
- will return NULL. Similarly, with w=16, the gf_t must be LOG */
-
-uint8_t *gf_w4_get_mult_table(GFP gf);
-uint8_t *gf_w4_get_div_table(GFP gf);
-
-#define GF_W4_INLINE_MULTDIV(table, a, b) (table[((a)<<4)|(b)])
-
-uint8_t *gf_w8_get_mult_table(GFP gf);
-uint8_t *gf_w8_get_div_table(GFP gf);
-
-#define GF_W8_INLINE_MULTDIV(table, a, b) (table[(((uint32_t) (a))<<8)|(b)])
-
-uint16_t *gf_w16_get_log_table(GFP gf);
-uint16_t *gf_w16_get_mult_alog_table(GFP gf);
-uint16_t *gf_w16_get_div_alog_table(GFP gf);
-
-#define GF_W16_INLINE_MULT(log, alog, a, b) ((a) == 0 || (b) == 0) ? 0 : (alog[(uint32_t)log[a]+(uint32_t)log[b]])
-#define GF_W16_INLINE_DIV(log, alog, a, b) ((a) == 0 || (b) == 0) ? 0 : (alog[(int)log[a]-(int)log[b]])
-#endif
diff --git a/src/c/gf-complete/include/gf_general.h b/src/c/gf-complete/include/gf_general.h
deleted file mode 100644
index a2cff37..0000000
--- a/src/c/gf-complete/include/gf_general.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_general.h
- *
- * This file has helper routines for doing basic GF operations with any
- * legal value of w. The problem is that w <= 32, w=64 and w=128 all have
- * different data types, which is a pain. The procedures in this file try
- * to alleviate that pain. They are used in gf_unit and gf_time.
- */
-
-#pragma once
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-
-#include "gf_complete.h"
-
-typedef union {
- uint32_t w32;
- uint64_t w64;
- uint64_t w128[2];
-} gf_general_t;
-
-void gf_general_set_zero(gf_general_t *v, int w);
-void gf_general_set_one(gf_general_t *v, int w);
-void gf_general_set_two(gf_general_t *v, int w);
-
-int gf_general_is_zero(gf_general_t *v, int w);
-int gf_general_is_one(gf_general_t *v, int w);
-int gf_general_are_equal(gf_general_t *v1, gf_general_t *v2, int w);
-
-void gf_general_val_to_s(gf_general_t *v, int w, char *s, int hex);
-int gf_general_s_to_val(gf_general_t *v, int w, char *s, int hex);
-
-void gf_general_set_random(gf_general_t *v, int w, int zero_ok);
-
-void gf_general_add(gf_t *gf, gf_general_t *a, gf_general_t *b, gf_general_t *c);
-void gf_general_multiply(gf_t *gf, gf_general_t *a, gf_general_t *b, gf_general_t *c);
-void gf_general_divide(gf_t *gf, gf_general_t *a, gf_general_t *b, gf_general_t *c);
-void gf_general_inverse(gf_t *gf, gf_general_t *a, gf_general_t *b);
-
-void gf_general_do_region_multiply(gf_t *gf, gf_general_t *a,
- void *ra, void *rb,
- int bytes, int xor);
-
-void gf_general_do_region_check(gf_t *gf, gf_general_t *a,
- void *orig_a, void *orig_target, void *final_target,
- int bytes, int xor);
-
-
-/* Which is M, D or I for multiply, divide or inverse. */
-
-void gf_general_set_up_single_timing_test(int w, void *ra, void *rb, int size);
-int gf_general_do_single_timing_test(gf_t *gf, void *ra, void *rb, int size, char which);
diff --git a/src/c/gf-complete/include/gf_int.h b/src/c/gf-complete/include/gf_int.h
deleted file mode 100644
index c841198..0000000
--- a/src/c/gf-complete/include/gf_int.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_int.h
- *
- * Internal code for Galois field routines. This is not meant for
- * users to include, but for the internal GF files to use.
- */
-
-#pragma once
-
-#include "gf_complete.h"
-
-#include <string.h>
-
-extern void timer_start (double *t);
-extern double timer_split (const double *t);
-extern void galois_fill_random (void *buf, int len, unsigned int seed);
-
-typedef struct {
- int mult_type;
- int region_type;
- int divide_type;
- int w;
- uint64_t prim_poly;
- int free_me;
- int arg1;
- int arg2;
- gf_t *base_gf;
- void *private;
-} gf_internal_t;
-
-extern int gf_w4_init (gf_t *gf);
-extern int gf_w4_scratch_size(int mult_type, int region_type, int divide_type, int arg1, int arg2);
-
-extern int gf_w8_init (gf_t *gf);
-extern int gf_w8_scratch_size(int mult_type, int region_type, int divide_type, int arg1, int arg2);
-
-extern int gf_w16_init (gf_t *gf);
-extern int gf_w16_scratch_size(int mult_type, int region_type, int divide_type, int arg1, int arg2);
-
-extern int gf_w32_init (gf_t *gf);
-extern int gf_w32_scratch_size(int mult_type, int region_type, int divide_type, int arg1, int arg2);
-
-extern int gf_w64_init (gf_t *gf);
-extern int gf_w64_scratch_size(int mult_type, int region_type, int divide_type, int arg1, int arg2);
-
-extern int gf_w128_init (gf_t *gf);
-extern int gf_w128_scratch_size(int mult_type, int region_type, int divide_type, int arg1, int arg2);
-
-extern int gf_wgen_init (gf_t *gf);
-extern int gf_wgen_scratch_size(int w, int mult_type, int region_type, int divide_type, int arg1, int arg2);
-
-void gf_wgen_cauchy_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor);
-gf_val_32_t gf_wgen_extract_word(gf_t *gf, void *start, int bytes, int index);
-
-extern void gf_alignment_error(char *s, int a);
-
-extern uint32_t gf_bitmatrix_inverse(uint32_t y, int w, uint32_t pp);
-
-/* This returns the correct default for prim_poly when base is used as the base
- field for COMPOSITE. It returns 0 if we don't have a default prim_poly. */
-
-extern uint64_t gf_composite_get_default_poly(gf_t *base);
-
-/* This structure lets you define a region multiply. It helps because you can handle
- unaligned portions of the data with the procedures below, which really cleans
- up the code. */
-
-typedef struct {
- gf_t *gf;
- void *src;
- void *dest;
- int bytes;
- uint64_t val;
- int xor;
- int align; /* The number of bytes to which to align. */
- void *s_start; /* The start and the top of the aligned region. */
- void *d_start;
- void *s_top;
- void *d_top;
-} gf_region_data;
-
-/* This lets you set up one of these in one call. It also sets the start/top pointers. */
-
-void gf_set_region_data(gf_region_data *rd,
- gf_t *gf,
- void *src,
- void *dest,
- int bytes,
- uint64_t val,
- int xor,
- int align);
-
-/* This performs gf->multiply.32() on all of the unaligned bytes in the beginning of the region */
-
-extern void gf_do_initial_region_alignment(gf_region_data *rd);
-
-/* This performs gf->multiply.32() on all of the unaligned bytes in the end of the region */
-
-extern void gf_do_final_region_alignment(gf_region_data *rd);
-
-extern void gf_two_byte_region_table_multiply(gf_region_data *rd, uint16_t *base);
-
-extern void gf_multby_zero(void *dest, int bytes, int xor);
-extern void gf_multby_one(void *src, void *dest, int bytes, int xor);
-
-typedef enum {GF_E_MDEFDIV, /* Dev != Default && Mult == Default */
- GF_E_MDEFREG, /* Reg != Default && Mult == Default */
- GF_E_MDEFARG, /* Args != Default && Mult == Default */
- GF_E_DIVCOMP, /* Mult == Composite && Div != Default */
- GF_E_CAUCOMP, /* Mult == Composite && Reg == CAUCHY */
- GF_E_DOUQUAD, /* Reg == DOUBLE && Reg == QUAD */
- GF_E_SIMD_NO, /* Reg == SIMD && Reg == NOSIMD */
- GF_E_CAUCHYB, /* Reg == CAUCHY && Other Reg */
- GF_E_CAUGT32, /* Reg == CAUCHY && w > 32*/
- GF_E_ARG1SET, /* Arg1 != 0 && Mult \notin COMPOSITE/SPLIT/GROUP */
- GF_E_ARG2SET, /* Arg2 != 0 && Mult \notin SPLIT/GROUP */
- GF_E_MATRIXW, /* Div == MATRIX && w > 32 */
- GF_E_BAD___W, /* Illegal w */
- GF_E_DOUBLET, /* Reg == DOUBLE && Mult != TABLE */
- GF_E_DOUBLEW, /* Reg == DOUBLE && w \notin {4,8} */
- GF_E_DOUBLEJ, /* Reg == DOUBLE && other Reg */
- GF_E_DOUBLEL, /* Reg == DOUBLE & LAZY but w = 4 */
- GF_E_QUAD__T, /* Reg == QUAD && Mult != TABLE */
- GF_E_QUAD__W, /* Reg == QUAD && w != 4 */
- GF_E_QUAD__J, /* Reg == QUAD && other Reg */
- GF_E_LAZY__X, /* Reg == LAZY && not DOUBLE or QUAD*/
- GF_E_ALTSHIF, /* Mult == Shift && Reg == ALTMAP */
- GF_E_SSESHIF, /* Mult == Shift && Reg == SIMD|NOSIMD */
- GF_E_ALT_CFM, /* Mult == CARRY_FREE && Reg == ALTMAP */
- GF_E_SSE_CFM, /* Mult == CARRY_FREE && Reg == SIMD|NOSIMD */
- GF_E_PCLMULX, /* Mult == Carry_Free && No PCLMUL */
- GF_E_ALT_BY2, /* Mult == Bytwo_x && Reg == ALTMAP */
- GF_E_BY2_SSE, /* Mult == Bytwo_x && Reg == SSE && No SSE2 */
- GF_E_LOGBADW, /* Mult == LOGx, w too big*/
- GF_E_LOG___J, /* Mult == LOGx, && Reg == SSE|ALTMAP|NOSSE */
- GF_E_ZERBADW, /* Mult == LOG_ZERO, w \notin {8,16} */
- GF_E_ZEXBADW, /* Mult == LOG_ZERO_EXT, w != 8 */
- GF_E_LOGPOLY, /* Mult == LOG & poly not primitive */
- GF_E_GR_ARGX, /* Mult == GROUP, Bad arg1/2 */
- GF_E_GR_W_48, /* Mult == GROUP, w \in { 4, 8 } */
- GF_E_GR_W_16, /* Mult == GROUP, w == 16, arg1 != 4 || arg2 != 4 */
- GF_E_GR_128A, /* Mult == GROUP, w == 128, bad args */
- GF_E_GR_A_27, /* Mult == GROUP, either arg > 27 */
- GF_E_GR_AR_W, /* Mult == GROUP, either arg > w */
- GF_E_GR____J, /* Mult == GROUP, Reg == SSE|ALTMAP|NOSSE */
- GF_E_TABLE_W, /* Mult == TABLE, w too big */
- GF_E_TAB_SSE, /* Mult == TABLE, SIMD|NOSIMD only apply to w == 4 */
- GF_E_TABSSE3, /* Mult == TABLE, Need SSSE3 for SSE */
- GF_E_TAB_ALT, /* Mult == TABLE, Reg == ALTMAP */
- GF_E_SP128AR, /* Mult == SPLIT, w=128, Bad arg1/arg2 */
- GF_E_SP128AL, /* Mult == SPLIT, w=128, SSE requires ALTMAP */
- GF_E_SP128AS, /* Mult == SPLIT, w=128, ALTMAP requires SSE */
- GF_E_SP128_A, /* Mult == SPLIT, w=128, ALTMAP only with 4/128 */
- GF_E_SP128_S, /* Mult == SPLIT, w=128, SSE only with 4/128 */
- GF_E_SPLIT_W, /* Mult == SPLIT, Bad w (8, 16, 32, 64, 128) */
- GF_E_SP_16AR, /* Mult == SPLIT, w=16, Bad arg1/arg2 */
- GF_E_SP_16_A, /* Mult == SPLIT, w=16, ALTMAP only with 4/16 */
- GF_E_SP_16_S, /* Mult == SPLIT, w=16, SSE only with 4/16 */
- GF_E_SP_32AR, /* Mult == SPLIT, w=32, Bad arg1/arg2 */
- GF_E_SP_32AS, /* Mult == SPLIT, w=32, ALTMAP requires SSE */
- GF_E_SP_32_A, /* Mult == SPLIT, w=32, ALTMAP only with 4/32 */
- GF_E_SP_32_S, /* Mult == SPLIT, w=32, SSE only with 4/32 */
- GF_E_SP_64AR, /* Mult == SPLIT, w=64, Bad arg1/arg2 */
- GF_E_SP_64AS, /* Mult == SPLIT, w=64, ALTMAP requires SSE */
- GF_E_SP_64_A, /* Mult == SPLIT, w=64, ALTMAP only with 4/64 */
- GF_E_SP_64_S, /* Mult == SPLIT, w=64, SSE only with 4/64 */
- GF_E_SP_8_AR, /* Mult == SPLIT, w=8, Bad arg1/arg2 */
- GF_E_SP_8__A, /* Mult == SPLIT, w=8, no ALTMAP */
- GF_E_SP_SSE3, /* Mult == SPLIT, Need SSSE3 for SSE */
- GF_E_COMP_A2, /* Mult == COMP, arg1 must be = 2 */
- GF_E_COMP_SS, /* Mult == COMP, SIMD|NOSIMD */
- GF_E_COMP__W, /* Mult == COMP, Bad w. */
- GF_E_UNKFLAG, /* Unknown flag in create_from.... */
- GF_E_UNKNOWN, /* Unknown mult_type. */
- GF_E_UNK_REG, /* Unknown region_type. */
- GF_E_UNK_DIV, /* Unknown divide_type. */
- GF_E_CFM___W, /* Mult == CFM, Bad w. */
- GF_E_CFM4POL, /* Mult == CFM & Prim Poly has high bits set. */
- GF_E_CFM8POL, /* Mult == CFM & Prim Poly has high bits set. */
- GF_E_CF16POL, /* Mult == CFM & Prim Poly has high bits set. */
- GF_E_CF32POL, /* Mult == CFM & Prim Poly has high bits set. */
- GF_E_CF64POL, /* Mult == CFM & Prim Poly has high bits set. */
- GF_E_FEWARGS, /* Too few args in argc/argv. */
- GF_E_BADPOLY, /* Bad primitive polynomial -- too many bits set. */
- GF_E_COMP_PP, /* Bad primitive polynomial -- bigger than sub-field. */
- GF_E_COMPXPP, /* Can't derive a default pp for composite field. */
- GF_E_BASE__W, /* Composite -- Base field is the wrong size. */
- GF_E_TWOMULT, /* In create_from... two -m's. */
- GF_E_TWO_DIV, /* In create_from... two -d's. */
- GF_E_POLYSPC, /* Bad numbera after -p. */
- GF_E_SPLITAR, /* Ran out of arguments in SPLIT */
- GF_E_SPLITNU, /* Arguments not integers in SPLIT. */
- GF_E_GROUPAR, /* Ran out of arguments in GROUP */
- GF_E_GROUPNU, /* Arguments not integers in GROUP. */
- GF_E_DEFAULT } gf_error_type_t;
diff --git a/src/c/gf-complete/include/gf_method.h b/src/c/gf-complete/include/gf_method.h
deleted file mode 100644
index 47a38fc..0000000
--- a/src/c/gf-complete/include/gf_method.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_method.h
- *
- * Parses argv to figure out the flags and arguments. Creates the gf.
- */
-
-#pragma once
-
-#include "gf_complete.h"
-
-/* Parses argv starting at "starting".
-
- Returns 0 on failure.
- On success, it returns one past the last argument it read in argv. */
-
-extern int create_gf_from_argv(gf_t *gf, int w, int argc, char **argv, int starting);
diff --git a/src/c/gf-complete/include/gf_rand.h b/src/c/gf-complete/include/gf_rand.h
deleted file mode 100644
index 047fd58..0000000
--- a/src/c/gf-complete/include/gf_rand.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_rand.h
- *
- * Random number generation, using the "Mother of All" random number generator. */
-
-#pragma once
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-/* These are all pretty self-explanatory */
-uint32_t MOA_Random_32();
-uint64_t MOA_Random_64();
-void MOA_Random_128(uint64_t *x);
-uint32_t MOA_Random_W(int w, int zero_ok);
-void MOA_Fill_Random_Region (void *reg, int size); /* reg should be aligned to 4 bytes, but
- size can be anything. */
-void MOA_Seed(uint32_t seed);
diff --git a/src/c/gf-complete/include/gf_w16.h b/src/c/gf-complete/include/gf_w16.h
deleted file mode 100644
index fb4c0e9..0000000
--- a/src/c/gf-complete/include/gf_w16.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_w16.h
- *
- * Defines and data structures for 16-bit Galois fields
- */
-
-#ifndef GF_COMPLETE_GF_W16_H
-#define GF_COMPLETE_GF_W16_H
-
-#include <stdint.h>
-
-#define GF_FIELD_WIDTH (16)
-#define GF_FIELD_SIZE (1 << GF_FIELD_WIDTH)
-#define GF_MULT_GROUP_SIZE GF_FIELD_SIZE-1
-
-#define GF_BASE_FIELD_WIDTH (8)
-#define GF_BASE_FIELD_SIZE (1 << GF_BASE_FIELD_WIDTH)
-
-struct gf_w16_logtable_data {
- uint16_t log_tbl[GF_FIELD_SIZE];
- uint16_t antilog_tbl[GF_FIELD_SIZE * 2];
- uint16_t inv_tbl[GF_FIELD_SIZE];
- uint16_t *d_antilog;
-};
-
-struct gf_w16_zero_logtable_data {
- int log_tbl[GF_FIELD_SIZE];
- uint16_t _antilog_tbl[GF_FIELD_SIZE * 4];
- uint16_t *antilog_tbl;
- uint16_t inv_tbl[GF_FIELD_SIZE];
-};
-
-struct gf_w16_lazytable_data {
- uint16_t log_tbl[GF_FIELD_SIZE];
- uint16_t antilog_tbl[GF_FIELD_SIZE * 2];
- uint16_t inv_tbl[GF_FIELD_SIZE];
- uint16_t *d_antilog;
- uint16_t lazytable[GF_FIELD_SIZE];
-};
-
-struct gf_w16_bytwo_data {
- uint64_t prim_poly;
- uint64_t mask1;
- uint64_t mask2;
-};
-
-struct gf_w16_split_8_8_data {
- uint16_t tables[3][256][256];
-};
-
-struct gf_w16_group_4_4_data {
- uint16_t reduce[16];
- uint16_t shift[16];
-};
-
-struct gf_w16_composite_data {
- uint8_t *mult_table;
-};
-
-void gf_w16_neon_split_init(gf_t *gf);
-
-#endif /* GF_COMPLETE_GF_W16_H */
diff --git a/src/c/gf-complete/include/gf_w32.h b/src/c/gf-complete/include/gf_w32.h
deleted file mode 100644
index 3396402..0000000
--- a/src/c/gf-complete/include/gf_w32.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_w32.h
- *
- * Defines and data structures for 32-bit Galois fields
- */
-
-#ifndef GF_COMPLETE_GF_W32_H
-#define GF_COMPLETE_GF_W32_H
-
-#include <stdint.h>
-
-#define GF_FIELD_WIDTH (32)
-#define GF_FIRST_BIT (1 << 31)
-
-#define GF_BASE_FIELD_WIDTH (16)
-#define GF_BASE_FIELD_SIZE (1 << GF_BASE_FIELD_WIDTH)
-#define GF_BASE_FIELD_GROUP_SIZE GF_BASE_FIELD_SIZE-1
-#define GF_MULTBY_TWO(p) (((p) & GF_FIRST_BIT) ? (((p) << 1) ^ h->prim_poly) : (p) << 1)
-
-struct gf_split_2_32_lazy_data {
- uint32_t tables[16][4];
- uint32_t last_value;
-};
-
-struct gf_w32_split_8_8_data {
- uint32_t tables[7][256][256];
- uint32_t region_tables[4][256];
- uint32_t last_value;
-};
-
-struct gf_w32_group_data {
- uint32_t *reduce;
- uint32_t *shift;
- int tshift;
- uint64_t rmask;
- uint32_t *memory;
-};
-
-struct gf_split_16_32_lazy_data {
- uint32_t tables[2][(1<<16)];
- uint32_t last_value;
-};
-
-struct gf_split_8_32_lazy_data {
- uint32_t tables[4][256];
- uint32_t last_value;
-};
-
-struct gf_split_4_32_lazy_data {
- uint32_t tables[8][16];
- uint32_t last_value;
-};
-
-struct gf_w32_bytwo_data {
- uint64_t prim_poly;
- uint64_t mask1;
- uint64_t mask2;
-};
-
-struct gf_w32_composite_data {
- uint16_t *log;
- uint16_t *alog;
-};
-
-void gf_w32_neon_split_init(gf_t *gf);
-
-#endif /* GF_COMPLETE_GF_W32_H */
diff --git a/src/c/gf-complete/include/gf_w4.h b/src/c/gf-complete/include/gf_w4.h
deleted file mode 100644
index 8ee94a3..0000000
--- a/src/c/gf-complete/include/gf_w4.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_w4.h
- *
- * Defines and data structures for 4-bit Galois fields
- */
-
-#ifndef GF_COMPLETE_GF_W4_H
-#define GF_COMPLETE_GF_W4_H
-
-#include <stdint.h>
-
-#define GF_FIELD_WIDTH 4
-#define GF_DOUBLE_WIDTH (GF_FIELD_WIDTH*2)
-#define GF_FIELD_SIZE (1 << GF_FIELD_WIDTH)
-#define GF_MULT_GROUP_SIZE (GF_FIELD_SIZE-1)
-
-/* ------------------------------------------------------------
- JSP: Each implementation has its own data, which is allocated
- at one time as part of the handle. For that reason, it
- shouldn't be hierarchical -- i.e. one should be able to
- allocate it with one call to malloc. */
-
-struct gf_logtable_data {
- uint8_t log_tbl[GF_FIELD_SIZE];
- uint8_t antilog_tbl[GF_FIELD_SIZE * 2];
- uint8_t *antilog_tbl_div;
-};
-
-struct gf_single_table_data {
- uint8_t mult[GF_FIELD_SIZE][GF_FIELD_SIZE];
- uint8_t div[GF_FIELD_SIZE][GF_FIELD_SIZE];
-};
-
-struct gf_double_table_data {
- uint8_t div[GF_FIELD_SIZE][GF_FIELD_SIZE];
- uint8_t mult[GF_FIELD_SIZE][GF_FIELD_SIZE*GF_FIELD_SIZE];
-};
-struct gf_quad_table_data {
- uint8_t div[GF_FIELD_SIZE][GF_FIELD_SIZE];
- uint16_t mult[GF_FIELD_SIZE][(1<<16)];
-};
-
-struct gf_quad_table_lazy_data {
- uint8_t div[GF_FIELD_SIZE][GF_FIELD_SIZE];
- uint8_t smult[GF_FIELD_SIZE][GF_FIELD_SIZE];
- uint16_t mult[(1 << 16)];
-};
-
-struct gf_bytwo_data {
- uint64_t prim_poly;
- uint64_t mask1;
- uint64_t mask2;
-};
-
-// ARM NEON init functions
-int gf_w4_neon_cfm_init(gf_t *gf);
-void gf_w4_neon_single_table_init(gf_t *gf);
-
-#endif /* GF_COMPLETE_GF_W4_H */
diff --git a/src/c/gf-complete/include/gf_w64.h b/src/c/gf-complete/include/gf_w64.h
deleted file mode 100644
index 9a74a81..0000000
--- a/src/c/gf-complete/include/gf_w64.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_w64.h
- *
- * Defines and data structures for 64-bit Galois fields
- */
-
-#ifndef GF_COMPLETE_GF_W64_H
-#define GF_COMPLETE_GF_W64_H
-
-#include <stdint.h>
-
-#define GF_FIELD_WIDTH (64)
-#define GF_FIRST_BIT (1ULL << 63)
-
-#define GF_BASE_FIELD_WIDTH (32)
-#define GF_BASE_FIELD_SIZE (1ULL << GF_BASE_FIELD_WIDTH)
-#define GF_BASE_FIELD_GROUP_SIZE GF_BASE_FIELD_SIZE-1
-
-struct gf_w64_group_data {
- uint64_t *reduce;
- uint64_t *shift;
- uint64_t *memory;
-};
-
-struct gf_split_4_64_lazy_data {
- uint64_t tables[16][16];
- uint64_t last_value;
-};
-
-struct gf_split_8_64_lazy_data {
- uint64_t tables[8][(1<<8)];
- uint64_t last_value;
-};
-
-struct gf_split_16_64_lazy_data {
- uint64_t tables[4][(1<<16)];
- uint64_t last_value;
-};
-
-struct gf_split_8_8_data {
- uint64_t tables[15][256][256];
-};
-
-void gf_w64_neon_split_init(gf_t *gf);
-
-#endif /* GF_COMPLETE_GF_W64_H */
diff --git a/src/c/gf-complete/include/gf_w8.h b/src/c/gf-complete/include/gf_w8.h
deleted file mode 100644
index 938fcfd..0000000
--- a/src/c/gf-complete/include/gf_w8.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_w8.c
- *
- * Defines and data stuctures for 8-bit Galois fields
- */
-
-#ifndef GF_COMPLETE_GF_W8_H
-#define GF_COMPLETE_GF_W8_H
-
-#include "gf_int.h"
-#include <stdint.h>
-
-#define GF_FIELD_WIDTH (8)
-#define GF_FIELD_SIZE (1 << GF_FIELD_WIDTH)
-#define GF_HALF_SIZE (1 << (GF_FIELD_WIDTH/2))
-#define GF_MULT_GROUP_SIZE GF_FIELD_SIZE-1
-
-#define GF_BASE_FIELD_WIDTH (4)
-#define GF_BASE_FIELD_SIZE (1 << GF_BASE_FIELD_WIDTH)
-
-struct gf_w8_logtable_data {
- uint8_t log_tbl[GF_FIELD_SIZE];
- uint8_t antilog_tbl[GF_FIELD_SIZE * 2];
- uint8_t inv_tbl[GF_FIELD_SIZE];
-};
-
-struct gf_w8_logzero_table_data {
- short log_tbl[GF_FIELD_SIZE]; /* Make this signed, so that we can divide easily */
- uint8_t antilog_tbl[512+512+1];
- uint8_t *div_tbl;
- uint8_t *inv_tbl;
-};
-
-struct gf_w8_logzero_small_table_data {
- short log_tbl[GF_FIELD_SIZE]; /* Make this signed, so that we can divide easily */
- uint8_t antilog_tbl[255*3];
- uint8_t inv_tbl[GF_FIELD_SIZE];
- uint8_t *div_tbl;
-};
-
-struct gf_w8_composite_data {
- uint8_t *mult_table;
-};
-
-/* Don't change the order of these relative to gf_w8_half_table_data */
-
-struct gf_w8_default_data {
- uint8_t high[GF_FIELD_SIZE][GF_HALF_SIZE];
- uint8_t low[GF_FIELD_SIZE][GF_HALF_SIZE];
- uint8_t divtable[GF_FIELD_SIZE][GF_FIELD_SIZE];
- uint8_t multtable[GF_FIELD_SIZE][GF_FIELD_SIZE];
-};
-
-struct gf_w8_half_table_data {
- uint8_t high[GF_FIELD_SIZE][GF_HALF_SIZE];
- uint8_t low[GF_FIELD_SIZE][GF_HALF_SIZE];
-};
-
-struct gf_w8_single_table_data {
- uint8_t divtable[GF_FIELD_SIZE][GF_FIELD_SIZE];
- uint8_t multtable[GF_FIELD_SIZE][GF_FIELD_SIZE];
-};
-
-struct gf_w8_double_table_data {
- uint8_t div[GF_FIELD_SIZE][GF_FIELD_SIZE];
- uint16_t mult[GF_FIELD_SIZE][GF_FIELD_SIZE*GF_FIELD_SIZE];
-};
-
-struct gf_w8_double_table_lazy_data {
- uint8_t div[GF_FIELD_SIZE][GF_FIELD_SIZE];
- uint8_t smult[GF_FIELD_SIZE][GF_FIELD_SIZE];
- uint16_t mult[GF_FIELD_SIZE*GF_FIELD_SIZE];
-};
-
-struct gf_w4_logtable_data {
- uint8_t log_tbl[GF_BASE_FIELD_SIZE];
- uint8_t antilog_tbl[GF_BASE_FIELD_SIZE * 2];
- uint8_t *antilog_tbl_div;
-};
-
-struct gf_w4_single_table_data {
- uint8_t div[GF_BASE_FIELD_SIZE][GF_BASE_FIELD_SIZE];
- uint8_t mult[GF_BASE_FIELD_SIZE][GF_BASE_FIELD_SIZE];
-};
-
-struct gf_w8_bytwo_data {
- uint64_t prim_poly;
- uint64_t mask1;
- uint64_t mask2;
-};
-
-int gf_w8_neon_cfm_init(gf_t *gf);
-void gf_w8_neon_split_init(gf_t *gf);
-
-#endif /* GF_COMPLETE_GF_W8_H */
diff --git a/src/c/gf-complete/install-sh b/src/c/gf-complete/install-sh
deleted file mode 100755
index 377bb86..0000000
--- a/src/c/gf-complete/install-sh
+++ /dev/null
@@ -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:
diff --git a/src/c/gf-complete/ltmain.sh b/src/c/gf-complete/ltmain.sh
deleted file mode 100644
index ca96cb3..0000000
--- a/src/c/gf-complete/ltmain.sh
+++ /dev/null
@@ -1,9660 +0,0 @@
-
-# libtool (GNU libtool) 2.4.2
-# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010, 2011 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.
-
-# GNU Libtool 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 2 of the License, or
-# (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-# or obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Usage: $progname [OPTION]... [MODE-ARG]...
-#
-# Provide generalized library-building support services.
-#
-# --config show all configuration variables
-# --debug enable verbose shell tracing
-# -n, --dry-run display commands without modifying any files
-# --features display basic configuration information and exit
-# --mode=MODE use operation mode MODE
-# --preserve-dup-deps don't remove duplicate dependency libraries
-# --quiet, --silent don't print informational messages
-# --no-quiet, --no-silent
-# print informational messages (default)
-# --no-warn don't display warning messages
-# --tag=TAG use configuration variables from tag TAG
-# -v, --verbose print more informational messages than default
-# --no-verbose don't print the extra informational messages
-# --version print version information
-# -h, --help, --help-all print short, long, or detailed help message
-#
-# MODE must be one of the following:
-#
-# clean remove files from the build directory
-# compile compile a source file into a libtool object
-# execute automatically set library path, then run a program
-# finish complete the installation of libtool libraries
-# install install libraries or executables
-# link create a library or an executable
-# uninstall remove libraries from an installed directory
-#
-# MODE-ARGS vary depending on the MODE. When passed as first option,
-# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
-# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
-#
-# When reporting a bug, please describe a test case to reproduce it and
-# include the following information:
-#
-# host-triplet: $host
-# shell: $SHELL
-# compiler: $LTCC
-# compiler flags: $LTCFLAGS
-# linker: $LD (gnu? $with_gnu_ld)
-# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1
-# automake: $automake_version
-# autoconf: $autoconf_version
-#
-# Report bugs to <bug-libtool@gnu.org>.
-# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
-# General help using GNU software: <http://www.gnu.org/gethelp/>.
-
-PROGRAM=libtool
-PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.7ubuntu1"
-TIMESTAMP=""
-package_revision=1.3337
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs 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
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-}
-
-# NLS nuisances: We save the old values to restore during execute mode.
-lt_user_locale=
-lt_safe_locale=
-for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-do
- eval "if test \"\${$lt_var+set}\" = set; then
- save_$lt_var=\$$lt_var
- $lt_var=C
- export $lt_var
- lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
- lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
- fi"
-done
-LC_ALL=C
-LANGUAGE=C
-export LANGUAGE LC_ALL
-
-$lt_unset CDPATH
-
-
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
-
-
-
-: ${CP="cp -f"}
-test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
-: ${MAKE="make"}
-: ${MKDIR="mkdir"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
-: ${Xsed="$SED -e 1s/^X//"}
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
-EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
-
-exit_status=$EXIT_SUCCESS
-
-# Make sure IFS has a sensible default
-lt_nl='
-'
-IFS=" $lt_nl"
-
-dirname="s,/[^/]*$,,"
-basename="s,^.*/,,"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
-} # func_dirname may be replaced by extended shell implementation
-
-
-# func_basename file
-func_basename ()
-{
- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-} # func_basename may be replaced by extended shell implementation
-
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-# dirname: Compute the dirname of FILE. If nonempty,
-# add APPEND to the result, otherwise set result
-# to NONDIR_REPLACEMENT.
-# value returned in "$func_dirname_result"
-# basename: Compute filename of FILE.
-# value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
- # Extract subdirectory from the argument.
- func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
- func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-} # func_dirname_and_basename may be replaced by extended shell implementation
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-} # func_stripname may be replaced by extended shell implementation
-
-
-# These SED scripts presuppose an absolute path with a trailing slash.
-pathcar='s,^/\([^/]*\).*$,\1,'
-pathcdr='s,^/[^/]*,,'
-removedotparts=':dotsl
- s@/\./@/@g
- t dotsl
- s,/\.$,/,'
-collapseslashes='s@/\{1,\}@/@g'
-finalslash='s,/*$,/,'
-
-# func_normal_abspath PATH
-# Remove doubled-up and trailing slashes, "." path components,
-# and cancel out any ".." path components in PATH after making
-# it an absolute path.
-# value returned in "$func_normal_abspath_result"
-func_normal_abspath ()
-{
- # Start from root dir and reassemble the path.
- func_normal_abspath_result=
- func_normal_abspath_tpath=$1
- func_normal_abspath_altnamespace=
- case $func_normal_abspath_tpath in
- "")
- # Empty path, that just means $cwd.
- func_stripname '' '/' "`pwd`"
- func_normal_abspath_result=$func_stripname_result
- return
- ;;
- # The next three entries are used to spot a run of precisely
- # two leading slashes without using negated character classes;
- # we take advantage of case's first-match behaviour.
- ///*)
- # Unusual form of absolute path, do nothing.
- ;;
- //*)
- # Not necessarily an ordinary path; POSIX reserves leading '//'
- # and for example Cygwin uses it to access remote file shares
- # over CIFS/SMB, so we conserve a leading double slash if found.
- func_normal_abspath_altnamespace=/
- ;;
- /*)
- # Absolute path, do nothing.
- ;;
- *)
- # Relative path, prepend $cwd.
- func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
- ;;
- esac
- # Cancel out all the simple stuff to save iterations. We also want
- # the path to end with a slash for ease of parsing, so make sure
- # there is one (and only one) here.
- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
- while :; do
- # Processed it all yet?
- if test "$func_normal_abspath_tpath" = / ; then
- # If we ascended to the root using ".." the result may be empty now.
- if test -z "$func_normal_abspath_result" ; then
- func_normal_abspath_result=/
- fi
- break
- fi
- func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$pathcar"`
- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$pathcdr"`
- # Figure out what to do with it
- case $func_normal_abspath_tcomponent in
- "")
- # Trailing empty path component, ignore it.
- ;;
- ..)
- # Parent dir; strip last assembled component from result.
- func_dirname "$func_normal_abspath_result"
- func_normal_abspath_result=$func_dirname_result
- ;;
- *)
- # Actual path component, append it.
- func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
- ;;
- esac
- done
- # Restore leading double-slash if one was found on entry.
- func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
-}
-
-# func_relative_path SRCDIR DSTDIR
-# generates a relative path from SRCDIR to DSTDIR, with a trailing
-# slash if non-empty, suitable for immediately appending a filename
-# without needing to append a separator.
-# value returned in "$func_relative_path_result"
-func_relative_path ()
-{
- func_relative_path_result=
- func_normal_abspath "$1"
- func_relative_path_tlibdir=$func_normal_abspath_result
- func_normal_abspath "$2"
- func_relative_path_tbindir=$func_normal_abspath_result
-
- # Ascend the tree starting from libdir
- while :; do
- # check if we have found a prefix of bindir
- case $func_relative_path_tbindir in
- $func_relative_path_tlibdir)
- # found an exact match
- func_relative_path_tcancelled=
- break
- ;;
- $func_relative_path_tlibdir*)
- # found a matching prefix
- func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
- func_relative_path_tcancelled=$func_stripname_result
- if test -z "$func_relative_path_result"; then
- func_relative_path_result=.
- fi
- break
- ;;
- *)
- func_dirname $func_relative_path_tlibdir
- func_relative_path_tlibdir=${func_dirname_result}
- if test "x$func_relative_path_tlibdir" = x ; then
- # Have to descend all the way to the root!
- func_relative_path_result=../$func_relative_path_result
- func_relative_path_tcancelled=$func_relative_path_tbindir
- break
- fi
- func_relative_path_result=../$func_relative_path_result
- ;;
- esac
- done
-
- # Now calculate path; take care to avoid doubling-up slashes.
- func_stripname '' '/' "$func_relative_path_result"
- func_relative_path_result=$func_stripname_result
- func_stripname '/' '/' "$func_relative_path_tcancelled"
- if test "x$func_stripname_result" != x ; then
- func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
- fi
-
- # Normalisation. If bindir is libdir, return empty string,
- # else relative path ending with a slash; either way, target
- # file name can be directly appended.
- if test ! -z "$func_relative_path_result"; then
- func_stripname './' '' "$func_relative_path_result/"
- func_relative_path_result=$func_stripname_result
- fi
-}
-
-# The name of this program:
-func_dirname_and_basename "$progpath"
-progname=$func_basename_result
-
-# Make sure we have an absolute path for reexecution:
-case $progpath in
- [\\/]*|[A-Za-z]:\\*) ;;
- *[\\/]*)
- progdir=$func_dirname_result
- progdir=`cd "$progdir" && pwd`
- progpath="$progdir/$progname"
- ;;
- *)
- save_IFS="$IFS"
- IFS=${PATH_SEPARATOR-:}
- for progdir in $PATH; do
- IFS="$save_IFS"
- test -x "$progdir/$progname" && break
- done
- IFS="$save_IFS"
- test -n "$progdir" || progdir=`pwd`
- progpath="$progdir/$progname"
- ;;
-esac
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution that turns a string into a regex matching for the
-# string literally.
-sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
-
-# Sed substitution that converts a w32 file name or path
-# which contains forward slashes, into one that contains
-# (escaped) backslashes. A very naive implementation.
-lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-
-# Re-`\' parameter expansions in output of double_quote_subst that were
-# `\'-ed in input to the same. If an odd number of `\' preceded a '$'
-# in input to double_quote_subst, that '$' was protected from expansion.
-# Since each input `\' is now two `\'s, look for any number of runs of
-# four `\'s followed by two `\'s and then a '$'. `\' that '$'.
-bs='\\'
-bs2='\\\\'
-bs4='\\\\\\\\'
-dollar='\$'
-sed_double_backslash="\
- s/$bs4/&\\
-/g
- s/^$bs2$dollar/$bs&/
- s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
- s/\n//g"
-
-# Standard options:
-opt_dry_run=false
-opt_help=false
-opt_quiet=false
-opt_verbose=false
-opt_warning=:
-
-# func_echo arg...
-# Echo program name prefixed message, along with the current mode
-# name if it has been set yet.
-func_echo ()
-{
- $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-}
-
-# func_verbose arg...
-# Echo program name prefixed message in verbose mode only.
-func_verbose ()
-{
- $opt_verbose && func_echo ${1+"$@"}
-
- # A bug in bash halts the script if the last line of a function
- # fails when set -e is in force, so we need another command to
- # work around that:
- :
-}
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-# func_error arg...
-# Echo program name prefixed message to standard error.
-func_error ()
-{
- $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-}
-
-# func_warning arg...
-# Echo program name prefixed warning message to standard error.
-func_warning ()
-{
- $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-
- # bash bug again:
- :
-}
-
-# func_fatal_error arg...
-# Echo program name prefixed message to standard error, and exit.
-func_fatal_error ()
-{
- func_error ${1+"$@"}
- exit $EXIT_FAILURE
-}
-
-# func_fatal_help arg...
-# Echo program name prefixed message to standard error, followed by
-# a help hint, and exit.
-func_fatal_help ()
-{
- func_error ${1+"$@"}
- func_fatal_error "$help"
-}
-help="Try \`$progname --help' for more information." ## default
-
-
-# func_grep expression filename
-# Check whether EXPRESSION matches any line of FILENAME, without output.
-func_grep ()
-{
- $GREP "$1" "$2" >/dev/null 2>&1
-}
-
-
-# func_mkdir_p directory-path
-# Make sure the entire path to DIRECTORY-PATH is available.
-func_mkdir_p ()
-{
- my_directory_path="$1"
- my_dir_list=
-
- if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
-
- # Protect directory names starting with `-'
- case $my_directory_path in
- -*) my_directory_path="./$my_directory_path" ;;
- esac
-
- # While some portion of DIR does not yet exist...
- while test ! -d "$my_directory_path"; do
- # ...make a list in topmost first order. Use a colon delimited
- # list incase some portion of path contains whitespace.
- my_dir_list="$my_directory_path:$my_dir_list"
-
- # If the last portion added has no slash in it, the list is done
- case $my_directory_path in */*) ;; *) break ;; esac
-
- # ...otherwise throw away the child directory and loop
- my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
- done
- my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
-
- save_mkdir_p_IFS="$IFS"; IFS=':'
- for my_dir in $my_dir_list; do
- IFS="$save_mkdir_p_IFS"
- # mkdir can fail with a `File exist' error if two processes
- # try to create one of the directories concurrently. Don't
- # stop in that case!
- $MKDIR "$my_dir" 2>/dev/null || :
- done
- IFS="$save_mkdir_p_IFS"
-
- # Bail out if we (or some other process) failed to create a directory.
- test -d "$my_directory_path" || \
- func_fatal_error "Failed to create \`$1'"
- fi
-}
-
-
-# func_mktempdir [string]
-# Make a temporary directory that won't clash with other running
-# libtool processes, and avoids race conditions if possible. If
-# given, STRING is the basename for that directory.
-func_mktempdir ()
-{
- my_template="${TMPDIR-/tmp}/${1-$progname}"
-
- if test "$opt_dry_run" = ":"; then
- # Return a directory name, but don't create it in dry-run mode
- my_tmpdir="${my_template}-$$"
- else
-
- # If mktemp works, use that first and foremost
- my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
-
- if test ! -d "$my_tmpdir"; then
- # Failing that, at least try and use $RANDOM to avoid a race
- my_tmpdir="${my_template}-${RANDOM-0}$$"
-
- save_mktempdir_umask=`umask`
- umask 0077
- $MKDIR "$my_tmpdir"
- umask $save_mktempdir_umask
- fi
-
- # If we're not in dry-run mode, bomb out on failure
- test -d "$my_tmpdir" || \
- func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
- fi
-
- $ECHO "$my_tmpdir"
-}
-
-
-# func_quote_for_eval arg
-# Aesthetically quote ARG to be evaled later.
-# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
-# is double-quoted, suitable for a subsequent eval, whereas
-# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
-# which are still active within double quotes backslashified.
-func_quote_for_eval ()
-{
- case $1 in
- *[\\\`\"\$]*)
- func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
- *)
- func_quote_for_eval_unquoted_result="$1" ;;
- esac
-
- case $func_quote_for_eval_unquoted_result in
- # Double-quote args containing shell metacharacters to delay
- # word splitting, command substitution and and variable
- # expansion for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
- ;;
- *)
- func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
- esac
-}
-
-
-# func_quote_for_expand arg
-# Aesthetically quote ARG to be evaled later; same as above,
-# but do not quote variable references.
-func_quote_for_expand ()
-{
- case $1 in
- *[\\\`\"]*)
- my_arg=`$ECHO "$1" | $SED \
- -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
- *)
- my_arg="$1" ;;
- esac
-
- case $my_arg in
- # Double-quote args containing shell metacharacters to delay
- # word splitting and command substitution for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- my_arg="\"$my_arg\""
- ;;
- esac
-
- func_quote_for_expand_result="$my_arg"
-}
-
-
-# func_show_eval cmd [fail_exp]
-# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.
-func_show_eval ()
-{
- my_cmd="$1"
- my_fail_exp="${2-:}"
-
- ${opt_silent-false} || {
- func_quote_for_expand "$my_cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
-
- if ${opt_dry_run-false}; then :; else
- eval "$my_cmd"
- my_status=$?
- if test "$my_status" -eq 0; then :; else
- eval "(exit $my_status); $my_fail_exp"
- fi
- fi
-}
-
-
-# func_show_eval_locale cmd [fail_exp]
-# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it. Use the saved locale for evaluation.
-func_show_eval_locale ()
-{
- my_cmd="$1"
- my_fail_exp="${2-:}"
-
- ${opt_silent-false} || {
- func_quote_for_expand "$my_cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
-
- if ${opt_dry_run-false}; then :; else
- eval "$lt_user_locale
- $my_cmd"
- my_status=$?
- eval "$lt_safe_locale"
- if test "$my_status" -eq 0; then :; else
- eval "(exit $my_status); $my_fail_exp"
- fi
- fi
-}
-
-# func_tr_sh
-# Turn $1 into a string suitable for a shell variable name.
-# Result is stored in $func_tr_sh_result. All characters
-# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
-# if $1 begins with a digit, a '_' is prepended as well.
-func_tr_sh ()
-{
- case $1 in
- [0-9]* | *[!a-zA-Z0-9_]*)
- func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
- ;;
- * )
- func_tr_sh_result=$1
- ;;
- esac
-}
-
-
-# func_version
-# Echo version message to standard output and exit.
-func_version ()
-{
- $opt_debug
-
- $SED -n '/(C)/!b go
- :more
- /\./!{
- N
- s/\n# / /
- b more
- }
- :go
- /^# '$PROGRAM' (GNU /,/# warranty; / {
- s/^# //
- s/^# *$//
- s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
- p
- }' < "$progpath"
- exit $?
-}
-
-# func_usage
-# Echo short help message to standard output and exit.
-func_usage ()
-{
- $opt_debug
-
- $SED -n '/^# Usage:/,/^# *.*--help/ {
- s/^# //
- s/^# *$//
- s/\$progname/'$progname'/
- p
- }' < "$progpath"
- echo
- $ECHO "run \`$progname --help | more' for full usage"
- exit $?
-}
-
-# func_help [NOEXIT]
-# Echo long help message to standard output and exit,
-# unless 'noexit' is passed as argument.
-func_help ()
-{
- $opt_debug
-
- $SED -n '/^# Usage:/,/# Report bugs to/ {
- :print
- s/^# //
- s/^# *$//
- s*\$progname*'$progname'*
- s*\$host*'"$host"'*
- s*\$SHELL*'"$SHELL"'*
- s*\$LTCC*'"$LTCC"'*
- s*\$LTCFLAGS*'"$LTCFLAGS"'*
- s*\$LD*'"$LD"'*
- s/\$with_gnu_ld/'"$with_gnu_ld"'/
- s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
- s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
- p
- d
- }
- /^# .* home page:/b print
- /^# General help using/b print
- ' < "$progpath"
- ret=$?
- if test -z "$1"; then
- exit $ret
- fi
-}
-
-# func_missing_arg argname
-# Echo program name prefixed message to standard error and set global
-# exit_cmd.
-func_missing_arg ()
-{
- $opt_debug
-
- func_error "missing argument for $1."
- exit_cmd=exit
-}
-
-
-# func_split_short_opt shortopt
-# Set func_split_short_opt_name and func_split_short_opt_arg shell
-# variables after splitting SHORTOPT after the 2nd character.
-func_split_short_opt ()
-{
- my_sed_short_opt='1s/^\(..\).*$/\1/;q'
- my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
-
- func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
- func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
-} # func_split_short_opt may be replaced by extended shell implementation
-
-
-# func_split_long_opt longopt
-# Set func_split_long_opt_name and func_split_long_opt_arg shell
-# variables after splitting LONGOPT at the `=' sign.
-func_split_long_opt ()
-{
- my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
- my_sed_long_arg='1s/^--[^=]*=//'
-
- func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
- func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
-} # func_split_long_opt may be replaced by extended shell implementation
-
-exit_cmd=:
-
-
-
-
-
-magic="%%%MAGIC variable%%%"
-magic_exe="%%%MAGIC EXE variable%%%"
-
-# Global variables.
-nonopt=
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end. This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
- eval "${1}=\$${1}\${2}"
-} # func_append may be replaced by extended shell implementation
-
-# func_append_quoted var value
-# Quote VALUE and append to the end of shell variable VAR, separated
-# by a space.
-func_append_quoted ()
-{
- func_quote_for_eval "${2}"
- eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
-} # func_append_quoted may be replaced by extended shell implementation
-
-
-# func_arith arithmetic-term...
-func_arith ()
-{
- func_arith_result=`expr "${@}"`
-} # func_arith may be replaced by extended shell implementation
-
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
- func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
-} # func_len may be replaced by extended shell implementation
-
-
-# func_lo2o object
-func_lo2o ()
-{
- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-} # func_lo2o may be replaced by extended shell implementation
-
-
-# func_xform libobj-or-source
-func_xform ()
-{
- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-} # func_xform may be replaced by extended shell implementation
-
-
-# func_fatal_configuration arg...
-# Echo program name prefixed message to standard error, followed by
-# a configuration failure hint, and exit.
-func_fatal_configuration ()
-{
- func_error ${1+"$@"}
- func_error "See the $PACKAGE documentation for more information."
- func_fatal_error "Fatal configuration error."
-}
-
-
-# func_config
-# Display the configuration for all the tags in this script.
-func_config ()
-{
- re_begincf='^# ### BEGIN LIBTOOL'
- re_endcf='^# ### END LIBTOOL'
-
- # Default configuration.
- $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
-
- # Now print the configurations for the tags.
- for tagname in $taglist; do
- $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
- done
-
- exit $?
-}
-
-# func_features
-# Display the features supported by this script.
-func_features ()
-{
- echo "host: $host"
- if test "$build_libtool_libs" = yes; then
- echo "enable shared libraries"
- else
- echo "disable shared libraries"
- fi
- if test "$build_old_libs" = yes; then
- echo "enable static libraries"
- else
- echo "disable static libraries"
- fi
-
- exit $?
-}
-
-# func_enable_tag tagname
-# Verify that TAGNAME is valid, and either flag an error and exit, or
-# enable the TAGNAME tag. We also add TAGNAME to the global $taglist
-# variable here.
-func_enable_tag ()
-{
- # Global variable:
- tagname="$1"
-
- re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
- re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
- sed_extractcf="/$re_begincf/,/$re_endcf/p"
-
- # Validate tagname.
- case $tagname in
- *[!-_A-Za-z0-9,/]*)
- func_fatal_error "invalid tag name: $tagname"
- ;;
- esac
-
- # Don't test for the "default" C tag, as we know it's
- # there but not specially marked.
- case $tagname in
- CC) ;;
- *)
- if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
- taglist="$taglist $tagname"
-
- # Evaluate the configuration. Be careful to quote the path
- # and the sed script, to avoid splitting on whitespace, but
- # also don't use non-portable quotes within backquotes within
- # quotes we have to do it in 2 steps:
- extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
- eval "$extractedcf"
- else
- func_error "ignoring unknown tag $tagname"
- fi
- ;;
- esac
-}
-
-# func_check_version_match
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
- if test "$package_revision" != "$macro_revision"; then
- if test "$VERSION" != "$macro_version"; then
- if test -z "$macro_version"; then
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
- else
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
- fi
- else
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
- fi
-
- exit $EXIT_MISMATCH
- fi
-}
-
-
-# Shorthand for --mode=foo, only valid as the first argument
-case $1 in
-clean|clea|cle|cl)
- shift; set dummy --mode clean ${1+"$@"}; shift
- ;;
-compile|compil|compi|comp|com|co|c)
- shift; set dummy --mode compile ${1+"$@"}; shift
- ;;
-execute|execut|execu|exec|exe|ex|e)
- shift; set dummy --mode execute ${1+"$@"}; shift
- ;;
-finish|finis|fini|fin|fi|f)
- shift; set dummy --mode finish ${1+"$@"}; shift
- ;;
-install|instal|insta|inst|ins|in|i)
- shift; set dummy --mode install ${1+"$@"}; shift
- ;;
-link|lin|li|l)
- shift; set dummy --mode link ${1+"$@"}; shift
- ;;
-uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
- shift; set dummy --mode uninstall ${1+"$@"}; shift
- ;;
-esac
-
-
-
-# Option defaults:
-opt_debug=:
-opt_dry_run=false
-opt_config=false
-opt_preserve_dup_deps=false
-opt_features=false
-opt_finish=false
-opt_help=false
-opt_help_all=false
-opt_silent=:
-opt_warning=:
-opt_verbose=:
-opt_silent=false
-opt_verbose=false
-
-
-# Parse options once, thoroughly. This comes as soon as possible in the
-# script to make things like `--version' happen as quickly as we can.
-{
- # this just eases exit handling
- while test $# -gt 0; do
- opt="$1"
- shift
- case $opt in
- --debug|-x) opt_debug='set -x'
- func_echo "enabling shell trace mode"
- $opt_debug
- ;;
- --dry-run|--dryrun|-n)
- opt_dry_run=:
- ;;
- --config)
- opt_config=:
-func_config
- ;;
- --dlopen|-dlopen)
- optarg="$1"
- opt_dlopen="${opt_dlopen+$opt_dlopen
-}$optarg"
- shift
- ;;
- --preserve-dup-deps)
- opt_preserve_dup_deps=:
- ;;
- --features)
- opt_features=:
-func_features
- ;;
- --finish)
- opt_finish=:
-set dummy --mode finish ${1+"$@"}; shift
- ;;
- --help)
- opt_help=:
- ;;
- --help-all)
- opt_help_all=:
-opt_help=': help-all'
- ;;
- --mode)
- test $# = 0 && func_missing_arg $opt && break
- optarg="$1"
- opt_mode="$optarg"
-case $optarg in
- # Valid mode arguments:
- clean|compile|execute|finish|install|link|relink|uninstall) ;;
-
- # Catch anything else as an error
- *) func_error "invalid argument for $opt"
- exit_cmd=exit
- break
- ;;
-esac
- shift
- ;;
- --no-silent|--no-quiet)
- opt_silent=false
-func_append preserve_args " $opt"
- ;;
- --no-warning|--no-warn)
- opt_warning=false
-func_append preserve_args " $opt"
- ;;
- --no-verbose)
- opt_verbose=false
-func_append preserve_args " $opt"
- ;;
- --silent|--quiet)
- opt_silent=:
-func_append preserve_args " $opt"
- opt_verbose=false
- ;;
- --verbose|-v)
- opt_verbose=:
-func_append preserve_args " $opt"
-opt_silent=false
- ;;
- --tag)
- test $# = 0 && func_missing_arg $opt && break
- optarg="$1"
- opt_tag="$optarg"
-func_append preserve_args " $opt $optarg"
-func_enable_tag "$optarg"
- shift
- ;;
-
- -\?|-h) func_usage ;;
- --help) func_help ;;
- --version) func_version ;;
-
- # Separate optargs to long options:
- --*=*)
- func_split_long_opt "$opt"
- set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
- shift
- ;;
-
- # Separate non-argument short options:
- -\?*|-h*|-n*|-v*)
- func_split_short_opt "$opt"
- set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
- shift
- ;;
-
- --) break ;;
- -*) func_fatal_help "unrecognized option \`$opt'" ;;
- *) set dummy "$opt" ${1+"$@"}; shift; break ;;
- esac
- done
-
- # Validate options:
-
- # save first non-option argument
- if test "$#" -gt 0; then
- nonopt="$opt"
- shift
- fi
-
- # preserve --debug
- test "$opt_debug" = : || func_append preserve_args " --debug"
-
- case $host in
- *cygwin* | *mingw* | *pw32* | *cegcc*)
- # don't eliminate duplications in $postdeps and $predeps
- opt_duplicate_compiler_generated_deps=:
- ;;
- *)
- opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
- ;;
- esac
-
- $opt_help || {
- # Sanity checks first:
- func_check_version_match
-
- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
- func_fatal_configuration "not configured to build any kind of library"
- fi
-
- # Darwin sucks
- eval std_shrext=\"$shrext_cmds\"
-
- # Only execute mode is allowed to have -dlopen flags.
- if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
- func_error "unrecognized option \`-dlopen'"
- $ECHO "$help" 1>&2
- exit $EXIT_FAILURE
- fi
-
- # Change the help message to a mode-specific one.
- generic_help="$help"
- help="Try \`$progname --help --mode=$opt_mode' for more information."
- }
-
-
- # Bail if the options were screwed
- $exit_cmd $EXIT_FAILURE
-}
-
-
-
-
-## ----------- ##
-## Main. ##
-## ----------- ##
-
-# func_lalib_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_lalib_p ()
-{
- test -f "$1" &&
- $SED -e 4q "$1" 2>/dev/null \
- | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
-}
-
-# func_lalib_unsafe_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function implements the same check as func_lalib_p without
-# resorting to external programs. To this end, it redirects stdin and
-# closes it afterwards, without saving the original file descriptor.
-# As a safety measure, use it only where a negative result would be
-# fatal anyway. Works if `file' does not exist.
-func_lalib_unsafe_p ()
-{
- lalib_p=no
- if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
- for lalib_p_l in 1 2 3 4
- do
- read lalib_p_line
- case "$lalib_p_line" in
- \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
- esac
- done
- exec 0<&5 5<&-
- fi
- test "$lalib_p" = yes
-}
-
-# func_ltwrapper_script_p file
-# True iff FILE is a libtool wrapper script
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_script_p ()
-{
- func_lalib_p "$1"
-}
-
-# func_ltwrapper_executable_p file
-# True iff FILE is a libtool wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_executable_p ()
-{
- func_ltwrapper_exec_suffix=
- case $1 in
- *.exe) ;;
- *) func_ltwrapper_exec_suffix=.exe ;;
- esac
- $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
-}
-
-# func_ltwrapper_scriptname file
-# Assumes file is an ltwrapper_executable
-# uses $file to determine the appropriate filename for a
-# temporary ltwrapper_script.
-func_ltwrapper_scriptname ()
-{
- func_dirname_and_basename "$1" "" "."
- func_stripname '' '.exe' "$func_basename_result"
- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-}
-
-# func_ltwrapper_p file
-# True iff FILE is a libtool wrapper script or wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_p ()
-{
- func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
-}
-
-
-# func_execute_cmds commands fail_cmd
-# Execute tilde-delimited COMMANDS.
-# If FAIL_CMD is given, eval that upon failure.
-# FAIL_CMD may read-access the current command in variable CMD!
-func_execute_cmds ()
-{
- $opt_debug
- save_ifs=$IFS; IFS='~'
- for cmd in $1; do
- IFS=$save_ifs
- eval cmd=\"$cmd\"
- func_show_eval "$cmd" "${2-:}"
- done
- IFS=$save_ifs
-}
-
-
-# func_source file
-# Source FILE, adding directory component if necessary.
-# Note that it is not necessary on cygwin/mingw to append a dot to
-# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
-# behavior happens only for exec(3), not for open(2)! Also, sourcing
-# `FILE.' does not work on cygwin managed mounts.
-func_source ()
-{
- $opt_debug
- case $1 in
- */* | *\\*) . "$1" ;;
- *) . "./$1" ;;
- esac
-}
-
-
-# func_resolve_sysroot PATH
-# Replace a leading = in PATH with a sysroot. Store the result into
-# func_resolve_sysroot_result
-func_resolve_sysroot ()
-{
- func_resolve_sysroot_result=$1
- case $func_resolve_sysroot_result in
- =*)
- func_stripname '=' '' "$func_resolve_sysroot_result"
- func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
- ;;
- esac
-}
-
-# func_replace_sysroot PATH
-# If PATH begins with the sysroot, replace it with = and
-# store the result into func_replace_sysroot_result.
-func_replace_sysroot ()
-{
- case "$lt_sysroot:$1" in
- ?*:"$lt_sysroot"*)
- func_stripname "$lt_sysroot" '' "$1"
- func_replace_sysroot_result="=$func_stripname_result"
- ;;
- *)
- # Including no sysroot.
- func_replace_sysroot_result=$1
- ;;
- esac
-}
-
-# func_infer_tag arg
-# Infer tagged configuration to use if any are available and
-# if one wasn't chosen via the "--tag" command line option.
-# Only attempt this if the compiler in the base compile
-# command doesn't match the default compiler.
-# arg is usually of the form 'gcc ...'
-func_infer_tag ()
-{
- $opt_debug
- if test -n "$available_tags" && test -z "$tagname"; then
- CC_quoted=
- for arg in $CC; do
- func_append_quoted CC_quoted "$arg"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
- case $@ in
- # Blanks in the command may have been stripped by the calling shell,
- # but not from the CC environment variable when configure was run.
- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
- # Blanks at the start of $base_compile will cause this to fail
- # if we don't check for them as well.
- *)
- for z in $available_tags; do
- if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
- # Evaluate the configuration.
- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
- CC_quoted=
- for arg in $CC; do
- # Double-quote args containing other shell metacharacters.
- func_append_quoted CC_quoted "$arg"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
- case "$@ " in
- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
- # The compiler in the base compile command matches
- # the one in the tagged configuration.
- # Assume this is the tagged configuration we want.
- tagname=$z
- break
- ;;
- esac
- fi
- done
- # If $tagname still isn't set, then no tagged configuration
- # was found and let the user know that the "--tag" command
- # line option must be used.
- if test -z "$tagname"; then
- func_echo "unable to infer tagged configuration"
- func_fatal_error "specify a tag with \`--tag'"
-# else
-# func_verbose "using $tagname tagged configuration"
- fi
- ;;
- esac
- fi
-}
-
-
-
-# func_write_libtool_object output_name pic_name nonpic_name
-# Create a libtool object file (analogous to a ".la" file),
-# but don't create it if we're doing a dry run.
-func_write_libtool_object ()
-{
- write_libobj=${1}
- if test "$build_libtool_libs" = yes; then
- write_lobj=\'${2}\'
- else
- write_lobj=none
- fi
-
- if test "$build_old_libs" = yes; then
- write_oldobj=\'${3}\'
- else
- write_oldobj=none
- fi
-
- $opt_dry_run || {
- cat >${write_libobj}T <<EOF
-# $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object=$write_lobj
-
-# Name of the non-PIC object
-non_pic_object=$write_oldobj
-
-EOF
- $MV "${write_libobj}T" "${write_libobj}"
- }
-}
-
-
-##################################################
-# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
-##################################################
-
-# func_convert_core_file_wine_to_w32 ARG
-# Helper function used by file name conversion functions when $build is *nix,
-# and $host is mingw, cygwin, or some other w32 environment. Relies on a
-# correctly configured wine environment available, with the winepath program
-# in $build's $PATH.
-#
-# ARG is the $build file name to be converted to w32 format.
-# Result is available in $func_convert_core_file_wine_to_w32_result, and will
-# be empty on error (or when ARG is empty)
-func_convert_core_file_wine_to_w32 ()
-{
- $opt_debug
- func_convert_core_file_wine_to_w32_result="$1"
- if test -n "$1"; then
- # Unfortunately, winepath does not exit with a non-zero error code, so we
- # are forced to check the contents of stdout. On the other hand, if the
- # command is not found, the shell will set an exit code of 127 and print
- # *an error message* to stdout. So we must check for both error code of
- # zero AND non-empty stdout, which explains the odd construction:
- func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
- if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
- func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
- $SED -e "$lt_sed_naive_backslashify"`
- else
- func_convert_core_file_wine_to_w32_result=
- fi
- fi
-}
-# end: func_convert_core_file_wine_to_w32
-
-
-# func_convert_core_path_wine_to_w32 ARG
-# Helper function used by path conversion functions when $build is *nix, and
-# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
-# configured wine environment available, with the winepath program in $build's
-# $PATH. Assumes ARG has no leading or trailing path separator characters.
-#
-# ARG is path to be converted from $build format to win32.
-# Result is available in $func_convert_core_path_wine_to_w32_result.
-# Unconvertible file (directory) names in ARG are skipped; if no directory names
-# are convertible, then the result may be empty.
-func_convert_core_path_wine_to_w32 ()
-{
- $opt_debug
- # unfortunately, winepath doesn't convert paths, only file names
- func_convert_core_path_wine_to_w32_result=""
- if test -n "$1"; then
- oldIFS=$IFS
- IFS=:
- for func_convert_core_path_wine_to_w32_f in $1; do
- IFS=$oldIFS
- func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
- if test -n "$func_convert_core_file_wine_to_w32_result" ; then
- if test -z "$func_convert_core_path_wine_to_w32_result"; then
- func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
- else
- func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
- fi
- fi
- done
- IFS=$oldIFS
- fi
-}
-# end: func_convert_core_path_wine_to_w32
-
-
-# func_cygpath ARGS...
-# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
-# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
-# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
-# (2), returns the Cygwin file name or path in func_cygpath_result (input
-# file name or path is assumed to be in w32 format, as previously converted
-# from $build's *nix or MSYS format). In case (3), returns the w32 file name
-# or path in func_cygpath_result (input file name or path is assumed to be in
-# Cygwin format). Returns an empty string on error.
-#
-# ARGS are passed to cygpath, with the last one being the file name or path to
-# be converted.
-#
-# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
-# environment variable; do not put it in $PATH.
-func_cygpath ()
-{
- $opt_debug
- if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
- func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
- if test "$?" -ne 0; then
- # on failure, ensure result is empty
- func_cygpath_result=
- fi
- else
- func_cygpath_result=
- func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
- fi
-}
-#end: func_cygpath
-
-
-# func_convert_core_msys_to_w32 ARG
-# Convert file name or path ARG from MSYS format to w32 format. Return
-# result in func_convert_core_msys_to_w32_result.
-func_convert_core_msys_to_w32 ()
-{
- $opt_debug
- # awkward: cmd appends spaces to result
- func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
-}
-#end: func_convert_core_msys_to_w32
-
-
-# func_convert_file_check ARG1 ARG2
-# Verify that ARG1 (a file name in $build format) was converted to $host
-# format in ARG2. Otherwise, emit an error message, but continue (resetting
-# func_to_host_file_result to ARG1).
-func_convert_file_check ()
-{
- $opt_debug
- if test -z "$2" && test -n "$1" ; then
- func_error "Could not determine host file name corresponding to"
- func_error " \`$1'"
- func_error "Continuing, but uninstalled executables may not work."
- # Fallback:
- func_to_host_file_result="$1"
- fi
-}
-# end func_convert_file_check
-
-
-# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
-# Verify that FROM_PATH (a path in $build format) was converted to $host
-# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
-# func_to_host_file_result to a simplistic fallback value (see below).
-func_convert_path_check ()
-{
- $opt_debug
- if test -z "$4" && test -n "$3"; then
- func_error "Could not determine the host path corresponding to"
- func_error " \`$3'"
- func_error "Continuing, but uninstalled executables may not work."
- # Fallback. This is a deliberately simplistic "conversion" and
- # should not be "improved". See libtool.info.
- if test "x$1" != "x$2"; then
- lt_replace_pathsep_chars="s|$1|$2|g"
- func_to_host_path_result=`echo "$3" |
- $SED -e "$lt_replace_pathsep_chars"`
- else
- func_to_host_path_result="$3"
- fi
- fi
-}
-# end func_convert_path_check
-
-
-# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
-# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
-# and appending REPL if ORIG matches BACKPAT.
-func_convert_path_front_back_pathsep ()
-{
- $opt_debug
- case $4 in
- $1 ) func_to_host_path_result="$3$func_to_host_path_result"
- ;;
- esac
- case $4 in
- $2 ) func_append func_to_host_path_result "$3"
- ;;
- esac
-}
-# end func_convert_path_front_back_pathsep
-
-
-##################################################
-# $build to $host FILE NAME CONVERSION FUNCTIONS #
-##################################################
-# invoked via `$to_host_file_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# Result will be available in $func_to_host_file_result.
-
-
-# func_to_host_file ARG
-# Converts the file name ARG from $build format to $host format. Return result
-# in func_to_host_file_result.
-func_to_host_file ()
-{
- $opt_debug
- $to_host_file_cmd "$1"
-}
-# end func_to_host_file
-
-
-# func_to_tool_file ARG LAZY
-# converts the file name ARG from $build format to toolchain format. Return
-# result in func_to_tool_file_result. If the conversion in use is listed
-# in (the comma separated) LAZY, no conversion takes place.
-func_to_tool_file ()
-{
- $opt_debug
- case ,$2, in
- *,"$to_tool_file_cmd",*)
- func_to_tool_file_result=$1
- ;;
- *)
- $to_tool_file_cmd "$1"
- func_to_tool_file_result=$func_to_host_file_result
- ;;
- esac
-}
-# end func_to_tool_file
-
-
-# func_convert_file_noop ARG
-# Copy ARG to func_to_host_file_result.
-func_convert_file_noop ()
-{
- func_to_host_file_result="$1"
-}
-# end func_convert_file_noop
-
-
-# func_convert_file_msys_to_w32 ARG
-# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper. Returns result in
-# func_to_host_file_result.
-func_convert_file_msys_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_msys_to_w32 "$1"
- func_to_host_file_result="$func_convert_core_msys_to_w32_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_w32
-
-
-# func_convert_file_cygwin_to_w32 ARG
-# Convert file name ARG from Cygwin to w32 format. Returns result in
-# func_to_host_file_result.
-func_convert_file_cygwin_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
- # LT_CYGPATH in this case.
- func_to_host_file_result=`cygpath -m "$1"`
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_cygwin_to_w32
-
-
-# func_convert_file_nix_to_w32 ARG
-# Convert file name ARG from *nix to w32 format. Requires a wine environment
-# and a working winepath. Returns result in func_to_host_file_result.
-func_convert_file_nix_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_file_wine_to_w32 "$1"
- func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_w32
-
-
-# func_convert_file_msys_to_cygwin ARG
-# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_file_msys_to_cygwin ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_msys_to_w32 "$1"
- func_cygpath -u "$func_convert_core_msys_to_w32_result"
- func_to_host_file_result="$func_cygpath_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_cygwin
-
-
-# func_convert_file_nix_to_cygwin ARG
-# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
-# in a wine environment, working winepath, and LT_CYGPATH set. Returns result
-# in func_to_host_file_result.
-func_convert_file_nix_to_cygwin ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
- func_convert_core_file_wine_to_w32 "$1"
- func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
- func_to_host_file_result="$func_cygpath_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_cygwin
-
-
-#############################################
-# $build to $host PATH CONVERSION FUNCTIONS #
-#############################################
-# invoked via `$to_host_path_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# The result will be available in $func_to_host_path_result.
-#
-# Path separators are also converted from $build format to $host format. If
-# ARG begins or ends with a path separator character, it is preserved (but
-# converted to $host format) on output.
-#
-# All path conversion functions are named using the following convention:
-# file name conversion function : func_convert_file_X_to_Y ()
-# path conversion function : func_convert_path_X_to_Y ()
-# where, for any given $build/$host combination the 'X_to_Y' value is the
-# same. If conversion functions are added for new $build/$host combinations,
-# the two new functions must follow this pattern, or func_init_to_host_path_cmd
-# will break.
-
-
-# func_init_to_host_path_cmd
-# Ensures that function "pointer" variable $to_host_path_cmd is set to the
-# appropriate value, based on the value of $to_host_file_cmd.
-to_host_path_cmd=
-func_init_to_host_path_cmd ()
-{
- $opt_debug
- if test -z "$to_host_path_cmd"; then
- func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
- to_host_path_cmd="func_convert_path_${func_stripname_result}"
- fi
-}
-
-
-# func_to_host_path ARG
-# Converts the path ARG from $build format to $host format. Return result
-# in func_to_host_path_result.
-func_to_host_path ()
-{
- $opt_debug
- func_init_to_host_path_cmd
- $to_host_path_cmd "$1"
-}
-# end func_to_host_path
-
-
-# func_convert_path_noop ARG
-# Copy ARG to func_to_host_path_result.
-func_convert_path_noop ()
-{
- func_to_host_path_result="$1"
-}
-# end func_convert_path_noop
-
-
-# func_convert_path_msys_to_w32 ARG
-# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper. Returns result in
-# func_to_host_path_result.
-func_convert_path_msys_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # Remove leading and trailing path separator characters from ARG. MSYS
- # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
- # and winepath ignores them completely.
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
- func_to_host_path_result="$func_convert_core_msys_to_w32_result"
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_msys_to_w32
-
-
-# func_convert_path_cygwin_to_w32 ARG
-# Convert path ARG from Cygwin to w32 format. Returns result in
-# func_to_host_file_result.
-func_convert_path_cygwin_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_cygwin_to_w32
-
-
-# func_convert_path_nix_to_w32 ARG
-# Convert path ARG from *nix to w32 format. Requires a wine environment and
-# a working winepath. Returns result in func_to_host_file_result.
-func_convert_path_nix_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
- func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_nix_to_w32
-
-
-# func_convert_path_msys_to_cygwin ARG
-# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_path_msys_to_cygwin ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
- func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
- func_to_host_path_result="$func_cygpath_result"
- func_convert_path_check : : \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" : "$1"
- fi
-}
-# end func_convert_path_msys_to_cygwin
-
-
-# func_convert_path_nix_to_cygwin ARG
-# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
-# a wine environment, working winepath, and LT_CYGPATH set. Returns result in
-# func_to_host_file_result.
-func_convert_path_nix_to_cygwin ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # Remove leading and trailing path separator characters from
- # ARG. msys behavior is inconsistent here, cygpath turns them
- # into '.;' and ';.', and winepath ignores them completely.
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
- func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
- func_to_host_path_result="$func_cygpath_result"
- func_convert_path_check : : \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" : "$1"
- fi
-}
-# end func_convert_path_nix_to_cygwin
-
-
-# func_mode_compile arg...
-func_mode_compile ()
-{
- $opt_debug
- # Get the compilation command and the source file.
- base_compile=
- srcfile="$nonopt" # always keep a non-empty value in "srcfile"
- suppress_opt=yes
- suppress_output=
- arg_mode=normal
- libobj=
- later=
- pie_flag=
-
- for arg
- do
- case $arg_mode in
- arg )
- # do not "continue". Instead, add this to base_compile
- lastarg="$arg"
- arg_mode=normal
- ;;
-
- target )
- libobj="$arg"
- arg_mode=normal
- continue
- ;;
-
- normal )
- # Accept any command-line options.
- case $arg in
- -o)
- test -n "$libobj" && \
- func_fatal_error "you cannot specify \`-o' more than once"
- arg_mode=target
- continue
- ;;
-
- -pie | -fpie | -fPIE)
- func_append pie_flag " $arg"
- continue
- ;;
-
- -shared | -static | -prefer-pic | -prefer-non-pic)
- func_append later " $arg"
- continue
- ;;
-
- -no-suppress)
- suppress_opt=no
- continue
- ;;
-
- -Xcompiler)
- arg_mode=arg # the next one goes into the "base_compile" arg list
- continue # The current "srcfile" will either be retained or
- ;; # replaced later. I would guess that would be a bug.
-
- -Wc,*)
- func_stripname '-Wc,' '' "$arg"
- args=$func_stripname_result
- lastarg=
- save_ifs="$IFS"; IFS=','
- for arg in $args; do
- IFS="$save_ifs"
- func_append_quoted lastarg "$arg"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$lastarg"
- lastarg=$func_stripname_result
-
- # Add the arguments to base_compile.
- func_append base_compile " $lastarg"
- continue
- ;;
-
- *)
- # Accept the current argument as the source file.
- # The previous "srcfile" becomes the current argument.
- #
- lastarg="$srcfile"
- srcfile="$arg"
- ;;
- esac # case $arg
- ;;
- esac # case $arg_mode
-
- # Aesthetically quote the previous argument.
- func_append_quoted base_compile "$lastarg"
- done # for arg
-
- case $arg_mode in
- arg)
- func_fatal_error "you must specify an argument for -Xcompile"
- ;;
- target)
- func_fatal_error "you must specify a target with \`-o'"
- ;;
- *)
- # Get the name of the library object.
- test -z "$libobj" && {
- func_basename "$srcfile"
- libobj="$func_basename_result"
- }
- ;;
- esac
-
- # Recognize several different file suffixes.
- # If the user specifies -o file.o, it is replaced with file.lo
- case $libobj in
- *.[cCFSifmso] | \
- *.ada | *.adb | *.ads | *.asm | \
- *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
- *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
- func_xform "$libobj"
- libobj=$func_xform_result
- ;;
- esac
-
- case $libobj in
- *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
- *)
- func_fatal_error "cannot determine name of library object from \`$libobj'"
- ;;
- esac
-
- func_infer_tag $base_compile
-
- for arg in $later; do
- case $arg in
- -shared)
- test "$build_libtool_libs" != yes && \
- func_fatal_configuration "can not build a shared library"
- build_old_libs=no
- continue
- ;;
-
- -static)
- build_libtool_libs=no
- build_old_libs=yes
- continue
- ;;
-
- -prefer-pic)
- pic_mode=yes
- continue
- ;;
-
- -prefer-non-pic)
- pic_mode=no
- continue
- ;;
- esac
- done
-
- func_quote_for_eval "$libobj"
- test "X$libobj" != "X$func_quote_for_eval_result" \
- && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
- && func_warning "libobj name \`$libobj' may not contain shell special characters."
- func_dirname_and_basename "$obj" "/" ""
- objname="$func_basename_result"
- xdir="$func_dirname_result"
- lobj=${xdir}$objdir/$objname
-
- test -z "$base_compile" && \
- func_fatal_help "you must specify a compilation command"
-
- # Delete any leftover library objects.
- if test "$build_old_libs" = yes; then
- removelist="$obj $lobj $libobj ${libobj}T"
- else
- removelist="$lobj $libobj ${libobj}T"
- fi
-
- # On Cygwin there's no "real" PIC flag so we must build both object types
- case $host_os in
- cygwin* | mingw* | pw32* | os2* | cegcc*)
- pic_mode=default
- ;;
- esac
- if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
- # non-PIC code in shared libraries is not supported
- pic_mode=default
- fi
-
- # Calculate the filename of the output object if compiler does
- # not support -o with -c
- if test "$compiler_c_o" = no; then
- output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
- lockfile="$output_obj.lock"
- else
- output_obj=
- need_locks=no
- lockfile=
- fi
-
- # Lock this critical section if it is needed
- # We use this script file to make the link, it avoids creating a new file
- if test "$need_locks" = yes; then
- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
- func_echo "Waiting for $lockfile to be removed"
- sleep 2
- done
- elif test "$need_locks" = warn; then
- if test -f "$lockfile"; then
- $ECHO "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
- func_append removelist " $output_obj"
- $ECHO "$srcfile" > "$lockfile"
- fi
-
- $opt_dry_run || $RM $removelist
- func_append removelist " $lockfile"
- trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
-
- func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
- srcfile=$func_to_tool_file_result
- func_quote_for_eval "$srcfile"
- qsrcfile=$func_quote_for_eval_result
-
- # Only build a PIC object if we are building libtool libraries.
- if test "$build_libtool_libs" = yes; then
- # Without this assignment, base_compile gets emptied.
- fbsd_hideous_sh_bug=$base_compile
-
- if test "$pic_mode" != no; then
- command="$base_compile $qsrcfile $pic_flag"
- else
- # Don't build PIC code
- command="$base_compile $qsrcfile"
- fi
-
- func_mkdir_p "$xdir$objdir"
-
- if test -z "$output_obj"; then
- # Place PIC objects in $objdir
- func_append command " -o $lobj"
- fi
-
- func_show_eval_locale "$command" \
- 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
-
- if test "$need_locks" = warn &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed, then go on to compile the next one
- if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
- func_show_eval '$MV "$output_obj" "$lobj"' \
- 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
- fi
-
- # Allow error messages only from the first compilation.
- if test "$suppress_opt" = yes; then
- suppress_output=' >/dev/null 2>&1'
- fi
- fi
-
- # Only build a position-dependent object if we build old libraries.
- if test "$build_old_libs" = yes; then
- if test "$pic_mode" != yes; then
- # Don't build PIC code
- command="$base_compile $qsrcfile$pie_flag"
- else
- command="$base_compile $qsrcfile $pic_flag"
- fi
- if test "$compiler_c_o" = yes; then
- func_append command " -o $obj"
- fi
-
- # Suppress compiler output if we already did a PIC compilation.
- func_append command "$suppress_output"
- func_show_eval_locale "$command" \
- '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
-
- if test "$need_locks" = warn &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed
- if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
- func_show_eval '$MV "$output_obj" "$obj"' \
- 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
- fi
- fi
-
- $opt_dry_run || {
- func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
-
- # Unlock the critical section if it was locked
- if test "$need_locks" != no; then
- removelist=$lockfile
- $RM "$lockfile"
- fi
- }
-
- exit $EXIT_SUCCESS
-}
-
-$opt_help || {
- test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
-}
-
-func_mode_help ()
-{
- # We need to display help for each of the modes.
- case $opt_mode in
- "")
- # Generic help is extracted from the usage comments
- # at the start of this file.
- func_help
- ;;
-
- clean)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
- ;;
-
- compile)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
- -o OUTPUT-FILE set the output file name to OUTPUT-FILE
- -no-suppress do not suppress compiler output for multiple passes
- -prefer-pic try to build PIC objects only
- -prefer-non-pic try to build non-PIC objects only
- -shared do not build a \`.o' file suitable for static linking
- -static only build a \`.o' file suitable for static linking
- -Wc,FLAG pass FLAG directly to the compiler
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
- ;;
-
- execute)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
- -dlopen FILE add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
- ;;
-
- finish)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges. Use
-the \`--dry-run' option if you just want to see what would be executed."
- ;;
-
- install)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command. The first component should be
-either the \`install' or \`cp' program.
-
-The following components of INSTALL-COMMAND are treated specially:
-
- -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
- ;;
-
- link)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
- -all-static do not do any dynamic linking at all
- -avoid-version do not add a version suffix if possible
- -bindir BINDIR specify path to binaries directory (for systems where
- libraries must be found in the PATH setting at runtime)
- -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
- -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
- -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
- -export-symbols SYMFILE
- try to export only the symbols listed in SYMFILE
- -export-symbols-regex REGEX
- try to export only the symbols matching REGEX
- -LLIBDIR search LIBDIR for required installed libraries
- -lNAME OUTPUT-FILE requires the installed library libNAME
- -module build a library that can dlopened
- -no-fast-install disable the fast-install mode
- -no-install link a not-installable executable
- -no-undefined declare that a library does not refer to external symbols
- -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
- -objectlist FILE Use a list of object files found in FILE to specify objects
- -precious-files-regex REGEX
- don't remove output files matching REGEX
- -release RELEASE specify package release information
- -rpath LIBDIR the created library will eventually be installed in LIBDIR
- -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
- -shared only do dynamic linking of libtool libraries
- -shrext SUFFIX override the standard shared library file extension
- -static do not do any dynamic linking of uninstalled libtool libraries
- -static-libtool-libs
- do not do any dynamic linking of libtool libraries
- -version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
- -weak LIBNAME declare that the target provides the LIBNAME interface
- -Wc,FLAG
- -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
- -Wl,FLAG
- -Xlinker FLAG pass linker-specific FLAG directly to the linker
- -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename. Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
- ;;
-
- uninstall)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
- ;;
-
- *)
- func_fatal_help "invalid operation mode \`$opt_mode'"
- ;;
- esac
-
- echo
- $ECHO "Try \`$progname --help' for more information about other modes."
-}
-
-# Now that we've collected a possible --mode arg, show help if necessary
-if $opt_help; then
- if test "$opt_help" = :; then
- func_mode_help
- else
- {
- func_help noexit
- for opt_mode in compile link execute install finish uninstall clean; do
- func_mode_help
- done
- } | sed -n '1p; 2,$s/^Usage:/ or: /p'
- {
- func_help noexit
- for opt_mode in compile link execute install finish uninstall clean; do
- echo
- func_mode_help
- done
- } |
- sed '1d
- /^When reporting/,/^Report/{
- H
- d
- }
- $x
- /information about other modes/d
- /more detailed .*MODE/d
- s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
- fi
- exit $?
-fi
-
-
-# func_mode_execute arg...
-func_mode_execute ()
-{
- $opt_debug
- # The first argument is the command name.
- cmd="$nonopt"
- test -z "$cmd" && \
- func_fatal_help "you must specify a COMMAND"
-
- # Handle -dlopen flags immediately.
- for file in $opt_dlopen; do
- test -f "$file" \
- || func_fatal_help "\`$file' is not a file"
-
- dir=
- case $file in
- *.la)
- func_resolve_sysroot "$file"
- file=$func_resolve_sysroot_result
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "\`$lib' is not a valid libtool archive"
-
- # Read the libtool library.
- dlname=
- library_names=
- func_source "$file"
-
- # Skip this library if it cannot be dlopened.
- if test -z "$dlname"; then
- # Warn if it was a shared library.
- test -n "$library_names" && \
- func_warning "\`$file' was not linked with \`-export-dynamic'"
- continue
- fi
-
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
-
- if test -f "$dir/$objdir/$dlname"; then
- func_append dir "/$objdir"
- else
- if test ! -f "$dir/$dlname"; then
- func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
- fi
- fi
- ;;
-
- *.lo)
- # Just add the directory containing the .lo file.
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
- ;;
-
- *)
- func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
- continue
- ;;
- esac
-
- # Get the absolute pathname.
- absdir=`cd "$dir" && pwd`
- test -n "$absdir" && dir="$absdir"
-
- # Now add the directory to shlibpath_var.
- if eval "test -z \"\$$shlibpath_var\""; then
- eval "$shlibpath_var=\"\$dir\""
- else
- eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
- fi
- done
-
- # This variable tells wrapper scripts just to set shlibpath_var
- # rather than running their programs.
- libtool_execute_magic="$magic"
-
- # Check if any of the arguments is a wrapper script.
- args=
- for file
- do
- case $file in
- -* | *.la | *.lo ) ;;
- *)
- # Do a test to see if this is really a libtool program.
- if func_ltwrapper_script_p "$file"; then
- func_source "$file"
- # Transform arg to wrapped name.
- file="$progdir/$program"
- elif func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- func_source "$func_ltwrapper_scriptname_result"
- # Transform arg to wrapped name.
- file="$progdir/$program"
- fi
- ;;
- esac
- # Quote arguments (to preserve shell metacharacters).
- func_append_quoted args "$file"
- done
-
- if test "X$opt_dry_run" = Xfalse; then
- if test -n "$shlibpath_var"; then
- # Export the shlibpath_var.
- eval "export $shlibpath_var"
- fi
-
- # Restore saved environment variables
- for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
- do
- eval "if test \"\${save_$lt_var+set}\" = set; then
- $lt_var=\$save_$lt_var; export $lt_var
- else
- $lt_unset $lt_var
- fi"
- done
-
- # Now prepare to actually exec the command.
- exec_cmd="\$cmd$args"
- else
- # Display what would be done.
- if test -n "$shlibpath_var"; then
- eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
- echo "export $shlibpath_var"
- fi
- $ECHO "$cmd$args"
- exit $EXIT_SUCCESS
- fi
-}
-
-test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
-
-
-# func_mode_finish arg...
-func_mode_finish ()
-{
- $opt_debug
- libs=
- libdirs=
- admincmds=
-
- for opt in "$nonopt" ${1+"$@"}
- do
- if test -d "$opt"; then
- func_append libdirs " $opt"
-
- elif test -f "$opt"; then
- if func_lalib_unsafe_p "$opt"; then
- func_append libs " $opt"
- else
- func_warning "\`$opt' is not a valid libtool archive"
- fi
-
- else
- func_fatal_error "invalid argument \`$opt'"
- fi
- done
-
- if test -n "$libs"; then
- if test -n "$lt_sysroot"; then
- sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
- sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
- else
- sysroot_cmd=
- fi
-
- # Remove sysroot references
- if $opt_dry_run; then
- for lib in $libs; do
- echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
- done
- else
- tmpdir=`func_mktempdir`
- for lib in $libs; do
- sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
- > $tmpdir/tmp-la
- mv -f $tmpdir/tmp-la $lib
- done
- ${RM}r "$tmpdir"
- fi
- fi
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- for libdir in $libdirs; do
- if test -n "$finish_cmds"; then
- # Do each command in the finish commands.
- func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
-'"$cmd"'"'
- fi
- if test -n "$finish_eval"; then
- # Do the single finish_eval.
- eval cmds=\"$finish_eval\"
- $opt_dry_run || eval "$cmds" || func_append admincmds "
- $cmds"
- fi
- done
- fi
-
- # Exit here if they wanted silent mode.
- $opt_silent && exit $EXIT_SUCCESS
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- echo "----------------------------------------------------------------------"
- echo "Libraries have been installed in:"
- for libdir in $libdirs; do
- $ECHO " $libdir"
- done
- echo
- echo "If you ever happen to want to link against installed libraries"
- echo "in a given directory, LIBDIR, you must either use libtool, and"
- echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
- echo "flag during linking and do at least one of the following:"
- if test -n "$shlibpath_var"; then
- echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
- echo " during execution"
- fi
- if test -n "$runpath_var"; then
- echo " - add LIBDIR to the \`$runpath_var' environment variable"
- echo " during linking"
- fi
- if test -n "$hardcode_libdir_flag_spec"; then
- libdir=LIBDIR
- eval flag=\"$hardcode_libdir_flag_spec\"
-
- $ECHO " - use the \`$flag' linker flag"
- fi
- if test -n "$admincmds"; then
- $ECHO " - have your system administrator run these commands:$admincmds"
- fi
- if test -f /etc/ld.so.conf; then
- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
- fi
- echo
-
- echo "See any operating system documentation about shared libraries for"
- case $host in
- solaris2.[6789]|solaris2.1[0-9])
- echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
- echo "pages."
- ;;
- *)
- echo "more information, such as the ld(1) and ld.so(8) manual pages."
- ;;
- esac
- echo "----------------------------------------------------------------------"
- fi
- exit $EXIT_SUCCESS
-}
-
-test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
-
-
-# func_mode_install arg...
-func_mode_install ()
-{
- $opt_debug
- # There may be an optional sh(1) argument at the beginning of
- # install_prog (especially on Windows NT).
- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
- # Allow the use of GNU shtool's install command.
- case $nonopt in *shtool*) :;; *) false;; esac; then
- # Aesthetically quote it.
- func_quote_for_eval "$nonopt"
- install_prog="$func_quote_for_eval_result "
- arg=$1
- shift
- else
- install_prog=
- arg=$nonopt
- fi
-
- # The real first argument should be the name of the installation program.
- # Aesthetically quote it.
- func_quote_for_eval "$arg"
- func_append install_prog "$func_quote_for_eval_result"
- install_shared_prog=$install_prog
- case " $install_prog " in
- *[\\\ /]cp\ *) install_cp=: ;;
- *) install_cp=false ;;
- esac
-
- # We need to accept at least all the BSD install flags.
- dest=
- files=
- opts=
- prev=
- install_type=
- isdir=no
- stripme=
- no_mode=:
- for arg
- do
- arg2=
- if test -n "$dest"; then
- func_append files " $dest"
- dest=$arg
- continue
- fi
-
- case $arg in
- -d) isdir=yes ;;
- -f)
- if $install_cp; then :; else
- prev=$arg
- fi
- ;;
- -g | -m | -o)
- prev=$arg
- ;;
- -s)
- stripme=" -s"
- continue
- ;;
- -*)
- ;;
- *)
- # If the previous option needed an argument, then skip it.
- if test -n "$prev"; then
- if test "x$prev" = x-m && test -n "$install_override_mode"; then
- arg2=$install_override_mode
- no_mode=false
- fi
- prev=
- else
- dest=$arg
- continue
- fi
- ;;
- esac
-
- # Aesthetically quote the argument.
- func_quote_for_eval "$arg"
- func_append install_prog " $func_quote_for_eval_result"
- if test -n "$arg2"; then
- func_quote_for_eval "$arg2"
- fi
- func_append install_shared_prog " $func_quote_for_eval_result"
- done
-
- test -z "$install_prog" && \
- func_fatal_help "you must specify an install program"
-
- test -n "$prev" && \
- func_fatal_help "the \`$prev' option requires an argument"
-
- if test -n "$install_override_mode" && $no_mode; then
- if $install_cp; then :; else
- func_quote_for_eval "$install_override_mode"
- func_append install_shared_prog " -m $func_quote_for_eval_result"
- fi
- fi
-
- if test -z "$files"; then
- if test -z "$dest"; then
- func_fatal_help "no file or destination specified"
- else
- func_fatal_help "you must specify a destination"
- fi
- fi
-
- # Strip any trailing slash from the destination.
- func_stripname '' '/' "$dest"
- dest=$func_stripname_result
-
- # Check to see that the destination is a directory.
- test -d "$dest" && isdir=yes
- if test "$isdir" = yes; then
- destdir="$dest"
- destname=
- else
- func_dirname_and_basename "$dest" "" "."
- destdir="$func_dirname_result"
- destname="$func_basename_result"
-
- # Not a directory, so check to see that there is only one file specified.
- set dummy $files; shift
- test "$#" -gt 1 && \
- func_fatal_help "\`$dest' is not a directory"
- fi
- case $destdir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- for file in $files; do
- case $file in
- *.lo) ;;
- *)
- func_fatal_help "\`$destdir' must be an absolute directory name"
- ;;
- esac
- done
- ;;
- esac
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- staticlibs=
- future_libdirs=
- current_libdirs=
- for file in $files; do
-
- # Do each installation.
- case $file in
- *.$libext)
- # Do the static libraries later.
- func_append staticlibs " $file"
- ;;
-
- *.la)
- func_resolve_sysroot "$file"
- file=$func_resolve_sysroot_result
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "\`$file' is not a valid libtool archive"
-
- library_names=
- old_library=
- relink_command=
- func_source "$file"
-
- # Add the libdir to current_libdirs if it is the destination.
- if test "X$destdir" = "X$libdir"; then
- case "$current_libdirs " in
- *" $libdir "*) ;;
- *) func_append current_libdirs " $libdir" ;;
- esac
- else
- # Note the libdir as a future libdir.
- case "$future_libdirs " in
- *" $libdir "*) ;;
- *) func_append future_libdirs " $libdir" ;;
- esac
- fi
-
- func_dirname "$file" "/" ""
- dir="$func_dirname_result"
- func_append dir "$objdir"
-
- if test -n "$relink_command"; then
- # Determine the prefix the user has applied to our future dir.
- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
-
- # Don't allow the user to place us outside of our expected
- # location b/c this prevents finding dependent libraries that
- # are installed to the same prefix.
- # At present, this check doesn't affect windows .dll's that
- # are installed into $libdir/../bin (currently, that works fine)
- # but it's something to keep an eye on.
- test "$inst_prefix_dir" = "$destdir" && \
- func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
-
- if test -n "$inst_prefix_dir"; then
- # Stick the inst_prefix_dir data into the link command.
- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
- else
- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
- fi
-
- func_warning "relinking \`$file'"
- func_show_eval "$relink_command" \
- 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
- fi
-
- # See the names of the shared library.
- set dummy $library_names; shift
- if test -n "$1"; then
- realname="$1"
- shift
-
- srcname="$realname"
- test -n "$relink_command" && srcname="$realname"T
-
- # Install the shared library and build the symlinks.
- func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
- 'exit $?'
- tstripme="$stripme"
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- case $realname in
- *.dll.a)
- tstripme=""
- ;;
- esac
- ;;
- esac
- if test -n "$tstripme" && test -n "$striplib"; then
- func_show_eval "$striplib $destdir/$realname" 'exit $?'
- fi
-
- if test "$#" -gt 0; then
- # Delete the old symlinks, and create new ones.
- # Try `ln -sf' first, because the `ln' binary might depend on
- # the symlink we replace! Solaris /bin/ln does not understand -f,
- # so we also need to try rm && ln -s.
- for linkname
- do
- test "$linkname" != "$realname" \
- && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
- done
- fi
-
- # Do each command in the postinstall commands.
- lib="$destdir/$realname"
- func_execute_cmds "$postinstall_cmds" 'exit $?'
- fi
-
- # Install the pseudo-library for information purposes.
- func_basename "$file"
- name="$func_basename_result"
- instname="$dir/$name"i
- func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
-
- # Maybe install the static library, too.
- test -n "$old_library" && func_append staticlibs " $dir/$old_library"
- ;;
-
- *.lo)
- # Install (i.e. copy) a libtool object.
-
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- func_basename "$file"
- destfile="$func_basename_result"
- destfile="$destdir/$destfile"
- fi
-
- # Deduce the name of the destination old-style object file.
- case $destfile in
- *.lo)
- func_lo2o "$destfile"
- staticdest=$func_lo2o_result
- ;;
- *.$objext)
- staticdest="$destfile"
- destfile=
- ;;
- *)
- func_fatal_help "cannot copy a libtool object to \`$destfile'"
- ;;
- esac
-
- # Install the libtool object if requested.
- test -n "$destfile" && \
- func_show_eval "$install_prog $file $destfile" 'exit $?'
-
- # Install the old object if enabled.
- if test "$build_old_libs" = yes; then
- # Deduce the name of the old-style object file.
- func_lo2o "$file"
- staticobj=$func_lo2o_result
- func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
- fi
- exit $EXIT_SUCCESS
- ;;
-
- *)
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- func_basename "$file"
- destfile="$func_basename_result"
- destfile="$destdir/$destfile"
- fi
-
- # If the file is missing, and there is a .exe on the end, strip it
- # because it is most likely a libtool script we actually want to
- # install
- stripped_ext=""
- case $file in
- *.exe)
- if test ! -f "$file"; then
- func_stripname '' '.exe' "$file"
- file=$func_stripname_result
- stripped_ext=".exe"
- fi
- ;;
- esac
-
- # Do a test to see if this is really a libtool program.
- case $host in
- *cygwin* | *mingw*)
- if func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- wrapper=$func_ltwrapper_scriptname_result
- else
- func_stripname '' '.exe' "$file"
- wrapper=$func_stripname_result
- fi
- ;;
- *)
- wrapper=$file
- ;;
- esac
- if func_ltwrapper_script_p "$wrapper"; then
- notinst_deplibs=
- relink_command=
-
- func_source "$wrapper"
-
- # Check the variables that should have been set.
- test -z "$generated_by_libtool_version" && \
- func_fatal_error "invalid libtool wrapper script \`$wrapper'"
-
- finalize=yes
- for lib in $notinst_deplibs; do
- # Check to see that each library is installed.
- libdir=
- if test -f "$lib"; then
- func_source "$lib"
- fi
- libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
- if test -n "$libdir" && test ! -f "$libfile"; then
- func_warning "\`$lib' has not been installed in \`$libdir'"
- finalize=no
- fi
- done
-
- relink_command=
- func_source "$wrapper"
-
- outputname=
- if test "$fast_install" = no && test -n "$relink_command"; then
- $opt_dry_run || {
- if test "$finalize" = yes; then
- tmpdir=`func_mktempdir`
- func_basename "$file$stripped_ext"
- file="$func_basename_result"
- outputname="$tmpdir/$file"
- # Replace the output file specification.
- relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
-
- $opt_silent || {
- func_quote_for_expand "$relink_command"
- eval "func_echo $func_quote_for_expand_result"
- }
- if eval "$relink_command"; then :
- else
- func_error "error: relink \`$file' with the above command before installing it"
- $opt_dry_run || ${RM}r "$tmpdir"
- continue
- fi
- file="$outputname"
- else
- func_warning "cannot relink \`$file'"
- fi
- }
- else
- # Install the binary that we compiled earlier.
- file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
- fi
- fi
-
- # remove .exe since cygwin /usr/bin/install will append another
- # one anyway
- case $install_prog,$host in
- */usr/bin/install*,*cygwin*)
- case $file:$destfile in
- *.exe:*.exe)
- # this is ok
- ;;
- *.exe:*)
- destfile=$destfile.exe
- ;;
- *:*.exe)
- func_stripname '' '.exe' "$destfile"
- destfile=$func_stripname_result
- ;;
- esac
- ;;
- esac
- func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
- $opt_dry_run || if test -n "$outputname"; then
- ${RM}r "$tmpdir"
- fi
- ;;
- esac
- done
-
- for file in $staticlibs; do
- func_basename "$file"
- name="$func_basename_result"
-
- # Set up the ranlib parameters.
- oldlib="$destdir/$name"
- func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
- tool_oldlib=$func_to_tool_file_result
-
- func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
-
- if test -n "$stripme" && test -n "$old_striplib"; then
- func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
- fi
-
- # Do each command in the postinstall commands.
- func_execute_cmds "$old_postinstall_cmds" 'exit $?'
- done
-
- test -n "$future_libdirs" && \
- func_warning "remember to run \`$progname --finish$future_libdirs'"
-
- if test -n "$current_libdirs"; then
- # Maybe just do a dry run.
- $opt_dry_run && current_libdirs=" -n$current_libdirs"
- exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
- else
- exit $EXIT_SUCCESS
- fi
-}
-
-test "$opt_mode" = install && func_mode_install ${1+"$@"}
-
-
-# func_generate_dlsyms outputname originator pic_p
-# Extract symbols from dlprefiles and create ${outputname}S.o with
-# a dlpreopen symbol table.
-func_generate_dlsyms ()
-{
- $opt_debug
- my_outputname="$1"
- my_originator="$2"
- my_pic_p="${3-no}"
- my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
- my_dlsyms=
-
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- if test -n "$NM" && test -n "$global_symbol_pipe"; then
- my_dlsyms="${my_outputname}S.c"
- else
- func_error "not configured to extract global symbols from dlpreopened files"
- fi
- fi
-
- if test -n "$my_dlsyms"; then
- case $my_dlsyms in
- "") ;;
- *.c)
- # Discover the nlist of each of the dlfiles.
- nlist="$output_objdir/${my_outputname}.nm"
-
- func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
-
- # Parse the name list into a source file.
- func_verbose "creating $output_objdir/$my_dlsyms"
-
- $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
-#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
-#endif
-
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-/* External symbol declarations for the compiler. */\
-"
-
- if test "$dlself" = yes; then
- func_verbose "generating symbol list for \`$output'"
-
- $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
-
- # Add our own program objects to the symbol list.
- progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- for progfile in $progfiles; do
- func_to_tool_file "$progfile" func_convert_file_msys_to_w32
- func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
- $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -n "$exclude_expsyms"; then
- $opt_dry_run || {
- eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- if test -n "$export_symbols_regex"; then
- $opt_dry_run || {
- eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- export_symbols="$output_objdir/$outputname.exp"
- $opt_dry_run || {
- $RM $export_symbols
- eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
- eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- else
- $opt_dry_run || {
- eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
- eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
- eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- fi
- fi
-
- for dlprefile in $dlprefiles; do
- func_verbose "extracting global C symbols from \`$dlprefile'"
- func_basename "$dlprefile"
- name="$func_basename_result"
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- # if an import library, we need to obtain dlname
- if func_win32_import_lib_p "$dlprefile"; then
- func_tr_sh "$dlprefile"
- eval "curr_lafile=\$libfile_$func_tr_sh_result"
- dlprefile_dlbasename=""
- if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
- # Use subshell, to avoid clobbering current variable values
- dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
- if test -n "$dlprefile_dlname" ; then
- func_basename "$dlprefile_dlname"
- dlprefile_dlbasename="$func_basename_result"
- else
- # no lafile. user explicitly requested -dlpreopen <import library>.
- $sharedlib_from_linklib_cmd "$dlprefile"
- dlprefile_dlbasename=$sharedlib_from_linklib_result
- fi
- fi
- $opt_dry_run || {
- if test -n "$dlprefile_dlbasename" ; then
- eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
- else
- func_warning "Could not compute DLL name from $name"
- eval '$ECHO ": $name " >> "$nlist"'
- fi
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
- $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
- }
- else # not an import lib
- $opt_dry_run || {
- eval '$ECHO ": $name " >> "$nlist"'
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
- }
- fi
- ;;
- *)
- $opt_dry_run || {
- eval '$ECHO ": $name " >> "$nlist"'
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
- }
- ;;
- esac
- done
-
- $opt_dry_run || {
- # Make sure we have at least an empty file.
- test -f "$nlist" || : > "$nlist"
-
- if test -n "$exclude_expsyms"; then
- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
- $MV "$nlist"T "$nlist"
- fi
-
- # Try sorting and uniquifying the output.
- if $GREP -v "^: " < "$nlist" |
- if sort -k 3 </dev/null >/dev/null 2>&1; then
- sort -k 3
- else
- sort +2
- fi |
- uniq > "$nlist"S; then
- :
- else
- $GREP -v "^: " < "$nlist" > "$nlist"S
- fi
-
- if test -f "$nlist"S; then
- eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
- else
- echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
- fi
-
- echo >> "$output_objdir/$my_dlsyms" "\
-
-/* The mapping between symbol names and symbols. */
-typedef struct {
- const char *name;
- void *address;
-} lt_dlsymlist;
-extern LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];
-LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[] =
-{\
- { \"$my_originator\", (void *) 0 },"
-
- case $need_lib_prefix in
- no)
- eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
- ;;
- *)
- eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
- ;;
- esac
- echo >> "$output_objdir/$my_dlsyms" "\
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt_${my_prefix}_LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
- } # !$opt_dry_run
-
- pic_flag_for_symtable=
- case "$compile_command " in
- *" -static "*) ;;
- *)
- case $host in
- # compiling the symbol table file with pic_flag works around
- # a FreeBSD bug that causes programs to crash when -lm is
- # linked before any other PIC object. But we must not use
- # pic_flag when linking with -static. The problem exists in
- # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
- *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
- pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
- *-*-hpux*)
- pic_flag_for_symtable=" $pic_flag" ;;
- *)
- if test "X$my_pic_p" != Xno; then
- pic_flag_for_symtable=" $pic_flag"
- fi
- ;;
- esac
- ;;
- esac
- symtab_cflags=
- for arg in $LTCFLAGS; do
- case $arg in
- -pie | -fpie | -fPIE) ;;
- *) func_append symtab_cflags " $arg" ;;
- esac
- done
-
- # Now compile the dynamic symbol file.
- func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
-
- # Clean up the generated files.
- func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
-
- # Transform the symbol file into the correct name.
- symfileobj="$output_objdir/${my_outputname}S.$objext"
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- if test -f "$output_objdir/$my_outputname.def"; then
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- else
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- fi
- ;;
- *)
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- ;;
- esac
- ;;
- *)
- func_fatal_error "unknown suffix for \`$my_dlsyms'"
- ;;
- esac
- else
- # We keep going just in case the user didn't refer to
- # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
- # really was required.
-
- # Nullify the symbol file.
- compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
- fi
-}
-
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-# Despite the name, also deal with 64 bit binaries.
-func_win32_libid ()
-{
- $opt_debug
- win32_libid_type="unknown"
- win32_fileres=`file -L $1 2>/dev/null`
- case $win32_fileres in
- *ar\ archive\ import\ library*) # definitely import
- win32_libid_type="x86 archive import"
- ;;
- *ar\ archive*) # could be an import, or static
- # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
- if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
- $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
- $SED -n -e '
- 1,100{
- / I /{
- s,.*,import,
- p
- q
- }
- }'`
- case $win32_nmres in
- import*) win32_libid_type="x86 archive import";;
- *) win32_libid_type="x86 archive static";;
- esac
- fi
- ;;
- *DLL*)
- win32_libid_type="x86 DLL"
- ;;
- *executable*) # but shell scripts are "executable" too...
- case $win32_fileres in
- *MS\ Windows\ PE\ Intel*)
- win32_libid_type="x86 DLL"
- ;;
- esac
- ;;
- esac
- $ECHO "$win32_libid_type"
-}
-
-# func_cygming_dll_for_implib ARG
-#
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-# Invoked by eval'ing the libtool variable
-# $sharedlib_from_linklib_cmd
-# Result is available in the variable
-# $sharedlib_from_linklib_result
-func_cygming_dll_for_implib ()
-{
- $opt_debug
- sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
-}
-
-# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
-#
-# The is the core of a fallback implementation of a
-# platform-specific function to extract the name of the
-# DLL associated with the specified import library LIBNAME.
-#
-# SECTION_NAME is either .idata$6 or .idata$7, depending
-# on the platform and compiler that created the implib.
-#
-# Echos the name of the DLL associated with the
-# specified import library.
-func_cygming_dll_for_implib_fallback_core ()
-{
- $opt_debug
- match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
- $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
- $SED '/^Contents of section '"$match_literal"':/{
- # Place marker at beginning of archive member dllname section
- s/.*/====MARK====/
- p
- d
- }
- # These lines can sometimes be longer than 43 characters, but
- # are always uninteresting
- /:[ ]*file format pe[i]\{,1\}-/d
- /^In archive [^:]*:/d
- # Ensure marker is printed
- /^====MARK====/p
- # Remove all lines with less than 43 characters
- /^.\{43\}/!d
- # From remaining lines, remove first 43 characters
- s/^.\{43\}//' |
- $SED -n '
- # Join marker and all lines until next marker into a single line
- /^====MARK====/ b para
- H
- $ b para
- b
- :para
- x
- s/\n//g
- # Remove the marker
- s/^====MARK====//
- # Remove trailing dots and whitespace
- s/[\. \t]*$//
- # Print
- /./p' |
- # we now have a list, one entry per line, of the stringified
- # contents of the appropriate section of all members of the
- # archive which possess that section. Heuristic: eliminate
- # all those which have a first or second character that is
- # a '.' (that is, objdump's representation of an unprintable
- # character.) This should work for all archives with less than
- # 0x302f exports -- but will fail for DLLs whose name actually
- # begins with a literal '.' or a single character followed by
- # a '.'.
- #
- # Of those that remain, print the first one.
- $SED -e '/^\./d;/^.\./d;q'
-}
-
-# func_cygming_gnu_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is a GNU/binutils-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_gnu_implib_p ()
-{
- $opt_debug
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
- test -n "$func_cygming_gnu_implib_tmp"
-}
-
-# func_cygming_ms_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is an MS-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_ms_implib_p ()
-{
- $opt_debug
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
- test -n "$func_cygming_ms_implib_tmp"
-}
-
-# func_cygming_dll_for_implib_fallback ARG
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-#
-# This fallback implementation is for use when $DLLTOOL
-# does not support the --identify-strict option.
-# Invoked by eval'ing the libtool variable
-# $sharedlib_from_linklib_cmd
-# Result is available in the variable
-# $sharedlib_from_linklib_result
-func_cygming_dll_for_implib_fallback ()
-{
- $opt_debug
- if func_cygming_gnu_implib_p "$1" ; then
- # binutils import library
- sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
- elif func_cygming_ms_implib_p "$1" ; then
- # ms-generated import library
- sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
- else
- # unknown
- sharedlib_from_linklib_result=""
- fi
-}
-
-
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
- $opt_debug
- f_ex_an_ar_dir="$1"; shift
- f_ex_an_ar_oldlib="$1"
- if test "$lock_old_archive_extraction" = yes; then
- lockfile=$f_ex_an_ar_oldlib.lock
- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
- func_echo "Waiting for $lockfile to be removed"
- sleep 2
- done
- fi
- func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
- 'stat=$?; rm -f "$lockfile"; exit $stat'
- if test "$lock_old_archive_extraction" = yes; then
- $opt_dry_run || rm -f "$lockfile"
- fi
- if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
- fi
-}
-
-
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
- $opt_debug
- my_gentop="$1"; shift
- my_oldlibs=${1+"$@"}
- my_oldobjs=""
- my_xlib=""
- my_xabs=""
- my_xdir=""
-
- for my_xlib in $my_oldlibs; do
- # Extract the objects.
- case $my_xlib in
- [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
- *) my_xabs=`pwd`"/$my_xlib" ;;
- esac
- func_basename "$my_xlib"
- my_xlib="$func_basename_result"
- my_xlib_u=$my_xlib
- while :; do
- case " $extracted_archives " in
- *" $my_xlib_u "*)
- func_arith $extracted_serial + 1
- extracted_serial=$func_arith_result
- my_xlib_u=lt$extracted_serial-$my_xlib ;;
- *) break ;;
- esac
- done
- extracted_archives="$extracted_archives $my_xlib_u"
- my_xdir="$my_gentop/$my_xlib_u"
-
- func_mkdir_p "$my_xdir"
-
- case $host in
- *-darwin*)
- func_verbose "Extracting $my_xabs"
- # Do not bother doing anything if just a dry run
- $opt_dry_run || {
- darwin_orig_dir=`pwd`
- cd $my_xdir || exit $?
- darwin_archive=$my_xabs
- darwin_curdir=`pwd`
- darwin_base_archive=`basename "$darwin_archive"`
- darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
- if test -n "$darwin_arches"; then
- darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
- darwin_arch=
- func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
- for darwin_arch in $darwin_arches ; do
- func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
- $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
- cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
- func_extract_an_archive "`pwd`" "${darwin_base_archive}"
- cd "$darwin_curdir"
- $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
- done # $darwin_arches
- ## Okay now we've a bunch of thin objects, gotta fatten them up :)
- darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
- darwin_file=
- darwin_files=
- for darwin_file in $darwin_filelist; do
- darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
- $LIPO -create -output "$darwin_file" $darwin_files
- done # $darwin_filelist
- $RM -rf unfat-$$
- cd "$darwin_orig_dir"
- else
- cd $darwin_orig_dir
- func_extract_an_archive "$my_xdir" "$my_xabs"
- fi # $darwin_arches
- } # !$opt_dry_run
- ;;
- *)
- func_extract_an_archive "$my_xdir" "$my_xabs"
- ;;
- esac
- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
- done
-
- func_extract_archives_result="$my_oldobjs"
-}
-
-
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable. Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take. If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the $objdir directory. This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
- func_emit_wrapper_arg1=${1-no}
-
- $ECHO "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='$sed_quote_subst'
-
-# Be Bourne compatible
-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs 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
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
- # install mode needs the following variables:
- generated_by_libtool_version='$macro_version'
- notinst_deplibs='$notinst_deplibs'
-else
- # When we are sourced in execute mode, \$file and \$ECHO are already set.
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- file=\"\$0\""
-
- qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
- $ECHO "\
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
- ECHO=\"$qECHO\"
- fi
-
-# Very basic option parsing. These options are (a) specific to
-# the libtool wrapper, (b) are identical between the wrapper
-# /script/ and the wrapper /executable/ which is used only on
-# windows platforms, and (c) all begin with the string "--lt-"
-# (application programs are unlikely to have options which match
-# this pattern).
-#
-# There are only two supported options: --lt-debug and
-# --lt-dump-script. There is, deliberately, no --lt-help.
-#
-# The first argument to this parsing function should be the
-# script's $0 value, followed by "$@".
-lt_option_debug=
-func_parse_lt_options ()
-{
- lt_script_arg0=\$0
- shift
- for lt_opt
- do
- case \"\$lt_opt\" in
- --lt-debug) lt_option_debug=1 ;;
- --lt-dump-script)
- lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
- test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
- lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
- cat \"\$lt_dump_D/\$lt_dump_F\"
- exit 0
- ;;
- --lt-*)
- \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
- exit 1
- ;;
- esac
- done
-
- # Print the debug banner immediately:
- if test -n \"\$lt_option_debug\"; then
- echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
- fi
-}
-
-# Used when --lt-debug. Prints its arguments to stdout
-# (redirection is the responsibility of the caller)
-func_lt_dump_args ()
-{
- lt_dump_args_N=1;
- for lt_arg
- do
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
- lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
- done
-}
-
-# Core function for launching the target application
-func_exec_program_core ()
-{
-"
- case $host in
- # Backslashes separate directories on plain windows
- *-*-mingw | *-*-os2* | *-cegcc*)
- $ECHO "\
- if test -n \"\$lt_option_debug\"; then
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
- func_lt_dump_args \${1+\"\$@\"} 1>&2
- fi
- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
- ;;
-
- *)
- $ECHO "\
- if test -n \"\$lt_option_debug\"; then
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
- func_lt_dump_args \${1+\"\$@\"} 1>&2
- fi
- exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
- ;;
- esac
- $ECHO "\
- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
- exit 1
-}
-
-# A function to encapsulate launching the target application
-# Strips options in the --lt-* namespace from \$@ and
-# launches target application with the remaining arguments.
-func_exec_program ()
-{
- case \" \$* \" in
- *\\ --lt-*)
- for lt_wr_arg
- do
- case \$lt_wr_arg in
- --lt-*) ;;
- *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
- esac
- shift
- done ;;
- esac
- func_exec_program_core \${1+\"\$@\"}
-}
-
- # Parse options
- func_parse_lt_options \"\$0\" \${1+\"\$@\"}
-
- # Find the directory that this script lives in.
- thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
- test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
- while test -n \"\$file\"; do
- destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
-
- # If there was a directory component, then change thisdir.
- if test \"x\$destdir\" != \"x\$file\"; then
- case \"\$destdir\" in
- [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
- *) thisdir=\"\$thisdir/\$destdir\" ;;
- esac
- fi
-
- file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
- file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
- done
-
- # Usually 'no', except on cygwin/mingw when embedded into
- # the cwrapper.
- WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
- if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
- # special case for '.'
- if test \"\$thisdir\" = \".\"; then
- thisdir=\`pwd\`
- fi
- # remove .libs from thisdir
- case \"\$thisdir\" in
- *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
- $objdir ) thisdir=. ;;
- esac
- fi
-
- # Try to get the absolute directory name.
- absdir=\`cd \"\$thisdir\" && pwd\`
- test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
- if test "$fast_install" = yes; then
- $ECHO "\
- program=lt-'$outputname'$exeext
- progdir=\"\$thisdir/$objdir\"
-
- if test ! -f \"\$progdir/\$program\" ||
- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
- test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
- file=\"\$\$-\$program\"
-
- if test ! -d \"\$progdir\"; then
- $MKDIR \"\$progdir\"
- else
- $RM \"\$progdir/\$file\"
- fi"
-
- $ECHO "\
-
- # relink executable if necessary
- if test -n \"\$relink_command\"; then
- if relink_command_output=\`eval \$relink_command 2>&1\`; then :
- else
- $ECHO \"\$relink_command_output\" >&2
- $RM \"\$progdir/\$file\"
- exit 1
- fi
- fi
-
- $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
- { $RM \"\$progdir/\$program\";
- $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
- $RM \"\$progdir/\$file\"
- fi"
- else
- $ECHO "\
- program='$outputname'
- progdir=\"\$thisdir/$objdir\"
-"
- fi
-
- $ECHO "\
-
- if test -f \"\$progdir/\$program\"; then"
-
- # fixup the dll searchpath if we need to.
- #
- # Fix the DLL searchpath if we need to. Do this before prepending
- # to shlibpath, because on Windows, both are PATH and uninstalled
- # libraries must come first.
- if test -n "$dllsearchpath"; then
- $ECHO "\
- # Add the dll search path components to the executable PATH
- PATH=$dllsearchpath:\$PATH
-"
- fi
-
- # Export our shlibpath_var if we have one.
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- $ECHO "\
- # Add our own library path to $shlibpath_var
- $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
- # Some systems cannot cope with colon-terminated $shlibpath_var
- # The second colon is a workaround for a bug in BeOS R4 sed
- $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
-
- export $shlibpath_var
-"
- fi
-
- $ECHO "\
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- # Run the actual program with our arguments.
- func_exec_program \${1+\"\$@\"}
- fi
- else
- # The program doesn't exist.
- \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
- \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
- \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
- exit 1
- fi
-fi\
-"
-}
-
-
-# func_emit_cwrapperexe_src
-# emit the source code for a wrapper executable on stdout
-# Must ONLY be called from within func_mode_link because
-# it depends on a number of variable set therein.
-func_emit_cwrapperexe_src ()
-{
- cat <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
- Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-
- The $output program cannot be directly executed until all the libtool
- libraries that it depends on are installed.
-
- This wrapper executable should never be moved out of the build directory.
- If it is, it will not operate correctly.
-*/
-EOF
- cat <<"EOF"
-#ifdef _MSC_VER
-# define _CRT_SECURE_NO_DEPRECATE 1
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#ifdef _MSC_VER
-# include <direct.h>
-# include <process.h>
-# include <io.h>
-#else
-# include <unistd.h>
-# include <stdint.h>
-# ifdef __CYGWIN__
-# include <io.h>
-# endif
-#endif
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-/* declarations of non-ANSI functions */
-#if defined(__MINGW32__)
-# ifdef __STRICT_ANSI__
-int _putenv (const char *);
-# endif
-#elif defined(__CYGWIN__)
-# ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-# endif
-/* #elif defined (other platforms) ... */
-#endif
-
-/* portability defines, excluding path handling macros */
-#if defined(_MSC_VER)
-# define setmode _setmode
-# define stat _stat
-# define chmod _chmod
-# define getcwd _getcwd
-# define putenv _putenv
-# define S_IXUSR _S_IEXEC
-# ifndef _INTPTR_T_DEFINED
-# define _INTPTR_T_DEFINED
-# define intptr_t int
-# endif
-#elif defined(__MINGW32__)
-# define setmode _setmode
-# define stat _stat
-# define chmod _chmod
-# define getcwd _getcwd
-# define putenv _putenv
-#elif defined(__CYGWIN__)
-# define HAVE_SETENV
-# define FOPEN_WB "wb"
-/* #elif defined (other platforms) ... */
-#endif
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef S_IXOTH
-# define S_IXOTH 0
-#endif
-#ifndef S_IXGRP
-# define S_IXGRP 0
-#endif
-
-/* path handling portability macros */
-#ifndef DIR_SEPARATOR
-# define DIR_SEPARATOR '/'
-# define PATH_SEPARATOR ':'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
- defined (__OS2__)
-# define HAVE_DOS_BASED_FILE_SYSTEM
-# define FOPEN_WB "wb"
-# ifndef DIR_SEPARATOR_2
-# define DIR_SEPARATOR_2 '\\'
-# endif
-# ifndef PATH_SEPARATOR_2
-# define PATH_SEPARATOR_2 ';'
-# endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
- (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#ifndef PATH_SEPARATOR_2
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-#else /* PATH_SEPARATOR_2 */
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-#endif /* PATH_SEPARATOR_2 */
-
-#ifndef FOPEN_WB
-# define FOPEN_WB "w"
-#endif
-#ifndef _O_BINARY
-# define _O_BINARY 0
-#endif
-
-#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
- if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-#if defined(LT_DEBUGWRAPPER)
-static int lt_debug = 1;
-#else
-static int lt_debug = 0;
-#endif
-
-const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
-
-void *xmalloc (size_t num);
-char *xstrdup (const char *string);
-const char *base_name (const char *name);
-char *find_executable (const char *wrapper);
-char *chase_symlinks (const char *pathspec);
-int make_executable (const char *path);
-int check_executable (const char *path);
-char *strendzap (char *str, const char *pat);
-void lt_debugprintf (const char *file, int line, const char *fmt, ...);
-void lt_fatal (const char *file, int line, const char *message, ...);
-static const char *nonnull (const char *s);
-static const char *nonempty (const char *s);
-void lt_setenv (const char *name, const char *value);
-char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_update_exe_path (const char *name, const char *value);
-void lt_update_lib_path (const char *name, const char *value);
-char **prepare_spawn (char **argv);
-void lt_dump_script (FILE *f);
-EOF
-
- cat <<EOF
-volatile const char * MAGIC_EXE = "$magic_exe";
-const char * LIB_PATH_VARNAME = "$shlibpath_var";
-EOF
-
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- func_to_host_path "$temp_rpath"
- cat <<EOF
-const char * LIB_PATH_VALUE = "$func_to_host_path_result";
-EOF
- else
- cat <<"EOF"
-const char * LIB_PATH_VALUE = "";
-EOF
- fi
-
- if test -n "$dllsearchpath"; then
- func_to_host_path "$dllsearchpath:"
- cat <<EOF
-const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE = "$func_to_host_path_result";
-EOF
- else
- cat <<"EOF"
-const char * EXE_PATH_VARNAME = "";
-const char * EXE_PATH_VALUE = "";
-EOF
- fi
-
- if test "$fast_install" = yes; then
- cat <<EOF
-const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
-EOF
- else
- cat <<EOF
-const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
-EOF
- fi
-
-
- cat <<"EOF"
-
-#define LTWRAPPER_OPTION_PREFIX "--lt-"
-
-static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
-static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
-
-int
-main (int argc, char *argv[])
-{
- char **newargz;
- int newargc;
- char *tmp_pathspec;
- char *actual_cwrapper_path;
- char *actual_cwrapper_name;
- char *target_name;
- char *lt_argv_zero;
- intptr_t rval = 127;
-
- int i;
-
- program_name = (char *) xstrdup (base_name (argv[0]));
- newargz = XMALLOC (char *, argc + 1);
-
- /* very simple arg parsing; don't want to rely on getopt
- * also, copy all non cwrapper options to newargz, except
- * argz[0], which is handled differently
- */
- newargc=0;
- for (i = 1; i < argc; i++)
- {
- if (strcmp (argv[i], dumpscript_opt) == 0)
- {
-EOF
- case "$host" in
- *mingw* | *cygwin* )
- # make stdout use "unix" line endings
- echo " setmode(1,_O_BINARY);"
- ;;
- esac
-
- cat <<"EOF"
- lt_dump_script (stdout);
- return 0;
- }
- if (strcmp (argv[i], debug_opt) == 0)
- {
- lt_debug = 1;
- continue;
- }
- if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
- {
- /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
- namespace, but it is not one of the ones we know about and
- have already dealt with, above (inluding dump-script), then
- report an error. Otherwise, targets might begin to believe
- they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
- namespace. The first time any user complains about this, we'll
- need to make LTWRAPPER_OPTION_PREFIX a configure-time option
- or a configure.ac-settable value.
- */
- lt_fatal (__FILE__, __LINE__,
- "unrecognized %s option: '%s'",
- ltwrapper_option_prefix, argv[i]);
- }
- /* otherwise ... */
- newargz[++newargc] = xstrdup (argv[i]);
- }
- newargz[++newargc] = NULL;
-
-EOF
- cat <<EOF
- /* The GNU banner must be the first non-error debug message */
- lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
-EOF
- cat <<"EOF"
- lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
- lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
-
- tmp_pathspec = find_executable (argv[0]);
- if (tmp_pathspec == NULL)
- lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
- lt_debugprintf (__FILE__, __LINE__,
- "(main) found exe (before symlink chase) at: %s\n",
- tmp_pathspec);
-
- actual_cwrapper_path = chase_symlinks (tmp_pathspec);
- lt_debugprintf (__FILE__, __LINE__,
- "(main) found exe (after symlink chase) at: %s\n",
- actual_cwrapper_path);
- XFREE (tmp_pathspec);
-
- actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
- strendzap (actual_cwrapper_path, actual_cwrapper_name);
-
- /* wrapper name transforms */
- strendzap (actual_cwrapper_name, ".exe");
- tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
- XFREE (actual_cwrapper_name);
- actual_cwrapper_name = tmp_pathspec;
- tmp_pathspec = 0;
-
- /* target_name transforms -- use actual target program name; might have lt- prefix */
- target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
- strendzap (target_name, ".exe");
- tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
- XFREE (target_name);
- target_name = tmp_pathspec;
- tmp_pathspec = 0;
-
- lt_debugprintf (__FILE__, __LINE__,
- "(main) libtool target name: %s\n",
- target_name);
-EOF
-
- cat <<EOF
- newargz[0] =
- XMALLOC (char, (strlen (actual_cwrapper_path) +
- strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
- strcpy (newargz[0], actual_cwrapper_path);
- strcat (newargz[0], "$objdir");
- strcat (newargz[0], "/");
-EOF
-
- cat <<"EOF"
- /* stop here, and copy so we don't have to do this twice */
- tmp_pathspec = xstrdup (newargz[0]);
-
- /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
- strcat (newargz[0], actual_cwrapper_name);
-
- /* DO want the lt- prefix here if it exists, so use target_name */
- lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
- XFREE (tmp_pathspec);
- tmp_pathspec = NULL;
-EOF
-
- case $host_os in
- mingw*)
- cat <<"EOF"
- {
- char* p;
- while ((p = strchr (newargz[0], '\\')) != NULL)
- {
- *p = '/';
- }
- while ((p = strchr (lt_argv_zero, '\\')) != NULL)
- {
- *p = '/';
- }
- }
-EOF
- ;;
- esac
-
- cat <<"EOF"
- XFREE (target_name);
- XFREE (actual_cwrapper_path);
- XFREE (actual_cwrapper_name);
-
- lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
- lt_setenv ("DUALCASE", "1"); /* for MSK sh */
- /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
- be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
- because on Windows, both *_VARNAMEs are PATH but uninstalled
- libraries must come first. */
- lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
- lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
-
- lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
- nonnull (lt_argv_zero));
- for (i = 0; i < newargc; i++)
- {
- lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
- i, nonnull (newargz[i]));
- }
-
-EOF
-
- case $host_os in
- mingw*)
- cat <<"EOF"
- /* execv doesn't actually work on mingw as expected on unix */
- newargz = prepare_spawn (newargz);
- rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
- if (rval == -1)
- {
- /* failed to start process */
- lt_debugprintf (__FILE__, __LINE__,
- "(main) failed to launch target \"%s\": %s\n",
- lt_argv_zero, nonnull (strerror (errno)));
- return 127;
- }
- return rval;
-EOF
- ;;
- *)
- cat <<"EOF"
- execv (lt_argv_zero, newargz);
- return rval; /* =127, but avoids unused variable warning */
-EOF
- ;;
- esac
-
- cat <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
- void *p = (void *) malloc (num);
- if (!p)
- lt_fatal (__FILE__, __LINE__, "memory exhausted");
-
- return p;
-}
-
-char *
-xstrdup (const char *string)
-{
- return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
- string) : NULL;
-}
-
-const char *
-base_name (const char *name)
-{
- const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- /* Skip over the disk name in MSDOS pathnames. */
- if (isalpha ((unsigned char) name[0]) && name[1] == ':')
- name += 2;
-#endif
-
- for (base = name; *name; name++)
- if (IS_DIR_SEPARATOR (*name))
- base = name + 1;
- return base;
-}
-
-int
-check_executable (const char *path)
-{
- struct stat st;
-
- lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
- nonempty (path));
- if ((!path) || (!*path))
- return 0;
-
- if ((stat (path, &st) >= 0)
- && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
- return 1;
- else
- return 0;
-}
-
-int
-make_executable (const char *path)
-{
- int rval = 0;
- struct stat st;
-
- lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
- nonempty (path));
- if ((!path) || (!*path))
- return 0;
-
- if (stat (path, &st) >= 0)
- {
- rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
- }
- return rval;
-}
-
-/* Searches for the full path of the wrapper. Returns
- newly allocated full path name if found, NULL otherwise
- Does not chase symlinks, even on platforms that support them.
-*/
-char *
-find_executable (const char *wrapper)
-{
- int has_slash = 0;
- const char *p;
- const char *p_next;
- /* static buffer for getcwd */
- char tmp[LT_PATHMAX + 1];
- int tmp_len;
- char *concat_name;
-
- lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
- nonempty (wrapper));
-
- if ((wrapper == NULL) || (*wrapper == '\0'))
- return NULL;
-
- /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
- {
- concat_name = xstrdup (wrapper);
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
- else
- {
-#endif
- if (IS_DIR_SEPARATOR (wrapper[0]))
- {
- concat_name = xstrdup (wrapper);
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- }
-#endif
-
- for (p = wrapper; *p; p++)
- if (*p == '/')
- {
- has_slash = 1;
- break;
- }
- if (!has_slash)
- {
- /* no slashes; search PATH */
- const char *path = getenv ("PATH");
- if (path != NULL)
- {
- for (p = path; *p; p = p_next)
- {
- const char *q;
- size_t p_len;
- for (q = p; *q; q++)
- if (IS_PATH_SEPARATOR (*q))
- break;
- p_len = q - p;
- p_next = (*q == '\0' ? q : q + 1);
- if (p_len == 0)
- {
- /* empty path: current directory */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
- nonnull (strerror (errno)));
- tmp_len = strlen (tmp);
- concat_name =
- XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
- concat_name[tmp_len] = '/';
- strcpy (concat_name + tmp_len + 1, wrapper);
- }
- else
- {
- concat_name =
- XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, p, p_len);
- concat_name[p_len] = '/';
- strcpy (concat_name + p_len + 1, wrapper);
- }
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
- }
- /* not found in PATH; assume curdir */
- }
- /* Relative path | not found in path: prepend cwd */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
- nonnull (strerror (errno)));
- tmp_len = strlen (tmp);
- concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
- concat_name[tmp_len] = '/';
- strcpy (concat_name + tmp_len + 1, wrapper);
-
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- return NULL;
-}
-
-char *
-chase_symlinks (const char *pathspec)
-{
-#ifndef S_ISLNK
- return xstrdup (pathspec);
-#else
- char buf[LT_PATHMAX];
- struct stat s;
- char *tmp_pathspec = xstrdup (pathspec);
- char *p;
- int has_symlinks = 0;
- while (strlen (tmp_pathspec) && !has_symlinks)
- {
- lt_debugprintf (__FILE__, __LINE__,
- "checking path component for symlinks: %s\n",
- tmp_pathspec);
- if (lstat (tmp_pathspec, &s) == 0)
- {
- if (S_ISLNK (s.st_mode) != 0)
- {
- has_symlinks = 1;
- break;
- }
-
- /* search backwards for last DIR_SEPARATOR */
- p = tmp_pathspec + strlen (tmp_pathspec) - 1;
- while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
- p--;
- if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
- {
- /* no more DIR_SEPARATORS left */
- break;
- }
- *p = '\0';
- }
- else
- {
- lt_fatal (__FILE__, __LINE__,
- "error accessing file \"%s\": %s",
- tmp_pathspec, nonnull (strerror (errno)));
- }
- }
- XFREE (tmp_pathspec);
-
- if (!has_symlinks)
- {
- return xstrdup (pathspec);
- }
-
- tmp_pathspec = realpath (pathspec, buf);
- if (tmp_pathspec == 0)
- {
- lt_fatal (__FILE__, __LINE__,
- "could not follow symlinks for %s", pathspec);
- }
- return xstrdup (tmp_pathspec);
-#endif
-}
-
-char *
-strendzap (char *str, const char *pat)
-{
- size_t len, patlen;
-
- assert (str != NULL);
- assert (pat != NULL);
-
- len = strlen (str);
- patlen = strlen (pat);
-
- if (patlen <= len)
- {
- str += len - patlen;
- if (strcmp (str, pat) == 0)
- *str = '\0';
- }
- return str;
-}
-
-void
-lt_debugprintf (const char *file, int line, const char *fmt, ...)
-{
- va_list args;
- if (lt_debug)
- {
- (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
- va_start (args, fmt);
- (void) vfprintf (stderr, fmt, args);
- va_end (args);
- }
-}
-
-static void
-lt_error_core (int exit_status, const char *file,
- int line, const char *mode,
- const char *message, va_list ap)
-{
- fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
- vfprintf (stderr, message, ap);
- fprintf (stderr, ".\n");
-
- if (exit_status >= 0)
- exit (exit_status);
-}
-
-void
-lt_fatal (const char *file, int line, const char *message, ...)
-{
- va_list ap;
- va_start (ap, message);
- lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
- va_end (ap);
-}
-
-static const char *
-nonnull (const char *s)
-{
- return s ? s : "(null)";
-}
-
-static const char *
-nonempty (const char *s)
-{
- return (s && !*s) ? "(empty)" : nonnull (s);
-}
-
-void
-lt_setenv (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_setenv) setting '%s' to '%s'\n",
- nonnull (name), nonnull (value));
- {
-#ifdef HAVE_SETENV
- /* always make a copy, for consistency with !HAVE_SETENV */
- char *str = xstrdup (value);
- setenv (name, str, 1);
-#else
- int len = strlen (name) + 1 + strlen (value) + 1;
- char *str = XMALLOC (char, len);
- sprintf (str, "%s=%s", name, value);
- if (putenv (str) != EXIT_SUCCESS)
- {
- XFREE (str);
- }
-#endif
- }
-}
-
-char *
-lt_extend_str (const char *orig_value, const char *add, int to_end)
-{
- char *new_value;
- if (orig_value && *orig_value)
- {
- int orig_value_len = strlen (orig_value);
- int add_len = strlen (add);
- new_value = XMALLOC (char, add_len + orig_value_len + 1);
- if (to_end)
- {
- strcpy (new_value, orig_value);
- strcpy (new_value + orig_value_len, add);
- }
- else
- {
- strcpy (new_value, add);
- strcpy (new_value + add_len, orig_value);
- }
- }
- else
- {
- new_value = xstrdup (add);
- }
- return new_value;
-}
-
-void
-lt_update_exe_path (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
- nonnull (name), nonnull (value));
-
- if (name && *name && value && *value)
- {
- char *new_value = lt_extend_str (getenv (name), value, 0);
- /* some systems can't cope with a ':'-terminated path #' */
- int len = strlen (new_value);
- while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
- {
- new_value[len-1] = '\0';
- }
- lt_setenv (name, new_value);
- XFREE (new_value);
- }
-}
-
-void
-lt_update_lib_path (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
- nonnull (name), nonnull (value));
-
- if (name && *name && value && *value)
- {
- char *new_value = lt_extend_str (getenv (name), value, 0);
- lt_setenv (name, new_value);
- XFREE (new_value);
- }
-}
-
-EOF
- case $host_os in
- mingw*)
- cat <<"EOF"
-
-/* Prepares an argument vector before calling spawn().
- Note that spawn() does not by itself call the command interpreter
- (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
- ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- GetVersionEx(&v);
- v.dwPlatformId == VER_PLATFORM_WIN32_NT;
- }) ? "cmd.exe" : "command.com").
- Instead it simply concatenates the arguments, separated by ' ', and calls
- CreateProcess(). We must quote the arguments since Win32 CreateProcess()
- interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
- special way:
- - Space and tab are interpreted as delimiters. They are not treated as
- delimiters if they are surrounded by double quotes: "...".
- - Unescaped double quotes are removed from the input. Their only effect is
- that within double quotes, space and tab are treated like normal
- characters.
- - Backslashes not followed by double quotes are not special.
- - But 2*n+1 backslashes followed by a double quote become
- n backslashes followed by a double quote (n >= 0):
- \" -> "
- \\\" -> \"
- \\\\\" -> \\"
- */
-#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-char **
-prepare_spawn (char **argv)
-{
- size_t argc;
- char **new_argv;
- size_t i;
-
- /* Count number of arguments. */
- for (argc = 0; argv[argc] != NULL; argc++)
- ;
-
- /* Allocate new argument vector. */
- new_argv = XMALLOC (char *, argc + 1);
-
- /* Put quoted arguments into the new argument vector. */
- for (i = 0; i < argc; i++)
- {
- const char *string = argv[i];
-
- if (string[0] == '\0')
- new_argv[i] = xstrdup ("\"\"");
- else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
- {
- int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
- size_t length;
- unsigned int backslashes;
- const char *s;
- char *quoted_string;
- char *p;
-
- length = 0;
- backslashes = 0;
- if (quote_around)
- length++;
- for (s = string; *s != '\0'; s++)
- {
- char c = *s;
- if (c == '"')
- length += backslashes + 1;
- length++;
- if (c == '\\')
- backslashes++;
- else
- backslashes = 0;
- }
- if (quote_around)
- length += backslashes + 1;
-
- quoted_string = XMALLOC (char, length + 1);
-
- p = quoted_string;
- backslashes = 0;
- if (quote_around)
- *p++ = '"';
- for (s = string; *s != '\0'; s++)
- {
- char c = *s;
- if (c == '"')
- {
- unsigned int j;
- for (j = backslashes + 1; j > 0; j--)
- *p++ = '\\';
- }
- *p++ = c;
- if (c == '\\')
- backslashes++;
- else
- backslashes = 0;
- }
- if (quote_around)
- {
- unsigned int j;
- for (j = backslashes; j > 0; j--)
- *p++ = '\\';
- *p++ = '"';
- }
- *p = '\0';
-
- new_argv[i] = quoted_string;
- }
- else
- new_argv[i] = (char *) string;
- }
- new_argv[argc] = NULL;
-
- return new_argv;
-}
-EOF
- ;;
- esac
-
- cat <<"EOF"
-void lt_dump_script (FILE* f)
-{
-EOF
- func_emit_wrapper yes |
- $SED -n -e '
-s/^\(.\{79\}\)\(..*\)/\1\
-\2/
-h
-s/\([\\"]\)/\\\1/g
-s/$/\\n/
-s/\([^\n]*\).*/ fputs ("\1", f);/p
-g
-D'
- cat <<"EOF"
-}
-EOF
-}
-# end: func_emit_cwrapperexe_src
-
-# func_win32_import_lib_p ARG
-# True if ARG is an import lib, as indicated by $file_magic_cmd
-func_win32_import_lib_p ()
-{
- $opt_debug
- case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
- *import*) : ;;
- *) false ;;
- esac
-}
-
-# func_mode_link arg...
-func_mode_link ()
-{
- $opt_debug
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- # It is impossible to link a dll without this setting, and
- # we shouldn't force the makefile maintainer to figure out
- # which system we are compiling for in order to pass an extra
- # flag for every libtool invocation.
- # allow_undefined=no
-
- # FIXME: Unfortunately, there are problems with the above when trying
- # to make a dll which has undefined symbols, in which case not
- # even a static library is built. For now, we need to specify
- # -no-undefined on the libtool link line when we can be certain
- # that all symbols are satisfied, otherwise we get a static library.
- allow_undefined=yes
- ;;
- *)
- allow_undefined=yes
- ;;
- esac
- libtool_args=$nonopt
- base_compile="$nonopt $@"
- compile_command=$nonopt
- finalize_command=$nonopt
-
- compile_rpath=
- finalize_rpath=
- compile_shlibpath=
- finalize_shlibpath=
- convenience=
- old_convenience=
- deplibs=
- old_deplibs=
- compiler_flags=
- linker_flags=
- dllsearchpath=
- lib_search_path=`pwd`
- inst_prefix_dir=
- new_inherited_linker_flags=
-
- avoid_version=no
- bindir=
- dlfiles=
- dlprefiles=
- dlself=no
- export_dynamic=no
- export_symbols=
- export_symbols_regex=
- generated=
- libobjs=
- ltlibs=
- module=no
- no_install=no
- objs=
- non_pic_objects=
- precious_files_regex=
- prefer_static_libs=no
- preload=no
- prev=
- prevarg=
- release=
- rpath=
- xrpath=
- perm_rpath=
- temp_rpath=
- thread_safe=no
- vinfo=
- vinfo_number=no
- weak_libs=
- single_module="${wl}-single_module"
- func_infer_tag $base_compile
-
- # We need to know -static, to get the right output filenames.
- for arg
- do
- case $arg in
- -shared)
- test "$build_libtool_libs" != yes && \
- func_fatal_configuration "can not build a shared library"
- build_old_libs=no
- break
- ;;
- -all-static | -static | -static-libtool-libs)
- case $arg in
- -all-static)
- if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
- func_warning "complete static linking is impossible in this configuration"
- fi
- if test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- -static)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=built
- ;;
- -static-libtool-libs)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- esac
- build_libtool_libs=no
- build_old_libs=yes
- break
- ;;
- esac
- done
-
- # See if our shared archives depend on static archives.
- test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
- # Go through the arguments, transforming them on the way.
- while test "$#" -gt 0; do
- arg="$1"
- shift
- func_quote_for_eval "$arg"
- qarg=$func_quote_for_eval_unquoted_result
- func_append libtool_args " $func_quote_for_eval_result"
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- case $prev in
- output)
- func_append compile_command " @OUTPUT@"
- func_append finalize_command " @OUTPUT@"
- ;;
- esac
-
- case $prev in
- bindir)
- bindir="$arg"
- prev=
- continue
- ;;
- dlfiles|dlprefiles)
- if test "$preload" = no; then
- # Add the symbol object into the linking commands.
- func_append compile_command " @SYMFILE@"
- func_append finalize_command " @SYMFILE@"
- preload=yes
- fi
- case $arg in
- *.la | *.lo) ;; # We handle these cases below.
- force)
- if test "$dlself" = no; then
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- self)
- if test "$prev" = dlprefiles; then
- dlself=yes
- elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
- dlself=yes
- else
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- *)
- if test "$prev" = dlfiles; then
- func_append dlfiles " $arg"
- else
- func_append dlprefiles " $arg"
- fi
- prev=
- continue
- ;;
- esac
- ;;
- expsyms)
- export_symbols="$arg"
- test -f "$arg" \
- || func_fatal_error "symbol file \`$arg' does not exist"
- prev=
- continue
- ;;
- expsyms_regex)
- export_symbols_regex="$arg"
- prev=
- continue
- ;;
- framework)
- case $host in
- *-*-darwin*)
- case "$deplibs " in
- *" $qarg.ltframework "*) ;;
- *) func_append deplibs " $qarg.ltframework" # this is fixed later
- ;;
- esac
- ;;
- esac
- prev=
- continue
- ;;
- inst_prefix)
- inst_prefix_dir="$arg"
- prev=
- continue
- ;;
- objectlist)
- if test -f "$arg"; then
- save_arg=$arg
- moreargs=
- for fil in `cat "$save_arg"`
- do
-# func_append moreargs " $fil"
- arg=$fil
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if func_lalib_unsafe_p "$arg"; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- func_source "$arg"
-
- if test -z "$pic_object" ||
- test -z "$non_pic_object" ||
- test "$pic_object" = none &&
- test "$non_pic_object" = none; then
- func_fatal_error "cannot find name of object for \`$arg'"
- fi
-
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- func_append dlfiles " $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- func_append dlprefiles " $pic_object"
- prev=
- fi
-
- # A PIC object.
- func_append libobjs " $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- func_append non_pic_objects " $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- else
- # If the PIC object exists, use it instead.
- # $xdir was prepended to $pic_object above.
- non_pic_object="$pic_object"
- func_append non_pic_objects " $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if $opt_dry_run; then
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- func_lo2o "$arg"
- pic_object=$xdir$objdir/$func_lo2o_result
- non_pic_object=$xdir$func_lo2o_result
- func_append libobjs " $pic_object"
- func_append non_pic_objects " $non_pic_object"
- else
- func_fatal_error "\`$arg' is not a valid libtool object"
- fi
- fi
- done
- else
- func_fatal_error "link input file \`$arg' does not exist"
- fi
- arg=$save_arg
- prev=
- continue
- ;;
- precious_regex)
- precious_files_regex="$arg"
- prev=
- continue
- ;;
- release)
- release="-$arg"
- prev=
- continue
- ;;
- rpath | xrpath)
- # We need an absolute path.
- case $arg in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- if test "$prev" = rpath; then
- case "$rpath " in
- *" $arg "*) ;;
- *) func_append rpath " $arg" ;;
- esac
- else
- case "$xrpath " in
- *" $arg "*) ;;
- *) func_append xrpath " $arg" ;;
- esac
- fi
- prev=
- continue
- ;;
- shrext)
- shrext_cmds="$arg"
- prev=
- continue
- ;;
- weak)
- func_append weak_libs " $arg"
- prev=
- continue
- ;;
- xcclinker)
- func_append linker_flags " $qarg"
- func_append compiler_flags " $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xcompiler)
- func_append compiler_flags " $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xlinker)
- func_append linker_flags " $qarg"
- func_append compiler_flags " $wl$qarg"
- prev=
- func_append compile_command " $wl$qarg"
- func_append finalize_command " $wl$qarg"
- continue
- ;;
- *)
- eval "$prev=\"\$arg\""
- prev=
- continue
- ;;
- esac
- fi # test -n "$prev"
-
- prevarg="$arg"
-
- case $arg in
- -all-static)
- if test -n "$link_static_flag"; then
- # See comment for -static flag below, for more details.
- func_append compile_command " $link_static_flag"
- func_append finalize_command " $link_static_flag"
- fi
- continue
- ;;
-
- -allow-undefined)
- # FIXME: remove this flag sometime in the future.
- func_fatal_error "\`-allow-undefined' must not be used because it is the default"
- ;;
-
- -avoid-version)
- avoid_version=yes
- continue
- ;;
-
- -bindir)
- prev=bindir
- continue
- ;;
-
- -dlopen)
- prev=dlfiles
- continue
- ;;
-
- -dlpreopen)
- prev=dlprefiles
- continue
- ;;
-
- -export-dynamic)
- export_dynamic=yes
- continue
- ;;
-
- -export-symbols | -export-symbols-regex)
- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
- func_fatal_error "more than one -exported-symbols argument is not allowed"
- fi
- if test "X$arg" = "X-export-symbols"; then
- prev=expsyms
- else
- prev=expsyms_regex
- fi
- continue
- ;;
-
- -framework)
- prev=framework
- continue
- ;;
-
- -inst-prefix-dir)
- prev=inst_prefix
- continue
- ;;
-
- # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
- # so, if we see these flags be careful not to treat them like -L
- -L[A-Z][A-Z]*:*)
- case $with_gcc/$host in
- no/*-*-irix* | /*-*-irix*)
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- ;;
- esac
- continue
- ;;
-
- -L*)
- func_stripname "-L" '' "$arg"
- if test -z "$func_stripname_result"; then
- if test "$#" -gt 0; then
- func_fatal_error "require no space between \`-L' and \`$1'"
- else
- func_fatal_error "need path for \`-L' option"
- fi
- fi
- func_resolve_sysroot "$func_stripname_result"
- dir=$func_resolve_sysroot_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- absdir=`cd "$dir" && pwd`
- test -z "$absdir" && \
- func_fatal_error "cannot determine absolute directory name of \`$dir'"
- dir="$absdir"
- ;;
- esac
- case "$deplibs " in
- *" -L$dir "* | *" $arg "*)
- # Will only happen for absolute or sysroot arguments
- ;;
- *)
- # Preserve sysroot, but never include relative directories
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
- *) func_append deplibs " -L$dir" ;;
- esac
- func_append lib_search_path " $dir"
- ;;
- esac
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$dir:"*) ;;
- ::) dllsearchpath=$dir;;
- *) func_append dllsearchpath ":$dir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
- *) func_append dllsearchpath ":$testbindir";;
- esac
- ;;
- esac
- continue
- ;;
-
- -l*)
- if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
- # These systems don't actually have a C or math library (as such)
- continue
- ;;
- *-*-os2*)
- # These systems don't actually have a C library (as such)
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C and math libraries are in the System framework
- func_append deplibs " System.ltframework"
- continue
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
- # Causes problems with __ctype
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
- # Compiler inserts libc in the correct place for threads to work
- test "X$arg" = "X-lc" && continue
- ;;
- esac
- elif test "X$arg" = "X-lc_r"; then
- case $host in
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc_r directly, use -pthread flag.
- continue
- ;;
- esac
- fi
- func_append deplibs " $arg"
- continue
- ;;
-
- -module)
- module=yes
- continue
- ;;
-
- # Tru64 UNIX uses -model [arg] to determine the layout of C++
- # classes, name mangling, and exception handling.
- # Darwin uses the -arch flag to determine output architecture.
- -model|-arch|-isysroot|--sysroot)
- func_append compiler_flags " $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- prev=xcompiler
- continue
- ;;
-
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
- |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
- func_append compiler_flags " $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- case "$new_inherited_linker_flags " in
- *" $arg "*) ;;
- * ) func_append new_inherited_linker_flags " $arg" ;;
- esac
- continue
- ;;
-
- -multi_module)
- single_module="${wl}-multi_module"
- continue
- ;;
-
- -no-fast-install)
- fast_install=no
- continue
- ;;
-
- -no-install)
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
- # The PATH hackery in wrapper scripts is required on Windows
- # and Darwin in order for the loader to find any dlls it needs.
- func_warning "\`-no-install' is ignored for $host"
- func_warning "assuming \`-no-fast-install' instead"
- fast_install=no
- ;;
- *) no_install=yes ;;
- esac
- continue
- ;;
-
- -no-undefined)
- allow_undefined=no
- continue
- ;;
-
- -objectlist)
- prev=objectlist
- continue
- ;;
-
- -o) prev=output ;;
-
- -precious-files-regex)
- prev=precious_regex
- continue
- ;;
-
- -release)
- prev=release
- continue
- ;;
-
- -rpath)
- prev=rpath
- continue
- ;;
-
- -R)
- prev=xrpath
- continue
- ;;
-
- -R*)
- func_stripname '-R' '' "$arg"
- dir=$func_stripname_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- =*)
- func_stripname '=' '' "$dir"
- dir=$lt_sysroot$func_stripname_result
- ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- case "$xrpath " in
- *" $dir "*) ;;
- *) func_append xrpath " $dir" ;;
- esac
- continue
- ;;
-
- -shared)
- # The effects of -shared are defined in a previous loop.
- continue
- ;;
-
- -shrext)
- prev=shrext
- continue
- ;;
-
- -static | -static-libtool-libs)
- # The effects of -static are defined in a previous loop.
- # We used to do the same as -all-static on platforms that
- # didn't have a PIC flag, but the assumption that the effects
- # would be equivalent was wrong. It would break on at least
- # Digital Unix and AIX.
- continue
- ;;
-
- -thread-safe)
- thread_safe=yes
- continue
- ;;
-
- -version-info)
- prev=vinfo
- continue
- ;;
-
- -version-number)
- prev=vinfo
- vinfo_number=yes
- continue
- ;;
-
- -weak)
- prev=weak
- continue
- ;;
-
- -Wc,*)
- func_stripname '-Wc,' '' "$arg"
- args=$func_stripname_result
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$flag"
- func_append arg " $func_quote_for_eval_result"
- func_append compiler_flags " $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$arg"
- arg=$func_stripname_result
- ;;
-
- -Wl,*)
- func_stripname '-Wl,' '' "$arg"
- args=$func_stripname_result
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$flag"
- func_append arg " $wl$func_quote_for_eval_result"
- func_append compiler_flags " $wl$func_quote_for_eval_result"
- func_append linker_flags " $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$arg"
- arg=$func_stripname_result
- ;;
-
- -Xcompiler)
- prev=xcompiler
- continue
- ;;
-
- -Xlinker)
- prev=xlinker
- continue
- ;;
-
- -XCClinker)
- prev=xcclinker
- continue
- ;;
-
- # -msg_* for osf cc
- -msg_*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
-
- # Flags to be passed through unchanged, with rationale:
- # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
- # -r[0-9][0-9]* specify processor for the SGI compiler
- # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
- # +DA*, +DD* enable 64-bit mode for the HP compiler
- # -q* compiler args for the IBM compiler
- # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
- # -F/path path to uninstalled frameworks, gcc on darwin
- # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
- # @file GCC response files
- # -tp=* Portland pgcc target processor selection
- # --sysroot=* for sysroot support
- # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
- -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- func_append compiler_flags " $arg"
- continue
- ;;
-
- # Some other compiler flag.
- -* | +*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
-
- *.$objext)
- # A standard object.
- func_append objs " $arg"
- ;;
-
- *.lo)
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if func_lalib_unsafe_p "$arg"; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- func_source "$arg"
-
- if test -z "$pic_object" ||
- test -z "$non_pic_object" ||
- test "$pic_object" = none &&
- test "$non_pic_object" = none; then
- func_fatal_error "cannot find name of object for \`$arg'"
- fi
-
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- func_append dlfiles " $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- func_append dlprefiles " $pic_object"
- prev=
- fi
-
- # A PIC object.
- func_append libobjs " $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- func_append non_pic_objects " $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- else
- # If the PIC object exists, use it instead.
- # $xdir was prepended to $pic_object above.
- non_pic_object="$pic_object"
- func_append non_pic_objects " $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if $opt_dry_run; then
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- func_lo2o "$arg"
- pic_object=$xdir$objdir/$func_lo2o_result
- non_pic_object=$xdir$func_lo2o_result
- func_append libobjs " $pic_object"
- func_append non_pic_objects " $non_pic_object"
- else
- func_fatal_error "\`$arg' is not a valid libtool object"
- fi
- fi
- ;;
-
- *.$libext)
- # An archive.
- func_append deplibs " $arg"
- func_append old_deplibs " $arg"
- continue
- ;;
-
- *.la)
- # A libtool-controlled library.
-
- func_resolve_sysroot "$arg"
- if test "$prev" = dlfiles; then
- # This library was specified with -dlopen.
- func_append dlfiles " $func_resolve_sysroot_result"
- prev=
- elif test "$prev" = dlprefiles; then
- # The library was specified with -dlpreopen.
- func_append dlprefiles " $func_resolve_sysroot_result"
- prev=
- else
- func_append deplibs " $func_resolve_sysroot_result"
- fi
- continue
- ;;
-
- # Some other compiler argument.
- *)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
- esac # arg
-
- # Now actually substitute the argument into the commands.
- if test -n "$arg"; then
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
- done # argument parsing loop
-
- test -n "$prev" && \
- func_fatal_help "the \`$prevarg' option requires an argument"
-
- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
- eval arg=\"$export_dynamic_flag_spec\"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
-
- oldlibs=
- # calculate the name of the file, without its directory
- func_basename "$output"
- outputname="$func_basename_result"
- libobjs_save="$libobjs"
-
- if test -n "$shlibpath_var"; then
- # get the directories listed in $shlibpath_var
- eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
- else
- shlib_search_path=
- fi
- eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
- eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
- func_dirname "$output" "/" ""
- output_objdir="$func_dirname_result$objdir"
- func_to_tool_file "$output_objdir/"
- tool_output_objdir=$func_to_tool_file_result
- # Create the object directory.
- func_mkdir_p "$output_objdir"
-
- # Determine the type of output
- case $output in
- "")
- func_fatal_help "you must specify an output file"
- ;;
- *.$libext) linkmode=oldlib ;;
- *.lo | *.$objext) linkmode=obj ;;
- *.la) linkmode=lib ;;
- *) linkmode=prog ;; # Anything else should be a program.
- esac
-
- specialdeplibs=
-
- libs=
- # Find all interdependent deplibs by searching for libraries
- # that are linked more than once (e.g. -la -lb -la)
- for deplib in $deplibs; do
- if $opt_preserve_dup_deps ; then
- case "$libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append libs " $deplib"
- done
-
- if test "$linkmode" = lib; then
- libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
- # Compute libraries that are listed more than once in $predeps
- # $postdeps and mark them as special (i.e., whose duplicates are
- # not to be eliminated).
- pre_post_deps=
- if $opt_duplicate_compiler_generated_deps; then
- for pre_post_dep in $predeps $postdeps; do
- case "$pre_post_deps " in
- *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
- esac
- func_append pre_post_deps " $pre_post_dep"
- done
- fi
- pre_post_deps=
- fi
-
- deplibs=
- newdependency_libs=
- newlib_search_path=
- need_relink=no # whether we're linking any uninstalled libtool libraries
- notinst_deplibs= # not-installed libtool libraries
- notinst_path= # paths that contain not-installed libtool libraries
-
- case $linkmode in
- lib)
- passes="conv dlpreopen link"
- for file in $dlfiles $dlprefiles; do
- case $file in
- *.la) ;;
- *)
- func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
- ;;
- esac
- done
- ;;
- prog)
- compile_deplibs=
- finalize_deplibs=
- alldeplibs=no
- newdlfiles=
- newdlprefiles=
- passes="conv scan dlopen dlpreopen link"
- ;;
- *) passes="conv"
- ;;
- esac
-
- for pass in $passes; do
- # The preopen pass in lib mode reverses $deplibs; put it back here
- # so that -L comes before libs that need it for instance...
- if test "$linkmode,$pass" = "lib,link"; then
- ## FIXME: Find the place where the list is rebuilt in the wrong
- ## order, and fix it there properly
- tmp_deplibs=
- for deplib in $deplibs; do
- tmp_deplibs="$deplib $tmp_deplibs"
- done
- deplibs="$tmp_deplibs"
- fi
-
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan"; then
- libs="$deplibs"
- deplibs=
- fi
- if test "$linkmode" = prog; then
- case $pass in
- dlopen) libs="$dlfiles" ;;
- dlpreopen) libs="$dlprefiles" ;;
- link)
- libs="$deplibs %DEPLIBS%"
- test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
- ;;
- esac
- fi
- if test "$linkmode,$pass" = "lib,dlpreopen"; then
- # Collect and forward deplibs of preopened libtool libs
- for lib in $dlprefiles; do
- # Ignore non-libtool-libs
- dependency_libs=
- func_resolve_sysroot "$lib"
- case $lib in
- *.la) func_source "$func_resolve_sysroot_result" ;;
- esac
-
- # Collect preopened libtool deplibs, except any this library
- # has declared as weak libs
- for deplib in $dependency_libs; do
- func_basename "$deplib"
- deplib_base=$func_basename_result
- case " $weak_libs " in
- *" $deplib_base "*) ;;
- *) func_append deplibs " $deplib" ;;
- esac
- done
- done
- libs="$dlprefiles"
- fi
- if test "$pass" = dlopen; then
- # Collect dlpreopened libraries
- save_deplibs="$deplibs"
- deplibs=
- fi
-
- for deplib in $libs; do
- lib=
- found=no
- case $deplib in
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
- |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- func_append compiler_flags " $deplib"
- if test "$linkmode" = lib ; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
- * ) func_append new_inherited_linker_flags " $deplib" ;;
- esac
- fi
- fi
- continue
- ;;
- -l*)
- if test "$linkmode" != lib && test "$linkmode" != prog; then
- func_warning "\`-l' is ignored for archives/objects"
- continue
- fi
- func_stripname '-l' '' "$deplib"
- name=$func_stripname_result
- if test "$linkmode" = lib; then
- searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
- else
- searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
- fi
- for searchdir in $searchdirs; do
- for search_ext in .la $std_shrext .so .a; do
- # Search the libtool library
- lib="$searchdir/lib${name}${search_ext}"
- if test -f "$lib"; then
- if test "$search_ext" = ".la"; then
- found=yes
- else
- found=no
- fi
- break 2
- fi
- done
- done
- if test "$found" != yes; then
- # deplib doesn't seem to be a libtool library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- else # deplib is a libtool library
- # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
- # We need to do some special things here, and not later.
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $deplib "*)
- if func_lalib_p "$lib"; then
- library_names=
- old_library=
- func_source "$lib"
- for l in $old_library $library_names; do
- ll="$l"
- done
- if test "X$ll" = "X$old_library" ; then # only static version available
- found=no
- func_dirname "$lib" "" "."
- ladir="$func_dirname_result"
- lib=$ladir/$old_library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- fi
- fi
- ;;
- *) ;;
- esac
- fi
- fi
- ;; # -l
- *.ltframework)
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- if test "$linkmode" = lib ; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
- * ) func_append new_inherited_linker_flags " $deplib" ;;
- esac
- fi
- fi
- continue
- ;;
- -L*)
- case $linkmode in
- lib)
- deplibs="$deplib $deplibs"
- test "$pass" = conv && continue
- newdependency_libs="$deplib $newdependency_libs"
- func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- prog)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- if test "$pass" = scan; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- *)
- func_warning "\`-L' is ignored for archives/objects"
- ;;
- esac # linkmode
- continue
- ;; # -L
- -R*)
- if test "$pass" = link; then
- func_stripname '-R' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- dir=$func_resolve_sysroot_result
- # Make sure the xrpath contains only unique directories.
- case "$xrpath " in
- *" $dir "*) ;;
- *) func_append xrpath " $dir" ;;
- esac
- fi
- deplibs="$deplib $deplibs"
- continue
- ;;
- *.la)
- func_resolve_sysroot "$deplib"
- lib=$func_resolve_sysroot_result
- ;;
- *.$libext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- case $linkmode in
- lib)
- # Linking convenience modules into shared libraries is allowed,
- # but linking other static libraries is non-portable.
- case " $dlpreconveniencelibs " in
- *" $deplib "*) ;;
- *)
- valid_a_lib=no
- case $deplibs_check_method in
- match_pattern*)
- set dummy $deplibs_check_method; shift
- match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
- | $EGREP "$match_pattern_regex" > /dev/null; then
- valid_a_lib=yes
- fi
- ;;
- pass_all)
- valid_a_lib=yes
- ;;
- esac
- if test "$valid_a_lib" != yes; then
- echo
- $ECHO "*** Warning: Trying to link with static lib archive $deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because the file extensions .$libext of this argument makes me believe"
- echo "*** that it is just a static archive that I should not use here."
- else
- echo
- $ECHO "*** Warning: Linking the shared library $output against the"
- $ECHO "*** static library $deplib is not portable!"
- deplibs="$deplib $deplibs"
- fi
- ;;
- esac
- continue
- ;;
- prog)
- if test "$pass" != link; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- continue
- ;;
- esac # linkmode
- ;; # *.$libext
- *.lo | *.$objext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- elif test "$linkmode" = prog; then
- if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
- # If there is no dlopen support or we're linking statically,
- # we need to preload.
- func_append newdlprefiles " $deplib"
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- func_append newdlfiles " $deplib"
- fi
- fi
- continue
- ;;
- %DEPLIBS%)
- alldeplibs=yes
- continue
- ;;
- esac # case $deplib
-
- if test "$found" = yes || test -f "$lib"; then :
- else
- func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
- fi
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$lib" \
- || func_fatal_error "\`$lib' is not a valid libtool archive"
-
- func_dirname "$lib" "" "."
- ladir="$func_dirname_result"
-
- dlname=
- dlopen=
- dlpreopen=
- libdir=
- library_names=
- old_library=
- inherited_linker_flags=
- # If the library was installed with an old release of libtool,
- # it will not redefine variables installed, or shouldnotlink
- installed=yes
- shouldnotlink=no
- avoidtemprpath=
-
-
- # Read the .la file
- func_source "$lib"
-
- # Convert "-framework foo" to "foo.ltframework"
- if test -n "$inherited_linker_flags"; then
- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
- for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
- case " $new_inherited_linker_flags " in
- *" $tmp_inherited_linker_flag "*) ;;
- *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
- esac
- done
- fi
- dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan" ||
- { test "$linkmode" != prog && test "$linkmode" != lib; }; then
- test -n "$dlopen" && func_append dlfiles " $dlopen"
- test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
- fi
-
- if test "$pass" = conv; then
- # Only check for convenience libraries
- deplibs="$lib $deplibs"
- if test -z "$libdir"; then
- if test -z "$old_library"; then
- func_fatal_error "cannot find name of link library for \`$lib'"
- fi
- # It is a libtool convenience library, so add in its objects.
- func_append convenience " $ladir/$objdir/$old_library"
- func_append old_convenience " $ladir/$objdir/$old_library"
- tmp_libs=
- for deplib in $dependency_libs; do
- deplibs="$deplib $deplibs"
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done
- elif test "$linkmode" != prog && test "$linkmode" != lib; then
- func_fatal_error "\`$lib' is not a convenience library"
- fi
- continue
- fi # $pass = conv
-
-
- # Get the name of the library we link against.
- linklib=
- if test -n "$old_library" &&
- { test "$prefer_static_libs" = yes ||
- test "$prefer_static_libs,$installed" = "built,no"; }; then
- linklib=$old_library
- else
- for l in $old_library $library_names; do
- linklib="$l"
- done
- fi
- if test -z "$linklib"; then
- func_fatal_error "cannot find name of link library for \`$lib'"
- fi
-
- # This library was specified with -dlopen.
- if test "$pass" = dlopen; then
- if test -z "$libdir"; then
- func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
- fi
- if test -z "$dlname" ||
- test "$dlopen_support" != yes ||
- test "$build_libtool_libs" = no; then
- # If there is no dlname, no dlopen support or we're linking
- # statically, we need to preload. We also need to preload any
- # dependent libraries so libltdl's deplib preloader doesn't
- # bomb out in the load deplibs phase.
- func_append dlprefiles " $lib $dependency_libs"
- else
- func_append newdlfiles " $lib"
- fi
- continue
- fi # $pass = dlopen
-
- # We need an absolute path.
- case $ladir in
- [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
- *)
- abs_ladir=`cd "$ladir" && pwd`
- if test -z "$abs_ladir"; then
- func_warning "cannot determine absolute directory name of \`$ladir'"
- func_warning "passing it literally to the linker, although it might fail"
- abs_ladir="$ladir"
- fi
- ;;
- esac
- func_basename "$lib"
- laname="$func_basename_result"
-
- # Find the relevant object directory and library name.
- if test "X$installed" = Xyes; then
- if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- func_warning "library \`$lib' was moved."
- dir="$ladir"
- absdir="$abs_ladir"
- libdir="$abs_ladir"
- else
- dir="$lt_sysroot$libdir"
- absdir="$lt_sysroot$libdir"
- fi
- test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
- else
- if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- dir="$ladir"
- absdir="$abs_ladir"
- # Remove this search path later
- func_append notinst_path " $abs_ladir"
- else
- dir="$ladir/$objdir"
- absdir="$abs_ladir/$objdir"
- # Remove this search path later
- func_append notinst_path " $abs_ladir"
- fi
- fi # $installed = yes
- func_stripname 'lib' '.la' "$laname"
- name=$func_stripname_result
-
- # This library was specified with -dlpreopen.
- if test "$pass" = dlpreopen; then
- if test -z "$libdir" && test "$linkmode" = prog; then
- func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
- fi
- case "$host" in
- # special handling for platforms with PE-DLLs.
- *cygwin* | *mingw* | *cegcc* )
- # Linker will automatically link against shared library if both
- # static and shared are present. Therefore, ensure we extract
- # symbols from the import library if a shared library is present
- # (otherwise, the dlopen module name will be incorrect). We do
- # this by putting the import library name into $newdlprefiles.
- # We recover the dlopen module name by 'saving' the la file
- # name in a special purpose variable, and (later) extracting the
- # dlname from the la file.
- if test -n "$dlname"; then
- func_tr_sh "$dir/$linklib"
- eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
- func_append newdlprefiles " $dir/$linklib"
- else
- func_append newdlprefiles " $dir/$old_library"
- # Keep a list of preopened convenience libraries to check
- # that they are being used correctly in the link pass.
- test -z "$libdir" && \
- func_append dlpreconveniencelibs " $dir/$old_library"
- fi
- ;;
- * )
- # Prefer using a static library (so that no silly _DYNAMIC symbols
- # are required to link).
- if test -n "$old_library"; then
- func_append newdlprefiles " $dir/$old_library"
- # Keep a list of preopened convenience libraries to check
- # that they are being used correctly in the link pass.
- test -z "$libdir" && \
- func_append dlpreconveniencelibs " $dir/$old_library"
- # Otherwise, use the dlname, so that lt_dlopen finds it.
- elif test -n "$dlname"; then
- func_append newdlprefiles " $dir/$dlname"
- else
- func_append newdlprefiles " $dir/$linklib"
- fi
- ;;
- esac
- fi # $pass = dlpreopen
-
- if test -z "$libdir"; then
- # Link the convenience library
- if test "$linkmode" = lib; then
- deplibs="$dir/$old_library $deplibs"
- elif test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$dir/$old_library $compile_deplibs"
- finalize_deplibs="$dir/$old_library $finalize_deplibs"
- else
- deplibs="$lib $deplibs" # used for prog,scan pass
- fi
- continue
- fi
-
-
- if test "$linkmode" = prog && test "$pass" != link; then
- func_append newlib_search_path " $ladir"
- deplibs="$lib $deplibs"
-
- linkalldeplibs=no
- if test "$link_all_deplibs" != no || test -z "$library_names" ||
- test "$build_libtool_libs" = no; then
- linkalldeplibs=yes
- fi
-
- tmp_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- -L*) func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- esac
- # Need to link against all dependency_libs?
- if test "$linkalldeplibs" = yes; then
- deplibs="$deplib $deplibs"
- else
- # Need to hardcode shared library paths
- # or/and link against static libraries
- newdependency_libs="$deplib $newdependency_libs"
- fi
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done # for deplib
- continue
- fi # $linkmode = prog...
-
- if test "$linkmode,$pass" = "prog,link"; then
- if test -n "$library_names" &&
- { { test "$prefer_static_libs" = no ||
- test "$prefer_static_libs,$installed" = "built,yes"; } ||
- test -z "$old_library"; }; then
- # We need to hardcode the library path
- if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
- # Make sure the rpath contains only unique directories.
- case "$temp_rpath:" in
- *"$absdir:"*) ;;
- *) func_append temp_rpath "$absdir:" ;;
- esac
- fi
-
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) func_append compile_rpath " $absdir" ;;
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- ;;
- esac
- fi # $linkmode,$pass = prog,link...
-
- if test "$alldeplibs" = yes &&
- { test "$deplibs_check_method" = pass_all ||
- { test "$build_libtool_libs" = yes &&
- test -n "$library_names"; }; }; then
- # We only need to search for static libraries
- continue
- fi
- fi
-
- link_static=no # Whether the deplib will be linked statically
- use_static_libs=$prefer_static_libs
- if test "$use_static_libs" = built && test "$installed" = yes; then
- use_static_libs=no
- fi
- if test -n "$library_names" &&
- { test "$use_static_libs" = no || test -z "$old_library"; }; then
- case $host in
- *cygwin* | *mingw* | *cegcc*)
- # No point in relinking DLLs because paths are not encoded
- func_append notinst_deplibs " $lib"
- need_relink=no
- ;;
- *)
- if test "$installed" = no; then
- func_append notinst_deplibs " $lib"
- need_relink=yes
- fi
- ;;
- esac
- # This is a shared library
-
- # Warn about portability, can't link against -module's on some
- # systems (darwin). Don't bleat about dlopened modules though!
- dlopenmodule=""
- for dlpremoduletest in $dlprefiles; do
- if test "X$dlpremoduletest" = "X$lib"; then
- dlopenmodule="$dlpremoduletest"
- break
- fi
- done
- if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
- echo
- if test "$linkmode" = prog; then
- $ECHO "*** Warning: Linking the executable $output against the loadable module"
- else
- $ECHO "*** Warning: Linking the shared library $output against the loadable module"
- fi
- $ECHO "*** $linklib is not portable!"
- fi
- if test "$linkmode" = lib &&
- test "$hardcode_into_libs" = yes; then
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) func_append compile_rpath " $absdir" ;;
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- ;;
- esac
- fi
-
- if test -n "$old_archive_from_expsyms_cmds"; then
- # figure out the soname
- set dummy $library_names
- shift
- realname="$1"
- shift
- libname=`eval "\\$ECHO \"$libname_spec\""`
- # use dlname if we got it. it's perfectly good, no?
- if test -n "$dlname"; then
- soname="$dlname"
- elif test -n "$soname_spec"; then
- # bleh windows
- case $host in
- *cygwin* | mingw* | *cegcc*)
- func_arith $current - $age
- major=$func_arith_result
- versuffix="-$major"
- ;;
- esac
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
-
- # Make a new name for the extract_expsyms_cmds to use
- soroot="$soname"
- func_basename "$soroot"
- soname="$func_basename_result"
- func_stripname 'lib' '.dll' "$soname"
- newlib=libimp-$func_stripname_result.a
-
- # If the library has no export list, then create one now
- if test -f "$output_objdir/$soname-def"; then :
- else
- func_verbose "extracting exported symbol list from \`$soname'"
- func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
- fi
-
- # Create $newlib
- if test -f "$output_objdir/$newlib"; then :; else
- func_verbose "generating import library for \`$soname'"
- func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
- fi
- # make sure the library variables are pointing to the new library
- dir=$output_objdir
- linklib=$newlib
- fi # test -n "$old_archive_from_expsyms_cmds"
-
- if test "$linkmode" = prog || test "$opt_mode" != relink; then
- add_shlibpath=
- add_dir=
- add=
- lib_linked=yes
- case $hardcode_action in
- immediate | unsupported)
- if test "$hardcode_direct" = no; then
- add="$dir/$linklib"
- case $host in
- *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
- *-*-sysv4*uw2*) add_dir="-L$dir" ;;
- *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
- *-*-unixware7*) add_dir="-L$dir" ;;
- *-*-darwin* )
- # if the lib is a (non-dlopened) module then we can not
- # link against it, someone is ignoring the earlier warnings
- if /usr/bin/file -L $add 2> /dev/null |
- $GREP ": [^:]* bundle" >/dev/null ; then
- if test "X$dlopenmodule" != "X$lib"; then
- $ECHO "*** Warning: lib $linklib is a module, not a shared library"
- if test -z "$old_library" ; then
- echo
- echo "*** And there doesn't seem to be a static archive available"
- echo "*** The link will probably fail, sorry"
- else
- add="$dir/$old_library"
- fi
- elif test -n "$old_library"; then
- add="$dir/$old_library"
- fi
- fi
- esac
- elif test "$hardcode_minus_L" = no; then
- case $host in
- *-*-sunos*) add_shlibpath="$dir" ;;
- esac
- add_dir="-L$dir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = no; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- relink)
- if test "$hardcode_direct" = yes &&
- test "$hardcode_direct_absolute" = no; then
- add="$dir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$absdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
- func_append add_dir " -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- *) lib_linked=no ;;
- esac
-
- if test "$lib_linked" != yes; then
- func_fatal_configuration "unsupported hardcode properties"
- fi
-
- if test -n "$add_shlibpath"; then
- case :$compile_shlibpath: in
- *":$add_shlibpath:"*) ;;
- *) func_append compile_shlibpath "$add_shlibpath:" ;;
- esac
- fi
- if test "$linkmode" = prog; then
- test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
- test -n "$add" && compile_deplibs="$add $compile_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- if test "$hardcode_direct" != yes &&
- test "$hardcode_minus_L" != yes &&
- test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) func_append finalize_shlibpath "$libdir:" ;;
- esac
- fi
- fi
- fi
-
- if test "$linkmode" = prog || test "$opt_mode" = relink; then
- add_shlibpath=
- add_dir=
- add=
- # Finalize command for both is simple: just hardcode it.
- if test "$hardcode_direct" = yes &&
- test "$hardcode_direct_absolute" = no; then
- add="$libdir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$libdir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) func_append finalize_shlibpath "$libdir:" ;;
- esac
- add="-l$name"
- elif test "$hardcode_automatic" = yes; then
- if test -n "$inst_prefix_dir" &&
- test -f "$inst_prefix_dir$libdir/$linklib" ; then
- add="$inst_prefix_dir$libdir/$linklib"
- else
- add="$libdir/$linklib"
- fi
- else
- # We cannot seem to hardcode it, guess we'll fake it.
- add_dir="-L$libdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
- func_append add_dir " -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
- add="-l$name"
- fi
-
- if test "$linkmode" = prog; then
- test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
- test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- fi
- fi
- elif test "$linkmode" = prog; then
- # Here we assume that one of hardcode_direct or hardcode_minus_L
- # is not unsupported. This is valid on all known static and
- # shared platforms.
- if test "$hardcode_direct" != unsupported; then
- test -n "$old_library" && linklib="$old_library"
- compile_deplibs="$dir/$linklib $compile_deplibs"
- finalize_deplibs="$dir/$linklib $finalize_deplibs"
- else
- compile_deplibs="-l$name -L$dir $compile_deplibs"
- finalize_deplibs="-l$name -L$dir $finalize_deplibs"
- fi
- elif test "$build_libtool_libs" = yes; then
- # Not a shared library
- if test "$deplibs_check_method" != pass_all; then
- # We're trying link a shared library against a static one
- # but the system doesn't support it.
-
- # Just print a warning and add the library to dependency_libs so
- # that the program can be linked against the static library.
- echo
- $ECHO "*** Warning: This system can not link to static lib archive $lib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have."
- if test "$module" = yes; then
- echo "*** But as you try to build a module library, libtool will still create "
- echo "*** a static module, that should work as long as the dlopening application"
- echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- else
- deplibs="$dir/$old_library $deplibs"
- link_static=yes
- fi
- fi # link shared/static library?
-
- if test "$linkmode" = lib; then
- if test -n "$dependency_libs" &&
- { test "$hardcode_into_libs" != yes ||
- test "$build_old_libs" = yes ||
- test "$link_static" = yes; }; then
- # Extract -R from dependency_libs
- temp_deplibs=
- for libdir in $dependency_libs; do
- case $libdir in
- -R*) func_stripname '-R' '' "$libdir"
- temp_xrpath=$func_stripname_result
- case " $xrpath " in
- *" $temp_xrpath "*) ;;
- *) func_append xrpath " $temp_xrpath";;
- esac;;
- *) func_append temp_deplibs " $libdir";;
- esac
- done
- dependency_libs="$temp_deplibs"
- fi
-
- func_append newlib_search_path " $absdir"
- # Link against this library
- test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
- # ... and its dependency_libs
- tmp_libs=
- for deplib in $dependency_libs; do
- newdependency_libs="$deplib $newdependency_libs"
- case $deplib in
- -L*) func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result";;
- *) func_resolve_sysroot "$deplib" ;;
- esac
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $func_resolve_sysroot_result "*)
- func_append specialdeplibs " $func_resolve_sysroot_result" ;;
- esac
- fi
- func_append tmp_libs " $func_resolve_sysroot_result"
- done
-
- if test "$link_all_deplibs" != no; then
- # Add the search paths of all dependency libraries
- for deplib in $dependency_libs; do
- path=
- case $deplib in
- -L*) path="$deplib" ;;
- *.la)
- func_resolve_sysroot "$deplib"
- deplib=$func_resolve_sysroot_result
- func_dirname "$deplib" "" "."
- dir=$func_dirname_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
- *)
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- func_warning "cannot determine absolute directory name of \`$dir'"
- absdir="$dir"
- fi
- ;;
- esac
- if $GREP "^installed=no" $deplib > /dev/null; then
- case $host in
- *-*-darwin*)
- depdepl=
- eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
- if test -n "$deplibrary_names" ; then
- for tmp in $deplibrary_names ; do
- depdepl=$tmp
- done
- if test -f "$absdir/$objdir/$depdepl" ; then
- depdepl="$absdir/$objdir/$depdepl"
- darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- if test -z "$darwin_install_name"; then
- darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- fi
- func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
- func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
- path=
- fi
- fi
- ;;
- *)
- path="-L$absdir/$objdir"
- ;;
- esac
- else
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- test -z "$libdir" && \
- func_fatal_error "\`$deplib' is not a valid libtool archive"
- test "$absdir" != "$libdir" && \
- func_warning "\`$deplib' seems to be moved"
-
- path="-L$absdir"
- fi
- ;;
- esac
- case " $deplibs " in
- *" $path "*) ;;
- *) deplibs="$path $deplibs" ;;
- esac
- done
- fi # link_all_deplibs != no
- fi # linkmode = lib
- done # for deplib in $libs
- if test "$pass" = link; then
- if test "$linkmode" = "prog"; then
- compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
- finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
- else
- compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- fi
- fi
- dependency_libs="$newdependency_libs"
- if test "$pass" = dlpreopen; then
- # Link the dlpreopened libraries before other libraries
- for deplib in $save_deplibs; do
- deplibs="$deplib $deplibs"
- done
- fi
- if test "$pass" != dlopen; then
- if test "$pass" != conv; then
- # Make sure lib_search_path contains only unique directories.
- lib_search_path=
- for dir in $newlib_search_path; do
- case "$lib_search_path " in
- *" $dir "*) ;;
- *) func_append lib_search_path " $dir" ;;
- esac
- done
- newlib_search_path=
- fi
-
- if test "$linkmode,$pass" != "prog,link"; then
- vars="deplibs"
- else
- vars="compile_deplibs finalize_deplibs"
- fi
- for var in $vars dependency_libs; do
- # Add libraries to $var in reverse order
- eval tmp_libs=\"\$$var\"
- new_libs=
- for deplib in $tmp_libs; do
- # FIXME: Pedantically, this is the right thing to do, so
- # that some nasty dependency loop isn't accidentally
- # broken:
- #new_libs="$deplib $new_libs"
- # Pragmatically, this seems to cause very few problems in
- # practice:
- case $deplib in
- -L*) new_libs="$deplib $new_libs" ;;
- -R*) ;;
- *)
- # And here is the reason: when a library appears more
- # than once as an explicit dependence of a library, or
- # is implicitly linked in more than once by the
- # compiler, it is considered special, and multiple
- # occurrences thereof are not removed. Compare this
- # with having the same library being listed as a
- # dependency of multiple other libraries: in this case,
- # we know (pedantically, we assume) the library does not
- # need to be listed more than once, so we keep only the
- # last copy. This is not always right, but it is rare
- # enough that we require users that really mean to play
- # such unportable linking tricks to link the library
- # using -Wl,-lname, so that libtool does not consider it
- # for duplicate removal.
- case " $specialdeplibs " in
- *" $deplib "*) new_libs="$deplib $new_libs" ;;
- *)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) new_libs="$deplib $new_libs" ;;
- esac
- ;;
- esac
- ;;
- esac
- done
- tmp_libs=
- for deplib in $new_libs; do
- case $deplib in
- -L*)
- case " $tmp_libs " in
- *" $deplib "*) ;;
- *) func_append tmp_libs " $deplib" ;;
- esac
- ;;
- *) func_append tmp_libs " $deplib" ;;
- esac
- done
- eval $var=\"$tmp_libs\"
- done # for var
- fi
- # Last step: remove runtime libs from dependency_libs
- # (they stay in deplibs)
- tmp_libs=
- for i in $dependency_libs ; do
- case " $predeps $postdeps $compiler_lib_search_path " in
- *" $i "*)
- i=""
- ;;
- esac
- if test -n "$i" ; then
- func_append tmp_libs " $i"
- fi
- done
- dependency_libs=$tmp_libs
- done # for pass
- if test "$linkmode" = prog; then
- dlfiles="$newdlfiles"
- fi
- if test "$linkmode" = prog || test "$linkmode" = lib; then
- dlprefiles="$newdlprefiles"
- fi
-
- case $linkmode in
- oldlib)
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- func_warning "\`-dlopen' is ignored for archives"
- fi
-
- case " $deplibs" in
- *\ -l* | *\ -L*)
- func_warning "\`-l' and \`-L' are ignored for archives" ;;
- esac
-
- test -n "$rpath" && \
- func_warning "\`-rpath' is ignored for archives"
-
- test -n "$xrpath" && \
- func_warning "\`-R' is ignored for archives"
-
- test -n "$vinfo" && \
- func_warning "\`-version-info/-version-number' is ignored for archives"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for archives"
-
- test -n "$export_symbols$export_symbols_regex" && \
- func_warning "\`-export-symbols' is ignored for archives"
-
- # Now set the variables for building old libraries.
- build_libtool_libs=no
- oldlibs="$output"
- func_append objs "$old_deplibs"
- ;;
-
- lib)
- # Make sure we only generate libraries of the form `libNAME.la'.
- case $outputname in
- lib*)
- func_stripname 'lib' '.la' "$outputname"
- name=$func_stripname_result
- eval shared_ext=\"$shrext_cmds\"
- eval libname=\"$libname_spec\"
- ;;
- *)
- test "$module" = no && \
- func_fatal_help "libtool library \`$output' must begin with \`lib'"
-
- if test "$need_lib_prefix" != no; then
- # Add the "lib" prefix for modules if required
- func_stripname '' '.la' "$outputname"
- name=$func_stripname_result
- eval shared_ext=\"$shrext_cmds\"
- eval libname=\"$libname_spec\"
- else
- func_stripname '' '.la' "$outputname"
- libname=$func_stripname_result
- fi
- ;;
- esac
-
- if test -n "$objs"; then
- if test "$deplibs_check_method" != pass_all; then
- func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
- else
- echo
- $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
- $ECHO "*** objects $objs is not portable!"
- func_append libobjs " $objs"
- fi
- fi
-
- test "$dlself" != no && \
- func_warning "\`-dlopen self' is ignored for libtool libraries"
-
- set dummy $rpath
- shift
- test "$#" -gt 1 && \
- func_warning "ignoring multiple \`-rpath's for a libtool library"
-
- install_libdir="$1"
-
- oldlibs=
- if test -z "$rpath"; then
- if test "$build_libtool_libs" = yes; then
- # Building a libtool convenience library.
- # Some compilers have problems with a `.al' extension so
- # convenience libraries should have the same extension an
- # archive normally would.
- oldlibs="$output_objdir/$libname.$libext $oldlibs"
- build_libtool_libs=convenience
- build_old_libs=yes
- fi
-
- test -n "$vinfo" && \
- func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for convenience libraries"
- else
-
- # Parse the version information argument.
- save_ifs="$IFS"; IFS=':'
- set dummy $vinfo 0 0 0
- shift
- IFS="$save_ifs"
-
- test -n "$7" && \
- func_fatal_help "too many parameters to \`-version-info'"
-
- # convert absolute version numbers to libtool ages
- # this retains compatibility with .la files and attempts
- # to make the code below a bit more comprehensible
-
- case $vinfo_number in
- yes)
- number_major="$1"
- number_minor="$2"
- number_revision="$3"
- #
- # There are really only two kinds -- those that
- # use the current revision as the major version
- # and those that subtract age and use age as
- # a minor version. But, then there is irix
- # which has an extra 1 added just for fun
- #
- case $version_type in
- # correct linux to gnu/linux during the next big refactor
- darwin|linux|osf|windows|none)
- func_arith $number_major + $number_minor
- current=$func_arith_result
- age="$number_minor"
- revision="$number_revision"
- ;;
- freebsd-aout|freebsd-elf|qnx|sunos)
- current="$number_major"
- revision="$number_minor"
- age="0"
- ;;
- irix|nonstopux)
- func_arith $number_major + $number_minor
- current=$func_arith_result
- age="$number_minor"
- revision="$number_minor"
- lt_irix_increment=no
- ;;
- *)
- func_fatal_configuration "$modename: unknown library version type \`$version_type'"
- ;;
- esac
- ;;
- no)
- current="$1"
- revision="$2"
- age="$3"
- ;;
- esac
-
- # Check that each of the things are valid numbers.
- case $current in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "CURRENT \`$current' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- case $revision in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "REVISION \`$revision' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- case $age in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "AGE \`$age' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- if test "$age" -gt "$current"; then
- func_error "AGE \`$age' is greater than the current interface number \`$current'"
- func_fatal_error "\`$vinfo' is not valid version information"
- fi
-
- # Calculate the version variables.
- major=
- versuffix=
- verstring=
- case $version_type in
- none) ;;
-
- darwin)
- # Like Linux, but with the current version available in
- # verstring for coding it into the library header
- func_arith $current - $age
- major=.$func_arith_result
- versuffix="$major.$age.$revision"
- # Darwin ld doesn't like 0 for these options...
- func_arith $current + 1
- minor_current=$func_arith_result
- xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
- ;;
-
- freebsd-aout)
- major=".$current"
- versuffix=".$current.$revision";
- ;;
-
- freebsd-elf)
- major=".$current"
- versuffix=".$current"
- ;;
-
- irix | nonstopux)
- if test "X$lt_irix_increment" = "Xno"; then
- func_arith $current - $age
- else
- func_arith $current - $age + 1
- fi
- major=$func_arith_result
-
- case $version_type in
- nonstopux) verstring_prefix=nonstopux ;;
- *) verstring_prefix=sgi ;;
- esac
- verstring="$verstring_prefix$major.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$revision
- while test "$loop" -ne 0; do
- func_arith $revision - $loop
- iface=$func_arith_result
- func_arith $loop - 1
- loop=$func_arith_result
- verstring="$verstring_prefix$major.$iface:$verstring"
- done
-
- # Before this point, $major must not contain `.'.
- major=.$major
- versuffix="$major.$revision"
- ;;
-
- linux) # correct to gnu/linux during the next big refactor
- func_arith $current - $age
- major=.$func_arith_result
- versuffix="$major.$age.$revision"
- ;;
-
- osf)
- func_arith $current - $age
- major=.$func_arith_result
- versuffix=".$current.$age.$revision"
- verstring="$current.$age.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$age
- while test "$loop" -ne 0; do
- func_arith $current - $loop
- iface=$func_arith_result
- func_arith $loop - 1
- loop=$func_arith_result
- verstring="$verstring:${iface}.0"
- done
-
- # Make executables depend on our current version.
- func_append verstring ":${current}.0"
- ;;
-
- qnx)
- major=".$current"
- versuffix=".$current"
- ;;
-
- sunos)
- major=".$current"
- versuffix=".$current.$revision"
- ;;
-
- windows)
- # Use '-' rather than '.', since we only want one
- # extension on DOS 8.3 filesystems.
- func_arith $current - $age
- major=$func_arith_result
- versuffix="-$major"
- ;;
-
- *)
- func_fatal_configuration "unknown library version type \`$version_type'"
- ;;
- esac
-
- # Clear the version info if we defaulted, and they specified a release.
- if test -z "$vinfo" && test -n "$release"; then
- major=
- case $version_type in
- darwin)
- # we can't check for "0.0" in archive_cmds due to quoting
- # problems, so we reset it completely
- verstring=
- ;;
- *)
- verstring="0.0"
- ;;
- esac
- if test "$need_version" = no; then
- versuffix=
- else
- versuffix=".0.0"
- fi
- fi
-
- # Remove version info from name if versioning should be avoided
- if test "$avoid_version" = yes && test "$need_version" = no; then
- major=
- versuffix=
- verstring=""
- fi
-
- # Check to see if the archive will have undefined symbols.
- if test "$allow_undefined" = yes; then
- if test "$allow_undefined_flag" = unsupported; then
- func_warning "undefined symbols not allowed in $host shared libraries"
- build_libtool_libs=no
- build_old_libs=yes
- fi
- else
- # Don't allow undefined symbols.
- allow_undefined_flag="$no_undefined_flag"
- fi
-
- fi
-
- func_generate_dlsyms "$libname" "$libname" "yes"
- func_append libobjs " $symfileobj"
- test "X$libobjs" = "X " && libobjs=
-
- if test "$opt_mode" != relink; then
- # Remove our outputs, but don't remove object files since they
- # may have been created when compiling PIC objects.
- removelist=
- tempremovelist=`$ECHO "$output_objdir/*"`
- for p in $tempremovelist; do
- case $p in
- *.$objext | *.gcno)
- ;;
- $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
- if test "X$precious_files_regex" != "X"; then
- if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
- then
- continue
- fi
- fi
- func_append removelist " $p"
- ;;
- *) ;;
- esac
- done
- test -n "$removelist" && \
- func_show_eval "${RM}r \$removelist"
- fi
-
- # Now set the variables for building old libraries.
- if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
- func_append oldlibs " $output_objdir/$libname.$libext"
-
- # Transform .lo files to .o files.
- oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
- fi
-
- # Eliminate all temporary directories.
- #for path in $notinst_path; do
- # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
- # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
- # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
- #done
-
- if test -n "$xrpath"; then
- # If the user specified any rpath flags, then add them.
- temp_xrpath=
- for libdir in $xrpath; do
- func_replace_sysroot "$libdir"
- func_append temp_xrpath " -R$func_replace_sysroot_result"
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- done
- if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
- dependency_libs="$temp_xrpath $dependency_libs"
- fi
- fi
-
- # Make sure dlfiles contains only unique files that won't be dlpreopened
- old_dlfiles="$dlfiles"
- dlfiles=
- for lib in $old_dlfiles; do
- case " $dlprefiles $dlfiles " in
- *" $lib "*) ;;
- *) func_append dlfiles " $lib" ;;
- esac
- done
-
- # Make sure dlprefiles contains only unique files
- old_dlprefiles="$dlprefiles"
- dlprefiles=
- for lib in $old_dlprefiles; do
- case "$dlprefiles " in
- *" $lib "*) ;;
- *) func_append dlprefiles " $lib" ;;
- esac
- done
-
- if test "$build_libtool_libs" = yes; then
- if test -n "$rpath"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
- # these systems don't actually have a c library (as such)!
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C library is in the System framework
- func_append deplibs " System.ltframework"
- ;;
- *-*-netbsd*)
- # Don't link with libc until the a.out ld.so is fixed.
- ;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
- # Causes problems with __ctype
- ;;
- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
- # Compiler inserts libc in the correct place for threads to work
- ;;
- *)
- # Add libc to deplibs on all other systems if necessary.
- if test "$build_libtool_need_lc" = "yes"; then
- func_append deplibs " -lc"
- fi
- ;;
- esac
- fi
-
- # Transform deplibs into only deplibs that can be linked in shared.
- name_save=$name
- libname_save=$libname
- release_save=$release
- versuffix_save=$versuffix
- major_save=$major
- # I'm not sure if I'm treating the release correctly. I think
- # release should show up in the -l (ie -lgmp5) so we don't want to
- # add it in twice. Is that correct?
- release=""
- versuffix=""
- major=""
- newdeplibs=
- droppeddeps=no
- case $deplibs_check_method in
- pass_all)
- # Don't check for shared/static. Everything works.
- # This might be a little naive. We might want to check
- # whether the library exists or not. But this is on
- # osf3 & osf4 and I'm not really sure... Just
- # implementing what was already the behavior.
- newdeplibs=$deplibs
- ;;
- test_compile)
- # This code stresses the "libraries are programs" paradigm to its
- # limits. Maybe even breaks it. We compile a program, linking it
- # against the deplibs as a proxy for the library. Then we can check
- # whether they linked in statically or dynamically with ldd.
- $opt_dry_run || $RM conftest.c
- cat > conftest.c <<EOF
- int main() { return 0; }
-EOF
- $opt_dry_run || $RM conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
- ldd_output=`ldd conftest`
- for i in $deplibs; do
- case $i in
- -l*)
- func_stripname -l '' "$i"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
- func_append newdeplibs " $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- func_append newdeplibs " $i"
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning: dynamic linker does not accept needed library $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which I believe you do not have"
- echo "*** because a test_compile did reveal that the linker did not use it for"
- echo "*** its dynamic dependency list that programs get resolved with at runtime."
- fi
- fi
- ;;
- *)
- func_append newdeplibs " $i"
- ;;
- esac
- done
- else
- # Error occurred in the first compile. Let's try to salvage
- # the situation: Compile a separate program for each library.
- for i in $deplibs; do
- case $i in
- -l*)
- func_stripname -l '' "$i"
- name=$func_stripname_result
- $opt_dry_run || $RM conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
- ldd_output=`ldd conftest`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
- func_append newdeplibs " $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- func_append newdeplibs " $i"
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning: dynamic linker does not accept needed library $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because a test_compile did reveal that the linker did not use this one"
- echo "*** as a dynamic dependency that programs can get resolved with at runtime."
- fi
- fi
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
- echo "*** make it link in! You will probably need to install it or some"
- echo "*** library that it depends on before this library will be fully"
- echo "*** functional. Installing it before continuing would be even better."
- fi
- ;;
- *)
- func_append newdeplibs " $i"
- ;;
- esac
- done
- fi
- ;;
- file_magic*)
- set dummy $deplibs_check_method; shift
- file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- for a_deplib in $deplibs; do
- case $a_deplib in
- -l*)
- func_stripname -l '' "$a_deplib"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- if test -n "$file_magic_glob"; then
- libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
- else
- libnameglob=$libname
- fi
- test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- if test "$want_nocaseglob" = yes; then
- shopt -s nocaseglob
- potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
- $nocaseglob
- else
- potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
- fi
- for potent_lib in $potential_libs; do
- # Follow soft links.
- if ls -lLd "$potent_lib" 2>/dev/null |
- $GREP " -> " >/dev/null; then
- continue
- fi
- # The statement above tries to avoid entering an
- # endless loop below, in case of cyclic links.
- # We might still enter an endless loop, since a link
- # loop can be closed while we follow links,
- # but so what?
- potlib="$potent_lib"
- while test -h "$potlib" 2>/dev/null; do
- potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
- case $potliblink in
- [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
- *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
- esac
- done
- if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
- $SED -e 10q |
- $EGREP "$file_magic_regex" > /dev/null; then
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- echo
- $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
- else
- $ECHO "*** with $libname and none of the candidates passed a file format test"
- $ECHO "*** using a file magic. Last file checked: $potlib"
- fi
- fi
- ;;
- *)
- # Add a -L argument.
- func_append newdeplibs " $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
- ;;
- match_pattern*)
- set dummy $deplibs_check_method; shift
- match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- for a_deplib in $deplibs; do
- case $a_deplib in
- -l*)
- func_stripname -l '' "$a_deplib"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
- for potent_lib in $potential_libs; do
- potlib="$potent_lib" # see symlink-check above in file_magic test
- if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
- $EGREP "$match_pattern_regex" > /dev/null; then
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- echo
- $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
- else
- $ECHO "*** with $libname and none of the candidates passed a file format test"
- $ECHO "*** using a regex pattern. Last file checked: $potlib"
- fi
- fi
- ;;
- *)
- # Add a -L argument.
- func_append newdeplibs " $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
- ;;
- none | unknown | *)
- newdeplibs=""
- tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- for i in $predeps $postdeps ; do
- # can't use Xsed below, because $i might contain '/'
- tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
- done
- fi
- case $tmp_deplibs in
- *[!\ \ ]*)
- echo
- if test "X$deplibs_check_method" = "Xnone"; then
- echo "*** Warning: inter-library dependencies are not supported in this platform."
- else
- echo "*** Warning: inter-library dependencies are not known to be supported."
- fi
- echo "*** All declared inter-library dependencies are being dropped."
- droppeddeps=yes
- ;;
- esac
- ;;
- esac
- versuffix=$versuffix_save
- major=$major_save
- release=$release_save
- libname=$libname_save
- name=$name_save
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library with the System framework
- newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- if test "$droppeddeps" = yes; then
- if test "$module" = yes; then
- echo
- echo "*** Warning: libtool could not satisfy all declared inter-library"
- $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
- echo "*** a static module, that should work as long as the dlopening"
- echo "*** application is linked with the -dlopen flag."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- else
- echo "*** The inter-library dependencies that have been dropped here will be"
- echo "*** automatically added whenever a program is linked with this library"
- echo "*** or is declared to -dlopen it."
-
- if test "$allow_undefined" = no; then
- echo
- echo "*** Since this library must not contain undefined symbols,"
- echo "*** because either the platform does not support them or"
- echo "*** it was explicitly requested with -no-undefined,"
- echo "*** libtool will only create a static version of it."
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- fi
- fi
- # Done checking deplibs!
- deplibs=$newdeplibs
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- case $host in
- *-*-darwin*)
- newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
- # move library search paths that coincide with paths to not yet
- # installed libraries to the beginning of the library search list
- new_libs=
- for path in $notinst_path; do
- case " $new_libs " in
- *" -L$path/$objdir "*) ;;
- *)
- case " $deplibs " in
- *" -L$path/$objdir "*)
- func_append new_libs " -L$path/$objdir" ;;
- esac
- ;;
- esac
- done
- for deplib in $deplibs; do
- case $deplib in
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) func_append new_libs " $deplib" ;;
- esac
- ;;
- *) func_append new_libs " $deplib" ;;
- esac
- done
- deplibs="$new_libs"
-
- # All the library-specific variables (install_libdir is set above).
- library_names=
- old_library=
- dlname=
-
- # Test again, we may have decided not to build it any more
- if test "$build_libtool_libs" = yes; then
- # Remove ${wl} instances when linking with ld.
- # FIXME: should test the right _cmds variable.
- case $archive_cmds in
- *\$LD\ *) wl= ;;
- esac
- if test "$hardcode_into_libs" = yes; then
- # Hardcode the library paths
- hardcode_libdirs=
- dep_rpath=
- rpath="$finalize_rpath"
- test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
- for libdir in $rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- func_replace_sysroot "$libdir"
- libdir=$func_replace_sysroot_result
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append dep_rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
- fi
- if test -n "$runpath_var" && test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- func_append rpath "$dir:"
- done
- eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
- fi
- test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
- fi
-
- shlibpath="$finalize_shlibpath"
- test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
- if test -n "$shlibpath"; then
- eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
- fi
-
- # Get the real and link names of the library.
- eval shared_ext=\"$shrext_cmds\"
- eval library_names=\"$library_names_spec\"
- set dummy $library_names
- shift
- realname="$1"
- shift
-
- if test -n "$soname_spec"; then
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
- if test -z "$dlname"; then
- dlname=$soname
- fi
-
- lib="$output_objdir/$realname"
- linknames=
- for link
- do
- func_append linknames " $link"
- done
-
- # Use standard objects if they are pic
- test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- test "X$libobjs" = "X " && libobjs=
-
- delfiles=
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
- export_symbols="$output_objdir/$libname.uexp"
- func_append delfiles " $export_symbols"
- fi
-
- orig_export_symbols=
- case $host_os in
- cygwin* | mingw* | cegcc*)
- if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
- # exporting using user supplied symfile
- if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
- # and it's NOT already a .def file. Must figure out
- # which of the given symbols are data symbols and tag
- # them as such. So, trigger use of export_symbols_cmds.
- # export_symbols gets reassigned inside the "prepare
- # the list of exported symbols" if statement, so the
- # include_expsyms logic still works.
- orig_export_symbols="$export_symbols"
- export_symbols=
- always_export_symbols=yes
- fi
- fi
- ;;
- esac
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
- func_verbose "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $opt_dry_run || $RM $export_symbols
- cmds=$export_symbols_cmds
- save_ifs="$IFS"; IFS='~'
- for cmd1 in $cmds; do
- IFS="$save_ifs"
- # Take the normal branch if the nm_file_list_spec branch
- # doesn't work or if tool conversion is not needed.
- case $nm_file_list_spec~$to_tool_file_cmd in
- *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
- try_normal_branch=yes
- eval cmd=\"$cmd1\"
- func_len " $cmd"
- len=$func_len_result
- ;;
- *)
- try_normal_branch=no
- ;;
- esac
- if test "$try_normal_branch" = yes \
- && { test "$len" -lt "$max_cmd_len" \
- || test "$max_cmd_len" -le -1; }
- then
- func_show_eval "$cmd" 'exit $?'
- skipped_export=false
- elif test -n "$nm_file_list_spec"; then
- func_basename "$output"
- output_la=$func_basename_result
- save_libobjs=$libobjs
- save_output=$output
- output=${output_objdir}/${output_la}.nm
- func_to_tool_file "$output"
- libobjs=$nm_file_list_spec$func_to_tool_file_result
- func_append delfiles " $output"
- func_verbose "creating $NM input file list: $output"
- for obj in $save_libobjs; do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result"
- done > "$output"
- eval cmd=\"$cmd1\"
- func_show_eval "$cmd" 'exit $?'
- output=$save_output
- libobjs=$save_libobjs
- skipped_export=false
- else
- # The command line is too long to execute in one step.
- func_verbose "using reloadable object file for export list..."
- skipped_export=:
- # Break out early, otherwise skipped_export may be
- # set to false by a later but shorter cmd.
- break
- fi
- done
- IFS="$save_ifs"
- if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
- func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
- fi
- fi
- fi
-
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols="$export_symbols"
- test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
- $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
- fi
-
- if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
- # The given exports_symbols file has to be filtered, so filter it.
- func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
- # FIXME: $output_objdir/$libname.filter potentially contains lots of
- # 's' commands which not all seds can handle. GNU sed should be fine
- # though. Also, the filter scales superlinearly with the number of
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
- func_append delfiles " $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
-
- tmp_deplibs=
- for test_deplib in $deplibs; do
- case " $convenience " in
- *" $test_deplib "*) ;;
- *)
- func_append tmp_deplibs " $test_deplib"
- ;;
- esac
- done
- deplibs="$tmp_deplibs"
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec" &&
- test "$compiler_needs_object" = yes &&
- test -z "$libobjs"; then
- # extract the archives, so we have objects to list.
- # TODO: could optimize this to just extract one archive.
- whole_archive_flag_spec=
- fi
- if test -n "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- test "X$libobjs" = "X " && libobjs=
- else
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $convenience
- func_append libobjs " $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
- fi
-
- if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
- eval flag=\"$thread_safe_flag_spec\"
- func_append linker_flags " $flag"
- fi
-
- # Make a backup of the uninstalled library when relinking
- if test "$opt_mode" = relink; then
- $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
- fi
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- eval test_cmds=\"$module_expsym_cmds\"
- cmds=$module_expsym_cmds
- else
- eval test_cmds=\"$module_cmds\"
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- eval test_cmds=\"$archive_expsym_cmds\"
- cmds=$archive_expsym_cmds
- else
- eval test_cmds=\"$archive_cmds\"
- cmds=$archive_cmds
- fi
- fi
-
- if test "X$skipped_export" != "X:" &&
- func_len " $test_cmds" &&
- len=$func_len_result &&
- test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- :
- else
- # The command line is too long to link in one step, link piecewise
- # or, if using GNU ld and skipped_export is not :, use a linker
- # script.
-
- # Save the value of $output and $libobjs because we want to
- # use them later. If we have whole_archive_flag_spec, we
- # want to use save_libobjs as it was before
- # whole_archive_flag_spec was expanded, because we can't
- # assume the linker understands whole_archive_flag_spec.
- # This may have to be revisited, in case too many
- # convenience libraries get linked in and end up exceeding
- # the spec.
- if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- fi
- save_output=$output
- func_basename "$output"
- output_la=$func_basename_result
-
- # Clear the reloadable object creation command queue and
- # initialize k to one.
- test_cmds=
- concat_cmds=
- objlist=
- last_robj=
- k=1
-
- if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
- output=${output_objdir}/${output_la}.lnkscript
- func_verbose "creating GNU ld script: $output"
- echo 'INPUT (' > $output
- for obj in $save_libobjs
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result" >> $output
- done
- echo ')' >> $output
- func_append delfiles " $output"
- func_to_tool_file "$output"
- output=$func_to_tool_file_result
- elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
- output=${output_objdir}/${output_la}.lnk
- func_verbose "creating linker input file list: $output"
- : > $output
- set x $save_libobjs
- shift
- firstobj=
- if test "$compiler_needs_object" = yes; then
- firstobj="$1 "
- shift
- fi
- for obj
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result" >> $output
- done
- func_append delfiles " $output"
- func_to_tool_file "$output"
- output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
- else
- if test -n "$save_libobjs"; then
- func_verbose "creating reloadable object files..."
- output=$output_objdir/$output_la-${k}.$objext
- eval test_cmds=\"$reload_cmds\"
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
-
- # Loop over the list of objects to be linked.
- for obj in $save_libobjs
- do
- func_len " $obj"
- func_arith $len + $func_len_result
- len=$func_arith_result
- if test "X$objlist" = X ||
- test "$len" -lt "$max_cmd_len"; then
- func_append objlist " $obj"
- else
- # The command $test_cmds is almost too long, add a
- # command to the queue.
- if test "$k" -eq 1 ; then
- # The first file doesn't have a previous command to add.
- reload_objs=$objlist
- eval concat_cmds=\"$reload_cmds\"
- else
- # All subsequent reloadable object files will link in
- # the last one created.
- reload_objs="$objlist $last_robj"
- eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
- fi
- last_robj=$output_objdir/$output_la-${k}.$objext
- func_arith $k + 1
- k=$func_arith_result
- output=$output_objdir/$output_la-${k}.$objext
- objlist=" $obj"
- func_len " $last_robj"
- func_arith $len0 + $func_len_result
- len=$func_arith_result
- fi
- done
- # Handle the remaining objects by creating one last
- # reloadable object file. All subsequent reloadable object
- # files will link in the last one created.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- reload_objs="$objlist $last_robj"
- eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
- if test -n "$last_robj"; then
- eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
- fi
- func_append delfiles " $output"
-
- else
- output=
- fi
-
- if ${skipped_export-false}; then
- func_verbose "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $opt_dry_run || $RM $export_symbols
- libobjs=$output
- # Append the command to create the export file.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
- if test -n "$last_robj"; then
- eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
- fi
- fi
-
- test -n "$save_libobjs" &&
- func_verbose "creating a temporary reloadable object file: $output"
-
- # Loop through the commands generated above and execute them.
- save_ifs="$IFS"; IFS='~'
- for cmd in $concat_cmds; do
- IFS="$save_ifs"
- $opt_silent || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
- $opt_dry_run || eval "$cmd" || {
- lt_exit=$?
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
- fi
-
- exit $lt_exit
- }
- done
- IFS="$save_ifs"
-
- if test -n "$export_symbols_regex" && ${skipped_export-false}; then
- func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
- fi
- fi
-
- if ${skipped_export-false}; then
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols="$export_symbols"
- test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
- $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
- fi
-
- if test -n "$orig_export_symbols"; then
- # The given exports_symbols file has to be filtered, so filter it.
- func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
- # FIXME: $output_objdir/$libname.filter potentially contains lots of
- # 's' commands which not all seds can handle. GNU sed should be fine
- # though. Also, the filter scales superlinearly with the number of
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
- func_append delfiles " $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
- fi
-
- libobjs=$output
- # Restore the value of output.
- output=$save_output
-
- if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- test "X$libobjs" = "X " && libobjs=
- fi
- # Expand the library linking commands again to reset the
- # value of $libobjs for piecewise linking.
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- cmds=$module_expsym_cmds
- else
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- cmds=$archive_expsym_cmds
- else
- cmds=$archive_cmds
- fi
- fi
- fi
-
- if test -n "$delfiles"; then
- # Append the command to remove temporary files to $cmds.
- eval cmds=\"\$cmds~\$RM $delfiles\"
- fi
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $dlprefiles
- func_append libobjs " $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
-
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- eval cmd=\"$cmd\"
- $opt_silent || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
- $opt_dry_run || eval "$cmd" || {
- lt_exit=$?
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
- fi
-
- exit $lt_exit
- }
- done
- IFS="$save_ifs"
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
-
- if test -n "$convenience"; then
- if test -z "$whole_archive_flag_spec"; then
- func_show_eval '${RM}r "$gentop"'
- fi
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- # Create links to the real library.
- for linkname in $linknames; do
- if test "$realname" != "$linkname"; then
- func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
- fi
- done
-
- # If -module or -export-dynamic was specified, set the dlname.
- if test "$module" = yes || test "$export_dynamic" = yes; then
- # On all known operating systems, these are identical.
- dlname="$soname"
- fi
- fi
- ;;
-
- obj)
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- func_warning "\`-dlopen' is ignored for objects"
- fi
-
- case " $deplibs" in
- *\ -l* | *\ -L*)
- func_warning "\`-l' and \`-L' are ignored for objects" ;;
- esac
-
- test -n "$rpath" && \
- func_warning "\`-rpath' is ignored for objects"
-
- test -n "$xrpath" && \
- func_warning "\`-R' is ignored for objects"
-
- test -n "$vinfo" && \
- func_warning "\`-version-info' is ignored for objects"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for objects"
-
- case $output in
- *.lo)
- test -n "$objs$old_deplibs" && \
- func_fatal_error "cannot build library object \`$output' from non-libtool objects"
-
- libobj=$output
- func_lo2o "$libobj"
- obj=$func_lo2o_result
- ;;
- *)
- libobj=
- obj="$output"
- ;;
- esac
-
- # Delete the old objects.
- $opt_dry_run || $RM $obj $libobj
-
- # Objects from convenience libraries. This assumes
- # single-version convenience libraries. Whenever we create
- # different ones for PIC/non-PIC, this we'll have to duplicate
- # the extraction.
- reload_conv_objs=
- gentop=
- # reload_cmds runs $LD directly, so let us get rid of
- # -Wl from whole_archive_flag_spec and hope we can get by with
- # turning comma into space..
- wl=
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
- eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
- reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
- else
- gentop="$output_objdir/${obj}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $convenience
- reload_conv_objs="$reload_objs $func_extract_archives_result"
- fi
- fi
-
- # If we're not building shared, we need to use non_pic_objs
- test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
-
- # Create the old-style object.
- reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
- output="$obj"
- func_execute_cmds "$reload_cmds" 'exit $?'
-
- # Exit if we aren't doing a library object file.
- if test -z "$libobj"; then
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- if test "$build_libtool_libs" != yes; then
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- # Create an invalid libtool object if no PIC, so that we don't
- # accidentally link it into a program.
- # $show "echo timestamp > $libobj"
- # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
- exit $EXIT_SUCCESS
- fi
-
- if test -n "$pic_flag" || test "$pic_mode" != default; then
- # Only do commands if we really have different PIC objects.
- reload_objs="$libobjs $reload_conv_objs"
- output="$libobj"
- func_execute_cmds "$reload_cmds" 'exit $?'
- fi
-
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- exit $EXIT_SUCCESS
- ;;
-
- prog)
- case $host in
- *cygwin*) func_stripname '' '.exe' "$output"
- output=$func_stripname_result.exe;;
- esac
- test -n "$vinfo" && \
- func_warning "\`-version-info' is ignored for programs"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for programs"
-
- test "$preload" = yes \
- && test "$dlopen_support" = unknown \
- && test "$dlopen_self" = unknown \
- && test "$dlopen_self_static" = unknown && \
- func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library is the System framework
- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- case $host in
- *-*-darwin*)
- # Don't allow lazy linking, it breaks C++ global constructors
- # But is supposedly fixed on 10.4 or later (yay!).
- if test "$tagname" = CXX ; then
- case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
- 10.[0123])
- func_append compile_command " ${wl}-bind_at_load"
- func_append finalize_command " ${wl}-bind_at_load"
- ;;
- esac
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
-
- # move library search paths that coincide with paths to not yet
- # installed libraries to the beginning of the library search list
- new_libs=
- for path in $notinst_path; do
- case " $new_libs " in
- *" -L$path/$objdir "*) ;;
- *)
- case " $compile_deplibs " in
- *" -L$path/$objdir "*)
- func_append new_libs " -L$path/$objdir" ;;
- esac
- ;;
- esac
- done
- for deplib in $compile_deplibs; do
- case $deplib in
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) func_append new_libs " $deplib" ;;
- esac
- ;;
- *) func_append new_libs " $deplib" ;;
- esac
- done
- compile_deplibs="$new_libs"
-
-
- func_append compile_command " $compile_deplibs"
- func_append finalize_command " $finalize_deplibs"
-
- if test -n "$rpath$xrpath"; then
- # If the user specified any rpath flags, then add them.
- for libdir in $rpath $xrpath; do
- # This is the magic to use -rpath.
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- done
- fi
-
- # Now hardcode the library paths
- rpath=
- hardcode_libdirs=
- for libdir in $compile_rpath $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$libdir:"*) ;;
- ::) dllsearchpath=$libdir;;
- *) func_append dllsearchpath ":$libdir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
- *) func_append dllsearchpath ":$testbindir";;
- esac
- ;;
- esac
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- compile_rpath="$rpath"
-
- rpath=
- hardcode_libdirs=
- for libdir in $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$finalize_perm_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_perm_rpath " $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- finalize_rpath="$rpath"
-
- if test -n "$libobjs" && test "$build_old_libs" = yes; then
- # Transform all the library objects into standard objects.
- compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
- finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
- fi
-
- func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
-
- # template prelinking step
- if test -n "$prelink_cmds"; then
- func_execute_cmds "$prelink_cmds" 'exit $?'
- fi
-
- wrappers_required=yes
- case $host in
- *cegcc* | *mingw32ce*)
- # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
- wrappers_required=no
- ;;
- *cygwin* | *mingw* )
- if test "$build_libtool_libs" != yes; then
- wrappers_required=no
- fi
- ;;
- *)
- if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
- wrappers_required=no
- fi
- ;;
- esac
- if test "$wrappers_required" = no; then
- # Replace the output file specification.
- compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
- link_command="$compile_command$compile_rpath"
-
- # We have no uninstalled library dependencies, so finalize right now.
- exit_status=0
- func_show_eval "$link_command" 'exit_status=$?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- # Delete the generated files.
- if test -f "$output_objdir/${outputname}S.${objext}"; then
- func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
- fi
-
- exit $exit_status
- fi
-
- if test -n "$compile_shlibpath$finalize_shlibpath"; then
- compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
- fi
- if test -n "$finalize_shlibpath"; then
- finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
- fi
-
- compile_var=
- finalize_var=
- if test -n "$runpath_var"; then
- if test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- func_append rpath "$dir:"
- done
- compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- if test -n "$finalize_perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $finalize_perm_rpath; do
- func_append rpath "$dir:"
- done
- finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- fi
-
- if test "$no_install" = yes; then
- # We don't need to create a wrapper script.
- link_command="$compile_var$compile_command$compile_rpath"
- # Replace the output file specification.
- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
- # Delete the old output file.
- $opt_dry_run || $RM $output
- # Link the executable and exit
- func_show_eval "$link_command" 'exit $?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- if test "$hardcode_action" = relink; then
- # Fast installation is not supported
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
-
- func_warning "this platform does not like uninstalled shared libraries"
- func_warning "\`$output' will be relinked during installation"
- else
- if test "$fast_install" != no; then
- link_command="$finalize_var$compile_command$finalize_rpath"
- if test "$fast_install" = yes; then
- relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
- else
- # fast_install is set to needless
- relink_command=
- fi
- else
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
- fi
- fi
-
- # Replace the output file specification.
- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
- # Delete the old output files.
- $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
- func_show_eval "$link_command" 'exit $?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output_objdir/$outputname"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- # Now create the wrapper script.
- func_verbose "creating $output"
-
- # Quote the relink command for shipping.
- if test -n "$relink_command"; then
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
- fi
- done
- relink_command="(cd `pwd`; $relink_command)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
- fi
-
- # Only actually do things if not in dry run mode.
- $opt_dry_run || {
- # win32 will think the script is a binary if it has
- # a .exe suffix, so we strip it off here.
- case $output in
- *.exe) func_stripname '' '.exe' "$output"
- output=$func_stripname_result ;;
- esac
- # test for cygwin because mv fails w/o .exe extensions
- case $host in
- *cygwin*)
- exeext=.exe
- func_stripname '' '.exe' "$outputname"
- outputname=$func_stripname_result ;;
- *) exeext= ;;
- esac
- case $host in
- *cygwin* | *mingw* )
- func_dirname_and_basename "$output" "" "."
- output_name=$func_basename_result
- output_path=$func_dirname_result
- cwrappersource="$output_path/$objdir/lt-$output_name.c"
- cwrapper="$output_path/$output_name.exe"
- $RM $cwrappersource $cwrapper
- trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-
- func_emit_cwrapperexe_src > $cwrappersource
-
- # The wrapper executable is built using the $host compiler,
- # because it contains $host paths and files. If cross-
- # compiling, it, like the target executable, must be
- # executed on the $host or under an emulation environment.
- $opt_dry_run || {
- $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
- $STRIP $cwrapper
- }
-
- # Now, create the wrapper script for func_source use:
- func_ltwrapper_scriptname $cwrapper
- $RM $func_ltwrapper_scriptname_result
- trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
- $opt_dry_run || {
- # note: this script will not be executed, so do not chmod.
- if test "x$build" = "x$host" ; then
- $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
- else
- func_emit_wrapper no > $func_ltwrapper_scriptname_result
- fi
- }
- ;;
- * )
- $RM $output
- trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
-
- func_emit_wrapper no > $output
- chmod +x $output
- ;;
- esac
- }
- exit $EXIT_SUCCESS
- ;;
- esac
-
- # See if we need to build an old-fashioned archive.
- for oldlib in $oldlibs; do
-
- if test "$build_libtool_libs" = convenience; then
- oldobjs="$libobjs_save $symfileobj"
- addlibs="$convenience"
- build_libtool_libs=no
- else
- if test "$build_libtool_libs" = module; then
- oldobjs="$libobjs_save"
- build_libtool_libs=no
- else
- oldobjs="$old_deplibs $non_pic_objects"
- if test "$preload" = yes && test -f "$symfileobj"; then
- func_append oldobjs " $symfileobj"
- fi
- fi
- addlibs="$old_convenience"
- fi
-
- if test -n "$addlibs"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $addlibs
- func_append oldobjs " $func_extract_archives_result"
- fi
-
- # Do each command in the archive commands.
- if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
- cmds=$old_archive_from_new_cmds
- else
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $dlprefiles
- func_append oldobjs " $func_extract_archives_result"
- fi
-
- # POSIX demands no paths to be encoded in archives. We have
- # to avoid creating archives with duplicate basenames if we
- # might have to extract them afterwards, e.g., when creating a
- # static archive out of a convenience library, or when linking
- # the entirety of a libtool archive into another (currently
- # not supported by libtool).
- if (for obj in $oldobjs
- do
- func_basename "$obj"
- $ECHO "$func_basename_result"
- done | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- echo "copying selected object files to avoid basename conflicts..."
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
- func_mkdir_p "$gentop"
- save_oldobjs=$oldobjs
- oldobjs=
- counter=1
- for obj in $save_oldobjs
- do
- func_basename "$obj"
- objbase="$func_basename_result"
- case " $oldobjs " in
- " ") oldobjs=$obj ;;
- *[\ /]"$objbase "*)
- while :; do
- # Make sure we don't pick an alternate name that also
- # overlaps.
- newobj=lt$counter-$objbase
- func_arith $counter + 1
- counter=$func_arith_result
- case " $oldobjs " in
- *[\ /]"$newobj "*) ;;
- *) if test ! -f "$gentop/$newobj"; then break; fi ;;
- esac
- done
- func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
- func_append oldobjs " $gentop/$newobj"
- ;;
- *) func_append oldobjs " $obj" ;;
- esac
- done
- fi
- func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
- tool_oldlib=$func_to_tool_file_result
- eval cmds=\"$old_archive_cmds\"
-
- func_len " $cmds"
- len=$func_len_result
- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- cmds=$old_archive_cmds
- elif test -n "$archiver_list_spec"; then
- func_verbose "using command file archive linking..."
- for obj in $oldobjs
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result"
- done > $output_objdir/$libname.libcmd
- func_to_tool_file "$output_objdir/$libname.libcmd"
- oldobjs=" $archiver_list_spec$func_to_tool_file_result"
- cmds=$old_archive_cmds
- else
- # the command line is too long to link in one step, link in parts
- func_verbose "using piecewise archive linking..."
- save_RANLIB=$RANLIB
- RANLIB=:
- objlist=
- concat_cmds=
- save_oldobjs=$oldobjs
- oldobjs=
- # Is there a better way of finding the last object in the list?
- for obj in $save_oldobjs
- do
- last_oldobj=$obj
- done
- eval test_cmds=\"$old_archive_cmds\"
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
- for obj in $save_oldobjs
- do
- func_len " $obj"
- func_arith $len + $func_len_result
- len=$func_arith_result
- func_append objlist " $obj"
- if test "$len" -lt "$max_cmd_len"; then
- :
- else
- # the above command should be used before it gets too long
- oldobjs=$objlist
- if test "$obj" = "$last_oldobj" ; then
- RANLIB=$save_RANLIB
- fi
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
- objlist=
- len=$len0
- fi
- done
- RANLIB=$save_RANLIB
- oldobjs=$objlist
- if test "X$oldobjs" = "X" ; then
- eval cmds=\"\$concat_cmds\"
- else
- eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
- fi
- fi
- fi
- func_execute_cmds "$cmds" 'exit $?'
- done
-
- test -n "$generated" && \
- func_show_eval "${RM}r$generated"
-
- # Now create the libtool archive.
- case $output in
- *.la)
- old_library=
- test "$build_old_libs" = yes && old_library="$libname.$libext"
- func_verbose "creating $output"
-
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
- fi
- done
- # Quote the link command for shipping.
- relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
- if test "$hardcode_automatic" = yes ; then
- relink_command=
- fi
-
- # Only create the output if not a dry run.
- $opt_dry_run || {
- for installed in no yes; do
- if test "$installed" = yes; then
- if test -z "$install_libdir"; then
- break
- fi
- output="$output_objdir/$outputname"i
- # Replace all uninstalled libtool libraries with the installed ones
- newdependency_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- *.la)
- func_basename "$deplib"
- name="$func_basename_result"
- func_resolve_sysroot "$deplib"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
- test -z "$libdir" && \
- func_fatal_error "\`$deplib' is not a valid libtool archive"
- func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
- ;;
- -L*)
- func_stripname -L '' "$deplib"
- func_replace_sysroot "$func_stripname_result"
- func_append newdependency_libs " -L$func_replace_sysroot_result"
- ;;
- -R*)
- func_stripname -R '' "$deplib"
- func_replace_sysroot "$func_stripname_result"
- func_append newdependency_libs " -R$func_replace_sysroot_result"
- ;;
- *) func_append newdependency_libs " $deplib" ;;
- esac
- done
- dependency_libs="$newdependency_libs"
- newdlfiles=
-
- for lib in $dlfiles; do
- case $lib in
- *.la)
- func_basename "$lib"
- name="$func_basename_result"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- test -z "$libdir" && \
- func_fatal_error "\`$lib' is not a valid libtool archive"
- func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
- ;;
- *) func_append newdlfiles " $lib" ;;
- esac
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
- for lib in $dlprefiles; do
- case $lib in
- *.la)
- # Only pass preopened files to the pseudo-archive (for
- # eventual linking with the app. that links it) if we
- # didn't already link the preopened objects directly into
- # the library:
- func_basename "$lib"
- name="$func_basename_result"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- test -z "$libdir" && \
- func_fatal_error "\`$lib' is not a valid libtool archive"
- func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
- ;;
- esac
- done
- dlprefiles="$newdlprefiles"
- else
- newdlfiles=
- for lib in $dlfiles; do
- case $lib in
- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
- *) abs=`pwd`"/$lib" ;;
- esac
- func_append newdlfiles " $abs"
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
- for lib in $dlprefiles; do
- case $lib in
- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
- *) abs=`pwd`"/$lib" ;;
- esac
- func_append newdlprefiles " $abs"
- done
- dlprefiles="$newdlprefiles"
- fi
- $RM $output
- # place dlname in correct position for cygwin
- # In fact, it would be nice if we could use this code for all target
- # systems that can't hard-code library paths into their executables
- # and that have no shared library path variable independent of PATH,
- # but it turns out we can't easily determine that from inspecting
- # libtool variables, so we have to hard-code the OSs to which it
- # applies here; at the moment, that means platforms that use the PE
- # object format with DLL files. See the long comment at the top of
- # tests/bindir.at for full details.
- tdlname=$dlname
- case $host,$output,$installed,$module,$dlname in
- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
- # If a -bindir argument was supplied, place the dll there.
- if test "x$bindir" != x ;
- then
- func_relative_path "$install_libdir" "$bindir"
- tdlname=$func_relative_path_result$dlname
- else
- # Otherwise fall back on heuristic.
- tdlname=../bin/$dlname
- fi
- ;;
- esac
- $ECHO > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Linker flags that can not go in dependency_libs.
-inherited_linker_flags='$new_inherited_linker_flags'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Names of additional weak libraries provided by this library
-weak_library_names='$weak_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
- if test "$installed" = no && test "$need_relink" = yes; then
- $ECHO >> $output "\
-relink_command=\"$relink_command\""
- fi
- done
- }
-
- # Do a symbolic link so that the libtool archive can be found in
- # LD_LIBRARY_PATH before the program is installed.
- func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
- ;;
- esac
- exit $EXIT_SUCCESS
-}
-
-{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
- func_mode_link ${1+"$@"}
-
-
-# func_mode_uninstall arg...
-func_mode_uninstall ()
-{
- $opt_debug
- RM="$nonopt"
- files=
- rmforce=
- exit_status=0
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- for arg
- do
- case $arg in
- -f) func_append RM " $arg"; rmforce=yes ;;
- -*) func_append RM " $arg" ;;
- *) func_append files " $arg" ;;
- esac
- done
-
- test -z "$RM" && \
- func_fatal_help "you must specify an RM program"
-
- rmdirs=
-
- for file in $files; do
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
- if test "X$dir" = X.; then
- odir="$objdir"
- else
- odir="$dir/$objdir"
- fi
- func_basename "$file"
- name="$func_basename_result"
- test "$opt_mode" = uninstall && odir="$dir"
-
- # Remember odir for removal later, being careful to avoid duplicates
- if test "$opt_mode" = clean; then
- case " $rmdirs " in
- *" $odir "*) ;;
- *) func_append rmdirs " $odir" ;;
- esac
- fi
-
- # Don't error if the file doesn't exist and rm -f was used.
- if { test -L "$file"; } >/dev/null 2>&1 ||
- { test -h "$file"; } >/dev/null 2>&1 ||
- test -f "$file"; then
- :
- elif test -d "$file"; then
- exit_status=1
- continue
- elif test "$rmforce" = yes; then
- continue
- fi
-
- rmfiles="$file"
-
- case $name in
- *.la)
- # Possibly a libtool archive, so verify it.
- if func_lalib_p "$file"; then
- func_source $dir/$name
-
- # Delete the libtool libraries and symlinks.
- for n in $library_names; do
- func_append rmfiles " $odir/$n"
- done
- test -n "$old_library" && func_append rmfiles " $odir/$old_library"
-
- case "$opt_mode" in
- clean)
- case " $library_names " in
- *" $dlname "*) ;;
- *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
- esac
- test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
- ;;
- uninstall)
- if test -n "$library_names"; then
- # Do each command in the postuninstall commands.
- func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
- fi
-
- if test -n "$old_library"; then
- # Do each command in the old_postuninstall commands.
- func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
- fi
- # FIXME: should reinstall the best remaining shared library.
- ;;
- esac
- fi
- ;;
-
- *.lo)
- # Possibly a libtool object, so verify it.
- if func_lalib_p "$file"; then
-
- # Read the .lo file
- func_source $dir/$name
-
- # Add PIC object to the list of files to remove.
- if test -n "$pic_object" &&
- test "$pic_object" != none; then
- func_append rmfiles " $dir/$pic_object"
- fi
-
- # Add non-PIC object to the list of files to remove.
- if test -n "$non_pic_object" &&
- test "$non_pic_object" != none; then
- func_append rmfiles " $dir/$non_pic_object"
- fi
- fi
- ;;
-
- *)
- if test "$opt_mode" = clean ; then
- noexename=$name
- case $file in
- *.exe)
- func_stripname '' '.exe' "$file"
- file=$func_stripname_result
- func_stripname '' '.exe' "$name"
- noexename=$func_stripname_result
- # $file with .exe has already been added to rmfiles,
- # add $file without .exe
- func_append rmfiles " $file"
- ;;
- esac
- # Do a test to see if this is a libtool program.
- if func_ltwrapper_p "$file"; then
- if func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- relink_command=
- func_source $func_ltwrapper_scriptname_result
- func_append rmfiles " $func_ltwrapper_scriptname_result"
- else
- relink_command=
- func_source $dir/$noexename
- fi
-
- # note $name still contains .exe if it was in $file originally
- # as does the version of $file that was added into $rmfiles
- func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
- if test "$fast_install" = yes && test -n "$relink_command"; then
- func_append rmfiles " $odir/lt-$name"
- fi
- if test "X$noexename" != "X$name" ; then
- func_append rmfiles " $odir/lt-${noexename}.c"
- fi
- fi
- fi
- ;;
- esac
- func_show_eval "$RM $rmfiles" 'exit_status=1'
- done
-
- # Try to remove the ${objdir}s in the directories where we deleted files
- for dir in $rmdirs; do
- if test -d "$dir"; then
- func_show_eval "rmdir $dir >/dev/null 2>&1"
- fi
- done
-
- exit $exit_status
-}
-
-{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
- func_mode_uninstall ${1+"$@"}
-
-test -z "$opt_mode" && {
- help="$generic_help"
- func_fatal_help "you must specify a MODE"
-}
-
-test -z "$exec_cmd" && \
- func_fatal_help "invalid operation mode \`$opt_mode'"
-
-if test -n "$exec_cmd"; then
- eval exec "$exec_cmd"
- exit $EXIT_FAILURE
-fi
-
-exit $exit_status
-
-
-# The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries. Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them. This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration. But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
-# vi:sw=2
diff --git a/src/c/gf-complete/m4/ax_check_compile_flag.m4 b/src/c/gf-complete/m4/ax_check_compile_flag.m4
deleted file mode 100644
index c3a8d69..0000000
--- a/src/c/gf-complete/m4/ax_check_compile_flag.m4
+++ /dev/null
@@ -1,72 +0,0 @@
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
-#
-# DESCRIPTION
-#
-# Check whether the given FLAG works with the current language's compiler
-# or gives an error. (Warnings, however, are ignored)
-#
-# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
-# success/failure.
-#
-# If EXTRA-FLAGS is defined, it is added to the current language's default
-# flags (e.g. CFLAGS) when the check is done. The check is thus made with
-# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
-# force the compiler to issue an error when a bad flag is given.
-#
-# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
-# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
-# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
-#
-# This program 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, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 2
-
-AC_DEFUN([AX_CHECK_COMPILE_FLAG],
-[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
-AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
-AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
- ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
- _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
- [AS_VAR_SET(CACHEVAR,[yes])],
- [AS_VAR_SET(CACHEVAR,[no])])
- _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
-AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
- [m4_default([$2], :)],
- [m4_default([$3], :)])
-AS_VAR_POPDEF([CACHEVAR])dnl
-])dnl AX_CHECK_COMPILE_FLAGS
diff --git a/src/c/gf-complete/m4/ax_ext.m4 b/src/c/gf-complete/m4/ax_ext.m4
deleted file mode 100644
index b49ebdb..0000000
--- a/src/c/gf-complete/m4/ax_ext.m4
+++ /dev/null
@@ -1,308 +0,0 @@
-#
-# Updated by KMG to support -DINTEL_SSE for GF-Complete
-#
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_ext.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_EXT
-#
-# DESCRIPTION
-#
-# Find supported SIMD extensions by requesting cpuid. When an SIMD
-# extension is found, the -m"simdextensionname" is added to SIMD_FLAGS if
-# compiler supports it. For example, if "sse2" is available, then "-msse2"
-# is added to SIMD_FLAGS.
-#
-# This macro calls:
-#
-# AC_SUBST(SIMD_FLAGS)
-#
-# And defines:
-#
-# HAVE_MMX / HAVE_SSE / HAVE_SSE2 / HAVE_SSE3 / HAVE_SSSE3 / HAVE_SSE4.1 / HAVE_SSE4.2 / HAVE_AVX
-#
-# LICENSE
-#
-# Copyright (c) 2007 Christophe Tournayre <turn3r@users.sourceforge.net>
-# Copyright (c) 2013 Michael Petch <mpetch@capp-sysware.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 12
-
-AC_DEFUN([AX_EXT],
-[
- AC_REQUIRE([AC_CANONICAL_HOST])
-
- case $host_cpu in
- aarch64*)
- AC_DEFINE(HAVE_ARCH_AARCH64,,[targeting AArch64])
- SIMD_FLAGS="$SIMD_FLAGS -DARCH_AARCH64"
-
- AC_CACHE_CHECK([whether NEON is supported], [ax_cv_have_neon_ext],
- [
- # TODO: detect / cross-compile
- ax_cv_have_neon_ext=yes
- ])
- AC_CACHE_CHECK([whether cryptographic extension is supported], [ax_cv_have_arm_crypt_ext],
- [
- # TODO: detect / cross-compile
- ax_cv_have_arm_crypt_ext=yes
- ])
-
- if test "$ax_cv_have_arm_crypt_ext" = yes; then
- AC_DEFINE(HAVE_ARM_CRYPT_EXT,,[Support ARM cryptographic extension])
- fi
-
- if test "$ax_cv_have_neon_ext" = yes; then
- AC_DEFINE(HAVE_NEON,,[Support NEON instructions])
- fi
-
- if test "$ax_cv_have_arm_crypt_ext" = yes && test "$ax_cv_have_neon_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-march=armv8-a+simd+crypto,
- SIMD_FLAGS="$SIMD_FLAGS -march=armv8-a+simd+crypto -DARM_CRYPT -DARM_NEON", [])
- elif test "$ax_cv_have_arm_crypt_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-march=armv8-a+crypto,
- SIMD_FLAGS="$SIMD_FLAGS -march=armv8-a+crypto -DARM_CRYPT", [])
- elif test "$ax_cv_have_neon_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-march=armv8-a+simd,
- SIMD_FLAGS="$SIMD_FLAGS -march=armv8-a+simd -DARM_NEON", [])
- fi
- ;;
-
- arm*)
- AC_CACHE_CHECK([whether NEON is supported], [ax_cv_have_neon_ext],
- [
- # TODO: detect / cross-compile
- ax_cv_have_neon_ext=yes
- ])
-
- if test "$ax_cv_have_neon_ext" = yes; then
- AC_DEFINE(HAVE_NEON,,[Support NEON instructions])
- AX_CHECK_COMPILE_FLAG(-mfpu=neon,
- SIMD_FLAGS="$SIMD_FLAGS -mfpu=neon -DARM_NEON", [])
- fi
- ;;
-
- powerpc*)
- AC_CACHE_CHECK([whether altivec is supported], [ax_cv_have_altivec_ext],
- [
- if test `/usr/sbin/sysctl -a 2>/dev/null| grep -c hw.optional.altivec` != 0; then
- if test `/usr/sbin/sysctl -n hw.optional.altivec` = 1; then
- ax_cv_have_altivec_ext=yes
- fi
- fi
- ])
-
- if test "$ax_cv_have_altivec_ext" = yes; then
- AC_DEFINE(HAVE_ALTIVEC,,[Support Altivec instructions])
- AX_CHECK_COMPILE_FLAG(-faltivec, SIMD_FLAGS="$SIMD_FLAGS -faltivec", [])
- fi
- ;;
-
-
- i[[3456]]86*|x86_64*|amd64*)
-
- AC_REQUIRE([AX_GCC_X86_CPUID])
- AC_REQUIRE([AX_GCC_X86_AVX_XGETBV])
-
- AX_GCC_X86_CPUID(0x00000001)
- ecx=`echo $ax_cv_gcc_x86_cpuid_0x00000001 | cut -d ":" -f 3`
- edx=`echo $ax_cv_gcc_x86_cpuid_0x00000001 | cut -d ":" -f 4`
-
- AC_CACHE_CHECK([whether mmx is supported], [ax_cv_have_mmx_ext],
- [
- ax_cv_have_mmx_ext=no
- if test "$((0x$edx>>23&0x01))" = 1; then
- ax_cv_have_mmx_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse is supported], [ax_cv_have_sse_ext],
- [
- ax_cv_have_sse_ext=no
- if test "$((0x$edx>>25&0x01))" = 1; then
- ax_cv_have_sse_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse2 is supported], [ax_cv_have_sse2_ext],
- [
- ax_cv_have_sse2_ext=no
- if test "$((0x$edx>>26&0x01))" = 1; then
- ax_cv_have_sse2_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse3 is supported], [ax_cv_have_sse3_ext],
- [
- ax_cv_have_sse3_ext=no
- if test "$((0x$ecx&0x01))" = 1; then
- ax_cv_have_sse3_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether pclmuldq is supported], [ax_cv_have_pclmuldq_ext],
- [
- ax_cv_have_pclmuldq_ext=no
- if test "$((0x$ecx>>1&0x01))" = 1; then
- ax_cv_have_pclmuldq_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether ssse3 is supported], [ax_cv_have_ssse3_ext],
- [
- ax_cv_have_ssse3_ext=no
- if test "$((0x$ecx>>9&0x01))" = 1; then
- ax_cv_have_ssse3_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse4.1 is supported], [ax_cv_have_sse41_ext],
- [
- ax_cv_have_sse41_ext=no
- if test "$((0x$ecx>>19&0x01))" = 1; then
- ax_cv_have_sse41_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse4.2 is supported], [ax_cv_have_sse42_ext],
- [
- ax_cv_have_sse42_ext=no
- if test "$((0x$ecx>>20&0x01))" = 1; then
- ax_cv_have_sse42_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether avx is supported by processor], [ax_cv_have_avx_cpu_ext],
- [
- ax_cv_have_avx_cpu_ext=no
- if test "$((0x$ecx>>28&0x01))" = 1; then
- ax_cv_have_avx_cpu_ext=yes
- fi
- ])
-
- if test x"$ax_cv_have_avx_cpu_ext" = x"yes"; then
- AX_GCC_X86_AVX_XGETBV(0x00000000)
-
- xgetbv_eax="0"
- if test x"$ax_cv_gcc_x86_avx_xgetbv_0x00000000" != x"unknown"; then
- xgetbv_eax=`echo $ax_cv_gcc_x86_avx_xgetbv_0x00000000 | cut -d ":" -f 1`
- fi
-
- AC_CACHE_CHECK([whether avx is supported by operating system], [ax_cv_have_avx_ext],
- [
- ax_cv_have_avx_ext=no
-
- if test "$((0x$ecx>>27&0x01))" = 1; then
- if test "$((0x$xgetbv_eax&0x6))" = 6; then
- ax_cv_have_avx_ext=yes
- fi
- fi
- ])
- if test x"$ax_cv_have_avx_ext" = x"no"; then
- AC_MSG_WARN([Your processor supports AVX, but your operating system doesn't])
- fi
- fi
-
- if test "$ax_cv_have_mmx_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-mmmx, ax_cv_support_mmx_ext=yes, [])
- if test x"$ax_cv_support_mmx_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mmmx"
- AC_DEFINE(HAVE_MMX,,[Support mmx instructions])
- else
- AC_MSG_WARN([Your processor supports mmx instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_sse_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse, ax_cv_support_sse_ext=yes, [])
- if test x"$ax_cv_support_sse_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse -DINTEL_SSE"
- AC_DEFINE(HAVE_SSE,,[Support SSE (Streaming SIMD Extensions) instructions])
- else
- AC_MSG_WARN([Your processor supports sse instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_sse2_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse2, ax_cv_support_sse2_ext=yes, [])
- if test x"$ax_cv_support_sse2_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse2 -DINTEL_SSE2"
- AC_DEFINE(HAVE_SSE2,,[Support SSE2 (Streaming SIMD Extensions 2) instructions])
- else
- AC_MSG_WARN([Your processor supports sse2 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_sse3_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse3, ax_cv_support_sse3_ext=yes, [])
- if test x"$ax_cv_support_sse3_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse3 -DINTEL_SSE3"
- AC_DEFINE(HAVE_SSE3,,[Support SSE3 (Streaming SIMD Extensions 3) instructions])
- else
- AC_MSG_WARN([Your processor supports sse3 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_pclmuldq_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-mpclmul, ax_cv_support_pclmuldq_ext=yes, [])
- if test x"$ax_cv_support_pclmuldq_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mpclmul -DINTEL_SSE4_PCLMUL"
- AC_DEFINE(HAVE_PCLMULDQ,,[Support (PCLMULDQ) Carry-Free Muliplication])
- else
- AC_MSG_WARN([Your processor supports pclmuldq instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_ssse3_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-mssse3, ax_cv_support_ssse3_ext=yes, [])
- if test x"$ax_cv_support_ssse3_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mssse3 -DINTEL_SSSE3"
- AC_DEFINE(HAVE_SSSE3,,[Support SSSE3 (Supplemental Streaming SIMD Extensions 3) instructions])
- else
- AC_MSG_WARN([Your processor supports ssse3 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_sse41_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse4.1, ax_cv_support_sse41_ext=yes, [])
- if test x"$ax_cv_support_sse41_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse4.1 -DINTEL_SSE4"
- AC_DEFINE(HAVE_SSE4_1,,[Support SSSE4.1 (Streaming SIMD Extensions 4.1) instructions])
- else
- AC_MSG_WARN([Your processor supports sse4.1 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_sse42_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse4.2, ax_cv_support_sse42_ext=yes, [])
- if test x"$ax_cv_support_sse42_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse4.2 -DINTEL_SSE4"
- AC_DEFINE(HAVE_SSE4_2,,[Support SSSE4.2 (Streaming SIMD Extensions 4.2) instructions])
- else
- AC_MSG_WARN([Your processor supports sse4.2 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_avx_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-mavx, ax_cv_support_avx_ext=yes, [])
- if test x"$ax_cv_support_avx_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mavx"
- AC_DEFINE(HAVE_AVX,,[Support AVX (Advanced Vector Extensions) instructions])
- else
- AC_MSG_WARN([Your processor supports avx instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- ;;
- esac
-
- AC_SUBST(SIMD_FLAGS)
-])
diff --git a/src/c/gf-complete/m4/ax_gcc_x86_avx_xgetbv.m4 b/src/c/gf-complete/m4/ax_gcc_x86_avx_xgetbv.m4
deleted file mode 100644
index 0624eeb..0000000
--- a/src/c/gf-complete/m4/ax_gcc_x86_avx_xgetbv.m4
+++ /dev/null
@@ -1,79 +0,0 @@
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_gcc_x86_avx_xgetbv.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_GCC_X86_AVX_XGETBV
-#
-# DESCRIPTION
-#
-# On later x86 processors with AVX SIMD support, with gcc or a compiler
-# that has a compatible syntax for inline assembly instructions, run a
-# small program that executes the xgetbv instruction with input OP. This
-# can be used to detect if the OS supports AVX instruction usage.
-#
-# On output, the values of the eax and edx registers are stored as
-# hexadecimal strings as "eax:edx" in the cache variable
-# ax_cv_gcc_x86_avx_xgetbv.
-#
-# If the xgetbv instruction fails (because you are running a
-# cross-compiler, or because you are not using gcc, or because you are on
-# a processor that doesn't have this instruction),
-# ax_cv_gcc_x86_avx_xgetbv_OP is set to the string "unknown".
-#
-# This macro mainly exists to be used in AX_EXT.
-#
-# LICENSE
-#
-# Copyright (c) 2013 Michael Petch <mpetch@capp-sysware.com>
-#
-# This program 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, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 1
-
-AC_DEFUN([AX_GCC_X86_AVX_XGETBV],
-[AC_REQUIRE([AC_PROG_CC])
-AC_LANG_PUSH([C])
-AC_CACHE_CHECK(for x86-AVX xgetbv $1 output, ax_cv_gcc_x86_avx_xgetbv_$1,
- [AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <stdio.h>], [
- int op = $1, eax, edx;
- FILE *f;
- /* Opcodes for xgetbv */
- __asm__(".byte 0x0f, 0x01, 0xd0"
- : "=a" (eax), "=d" (edx)
- : "c" (op));
- f = fopen("conftest_xgetbv", "w"); if (!f) return 1;
- fprintf(f, "%x:%x\n", eax, edx);
- fclose(f);
- return 0;
-])],
- [ax_cv_gcc_x86_avx_xgetbv_$1=`cat conftest_xgetbv`; rm -f conftest_xgetbv],
- [ax_cv_gcc_x86_avx_xgetbv_$1=unknown; rm -f conftest_xgetbv],
- [ax_cv_gcc_x86_avx_xgetbv_$1=unknown])])
-AC_LANG_POP([C])
-])
diff --git a/src/c/gf-complete/m4/ax_gcc_x86_cpuid.m4 b/src/c/gf-complete/m4/ax_gcc_x86_cpuid.m4
deleted file mode 100644
index 7d46fee..0000000
--- a/src/c/gf-complete/m4/ax_gcc_x86_cpuid.m4
+++ /dev/null
@@ -1,79 +0,0 @@
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_gcc_x86_cpuid.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_GCC_X86_CPUID(OP)
-#
-# DESCRIPTION
-#
-# On Pentium and later x86 processors, with gcc or a compiler that has a
-# compatible syntax for inline assembly instructions, run a small program
-# that executes the cpuid instruction with input OP. This can be used to
-# detect the CPU type.
-#
-# On output, the values of the eax, ebx, ecx, and edx registers are stored
-# as hexadecimal strings as "eax:ebx:ecx:edx" in the cache variable
-# ax_cv_gcc_x86_cpuid_OP.
-#
-# If the cpuid instruction fails (because you are running a
-# cross-compiler, or because you are not using gcc, or because you are on
-# a processor that doesn't have this instruction), ax_cv_gcc_x86_cpuid_OP
-# is set to the string "unknown".
-#
-# This macro mainly exists to be used in AX_GCC_ARCHFLAG.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
-# Copyright (c) 2008 Matteo Frigo
-#
-# This program 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, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 7
-
-AC_DEFUN([AX_GCC_X86_CPUID],
-[AC_REQUIRE([AC_PROG_CC])
-AC_LANG_PUSH([C])
-AC_CACHE_CHECK(for x86 cpuid $1 output, ax_cv_gcc_x86_cpuid_$1,
- [AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <stdio.h>], [
- int op = $1, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-])],
- [ax_cv_gcc_x86_cpuid_$1=`cat conftest_cpuid`; rm -f conftest_cpuid],
- [ax_cv_gcc_x86_cpuid_$1=unknown; rm -f conftest_cpuid],
- [ax_cv_gcc_x86_cpuid_$1=unknown])])
-AC_LANG_POP([C])
-])
diff --git a/src/c/gf-complete/m4/libtool.m4 b/src/c/gf-complete/m4/libtool.m4
deleted file mode 100644
index e0ffe79..0000000
--- a/src/c/gf-complete/m4/libtool.m4
+++ /dev/null
@@ -1,7997 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-m4_define([_LT_COPYING], [dnl
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool 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 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-])
-
-# serial 57 LT_INIT
-
-
-# LT_PREREQ(VERSION)
-# ------------------
-# Complain and exit if this libtool version is less that VERSION.
-m4_defun([LT_PREREQ],
-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
- [m4_default([$3],
- [m4_fatal([Libtool version $1 or higher is required],
- 63)])],
- [$2])])
-
-
-# _LT_CHECK_BUILDDIR
-# ------------------
-# Complain if the absolute build directory name contains unusual characters
-m4_defun([_LT_CHECK_BUILDDIR],
-[case `pwd` in
- *\ * | *\ *)
- AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-esac
-])
-
-
-# LT_INIT([OPTIONS])
-# ------------------
-AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
-AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])# LT_INIT
-
-# Old names:
-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
- case $cc_temp in
- compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
- distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-])
-
-
-# _LT_FILEUTILS_DEFAULTS
-# ----------------------
-# It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
-m4_defun([_LT_FILEUTILS_DEFAULTS],
-[: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-])# _LT_FILEUTILS_DEFAULTS
-
-
-# _LT_SETUP
-# ---------
-m4_defun([_LT_SETUP],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-
-_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
-dnl
-_LT_DECL([], [host_alias], [0], [The host system])dnl
-_LT_DECL([], [host], [0])dnl
-_LT_DECL([], [host_os], [0])dnl
-dnl
-_LT_DECL([], [build_alias], [0], [The build system])dnl
-_LT_DECL([], [build], [0])dnl
-_LT_DECL([], [build_os], [0])dnl
-dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-test -z "$LN_S" && LN_S="ln -s"
-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-dnl
-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
-m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_WITH_SYSROOT])dnl
-
-_LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-])
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-_LT_CHECK_OBJDIR
-
-m4_require([_LT_TAG_COMPILER])dnl
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- _LT_PATH_MAGIC
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-LT_SUPPORTED_TAG([CC])
-_LT_LANG_C_CONFIG
-_LT_LANG_DEFAULT_CONFIG
-_LT_CONFIG_COMMANDS
-])# _LT_SETUP
-
-
-# _LT_PREPARE_SED_QUOTE_VARS
-# --------------------------
-# Define a few sed substitution that help us do robust quoting.
-m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
-[# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-])
-
-# _LT_PROG_LTMAIN
-# ---------------
-# Note that this code is called both from `configure', and `config.status'
-# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
-# so we pass a copy along to make sure it has a sensible value anyway.
-m4_defun([_LT_PROG_LTMAIN],
-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
-])# _LT_PROG_LTMAIN
-
-
-## ------------------------------------- ##
-## Accumulate code for creating libtool. ##
-## ------------------------------------- ##
-
-# So that we can recreate a full libtool script including additional
-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
-# label.
-
-
-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-# ----------------------------------------
-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL_INIT],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-
-
-# _LT_CONFIG_LIBTOOL([COMMANDS])
-# ------------------------------
-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-
-
-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-# -----------------------------------------------------
-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-[_LT_CONFIG_LIBTOOL([$1])
-_LT_CONFIG_LIBTOOL_INIT([$2])
-])
-
-
-# _LT_FORMAT_COMMENT([COMMENT])
-# -----------------------------
-# Add leading comment marks to the start of each line, and a trailing
-# full-stop to the whole comment if one is not present already.
-m4_define([_LT_FORMAT_COMMENT],
-[m4_ifval([$1], [
-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
- [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-)])
-
-
-
-## ------------------------ ##
-## FIXME: Eliminate VARNAME ##
-## ------------------------ ##
-
-
-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-# -------------------------------------------------------------------
-# CONFIGNAME is the name given to the value in the libtool script.
-# VARNAME is the (base) name used in the configure script.
-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-# VARNAME. Any other value will be used directly.
-m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
- [m4_ifval([$1], [$1], [$2])])
- lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
- m4_ifval([$4],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
- lt_dict_add_subkey([lt_decl_dict], [$2],
- [tagged?], [m4_ifval([$5], [yes], [no])])])
-])
-
-
-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-# --------------------------------------------------------
-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-
-
-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_tag_varnames],
-[_lt_decl_filter([tagged?], [yes], $@)])
-
-
-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-# ---------------------------------------------------------
-m4_define([_lt_decl_filter],
-[m4_case([$#],
- [0], [m4_fatal([$0: too few arguments: $#])],
- [1], [m4_fatal([$0: too few arguments: $#: $1])],
- [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
- [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
- [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-])
-
-
-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-# --------------------------------------------------
-m4_define([lt_decl_quote_varnames],
-[_lt_decl_filter([value], [1], $@)])
-
-
-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_dquote_varnames],
-[_lt_decl_filter([value], [2], $@)])
-
-
-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_varnames_tagged],
-[m4_assert([$# <= 2])dnl
-_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
- m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-m4_define([_lt_decl_varnames_tagged],
-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-
-
-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_all_varnames],
-[_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_if([$2], [],
- m4_quote(lt_decl_varnames),
- m4_quote(m4_shift($@))))[]dnl
-])
-m4_define([_lt_decl_all_varnames],
-[lt_join($@, lt_decl_varnames_tagged([$1],
- lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-])
-
-
-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-# ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'. VARNAME
-# must have a single quote delimited value for this to work.
-m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
-
-
-# _LT_CONFIG_STATUS_DECLARATIONS
-# ------------------------------
-# We delimit libtool config variables with single quotes, so when
-# we write them to config.status, we have to be sure to quote all
-# embedded single quotes properly. In configure, this macro expands
-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-#
-# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
- [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAGS
-# ----------------
-# Output comment and list of tags supported by the script
-m4_defun([_LT_LIBTOOL_TAGS],
-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
-])
-
-
-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-# -----------------------------------
-# Extract the dictionary values for VARNAME (optionally with TAG) and
-# expand to a commented shell variable setting:
-#
-# # Some comment about what VAR is for.
-# visible_name=$lt_internal_name
-m4_define([_LT_LIBTOOL_DECLARE],
-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
- [description])))[]dnl
-m4_pushdef([_libtool_name],
- m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
- [0], [_libtool_name=[$]$1],
- [1], [_libtool_name=$lt_[]$1],
- [2], [_libtool_name=$lt_[]$1],
- [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-])
-
-
-# _LT_LIBTOOL_CONFIG_VARS
-# -----------------------
-# Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
-# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
-# section) are produced by _LT_LIBTOOL_TAG_VARS.
-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-[m4_foreach([_lt_var],
- m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAG_VARS(TAG)
-# -------------------------
-m4_define([_LT_LIBTOOL_TAG_VARS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-
-
-# _LT_TAGVAR(VARNAME, [TAGNAME])
-# ------------------------------
-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-
-
-# _LT_CONFIG_COMMANDS
-# -------------------
-# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
-# variables for single and double quote escaping we saved from calls
-# to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'. Finally, any additional code accumulated
-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-m4_defun([_LT_CONFIG_COMMANDS],
-[AC_PROVIDE_IFELSE([LT_OUTPUT],
- dnl If the libtool generation code has been placed in $CONFIG_LT,
- dnl instead of duplicating it all over again into config.status,
- dnl then we will have config.status run $CONFIG_LT later, so it
- dnl needs to know what name is stored there:
- [AC_CONFIG_COMMANDS([libtool],
- [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
- dnl If the libtool generation code is destined for config.status,
- dnl expand the accumulated commands and init code now:
- [AC_CONFIG_COMMANDS([libtool],
- [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-])#_LT_CONFIG_COMMANDS
-
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-[
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-_LT_CONFIG_STATUS_DECLARATIONS
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$[]1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_quote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_dquote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-_LT_OUTPUT_LIBTOOL_INIT
-])
-
-# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
-# ------------------------------------
-# Generate a child script FILE with all initialization necessary to
-# reuse the environment learned by the parent script, and make the
-# file executable. If COMMENT is supplied, it is inserted after the
-# `#!' sequence but before initialization text begins. After this
-# macro, additional text can be appended to FILE to form the body of
-# the child script. The macro ends with non-zero status if the
-# file could not be fully written (such as if the disk is full).
-m4_ifdef([AS_INIT_GENERATED],
-[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
-[m4_defun([_LT_GENERATED_FILE_INIT],
-[m4_require([AS_PREPARE])]dnl
-[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
-[lt_write_fail=0
-cat >$1 <<_ASEOF || lt_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-$2
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$1 <<\_ASEOF || lt_write_fail=1
-AS_SHELL_SANITIZE
-_AS_PREPARE
-exec AS_MESSAGE_FD>&1
-_ASEOF
-test $lt_write_fail = 0 && chmod +x $1[]dnl
-m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
-
-# LT_OUTPUT
-# ---------
-# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), incase it is used in configure for compilation
-# tests.
-AC_DEFUN([LT_OUTPUT],
-[: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
-[# Run this file to recreate a libtool stub with the current configuration.])
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-lt_cl_silent=false
-exec AS_MESSAGE_LOG_FD>>config.log
-{
- echo
- AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
-
-Report bugs to <bug-libtool@gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2011 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test $[#] != 0
-do
- case $[1] in
- --version | --v* | -V )
- echo "$lt_cl_version"; exit 0 ;;
- --help | --h* | -h )
- echo "$lt_cl_help"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --quiet | --q* | --silent | --s* | -q )
- lt_cl_silent=: ;;
-
- -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
-
- *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
- esac
- shift
-done
-
-if $lt_cl_silent; then
- exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure. Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-lt_cl_success=:
-test "$silent" = yes &&
- lt_config_lt_args="$lt_config_lt_args --quiet"
-exec AS_MESSAGE_LOG_FD>/dev/null
-$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-exec AS_MESSAGE_LOG_FD>>config.log
-$lt_cl_success || AS_EXIT(1)
-])# LT_OUTPUT
-
-
-# _LT_CONFIG(TAG)
-# ---------------
-# If TAG is the built-in tag, create an initial libtool script with a
-# default configuration from the untagged config vars. Otherwise add code
-# to config.status for appending the configuration named by TAG from the
-# matching tagged config vars.
-m4_defun([_LT_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_CONFIG_SAVE_COMMANDS([
- m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
- m4_if(_LT_TAG, [C], [
- # See if we are running on zsh, and set the options which allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile="${ofile}T"
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-_LT_COPYING
-_LT_LIBTOOL_TAGS
-
-# ### BEGIN LIBTOOL CONFIG
-_LT_LIBTOOL_CONFIG_VARS
-_LT_LIBTOOL_TAG_VARS
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
- _LT_PROG_LTMAIN
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- _LT_PROG_REPLACE_SHELLFNS
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-],
-[cat <<_LT_EOF >> "$ofile"
-
-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-dnl in a comment (ie after a #).
-# ### BEGIN LIBTOOL TAG CONFIG: $1
-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-# ### END LIBTOOL TAG CONFIG: $1
-_LT_EOF
-])dnl /m4_if
-],
-[m4_if([$1], [], [
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
- RM='$RM'
- ofile='$ofile'], [])
-])dnl /_LT_CONFIG_SAVE_COMMANDS
-])# _LT_CONFIG
-
-
-# LT_SUPPORTED_TAG(TAG)
-# ---------------------
-# Trace this macro to discover what tags are supported by the libtool
-# --tag option, using:
-# autoconf --trace 'LT_SUPPORTED_TAG:$1'
-AC_DEFUN([LT_SUPPORTED_TAG], [])
-
-
-# C support is built-in for now
-m4_define([_LT_LANG_C_enabled], [])
-m4_define([_LT_TAGS], [])
-
-
-# LT_LANG(LANG)
-# -------------
-# Enable libtool support for the given language if not already enabled.
-AC_DEFUN([LT_LANG],
-[AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
- [C], [_LT_LANG(C)],
- [C++], [_LT_LANG(CXX)],
- [Go], [_LT_LANG(GO)],
- [Java], [_LT_LANG(GCJ)],
- [Fortran 77], [_LT_LANG(F77)],
- [Fortran], [_LT_LANG(FC)],
- [Windows Resource], [_LT_LANG(RC)],
- [m4_ifdef([_LT_LANG_]$1[_CONFIG],
- [_LT_LANG($1)],
- [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])# LT_LANG
-
-
-# _LT_LANG(LANGNAME)
-# ------------------
-m4_defun([_LT_LANG],
-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
- [LT_SUPPORTED_TAG([$1])dnl
- m4_append([_LT_TAGS], [$1 ])dnl
- m4_define([_LT_LANG_]$1[_enabled], [])dnl
- _LT_LANG_$1_CONFIG($1)])dnl
-])# _LT_LANG
-
-
-m4_ifndef([AC_PROG_GO], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_GO. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-m4_defun([AC_PROG_GO],
-[AC_LANG_PUSH(Go)dnl
-AC_ARG_VAR([GOC], [Go compiler command])dnl
-AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
-_AC_ARG_VAR_LDFLAGS()dnl
-AC_CHECK_TOOL(GOC, gccgo)
-if test -z "$GOC"; then
- if test -n "$ac_tool_prefix"; then
- AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
- fi
-fi
-if test -z "$GOC"; then
- AC_CHECK_PROG(GOC, gccgo, gccgo, false)
-fi
-])#m4_defun
-])#m4_ifndef
-
-
-# _LT_LANG_DEFAULT_CONFIG
-# -----------------------
-m4_defun([_LT_LANG_DEFAULT_CONFIG],
-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [LT_LANG(CXX)],
- [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_F77],
- [LT_LANG(F77)],
- [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_FC],
- [LT_LANG(FC)],
- [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-
-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-dnl pulling things in needlessly.
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
- [LT_LANG(GCJ)],
- [m4_ifdef([AC_PROG_GCJ],
- [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([A][M_PROG_GCJ],
- [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([LT_PROG_GCJ],
- [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
-AC_PROVIDE_IFELSE([AC_PROG_GO],
- [LT_LANG(GO)],
- [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
-
-AC_PROVIDE_IFELSE([LT_PROG_RC],
- [LT_LANG(RC)],
- [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
-
-# Obsolete macros:
-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-dnl AC_DEFUN([AC_LIBTOOL_RC], [])
-
-
-# _LT_TAG_COMPILER
-# ----------------
-m4_defun([_LT_TAG_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_TAG_COMPILER
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-m4_defun([_LT_COMPILER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-m4_defun([_LT_LINKER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# -------------------------
-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
- case $host_os in
- rhapsody* | darwin*)
- AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
- AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
- AC_CHECK_TOOL([LIPO], [lipo], [:])
- AC_CHECK_TOOL([OTOOL], [otool], [:])
- AC_CHECK_TOOL([OTOOL64], [otool64], [:])
- _LT_DECL([], [DSYMUTIL], [1],
- [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
- _LT_DECL([], [NMEDIT], [1],
- [Tool to change global to local symbols on Mac OS X])
- _LT_DECL([], [LIPO], [1],
- [Tool to manipulate fat objects and archives on Mac OS X])
- _LT_DECL([], [OTOOL], [1],
- [ldd/readelf like tool for Mach-O binaries on Mac OS X])
- _LT_DECL([], [OTOOL64], [1],
- [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-
- AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
- [lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- # If there is a non-empty error log, and "single_module"
- # appears in it, assume the flag caused a linker warning
- if test -s conftest.err && $GREP single_module conftest.err; then
- cat conftest.err >&AS_MESSAGE_LOG_FD
- # Otherwise, if the output was created with a 0 exit code from
- # the compiler, it worked.
- elif test -f libconftest.dylib && test $_lt_result -eq 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi])
-
- AC_CACHE_CHECK([for -exported_symbols_list linker flag],
- [lt_cv_ld_exported_symbols_list],
- [lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [lt_cv_ld_exported_symbols_list=yes],
- [lt_cv_ld_exported_symbols_list=no])
- LDFLAGS="$save_LDFLAGS"
- ])
-
- AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
- [lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
- echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
- $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
- echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
- $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -s conftest.err && $GREP force_load conftest.err; then
- cat conftest.err >&AS_MESSAGE_LOG_FD
- elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
- ])
- case $host_os in
- rhapsody* | darwin1.[[012]])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- 10.[[012]]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-])
-
-
-# _LT_DARWIN_LINKER_FEATURES([TAG])
-# ---------------------------------
-# Checks for linker and compiler features on darwin
-m4_defun([_LT_DARWIN_LINKER_FEATURES],
-[
- m4_require([_LT_REQUIRED_DARWIN_CHECKS])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_automatic, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
- m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
- [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes])
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=''
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
- m4_if([$1], [CXX],
-[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
- _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
- fi
-],[])
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
-])
-
-# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
-# ----------------------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-# Store the results from the different compilers for each TAGNAME.
-# Allow to override them for all tags through lt_cv_aix_libpath.
-m4_defun([_LT_SYS_MODULE_PATH_AIX],
-[m4_require([_LT_DECL_SED])dnl
-if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
- [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
- lt_aix_libpath_sed='[
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }]'
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi],[])
- if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
- fi
- ])
- aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
-fi
-])# _LT_SYS_MODULE_PATH_AIX
-
-
-# _LT_SHELL_INIT(ARG)
-# -------------------
-m4_define([_LT_SHELL_INIT],
-[m4_divert_text([M4SH-INIT], [$1
-])])# _LT_SHELL_INIT
-
-
-
-# _LT_PROG_ECHO_BACKSLASH
-# -----------------------
-# Find how we can fake an echo command that does not interpret backslash.
-# In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script which will find a shell with a builtin
-# printf (which we can use as an echo command).
-m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-AC_MSG_CHECKING([how to print strings])
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$[]1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-case "$ECHO" in
- printf*) AC_MSG_RESULT([printf]) ;;
- print*) AC_MSG_RESULT([print -r]) ;;
- *) AC_MSG_RESULT([cat]) ;;
-esac
-
-m4_ifdef([_AS_DETECT_SUGGESTED],
-[_AS_DETECT_SUGGESTED([
- test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test "X`printf %s $ECHO`" = "X$ECHO" \
- || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
-
-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
-])# _LT_PROG_ECHO_BACKSLASH
-
-
-# _LT_WITH_SYSROOT
-# ----------------
-AC_DEFUN([_LT_WITH_SYSROOT],
-[AC_MSG_CHECKING([for sysroot])
-AC_ARG_WITH([sysroot],
-[ --with-sysroot[=DIR] Search for dependent libraries within DIR
- (or the compiler's sysroot if not specified).],
-[], [with_sysroot=no])
-
-dnl lt_sysroot will always be passed unquoted. We quote it here
-dnl in case the user passed a directory name.
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
- if test "$GCC" = yes; then
- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
- fi
- ;; #(
- /*)
- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
- ;; #(
- no|'')
- ;; #(
- *)
- AC_MSG_RESULT([${with_sysroot}])
- AC_MSG_ERROR([The sysroot must be an absolute path.])
- ;;
-esac
-
- AC_MSG_RESULT([${lt_sysroot:-no}])
-_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-[dependent libraries, and in which our libraries should be installed.])])
-
-# _LT_ENABLE_LOCK
-# ---------------
-m4_defun([_LT_ENABLE_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
- [AS_HELP_STRING([--disable-libtool-lock],
- [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- case `/usr/bin/file conftest.o` in
- *x86-64*)
- LD="${LD-ld} -m elf32_x86_64"
- ;;
- *)
- LD="${LD-ld} -m elf_i386"
- ;;
- esac
- ;;
- powerpc64le-*)
- LD="${LD-ld} -m elf32lppclinux"
- ;;
- powerpc64-*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- powerpcle-*)
- LD="${LD-ld} -m elf64lppc"
- ;;
- powerpc-*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
- [AC_LANG_PUSH(C)
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
- AC_LANG_POP])
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*)
- case $host in
- i?86-*-solaris*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- sparc*-*-solaris*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
- LD="${LD-ld}_sol2"
- fi
- ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks="$enable_libtool_lock"
-])# _LT_ENABLE_LOCK
-
-
-# _LT_PROG_AR
-# -----------
-m4_defun([_LT_PROG_AR],
-[AC_CHECK_TOOLS(AR, [ar], false)
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
-
-AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
- [lt_cv_ar_at_file=no
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
- [echo conftest.$ac_objext > conftest.lst
- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
- AC_TRY_EVAL([lt_ar_try])
- if test "$ac_status" -eq 0; then
- # Ensure the archiver fails upon bogus file names.
- rm -f conftest.$ac_objext libconftest.a
- AC_TRY_EVAL([lt_ar_try])
- if test "$ac_status" -ne 0; then
- lt_cv_ar_at_file=@
- fi
- fi
- rm -f conftest.* libconftest.a
- ])
- ])
-
-if test "x$lt_cv_ar_at_file" = xno; then
- archiver_list_spec=
-else
- archiver_list_spec=$lt_cv_ar_at_file
-fi
-_LT_DECL([], [archiver_list_spec], [1],
- [How to feed a file listing to the archiver])
-])# _LT_PROG_AR
-
-
-# _LT_CMD_OLD_ARCHIVE
-# -------------------
-m4_defun([_LT_CMD_OLD_ARCHIVE],
-[_LT_PROG_AR
-
-AC_CHECK_TOOL(STRIP, strip, :)
-test -z "$STRIP" && STRIP=:
-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-test -z "$RANLIB" && RANLIB=:
-_LT_DECL([], [RANLIB], [1],
- [Commands used to install an old-style archive])
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-_LT_DECL([], [old_postinstall_cmds], [2])
-_LT_DECL([], [old_postuninstall_cmds], [2])
-_LT_TAGDECL([], [old_archive_cmds], [2],
- [Commands used to build an old-style archive])
-_LT_DECL([], [lock_old_archive_extraction], [0],
- [Whether to use a lock for old archive extraction])
-])# _LT_CMD_OLD_ARCHIVE
-
-
-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([_LT_COMPILER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$3"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- fi
- $RM conftest*
-])
-
-if test x"[$]$2" = xyes; then
- m4_if([$5], , :, [$5])
-else
- m4_if([$6], , :, [$6])
-fi
-])# _LT_COMPILER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-
-
-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------
-# Check whether the given linker option works
-AC_DEFUN([_LT_LINKER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $3"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&AS_MESSAGE_LOG_FD
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- else
- $2=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
- m4_if([$4], , :, [$4])
-else
- m4_if([$5], , :, [$5])
-fi
-])# _LT_LINKER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-
-
-# LT_CMD_MAX_LEN
-#---------------
-AC_DEFUN([LT_CMD_MAX_LEN],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- os2*)
- # The test takes a long time on OS/2.
- lt_cv_sys_max_cmd_len=8192
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len" && \
- test undefined != "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
- AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
- AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
- [What is the maximum length of a command?])
-])# LT_CMD_MAX_LEN
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-
-
-# _LT_HEADER_DLFCN
-# ----------------
-m4_defun([_LT_HEADER_DLFCN],
-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-])# _LT_HEADER_DLFCN
-
-
-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ----------------------------------------------------------------
-m4_defun([_LT_TRY_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
- [$4]
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-[#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}]
-_LT_EOF
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) $1 ;;
- x$lt_dlneed_uscore) $2 ;;
- x$lt_dlunknown|x*) $3 ;;
- esac
- else :
- # compilation failed
- $3
- fi
-fi
-rm -fr conftest*
-])# _LT_TRY_DLOPEN_SELF
-
-
-# LT_SYS_DLOPEN_SELF
-# ------------------
-AC_DEFUN([LT_SYS_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ])
- ;;
-
- *)
- AC_CHECK_FUNC([shl_load],
- [lt_cv_dlopen="shl_load"],
- [AC_CHECK_LIB([dld], [shl_load],
- [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
- [AC_CHECK_FUNC([dlopen],
- [lt_cv_dlopen="dlopen"],
- [AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
- [AC_CHECK_LIB([svld], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
- [AC_CHECK_LIB([dld], [dld_link],
- [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
- ])
- ])
- ])
- ])
- ])
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- AC_CACHE_CHECK([whether a program can dlopen itself],
- lt_cv_dlopen_self, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
- lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
- ])
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
- lt_cv_dlopen_self_static, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
- lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
- ])
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
- [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
- [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
- [Whether dlopen of statically linked programs is supported])
-])# LT_SYS_DLOPEN_SELF
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-
-
-# _LT_COMPILER_C_O([TAGNAME])
-# ---------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler.
-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-m4_defun([_LT_COMPILER_C_O],
-[m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
- fi
- fi
- chmod u+w . 2>&AS_MESSAGE_LOG_FD
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-])
-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
- [Does compiler simultaneously support -c and -o options?])
-])# _LT_COMPILER_C_O
-
-
-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-# ----------------------------------
-# Check to see if we can do hard links to lock some files if needed
-m4_defun([_LT_COMPILER_FILE_LOCKS],
-[m4_require([_LT_ENABLE_LOCK])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_COMPILER_C_O([$1])
-
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- AC_MSG_CHECKING([if we can lock with hard links])
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- AC_MSG_RESULT([$hard_links])
- if test "$hard_links" = no; then
- AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-])# _LT_COMPILER_FILE_LOCKS
-
-
-# _LT_CHECK_OBJDIR
-# ----------------
-m4_defun([_LT_CHECK_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-_LT_DECL([], [objdir], [0],
- [The name of the directory that contains temporary libtool files])dnl
-m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
- [Define to the sub-directory in which libtool stores uninstalled libraries.])
-])# _LT_CHECK_OBJDIR
-
-
-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-# --------------------------------------
-# Check hardcoding attributes.
-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
- test -n "$_LT_TAGVAR(runpath_var, $1)" ||
- test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
- test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
- # Linking always hardcodes the temporary library directory.
- _LT_TAGVAR(hardcode_action, $1)=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- _LT_TAGVAR(hardcode_action, $1)=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- _LT_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
- test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-_LT_TAGDECL([], [hardcode_action], [0],
- [How to hardcode a shared library path into an executable])
-])# _LT_LINKER_HARDCODE_LIBPATH
-
-
-# _LT_CMD_STRIPLIB
-# ----------------
-m4_defun([_LT_CMD_STRIPLIB],
-[m4_require([_LT_DECL_EGREP])
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- fi
- ;;
- *)
- AC_MSG_RESULT([no])
- ;;
- esac
-fi
-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-_LT_DECL([], [striplib], [1])
-])# _LT_CMD_STRIPLIB
-
-
-# _LT_SYS_DYNAMIC_LINKER([TAG])
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-m4_defun([_LT_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_OBJDUMP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-m4_if([$1],
- [], [
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
- *) lt_sed_strip_eq="s,=/,/,g" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[[lt_foo]]++; }
- if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[[4-9]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[[01]] | aix4.[[01]].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[[45]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- library_names_spec='${libname}.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec="$LIB"
- if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[[23]].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[[01]]* | freebsdelf3.[[01]]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
- freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[[3-9]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
- [lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
- LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
- [lt_cv_shlibpath_overrides_runpath=yes])])
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
- ])
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[[89]] | openbsd2.[[89]].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-_LT_DECL([], [variables_saved_for_relink], [1],
- [Variables whose values should be saved in libtool wrapper scripts and
- restored at link time])
-_LT_DECL([], [need_lib_prefix], [0],
- [Do we need the "lib" prefix for modules?])
-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-_LT_DECL([], [version_type], [0], [Library versioning type])
-_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable])
-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-_LT_DECL([], [shlibpath_overrides_runpath], [0],
- [Is shlibpath searched before the hard-coded library search path?])
-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-_LT_DECL([], [library_names_spec], [1],
- [[List of archive names. First name is the real one, the rest are links.
- The last name is the one that the linker finds with -lNAME]])
-_LT_DECL([], [soname_spec], [1],
- [[The coded name of the library, if different from the real name]])
-_LT_DECL([], [install_override_mode], [1],
- [Permission mode override for installation of shared libraries])
-_LT_DECL([], [postinstall_cmds], [2],
- [Command to use after installation of a shared archive])
-_LT_DECL([], [postuninstall_cmds], [2],
- [Command to use after uninstallation of a shared archive])
-_LT_DECL([], [finish_cmds], [2],
- [Commands used to finish a libtool library installation in a directory])
-_LT_DECL([], [finish_eval], [1],
- [[As "finish_cmds", except a single script fragment to be evaled but
- not shown]])
-_LT_DECL([], [hardcode_into_libs], [0],
- [Whether we should hardcode library paths into libraries])
-_LT_DECL([], [sys_lib_search_path_spec], [2],
- [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
- [Run-time system search path for libraries])
-])# _LT_SYS_DYNAMIC_LINKER
-
-
-# _LT_PATH_TOOL_PREFIX(TOOL)
-# --------------------------
-# find a file program which can recognize shared library
-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-[m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] | ?:[\\/]*])
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word. This closes a longstanding sh security hole.
- ac_dummy="m4_if([$2], , $PATH, [$2])"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$1; then
- lt_cv_path_MAGIC_CMD="$ac_dir/$1"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- AC_MSG_RESULT($MAGIC_CMD)
-else
- AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
- [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])# _LT_PATH_TOOL_PREFIX
-
-# Old name:
-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-
-
-# _LT_PATH_MAGIC
-# --------------
-# find a file program which can recognize a shared library
-m4_defun([_LT_PATH_MAGIC],
-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
- else
- MAGIC_CMD=:
- fi
-fi
-])# _LT_PATH_MAGIC
-
-
-# LT_PATH_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([LT_PATH_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
-
-AC_ARG_WITH([gnu-ld],
- [AS_HELP_STRING([--with-gnu-ld],
- [assume the C compiler uses GNU ld @<:@default=no@:>@])],
- [test "$withval" = no || with_gnu_ld=yes],
- [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by $CC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [[\\/]]* | ?:[[\\/]]*)
- re_direlt='/[[^/]][[^/]]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])# LT_PATH_LD
-
-# Old names:
-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_LD], [])
-dnl AC_DEFUN([AC_PROG_LD], [])
-
-
-# _LT_PATH_LD_GNU
-#- --------------
-m4_defun([_LT_PATH_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# _LT_PATH_LD_GNU
-
-
-# _LT_CMD_RELOAD
-# --------------
-# find reload flag for linker
-# -- PORTME Some linkers may need a different reload flag.
-m4_defun([_LT_CMD_RELOAD],
-[AC_CACHE_CHECK([for $LD option to reload object files],
- lt_cv_ld_reload_flag,
- [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- if test "$GCC" != yes; then
- reload_cmds=false
- fi
- ;;
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_TAGDECL([], [reload_cmds], [2])dnl
-])# _LT_CMD_RELOAD
-
-
-# _LT_CHECK_MAGIC_METHOD
-# ----------------------
-# how to check for library dependencies
-# -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_MAGIC_METHOD],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[[45]]*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
- if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- # Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[[3-9]]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-])
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
- case $host_os in
- mingw* | pw32*)
- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
- want_nocaseglob=yes
- else
- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
- fi
- ;;
- esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-_LT_DECL([], [deplibs_check_method], [1],
- [Method to check whether dependent libraries are shared objects])
-_LT_DECL([], [file_magic_cmd], [1],
- [Command to use when deplibs_check_method = "file_magic"])
-_LT_DECL([], [file_magic_glob], [1],
- [How to find potential files when deplibs_check_method = "file_magic"])
-_LT_DECL([], [want_nocaseglob], [1],
- [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
-])# _LT_CHECK_MAGIC_METHOD
-
-
-# LT_PATH_NM
-# ----------
-# find the pathname to a BSD- or MS-compatible name lister
-AC_DEFUN([LT_PATH_NM],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi])
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
- case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
- AC_SUBST([DUMPBIN])
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
- [lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
- cat conftest.out >&AS_MESSAGE_LOG_FD
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*])
-])# LT_PATH_NM
-
-# Old names:
-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_NM], [])
-dnl AC_DEFUN([AC_PROG_NM], [])
-
-# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-# --------------------------------
-# how to determine the name of the shared library
-# associated with a specific link library.
-# -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-m4_require([_LT_DECL_DLLTOOL])
-AC_CACHE_CHECK([how to associate runtime and link libraries],
-lt_cv_sharedlib_from_linklib_cmd,
-[lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
- # two different shell functions defined in ltmain.sh
- # decide which to use based on capabilities of $DLLTOOL
- case `$DLLTOOL --help 2>&1` in
- *--identify-strict*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
- ;;
- *)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
- ;;
- esac
- ;;
-*)
- # fallback: assume linklib IS sharedlib
- lt_cv_sharedlib_from_linklib_cmd="$ECHO"
- ;;
-esac
-])
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
- [Command to associate shared and link libraries])
-])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-
-
-# _LT_PATH_MANIFEST_TOOL
-# ----------------------
-# locate the manifest tool
-m4_defun([_LT_PATH_MANIFEST_TOOL],
-[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
- [lt_cv_path_mainfest_tool=no
- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
- cat conftest.err >&AS_MESSAGE_LOG_FD
- if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_mainfest_tool=yes
- fi
- rm -f conftest*])
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
- MANIFEST_TOOL=:
-fi
-_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
-])# _LT_PATH_MANIFEST_TOOL
-
-
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
- # These system don't have libm, or don't need it
- ;;
-*-ncr-sysv4.3*)
- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
- AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
- ;;
-*)
- AC_CHECK_LIB(m, cos, LIBM="-lm")
- ;;
-esac
-AC_SUBST([LIBM])
-])# LT_LIB_M
-
-# Old name:
-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_CHECK_LIBM], [])
-
-
-# _LT_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------
-m4_defun([_LT_COMPILER_NO_RTTI],
-[m4_require([_LT_TAG_COMPILER])dnl
-
-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
- case $cc_basename in
- nvcc*)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
- esac
-
- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
- lt_cv_prog_compiler_rtti_exceptions,
- [-fno-rtti -fno-exceptions], [],
- [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
- [Compiler flag to turn off builtin functions])
-])# _LT_COMPILER_NO_RTTI
-
-
-# _LT_CMD_GLOBAL_SYMBOLS
-# ----------------------
-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[[BCDT]]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[[ABCDGISTW]]'
- ;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[[ABCDEGRST]]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[[BCDEGRST]]'
- ;;
-osf*)
- symcode='[[BCDEGQRST]]'
- ;;
-solaris*)
- symcode='[[BDRT]]'
- ;;
-sco3.2v5*)
- symcode='[[DT]]'
- ;;
-sysv4.2uw2*)
- symcode='[[DT]]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[[ABDT]]'
- ;;
-sysv4)
- symcode='[[DFNSTU]]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK ['"\
-" {last_section=section; section=\$ 3};"\
-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx]"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT@&t@_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT@&t@_DLSYM_CONST
-#else
-# define LT@&t@_DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-LT@&t@_DLSYM_CONST struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[[]] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_globsym_save_LIBS=$LIBS
- lt_globsym_save_CFLAGS=$CFLAGS
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS=$lt_globsym_save_LIBS
- CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- AC_MSG_RESULT(failed)
-else
- AC_MSG_RESULT(ok)
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
- nm_file_list_spec='@'
-fi
-
-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
- [Take the output of nm and produce a listing of raw symbols and C names])
-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
- [Transform the output of nm in a proper C declaration])
-_LT_DECL([global_symbol_to_c_name_address],
- [lt_cv_sys_global_symbol_to_c_name_address], [1],
- [Transform the output of nm in a C name address pair])
-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
- [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
- [Transform the output of nm in a C name address pair when lib prefix is needed])
-_LT_DECL([], [nm_file_list_spec], [1],
- [Specify filename containing input files for $NM])
-]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-# _LT_COMPILER_PIC([TAGNAME])
-# ---------------------------
-m4_defun([_LT_COMPILER_PIC],
-[m4_require([_LT_TAG_COMPILER])dnl
-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_TAGVAR(lt_prog_compiler_static, $1)=
-
-m4_if([$1], [CXX], [
- # C++ specific cases for pic, static, wl, etc.
- if test "$GXX" = yes; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
- *djgpp*)
- # DJGPP does not support shared libraries at all
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- else
- case $host_os in
- aix[[4-9]]*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- chorus*)
- case $cc_basename in
- cxch68*)
- # Green Hills C++ Compiler
- # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
- ;;
- esac
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
- dgux*)
- case $cc_basename in
- ec++*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- freebsd* | dragonfly*)
- # FreeBSD uses GNU C++
- ;;
- hpux9* | hpux10* | hpux11*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- if test "$host_cpu" != ia64; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- fi
- ;;
- aCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- interix*)
- # This is c89, which is MS Visual C++ (no shared libs)
- # Anyone wants to do a port?
- ;;
- irix5* | irix6* | nonstopux*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- # CC pic flag -KPIC is the default.
- ;;
- *)
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- KCC*)
- # KAI C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- ecpc* )
- # old Intel C++ for x86_64 which still supported -KPIC.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- icpc* )
- # Intel C++, used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- cxx*)
- # Compaq C++
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
- # IBM XL 8.0, 9.0 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- esac
- ;;
- esac
- ;;
- lynxos*)
- ;;
- m88k*)
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
- ;;
- *)
- ;;
- esac
- ;;
- netbsd* | netbsdelf*-gnu)
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- cxx*)
- # Digital/Compaq C++
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- psos*)
- ;;
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- ;;
- *)
- ;;
- esac
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- lcc*)
- # Lucid
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- *)
- ;;
- esac
- ;;
- vxworks*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-],
-[
- if test "$GCC" = yes; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
- if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
- fi
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
-
- hpux9* | hpux10* | hpux11*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC (with -KPIC) is the default.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- ccc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All Alpha code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
- ;;
- *Sun\ F* | *Sun*Fortran*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- *Sun\ C*)
- # Sun C 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- ;;
- *Intel*\ [[CF]]*Compiler*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- *Portland\ Group*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All OSF/1 code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- rdos*)
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- solaris*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
- *)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- unicos*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
-
- uts4*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-])
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
- ;;
-esac
-
-AC_CACHE_CHECK([for $compiler option to produce PIC],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
- [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
- [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
- "" | " "*) ;;
- *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
- esac],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
- [Additional compiler flags for building library objects])
-
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
- [How to pass a linker flag through the compiler])
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
- _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
- $lt_tmp_static_flag,
- [],
- [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
- [Compiler flag to prevent dynamic linking])
-])# _LT_COMPILER_PIC
-
-
-# _LT_LINKER_SHLIBS([TAGNAME])
-# ----------------------------
-# See if the linker supports building shared libraries.
-m4_defun([_LT_LINKER_SHLIBS],
-[AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-m4_if([$1], [CXX], [
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- case $host_os in
- aix[[4-9]]*)
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global defined
- # symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- ;;
- pw32*)
- _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
- ;;
- cygwin* | mingw* | cegcc*)
- case $cc_basename in
- cl*)
- _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | gnu*)
- _LT_TAGVAR(link_all_deplibs, $1)=no
- ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- esac
-], [
- runpath_var=
- _LT_TAGVAR(allow_undefined_flag, $1)=
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(archive_cmds, $1)=
- _LT_TAGVAR(archive_expsym_cmds, $1)=
- _LT_TAGVAR(compiler_needs_object, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(hardcode_automatic, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- _LT_TAGVAR(hardcode_minus_L, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- _LT_TAGVAR(inherit_rpath, $1)=no
- _LT_TAGVAR(link_all_deplibs, $1)=unknown
- _LT_TAGVAR(module_cmds, $1)=
- _LT_TAGVAR(module_expsym_cmds, $1)=
- _LT_TAGVAR(old_archive_from_new_cmds, $1)=
- _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
- _LT_TAGVAR(thread_safe_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- _LT_TAGVAR(include_expsyms, $1)=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- linux* | k*bsd*-gnu | gnu*)
- _LT_TAGVAR(link_all_deplibs, $1)=no
- ;;
- esac
-
- _LT_TAGVAR(ld_shlibs, $1)=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test "$with_gnu_ld" = yes; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
- *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test "$lt_use_gnu_ld_interface" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[[3-9]]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- tmp_sharedflag='--shared' ;;
- xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
-
- if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
- runpath_var=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- fi
- ;;
-
- aix[[4-9]]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=no
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- bsdi[[45]]*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- case $cc_basename in
- cl*)
- # Native MSVC
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
- # Don't use ranlib
- _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
- _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # Assume MSVC wrapper
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- # FIXME: Should let the user specify the lib program.
- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- m4_if($1, [], [
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- _LT_LINKER_OPTION([if $CC understands -b],
- _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
- [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- # This should be the same for all languages, so no per-tag cache variable.
- AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
- [lt_cv_irix_exported_symbol],
- [save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- AC_LINK_IFELSE(
- [AC_LANG_SOURCE(
- [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
- [C++], [[int foo (void) { return 0; }]],
- [Fortran 77], [[
- subroutine foo
- end]],
- [Fortran], [[
- subroutine foo
- end]])])],
- [lt_cv_irix_exported_symbol=yes],
- [lt_cv_irix_exported_symbol=no])
- LDFLAGS="$save_LDFLAGS"])
- if test "$lt_cv_irix_exported_symbol" = yes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
- fi
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- newsos6)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- else
- case $host_os in
- openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- os2*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- solaris*)
- _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
- _LT_TAGVAR(hardcode_direct, $1)=no
- ;;
- motorola)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4.3*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- _LT_TAGVAR(ld_shlibs, $1)=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
- ;;
- esac
- fi
- fi
-])
-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-
-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-_LT_DECL([], [extract_expsyms_cmds], [2],
- [The commands to extract the exported symbol list from a shared archive])
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
- # Assume -lc should be added
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $_LT_TAGVAR(archive_cmds, $1) in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- AC_CACHE_CHECK([whether -lc should be explicitly linked in],
- [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
- [$RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
- pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
- _LT_TAGVAR(allow_undefined_flag, $1)=
- if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
- then
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
- else
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- fi
- _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- ])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
- ;;
- esac
- fi
- ;;
-esac
-
-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
- [Whether or not to add -lc for building shared libraries])
-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
- [enable_shared_with_static_runtimes], [0],
- [Whether or not to disallow shared libs when runtime libs are static])
-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
- [Compiler flag to allow reflexive dlopens])
-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
- [Compiler flag to generate shared objects directly from archives])
-_LT_TAGDECL([], [compiler_needs_object], [1],
- [Whether the compiler copes with passing no objects directly])
-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
- [Create an old-style archive from a shared archive])
-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
- [Create a temporary old-style archive to link instead of a shared archive])
-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-_LT_TAGDECL([], [archive_expsym_cmds], [2])
-_LT_TAGDECL([], [module_cmds], [2],
- [Commands used to build a loadable module if different from building
- a shared archive.])
-_LT_TAGDECL([], [module_expsym_cmds], [2])
-_LT_TAGDECL([], [with_gnu_ld], [1],
- [Whether we are building with GNU ld or not])
-_LT_TAGDECL([], [allow_undefined_flag], [1],
- [Flag that allows shared libraries with undefined symbols to be built])
-_LT_TAGDECL([], [no_undefined_flag], [1],
- [Flag that enforces no undefined symbols])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
- [Flag to hardcode $libdir into a binary during linking.
- This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
- [Whether we need a single "-rpath" flag with a separated argument])
-_LT_TAGDECL([], [hardcode_direct], [0],
- [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
- DIR into the resulting binary])
-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
- [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
- DIR into the resulting binary and the resulting library dependency is
- "absolute", i.e impossible to change by setting ${shlibpath_var} if the
- library is relocated])
-_LT_TAGDECL([], [hardcode_minus_L], [0],
- [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
- [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_automatic], [0],
- [Set to "yes" if building a shared library automatically hardcodes DIR
- into the library and all subsequent libraries and executables linked
- against it])
-_LT_TAGDECL([], [inherit_rpath], [0],
- [Set to yes if linker adds runtime paths of dependent libraries
- to runtime path list])
-_LT_TAGDECL([], [link_all_deplibs], [0],
- [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [always_export_symbols], [0],
- [Set to "yes" if exported symbols are required])
-_LT_TAGDECL([], [export_symbols_cmds], [2],
- [The commands to list exported symbols])
-_LT_TAGDECL([], [exclude_expsyms], [1],
- [Symbols that should not be listed in the preloaded symbols])
-_LT_TAGDECL([], [include_expsyms], [1],
- [Symbols that must always be exported])
-_LT_TAGDECL([], [prelink_cmds], [2],
- [Commands necessary for linking programs (against libraries) with templates])
-_LT_TAGDECL([], [postlink_cmds], [2],
- [Commands necessary for finishing linking programs])
-_LT_TAGDECL([], [file_list_spec], [1],
- [Specify filename containing input files])
-dnl FIXME: Not yet implemented
-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-dnl [Compiler flag to generate thread safe objects])
-])# _LT_LINKER_SHLIBS
-
-
-# _LT_LANG_C_CONFIG([TAG])
-# ------------------------
-# Ensure that the configuration variables for a C compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_C_CONFIG],
-[m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_TAG_COMPILER
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
- LT_SYS_DLOPEN_SELF
- _LT_CMD_STRIPLIB
-
- # Report which library types will actually be built
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_CONFIG($1)
-fi
-AC_LANG_POP
-CC="$lt_save_CC"
-])# _LT_LANG_C_CONFIG
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
- (test "X$CXX" != "Xg++"))) ; then
- AC_PROG_CXXCPP
-else
- _lt_caught_CXX_error=yes
-fi
-
-AC_LANG_PUSH(C++)
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(compiler_needs_object, $1)=no
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="int some_variable = 0;"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC=$CC
- lt_save_CFLAGS=$CFLAGS
- lt_save_LD=$LD
- lt_save_GCC=$GCC
- GCC=$GXX
- lt_save_with_gnu_ld=$with_gnu_ld
- lt_save_path_LD=$lt_cv_path_LD
- if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
- else
- $as_unset lt_cv_prog_gnu_ld
- fi
- if test -n "${lt_cv_path_LDCXX+set}"; then
- lt_cv_path_LD=$lt_cv_path_LDCXX
- else
- $as_unset lt_cv_path_LD
- fi
- test -z "${LDCXX+set}" || LD=$LDCXX
- CC=${CXX-"c++"}
- CFLAGS=$CXXFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- # We don't want -fno-exception when compiling C++ code, so set the
- # no_builtin_flag separately
- if test "$GXX" = yes; then
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
- else
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
- fi
-
- if test "$GXX" = yes; then
- # Set up default GNU C++ configuration
-
- LT_PATH_LD
-
- # Check if GNU C++ uses GNU ld as the underlying linker, since the
- # archiving commands below assume that GNU ld is being used.
- if test "$with_gnu_ld" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # If archive_cmds runs LD, not CC, wlarc should be empty
- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
- # investigate it a little bit more. (MM)
- wlarc='${wl}'
-
- # ancient GNU ld didn't support --whole-archive et. al.
- if eval "`$CC -print-prog-name=ld` --help 2>&1" |
- $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- with_gnu_ld=no
- wlarc=
-
- # A generic and very simple default shared library creation
- # command for GNU C++ for the case where it uses the native
- # linker, instead of GNU ld. If possible, this setting should
- # overridden to take advantage of the native linker features on
- # the platform it is being used on.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- fi
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- GXX=no
- with_gnu_ld=no
- wlarc=
- fi
-
- # PORTME: fill in a description of your system's C++ link characteristics
- AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
- _LT_TAGVAR(ld_shlibs, $1)=yes
- case $host_os in
- aix3*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- case $ld_flag in
- *-brtl*)
- aix_use_runtimelinking=yes
- break
- ;;
- esac
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
- if test "$GXX" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to
- # export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an empty
- # executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared
- # libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- chorus*)
- case $cc_basename in
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- case $GXX,$cc_basename in
- ,cl* | no,cl*)
- # Native MSVC
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- # Don't use ranlib
- _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
- _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- func_to_tool_file "$lt_outputfile"~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # g++
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- case $cc_basename in
- ec++*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- freebsd2.*)
- # C++ shared libraries reported to be fairly broken before
- # switch to ELF
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- freebsd-elf*)
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- ;;
-
- freebsd* | dragonfly*)
- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
- # conventions
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- hpux9*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- hpux10*|hpux11*)
- if test $with_gnu_ld = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
- esac
- fi
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- esac
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- if test $with_gnu_ld = no; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC*)
- # SGI C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
- # Archives containing C++ object files must be created using
- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
- ;;
- *)
- if test "$GXX" = yes; then
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
- fi
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
- esac
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
- ;;
- icpc* | ecpc* )
- # Intel C++
- with_gnu_ld=yes
- # version 8.0 and above of icpc choke on multiply defined symbols
- # if we add $predep_objects and $postdep_objects, however 7.1 and
- # earlier do not add the objects themselves.
- case `$CC -V 2>&1` in
- *"Version 7."*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 8.0 or newer
- tmp_idyn=
- case $host_cpu in
- ia64*) tmp_idyn=' -i_dynamic';;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- case `$CC -V` in
- *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
- _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
- compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
- _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
- $RANLIB $oldlib'
- _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- *) # Version 6 and above use weak symbols
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- ;;
- cxx*)
- # Compaq C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
- ;;
- xl* | mpixl* | bgxl*)
- # IBM XL 8.0 on PPC, with GNU ld
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
-
- # Not sure whether something based on
- # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
- # would be better.
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- esac
- ;;
- esac
- ;;
-
- lynxos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- m88k*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- mvs*)
- case $cc_basename in
- cxx*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- fi
- # Workaround some broken pre-1.5 toolchains
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
- ;;
-
- *nto* | *qnx*)
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- openbsd2*)
- # C++ shared libraries are fairly broken
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- fi
- output_verbose_link_cmd=func_echo_all
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Archives containing C++ object files must be created using
- # the KAI C++ compiler.
- case $host in
- osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
- *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
- esac
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- cxx*)
- case $host in
- osf3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- ;;
- *)
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
- echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
- $RM $lib.exp'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- case $host in
- osf3*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- psos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- lcc*)
- # Lucid
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
-
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
- # The C++ compiler must be used to create the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
- ;;
- *)
- # GNU C++ compiler with Solaris linker
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
- if $CC --version | $GREP -v '^2\.7' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- else
- # g++ 2.7 appears to require `-G' NOT `-shared' on this
- # platform.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- fi
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- ;;
- esac
- fi
- ;;
- esac
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
- '"$_LT_TAGVAR(old_archive_cmds, $1)"
- _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
- '"$_LT_TAGVAR(reload_cmds, $1)"
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- vxworks*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
- test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
- _LT_TAGVAR(GCC, $1)="$GXX"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
- LDCXX=$LD
- LD=$lt_save_LD
- GCC=$lt_save_GCC
- with_gnu_ld=$lt_save_with_gnu_ld
- lt_cv_path_LDCXX=$lt_cv_path_LD
- lt_cv_path_LD=$lt_save_path_LD
- lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
- lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-AC_LANG_POP
-])# _LT_LANG_CXX_CONFIG
-
-
-# _LT_FUNC_STRIPNAME_CNF
-# ----------------------
-# func_stripname_cnf prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-#
-# This function is identical to the (non-XSI) version of func_stripname,
-# except this one can be used by m4 code that may be executed by configure,
-# rather than the libtool script.
-m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
-AC_REQUIRE([_LT_DECL_SED])
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
-func_stripname_cnf ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-} # func_stripname_cnf
-])# _LT_FUNC_STRIPNAME_CNF
-
-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-# ---------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
-# Dependencies to place before and after the object being linked:
-_LT_TAGVAR(predep_objects, $1)=
-_LT_TAGVAR(postdep_objects, $1)=
-_LT_TAGVAR(predeps, $1)=
-_LT_TAGVAR(postdeps, $1)=
-_LT_TAGVAR(compiler_lib_search_path, $1)=
-
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library. It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-int a;
-void foo (void) { a = 0; }
-_LT_EOF
-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-_LT_EOF
-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer*4 a
- a=0
- return
- end
-_LT_EOF
-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer a
- a=0
- return
- end
-_LT_EOF
-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-public class foo {
- private int a;
- public void bar (void) {
- a = 0;
- }
-};
-_LT_EOF
-], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
-package foo
-func foo() {
-}
-_LT_EOF
-])
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- for p in `eval "$output_verbose_link_cmd"`; do
- case ${prev}${p} in
-
- -L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
- # Remove the space.
- if test $p = "-L" ||
- test $p = "-R"; then
- prev=$p
- continue
- fi
-
- # Expand the sysroot to ease extracting the directories later.
- if test -z "$prev"; then
- case $p in
- -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
- -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
- -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
- esac
- fi
- case $p in
- =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
- esac
- if test "$pre_test_object_deps_done" = no; then
- case ${prev} in
- -L | -R)
- # Internal compiler library paths should come after those
- # provided the user. The postdeps already come after the
- # user supplied libs so there is no need to process them.
- if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
- _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
- else
- _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$_LT_TAGVAR(postdeps, $1)"; then
- _LT_TAGVAR(postdeps, $1)="${prev}${p}"
- else
- _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
- fi
- fi
- prev=
- ;;
-
- *.lto.$objext) ;; # Ignore GCC LTO objects
- *.$objext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
- _LT_TAGVAR(predep_objects, $1)="$p"
- else
- _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
- fi
- else
- if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
- _LT_TAGVAR(postdep_objects, $1)="$p"
- else
- _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-m4_if([$1], [CXX],
-[case $host_os in
-interix[[3-9]]*)
- # Interix 3.5 installs completely hosed .la files for C++, so rather than
- # hack all around it, let's just trust "g++" to DTRT.
- _LT_TAGVAR(predep_objects,$1)=
- _LT_TAGVAR(postdep_objects,$1)=
- _LT_TAGVAR(postdeps,$1)=
- ;;
-
-linux*)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
-
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- if test "$solaris_use_stlport4" != yes; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-
-solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- # Adding this requires a known-good setup of shared libraries for
- # Sun compiler versions before 5.6, else PIC objects from an old
- # archive will be linked into the output, leading to subtle bugs.
- if test "$solaris_use_stlport4" != yes; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-esac
-])
-
-case " $_LT_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
- [The directories searched by this compiler when creating a shared library])
-_LT_TAGDECL([], [predep_objects], [1],
- [Dependencies to place before and after the objects being linked to
- create a shared library])
-_LT_TAGDECL([], [postdep_objects], [1])
-_LT_TAGDECL([], [predeps], [1])
-_LT_TAGDECL([], [postdeps], [1])
-_LT_TAGDECL([], [compiler_lib_search_path], [1],
- [The library search path used internally by the compiler when linking
- a shared library])
-])# _LT_SYS_HIDDEN_LIBDEPS
-
-
-# _LT_LANG_F77_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a Fortran 77 compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_F77_CONFIG],
-[AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test "X$F77" = "Xno"; then
- _lt_disable_F77=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the F77 compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
- lt_save_CFLAGS=$CFLAGS
- CC=${F77-"f77"}
- CFLAGS=$FFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
- GCC=$G77
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)="$G77"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC="$lt_save_CC"
- CFLAGS="$lt_save_CFLAGS"
-fi # test "$_lt_disable_F77" != yes
-
-AC_LANG_POP
-])# _LT_LANG_F77_CONFIG
-
-
-# _LT_LANG_FC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for a Fortran compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_FC_CONFIG],
-[AC_LANG_PUSH(Fortran)
-
-if test -z "$FC" || test "X$FC" = "Xno"; then
- _lt_disable_FC=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for fc test sources.
-ac_ext=${ac_fc_srcext-f}
-
-# Object file extension for compiled fc test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the FC compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
- lt_save_CFLAGS=$CFLAGS
- CC=${FC-"f95"}
- CFLAGS=$FCFLAGS
- compiler=$CC
- GCC=$ac_cv_fc_compiler_gnu
-
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
-fi # test "$_lt_disable_FC" != yes
-
-AC_LANG_POP
-])# _LT_LANG_FC_CONFIG
-
-
-# _LT_LANG_GCJ_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Java Compiler compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GCJ_CONFIG],
-[AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GCJ-"gcj"}
-CFLAGS=$GCJFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GCJ_CONFIG
-
-
-# _LT_LANG_GO_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Go compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GO_CONFIG],
-[AC_REQUIRE([LT_PROG_GO])dnl
-AC_LANG_SAVE
-
-# Source file extension for Go test sources.
-ac_ext=go
-
-# Object file extension for compiled Go test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="package main; func main() { }"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='package main; func main() { }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GOC-"gccgo"}
-CFLAGS=$GOFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# Go did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GO_CONFIG
-
-
-# _LT_LANG_RC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for the Windows resource compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_RC_CONFIG],
-[AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=
-CC=${RC-"windres"}
-CFLAGS=
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-if test -n "$compiler"; then
- :
- _LT_CONFIG($1)
-fi
-
-GCC=$lt_save_GCC
-AC_LANG_RESTORE
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_RC_CONFIG
-
-
-# LT_PROG_GCJ
-# -----------
-AC_DEFUN([LT_PROG_GCJ],
-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
- [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
- [AC_CHECK_TOOL(GCJ, gcj,)
- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
- AC_SUBST(GCJFLAGS)])])[]dnl
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-
-
-# LT_PROG_GO
-# ----------
-AC_DEFUN([LT_PROG_GO],
-[AC_CHECK_TOOL(GOC, gccgo,)
-])
-
-
-# LT_PROG_RC
-# ----------
-AC_DEFUN([LT_PROG_RC],
-[AC_CHECK_TOOL(RC, windres,)
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_RC], [])
-
-
-# _LT_DECL_EGREP
-# --------------
-# If we don't have a new enough Autoconf to choose the best grep
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_EGREP],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_REQUIRE([AC_PROG_FGREP])dnl
-test -z "$GREP" && GREP=grep
-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-_LT_DECL([], [EGREP], [1], [An ERE matcher])
-_LT_DECL([], [FGREP], [1], [A literal string matcher])
-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-AC_SUBST([GREP])
-])
-
-
-# _LT_DECL_OBJDUMP
-# --------------
-# If we don't have a new enough Autoconf to choose the best objdump
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_OBJDUMP],
-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-AC_SUBST([OBJDUMP])
-])
-
-# _LT_DECL_DLLTOOL
-# ----------------
-# Ensure DLLTOOL variable is set.
-m4_defun([_LT_DECL_DLLTOOL],
-[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
-AC_SUBST([DLLTOOL])
-])
-
-# _LT_DECL_SED
-# ------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible. Prefer GNU sed if found.
-m4_defun([_LT_DECL_SED],
-[AC_PROG_SED
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
- [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-])# _LT_DECL_SED
-
-m4_ifndef([AC_PROG_SED], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_SED. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-
-m4_defun([AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for lt_ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
- lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
- fi
- done
- done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
- test ! -f $lt_ac_sed && continue
- cat /dev/null > conftest.in
- lt_ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >conftest.in
- # Check for GNU sed and select it if it is found.
- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
- lt_cv_path_SED=$lt_ac_sed
- break
- fi
- while true; do
- cat conftest.in conftest.in >conftest.tmp
- mv conftest.tmp conftest.in
- cp conftest.in conftest.nl
- echo >>conftest.nl
- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
- cmp -s conftest.out conftest.nl || break
- # 10000 chars as input seems more than enough
- test $lt_ac_count -gt 10 && break
- lt_ac_count=`expr $lt_ac_count + 1`
- if test $lt_ac_count -gt $lt_ac_max; then
- lt_ac_max=$lt_ac_count
- lt_cv_path_SED=$lt_ac_sed
- fi
- done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])#AC_PROG_SED
-])#m4_ifndef
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_SED], [])
-
-
-# _LT_CHECK_SHELL_FEATURES
-# ------------------------
-# Find out whether the shell is Bourne or XSI compatible,
-# or has some other useful features.
-m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,b/c, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-])# _LT_CHECK_SHELL_FEATURES
-
-
-# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
-# ------------------------------------------------------
-# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
-# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
-m4_defun([_LT_PROG_FUNCTION_REPLACE],
-[dnl {
-sed -e '/^$1 ()$/,/^} # $1 /c\
-$1 ()\
-{\
-m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1])
-} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-])
-
-
-# _LT_PROG_REPLACE_SHELLFNS
-# -------------------------
-# Replace existing portable implementations of several shell functions with
-# equivalent extended shell implementations where those features are available..
-m4_defun([_LT_PROG_REPLACE_SHELLFNS],
-[if test x"$xsi_shell" = xyes; then
- _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac])
-
- _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
- func_basename_result="${1##*/}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac
- func_basename_result="${1##*/}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
- # positional parameters, so assign one to ordinary parameter first.
- func_stripname_result=${3}
- func_stripname_result=${func_stripname_result#"${1}"}
- func_stripname_result=${func_stripname_result%"${2}"}])
-
- _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
- func_split_long_opt_name=${1%%=*}
- func_split_long_opt_arg=${1#*=}])
-
- _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
- func_split_short_opt_arg=${1#??}
- func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
-
- _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
- case ${1} in
- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
- *) func_lo2o_result=${1} ;;
- esac])
-
- _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo])
-
- _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))])
-
- _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}])
-fi
-
-if test x"$lt_shell_append" = xyes; then
- _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
- func_quote_for_eval "${2}"
-dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
- eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
-
- # Save a `func_append' function call where possible by direct use of '+='
- sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-else
- # Save a `func_append' function call even when '+=' is not available
- sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
- AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
-fi
-])
-
-# _LT_PATH_CONVERSION_FUNCTIONS
-# -----------------------------
-# Determine which file name conversion functions should be used by
-# func_to_host_file (and, implicitly, by func_to_host_path). These are needed
-# for certain cross-compile configurations and native mingw.
-m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_MSG_CHECKING([how to convert $build file names to $host format])
-AC_CACHE_VAL(lt_cv_to_host_file_cmd,
-[case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
- ;;
- esac
- ;;
- *-*-cygwin* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
- ;;
- esac
- ;;
- * ) # unhandled hosts (and "normal" native builds)
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
-esac
-])
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
-_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
- [0], [convert $build file names to $host format])dnl
-
-AC_MSG_CHECKING([how to convert $build file names to toolchain format])
-AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
-[#assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
- ;;
- esac
- ;;
-esac
-])
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
-_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
- [0], [convert $build files to toolchain format])dnl
-])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/src/c/gf-complete/m4/ltoptions.m4 b/src/c/gf-complete/m4/ltoptions.m4
deleted file mode 100644
index 301b0a3..0000000
--- a/src/c/gf-complete/m4/ltoptions.m4
+++ /dev/null
@@ -1,384 +0,0 @@
-# Helper functions for option handling. -*- Autoconf -*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 7 ltoptions.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-
-
-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-# ------------------------------------------
-m4_define([_LT_MANGLE_OPTION],
-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-
-
-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-# ---------------------------------------
-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-# matching handler defined, dispatch to it. Other OPTION-NAMEs are
-# saved as a flag.
-m4_define([_LT_SET_OPTION],
-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
- _LT_MANGLE_DEFUN([$1], [$2]),
- [m4_warning([Unknown $1 option `$2'])])[]dnl
-])
-
-
-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-# ------------------------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-m4_define([_LT_IF_OPTION],
-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-
-
-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-# -------------------------------------------------------
-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-# are set.
-m4_define([_LT_UNLESS_OPTIONS],
-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
- [m4_define([$0_found])])])[]dnl
-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-])[]dnl
-])
-
-
-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-# ----------------------------------------
-# OPTION-LIST is a space-separated list of Libtool options associated
-# with MACRO-NAME. If any OPTION has a matching handler declared with
-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-# the unknown option and exit.
-m4_defun([_LT_SET_OPTIONS],
-[# Set options
-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [_LT_SET_OPTION([$1], _LT_Option)])
-
-m4_if([$1],[LT_INIT],[
- dnl
- dnl Simply set some default values (i.e off) if boolean options were not
- dnl specified:
- _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
- ])
- _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
- ])
- dnl
- dnl If no reference was made to various pairs of opposing options, then
- dnl we run the default mode handler for the pair. For example, if neither
- dnl `shared' nor `disable-shared' was passed, we enable building of shared
- dnl archives by default:
- _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
- _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
- [_LT_ENABLE_FAST_INSTALL])
- ])
-])# _LT_SET_OPTIONS
-
-
-## --------------------------------- ##
-## Macros to handle LT_INIT options. ##
-## --------------------------------- ##
-
-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-# -----------------------------------------
-m4_define([_LT_MANGLE_DEFUN],
-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-
-
-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-# -----------------------------------------------
-m4_define([LT_OPTION_DEFINE],
-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-])# LT_OPTION_DEFINE
-
-
-# dlopen
-# ------
-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-])
-
-AU_DEFUN([AC_LIBTOOL_DLOPEN],
-[_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-
-
-# win32-dll
-# ---------
-# Declare package support for building win32 dll's.
-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-[enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
- AC_CHECK_TOOL(AS, as, false)
- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
- AC_CHECK_TOOL(OBJDUMP, objdump, false)
- ;;
-esac
-
-test -z "$AS" && AS=as
-_LT_DECL([], [AS], [1], [Assembler program])dnl
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
-])# win32-dll
-
-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-
-
-# _LT_ENABLE_SHARED([DEFAULT])
-# ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_SHARED],
-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([shared],
- [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
- [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-
- _LT_DECL([build_libtool_libs], [enable_shared], [0],
- [Whether or not to build shared libraries])
-])# _LT_ENABLE_SHARED
-
-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-
-AC_DEFUN([AC_DISABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-
-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-
-
-
-# _LT_ENABLE_STATIC([DEFAULT])
-# ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_STATIC],
-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([static],
- [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
- [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-
- _LT_DECL([build_old_libs], [enable_static], [0],
- [Whether or not to build static libraries])
-])# _LT_ENABLE_STATIC
-
-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-
-AC_DEFUN([AC_DISABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-
-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-
-
-
-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-# ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_FAST_INSTALL],
-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([fast-install],
- [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
- [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-
-_LT_DECL([fast_install], [enable_fast_install], [0],
- [Whether or not to optimize for fast installation])dnl
-])# _LT_ENABLE_FAST_INSTALL
-
-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-
-# Old names:
-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
-])
-
-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-
-
-# _LT_WITH_PIC([MODE])
-# --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
-# LT_INIT options.
-# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
-m4_define([_LT_WITH_PIC],
-[AC_ARG_WITH([pic],
- [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
- [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
- [lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for lt_pkg in $withval; do
- IFS="$lt_save_ifs"
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
-
-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-])# _LT_WITH_PIC
-
-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-
-# Old name:
-AU_DEFUN([AC_LIBTOOL_PICMODE],
-[_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-
-## ----------------- ##
-## LTDL_INIT Options ##
-## ----------------- ##
-
-m4_define([_LTDL_MODE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
- [m4_define([_LTDL_MODE], [nonrecursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
- [m4_define([_LTDL_MODE], [recursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
- [m4_define([_LTDL_MODE], [subproject])])
-
-m4_define([_LTDL_TYPE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [installable],
- [m4_define([_LTDL_TYPE], [installable])])
-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
- [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/src/c/gf-complete/m4/ltsugar.m4 b/src/c/gf-complete/m4/ltsugar.m4
deleted file mode 100644
index 9000a05..0000000
--- a/src/c/gf-complete/m4/ltsugar.m4
+++ /dev/null
@@ -1,123 +0,0 @@
-# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltsugar.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-
-
-# lt_join(SEP, ARG1, [ARG2...])
-# -----------------------------
-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-# associated separator.
-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-# versions in m4sugar had bugs.
-m4_define([lt_join],
-[m4_if([$#], [1], [],
- [$#], [2], [[$2]],
- [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-m4_define([_lt_join],
-[m4_if([$#$2], [2], [],
- [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-
-
-# lt_car(LIST)
-# lt_cdr(LIST)
-# ------------
-# Manipulate m4 lists.
-# These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
-m4_define([lt_car], [[$1]])
-m4_define([lt_cdr],
-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
- [$#], 1, [],
- [m4_dquote(m4_shift($@))])])
-m4_define([lt_unquote], $1)
-
-
-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
-# Note that neither SEPARATOR nor STRING are expanded; they are appended
-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-# than defined and empty).
-#
-# This macro is needed until we can rely on Autoconf 2.62, since earlier
-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-m4_define([lt_append],
-[m4_define([$1],
- m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-
-
-
-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-# ----------------------------------------------------------
-# Produce a SEP delimited list of all paired combinations of elements of
-# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
-# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
-m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
- [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
- [m4_foreach([_Lt_suffix],
- ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
- [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-
-
-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-# -----------------------------------------------------------------------
-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-m4_define([lt_if_append_uniq],
-[m4_ifdef([$1],
- [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
- [lt_append([$1], [$2], [$3])$4],
- [$5])],
- [lt_append([$1], [$2], [$3])$4])])
-
-
-# lt_dict_add(DICT, KEY, VALUE)
-# -----------------------------
-m4_define([lt_dict_add],
-[m4_define([$1($2)], [$3])])
-
-
-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-# --------------------------------------------
-m4_define([lt_dict_add_subkey],
-[m4_define([$1($2:$3)], [$4])])
-
-
-# lt_dict_fetch(DICT, KEY, [SUBKEY])
-# ----------------------------------
-m4_define([lt_dict_fetch],
-[m4_ifval([$3],
- m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
- m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-
-
-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-# -----------------------------------------------------------------
-m4_define([lt_if_dict_fetch],
-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
- [$5],
- [$6])])
-
-
-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-# --------------------------------------------------------------
-m4_define([lt_dict_filter],
-[m4_if([$5], [], [],
- [lt_join(m4_quote(m4_default([$4], [[, ]])),
- lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
- [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-])
diff --git a/src/c/gf-complete/m4/ltversion.m4 b/src/c/gf-complete/m4/ltversion.m4
deleted file mode 100644
index 07a8602..0000000
--- a/src/c/gf-complete/m4/ltversion.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# ltversion.m4 -- version numbers -*- Autoconf -*-
-#
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# @configure_input@
-
-# serial 3337 ltversion.m4
-# This file is part of GNU Libtool
-
-m4_define([LT_PACKAGE_VERSION], [2.4.2])
-m4_define([LT_PACKAGE_REVISION], [1.3337])
-
-AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.2'
-macro_revision='1.3337'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
diff --git a/src/c/gf-complete/m4/lt~obsolete.m4 b/src/c/gf-complete/m4/lt~obsolete.m4
deleted file mode 100644
index ffeab56..0000000
--- a/src/c/gf-complete/m4/lt~obsolete.m4
+++ /dev/null
@@ -1,98 +0,0 @@
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004.
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 5 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else. This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
-m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
-m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
diff --git a/src/c/gf-complete/missing b/src/c/gf-complete/missing
deleted file mode 100755
index db98974..0000000
--- a/src/c/gf-complete/missing
+++ /dev/null
@@ -1,215 +0,0 @@
-#! /bin/sh
-# Common wrapper for a few potentially missing GNU programs.
-
-scriptversion=2013-10-28.13; # UTC
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program 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 2, 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.
-
-if test $# -eq 0; then
- echo 1>&2 "Try '$0 --help' for more information"
- exit 1
-fi
-
-case $1 in
-
- --is-lightweight)
- # Used by our autoconf macros to check whether the available missing
- # script is modern enough.
- exit 0
- ;;
-
- --run)
- # Back-compat with the calling convention used by older automake.
- shift
- ;;
-
- -h|--h|--he|--hel|--help)
- echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
-to PROGRAM being missing or too old.
-
-Options:
- -h, --help display this help and exit
- -v, --version output version information and exit
-
-Supported PROGRAM values:
- aclocal autoconf autoheader autom4te automake makeinfo
- bison yacc flex lex help2man
-
-Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
-'g' are ignored when checking the name.
-
-Send bug reports to <bug-automake@gnu.org>."
- exit $?
- ;;
-
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing $scriptversion (GNU Automake)"
- exit $?
- ;;
-
- -*)
- echo 1>&2 "$0: unknown '$1' option"
- echo 1>&2 "Try '$0 --help' for more information"
- exit 1
- ;;
-
-esac
-
-# Run the given program, remember its exit status.
-"$@"; st=$?
-
-# If it succeeded, we are done.
-test $st -eq 0 && exit 0
-
-# Also exit now if we it failed (or wasn't found), and '--version' was
-# passed; such an option is passed most likely to detect whether the
-# program is present and works.
-case $2 in --version|--help) exit $st;; esac
-
-# Exit code 63 means version mismatch. This often happens when the user
-# tries to use an ancient version of a tool on a file that requires a
-# minimum version.
-if test $st -eq 63; then
- msg="probably too old"
-elif test $st -eq 127; then
- # Program was missing.
- msg="missing on your system"
-else
- # Program was found and executed, but failed. Give up.
- exit $st
-fi
-
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
-
-program_details ()
-{
- case $1 in
- aclocal|automake)
- echo "The '$1' program is part of the GNU Automake package:"
- echo "<$gnu_software_URL/automake>"
- echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/autoconf>"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- autoconf|autom4te|autoheader)
- echo "The '$1' program is part of the GNU Autoconf package:"
- echo "<$gnu_software_URL/autoconf/>"
- echo "It also requires GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- esac
-}
-
-give_advice ()
-{
- # Normalize program name to check for.
- normalized_program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
- printf '%s\n' "'$1' is $msg."
-
- configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
- case $normalized_program in
- autoconf*)
- echo "You should only need it if you modified 'configure.ac',"
- echo "or m4 files included by it."
- program_details 'autoconf'
- ;;
- autoheader*)
- echo "You should only need it if you modified 'acconfig.h' or"
- echo "$configure_deps."
- program_details 'autoheader'
- ;;
- automake*)
- echo "You should only need it if you modified 'Makefile.am' or"
- echo "$configure_deps."
- program_details 'automake'
- ;;
- aclocal*)
- echo "You should only need it if you modified 'acinclude.m4' or"
- echo "$configure_deps."
- program_details 'aclocal'
- ;;
- autom4te*)
- echo "You might have modified some maintainer files that require"
- echo "the 'autom4te' program to be rebuilt."
- program_details 'autom4te'
- ;;
- bison*|yacc*)
- echo "You should only need it if you modified a '.y' file."
- echo "You may want to install the GNU Bison package:"
- echo "<$gnu_software_URL/bison/>"
- ;;
- lex*|flex*)
- echo "You should only need it if you modified a '.l' file."
- echo "You may want to install the Fast Lexical Analyzer package:"
- echo "<$flex_URL>"
- ;;
- help2man*)
- echo "You should only need it if you modified a dependency" \
- "of a man page."
- echo "You may want to install the GNU Help2man package:"
- echo "<$gnu_software_URL/help2man/>"
- ;;
- makeinfo*)
- echo "You should only need it if you modified a '.texi' file, or"
- echo "any other file indirectly affecting the aspect of the manual."
- echo "You might want to install the Texinfo package:"
- echo "<$gnu_software_URL/texinfo/>"
- echo "The spurious makeinfo call might also be the consequence of"
- echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
- echo "want to install GNU make:"
- echo "<$gnu_software_URL/make/>"
- ;;
- *)
- echo "You might have modified some files without having the proper"
- echo "tools for further handling them. Check the 'README' file, it"
- echo "often tells you about the needed prerequisites for installing"
- echo "this package. You may also peek at any GNU archive site, in"
- echo "case some other package contains this missing '$1' program."
- ;;
- esac
-}
-
-give_advice "$1" | sed -e '1s/^/WARNING: /' \
- -e '2,$s/^/ /' >&2
-
-# Propagate the correct exit status (expected to be 127 for a program
-# not found, 63 for a program that failed due to version mismatch).
-exit $st
-
-# 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:
diff --git a/src/c/gf-complete/src/Makefile.am b/src/c/gf-complete/src/Makefile.am
deleted file mode 100644
index 7d5266b..0000000
--- a/src/c/gf-complete/src/Makefile.am
+++ /dev/null
@@ -1,21 +0,0 @@
-# GF-Complete 'core' AM file
-# Creates the library
-
-AUTOMAKE_OPTIONS = subdir-objects
-
-AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include
-AM_CFLAGS = -O3 $(SIMD_FLAGS) -fPIC
-
-lib_LTLIBRARIES = libgf_complete.la
-libgf_complete_la_SOURCES = gf.c gf_method.c gf_wgen.c gf_w4.c gf_w8.c gf_w16.c gf_w32.c \
- gf_w64.c gf_w128.c gf_rand.c gf_general.c
-
-if HAVE_NEON
-libgf_complete_la_SOURCES += neon/gf_w4_neon.c \
- neon/gf_w8_neon.c \
- neon/gf_w16_neon.c \
- neon/gf_w32_neon.c \
- neon/gf_w64_neon.c
-endif
-
-libgf_complete_la_LDFLAGS = -version-info 1:0:0
diff --git a/src/c/gf-complete/src/Makefile.in b/src/c/gf-complete/src/Makefile.in
deleted file mode 100644
index 5d6a0a4..0000000
--- a/src/c/gf-complete/src/Makefile.in
+++ /dev/null
@@ -1,649 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# GF-Complete 'core' AM file
-# Creates the library
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-@HAVE_NEON_TRUE@am__append_1 = neon/gf_w4_neon.c \
-@HAVE_NEON_TRUE@ neon/gf_w8_neon.c \
-@HAVE_NEON_TRUE@ neon/gf_w16_neon.c \
-@HAVE_NEON_TRUE@ neon/gf_w32_neon.c \
-@HAVE_NEON_TRUE@ neon/gf_w64_neon.c
-
-subdir = src
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_ext.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(libdir)"
-LTLIBRARIES = $(lib_LTLIBRARIES)
-libgf_complete_la_LIBADD =
-am__libgf_complete_la_SOURCES_DIST = gf.c gf_method.c gf_wgen.c \
- gf_w4.c gf_w8.c gf_w16.c gf_w32.c gf_w64.c gf_w128.c gf_rand.c \
- gf_general.c neon/gf_w4_neon.c neon/gf_w8_neon.c \
- neon/gf_w16_neon.c neon/gf_w32_neon.c neon/gf_w64_neon.c
-am__dirstamp = $(am__leading_dot)dirstamp
-@HAVE_NEON_TRUE@am__objects_1 = neon/gf_w4_neon.lo neon/gf_w8_neon.lo \
-@HAVE_NEON_TRUE@ neon/gf_w16_neon.lo neon/gf_w32_neon.lo \
-@HAVE_NEON_TRUE@ neon/gf_w64_neon.lo
-am_libgf_complete_la_OBJECTS = gf.lo gf_method.lo gf_wgen.lo gf_w4.lo \
- gf_w8.lo gf_w16.lo gf_w32.lo gf_w64.lo gf_w128.lo gf_rand.lo \
- gf_general.lo $(am__objects_1)
-libgf_complete_la_OBJECTS = $(am_libgf_complete_la_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-libgf_complete_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(AM_CFLAGS) $(CFLAGS) $(libgf_complete_la_LDFLAGS) $(LDFLAGS) \
- -o $@
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
-depcomp =
-am__depfiles_maybe =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(libgf_complete_la_SOURCES)
-DIST_SOURCES = $(am__libgf_complete_la_SOURCES_DIST)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIMD_FLAGS = @SIMD_FLAGS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__leading_dot = @am__leading_dot@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = subdir-objects
-AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include
-AM_CFLAGS = -O3 $(SIMD_FLAGS) -fPIC
-lib_LTLIBRARIES = libgf_complete.la
-libgf_complete_la_SOURCES = gf.c gf_method.c gf_wgen.c gf_w4.c gf_w8.c \
- gf_w16.c gf_w32.c gf_w64.c gf_w128.c gf_rand.c gf_general.c \
- $(am__append_1)
-libgf_complete_la_LDFLAGS = -version-info 1:0:0
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps src/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign --ignore-deps src/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- list2=; for p in $$list; do \
- if test -f $$p; then \
- list2="$$list2 $$p"; \
- else :; fi; \
- done; \
- test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
- }
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- for p in $$list; do \
- $(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
- done
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
- @list='$(lib_LTLIBRARIES)'; \
- locs=`for p in $$list; do echo $$p; done | \
- sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
- sort -u`; \
- test -z "$$locs" || { \
- echo rm -f $${locs}; \
- rm -f $${locs}; \
- }
-neon/$(am__dirstamp):
- @$(MKDIR_P) neon
- @: > neon/$(am__dirstamp)
-neon/gf_w4_neon.lo: neon/$(am__dirstamp)
-neon/gf_w8_neon.lo: neon/$(am__dirstamp)
-neon/gf_w16_neon.lo: neon/$(am__dirstamp)
-neon/gf_w32_neon.lo: neon/$(am__dirstamp)
-neon/gf_w64_neon.lo: neon/$(am__dirstamp)
-
-libgf_complete.la: $(libgf_complete_la_OBJECTS) $(libgf_complete_la_DEPENDENCIES) $(EXTRA_libgf_complete_la_DEPENDENCIES)
- $(AM_V_CCLD)$(libgf_complete_la_LINK) -rpath $(libdir) $(libgf_complete_la_OBJECTS) $(libgf_complete_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
- -rm -f neon/*.$(OBJEXT)
- -rm -f neon/*.lo
-
-distclean-compile:
- -rm -f *.tab.c
-
-.c.o:
- $(AM_V_CC)$(COMPILE) -c -o $@ $<
-
-.c.obj:
- $(AM_V_CC)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
- $(AM_V_CC)$(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
- -rm -rf neon/.libs neon/_libs
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
- -rm -f neon/$(am__dirstamp)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-libLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-libLTLIBRARIES
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
- ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-libLTLIBRARIES install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/gf-complete/src/gf.c b/src/c/gf-complete/src/gf.c
deleted file mode 100644
index ac400ba..0000000
--- a/src/c/gf-complete/src/gf.c
+++ /dev/null
@@ -1,1076 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf.c
- *
- * Generic routines for Galois fields
- */
-
-#include "gf_int.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-
-int _gf_errno = GF_E_DEFAULT;
-
-void gf_error()
-{
- char *s;
-
- switch(_gf_errno) {
- case GF_E_DEFAULT: s = "No Error."; break;
- case GF_E_TWOMULT: s = "Cannot specify two -m's."; break;
- case GF_E_TWO_DIV: s = "Cannot specify two -d's."; break;
- case GF_E_POLYSPC: s = "-p needs to be followed by a number in hex (0x optional)."; break;
- case GF_E_GROUPAR: s = "Ran out of arguments in -m GROUP."; break;
- case GF_E_GROUPNU: s = "In -m GROUP g_s g_r -- g_s and g_r need to be numbers."; break;
- case GF_E_SPLITAR: s = "Ran out of arguments in -m SPLIT."; break;
- case GF_E_SPLITNU: s = "In -m SPLIT w_a w_b -- w_a and w_b need to be numbers."; break;
- case GF_E_FEWARGS: s = "Not enough arguments (Perhaps end with '-'?)"; break;
- case GF_E_CFM___W: s = "-m CARRY_FREE, w must be 4, 8, 16, 32, 64 or 128."; break;
- case GF_E_COMPXPP: s = "-m COMPOSITE, No poly specified, and we don't have a default for the given sub-field."; break;
- case GF_E_BASE__W: s = "-m COMPOSITE and the base field is not for w/2."; break;
- case GF_E_CFM4POL: s = "-m CARRY_FREE, w=4. (Prim-poly & 0xc) must equal 0."; break;
- case GF_E_CFM8POL: s = "-m CARRY_FREE, w=8. (Prim-poly & 0x80) must equal 0."; break;
- case GF_E_CF16POL: s = "-m CARRY_FREE, w=16. (Prim-poly & 0xe000) must equal 0."; break;
- case GF_E_CF32POL: s = "-m CARRY_FREE, w=32. (Prim-poly & 0xfe000000) must equal 0."; break;
- case GF_E_CF64POL: s = "-m CARRY_FREE, w=64. (Prim-poly & 0xfffe000000000000ULL) must equal 0."; break;
- case GF_E_MDEFDIV: s = "If multiplication method == default, can't change division."; break;
- case GF_E_MDEFREG: s = "If multiplication method == default, can't change region."; break;
- case GF_E_MDEFARG: s = "If multiplication method == default, can't use arg1/arg2."; break;
- case GF_E_DIVCOMP: s = "Cannot change the division technique with -m COMPOSITE."; break;
- case GF_E_DOUQUAD: s = "Cannot specify -r DOUBLE and -r QUAD."; break;
- case GF_E_SIMD_NO: s = "Cannot specify -r SIMD and -r NOSIMD."; break;
- case GF_E_CAUCHYB: s = "Cannot specify -r CAUCHY and any other -r."; break;
- case GF_E_CAUCOMP: s = "Cannot specify -m COMPOSITE and -r CAUCHY."; break;
- case GF_E_CAUGT32: s = "Cannot specify -r CAUCHY with w > 32."; break;
- case GF_E_ARG1SET: s = "Only use arg1 with SPLIT, GROUP or COMPOSITE."; break;
- case GF_E_ARG2SET: s = "Only use arg2 with SPLIT or GROUP."; break;
- case GF_E_MATRIXW: s = "Cannot specify -d MATRIX with w > 32."; break;
- case GF_E_BAD___W: s = "W must be 1-32, 64 or 128."; break;
- case GF_E_DOUBLET: s = "Can only specify -r DOUBLE with -m TABLE."; break;
- case GF_E_DOUBLEW: s = "Can only specify -r DOUBLE w = 4 or w = 8."; break;
- case GF_E_DOUBLEJ: s = "Cannot specify -r DOUBLE with -r ALTMAP|SIMD|NOSIMD."; break;
- case GF_E_DOUBLEL: s = "Can only specify -r DOUBLE -r LAZY with w = 8"; break;
- case GF_E_QUAD__T: s = "Can only specify -r QUAD with -m TABLE."; break;
- case GF_E_QUAD__W: s = "Can only specify -r QUAD w = 4."; break;
- case GF_E_QUAD__J: s = "Cannot specify -r QUAD with -r ALTMAP|SIMD|NOSIMD."; break;
- case GF_E_BADPOLY: s = "Bad primitive polynomial (high bits set)."; break;
- case GF_E_COMP_PP: s = "Bad primitive polynomial -- bigger than sub-field."; break;
- case GF_E_LAZY__X: s = "If -r LAZY, then -r must be DOUBLE or QUAD."; break;
- case GF_E_ALTSHIF: s = "Cannot specify -m SHIFT and -r ALTMAP."; break;
- case GF_E_SSESHIF: s = "Cannot specify -m SHIFT and -r SIMD|NOSIMD."; break;
- case GF_E_ALT_CFM: s = "Cannot specify -m CARRY_FREE and -r ALTMAP."; break;
- case GF_E_SSE_CFM: s = "Cannot specify -m CARRY_FREE and -r SIMD|NOSIMD."; break;
- case GF_E_PCLMULX: s = "Specified -m CARRY_FREE, but PCLMUL is not supported."; break;
- case GF_E_ALT_BY2: s = "Cannot specify -m BYTWO_x and -r ALTMAP."; break;
- case GF_E_BY2_SSE: s = "Specified -m BYTWO_x -r SIMD, but SSE2 is not supported."; break;
- case GF_E_LOGBADW: s = "With Log Tables, w must be <= 27."; break;
- case GF_E_LOG___J: s = "Cannot use Log tables with -r ALTMAP|SIMD|NOSIMD."; break;
- case GF_E_LOGPOLY: s = "Cannot use Log tables because the polynomial is not primitive."; break;
- case GF_E_ZERBADW: s = "With -m LOG_ZERO, w must be 8 or 16."; break;
- case GF_E_ZEXBADW: s = "With -m LOG_ZERO_EXT, w must be 8."; break;
- case GF_E_GR_ARGX: s = "With -m GROUP, arg1 and arg2 must be >= 0."; break;
- case GF_E_GR_W_48: s = "With -m GROUP, w cannot be 4 or 8."; break;
- case GF_E_GR_W_16: s = "With -m GROUP, w == 16, arg1 and arg2 must be 4."; break;
- case GF_E_GR_128A: s = "With -m GROUP, w == 128, arg1 must be 4, and arg2 in { 4,8,16 }."; break;
- case GF_E_GR_A_27: s = "With -m GROUP, arg1 and arg2 must be <= 27."; break;
- case GF_E_GR_AR_W: s = "With -m GROUP, arg1 and arg2 must be <= w."; break;
- case GF_E_GR____J: s = "Cannot use GROUP with -r ALTMAP|SIMD|NOSIMD."; break;
- case GF_E_TABLE_W: s = "With -m TABLE, w must be < 15, or == 16."; break;
- case GF_E_TAB_SSE: s = "With -m TABLE, SIMD|NOSIMD only applies to w=4."; break;
- case GF_E_TABSSE3: s = "With -m TABLE, -r SIMD, you need SSSE3 supported."; break;
- case GF_E_TAB_ALT: s = "With -m TABLE, you cannot use ALTMAP."; break;
- case GF_E_SP128AR: s = "With -m SPLIT, w=128, bad arg1/arg2."; break;
- case GF_E_SP128AL: s = "With -m SPLIT, w=128, -r SIMD requires -r ALTMAP."; break;
- case GF_E_SP128AS: s = "With -m SPLIT, w=128, ALTMAP needs SSSE3 supported."; break;
- case GF_E_SP128_A: s = "With -m SPLIT, w=128, -r ALTMAP only with arg1/arg2 = 4/128."; break;
- case GF_E_SP128_S: s = "With -m SPLIT, w=128, -r SIMD|NOSIMD only with arg1/arg2 = 4/128."; break;
- case GF_E_SPLIT_W: s = "With -m SPLIT, w must be in {8, 16, 32, 64, 128}."; break;
- case GF_E_SP_16AR: s = "With -m SPLIT, w=16, Bad arg1/arg2."; break;
- case GF_E_SP_16_A: s = "With -m SPLIT, w=16, -r ALTMAP only with arg1/arg2 = 4/16."; break;
- case GF_E_SP_16_S: s = "With -m SPLIT, w=16, -r SIMD|NOSIMD only with arg1/arg2 = 4/16."; break;
- case GF_E_SP_32AR: s = "With -m SPLIT, w=32, Bad arg1/arg2."; break;
- case GF_E_SP_32AS: s = "With -m SPLIT, w=32, -r ALTMAP needs SSSE3 supported."; break;
- case GF_E_SP_32_A: s = "With -m SPLIT, w=32, -r ALTMAP only with arg1/arg2 = 4/32."; break;
- case GF_E_SP_32_S: s = "With -m SPLIT, w=32, -r SIMD|NOSIMD only with arg1/arg2 = 4/32."; break;
- case GF_E_SP_64AR: s = "With -m SPLIT, w=64, Bad arg1/arg2."; break;
- case GF_E_SP_64AS: s = "With -m SPLIT, w=64, -r ALTMAP needs SSSE3 supported."; break;
- case GF_E_SP_64_A: s = "With -m SPLIT, w=64, -r ALTMAP only with arg1/arg2 = 4/64."; break;
- case GF_E_SP_64_S: s = "With -m SPLIT, w=64, -r SIMD|NOSIMD only with arg1/arg2 = 4/64."; break;
- case GF_E_SP_8_AR: s = "With -m SPLIT, w=8, Bad arg1/arg2."; break;
- case GF_E_SP_8__A: s = "With -m SPLIT, w=8, Can't have -r ALTMAP."; break;
- case GF_E_SP_SSE3: s = "With -m SPLIT, Need SSSE3 support for SIMD."; break;
- case GF_E_COMP_A2: s = "With -m COMPOSITE, arg1 must equal 2."; break;
- case GF_E_COMP_SS: s = "With -m COMPOSITE, -r SIMD and -r NOSIMD do not apply."; break;
- case GF_E_COMP__W: s = "With -m COMPOSITE, w must be 8, 16, 32, 64 or 128."; break;
- case GF_E_UNKFLAG: s = "Unknown method flag - should be -m, -d, -r or -p."; break;
- case GF_E_UNKNOWN: s = "Unknown multiplication type."; break;
- case GF_E_UNK_REG: s = "Unknown region type."; break;
- case GF_E_UNK_DIV: s = "Unknown division type."; break;
- default: s = "Undefined error.";
- }
-
- fprintf(stderr, "%s\n", s);
-}
-
-uint64_t gf_composite_get_default_poly(gf_t *base)
-{
- gf_internal_t *h;
- int rv;
-
- h = (gf_internal_t *) base->scratch;
- if (h->w == 4) {
- if (h->mult_type == GF_MULT_COMPOSITE) return 0;
- if (h->prim_poly == 0x13) return 2;
- return 0;
- }
- if (h->w == 8) {
- if (h->mult_type == GF_MULT_COMPOSITE) return 0;
- if (h->prim_poly == 0x11d) return 3;
- return 0;
- }
- if (h->w == 16) {
- if (h->mult_type == GF_MULT_COMPOSITE) {
- rv = gf_composite_get_default_poly(h->base_gf);
- if (rv != h->prim_poly) return 0;
- if (rv == 3) return 0x105;
- return 0;
- } else {
- if (h->prim_poly == 0x1100b) return 2;
- if (h->prim_poly == 0x1002d) return 7;
- return 0;
- }
- }
- if (h->w == 32) {
- if (h->mult_type == GF_MULT_COMPOSITE) {
- rv = gf_composite_get_default_poly(h->base_gf);
- if (rv != h->prim_poly) return 0;
- if (rv == 2) return 0x10005;
- if (rv == 7) return 0x10008;
- if (rv == 0x105) return 0x10002;
- return 0;
- } else {
- if (h->prim_poly == 0x400007) return 2;
- if (h->prim_poly == 0xc5) return 3;
- return 0;
- }
- }
- if (h->w == 64) {
- if (h->mult_type == GF_MULT_COMPOSITE) {
- rv = gf_composite_get_default_poly(h->base_gf);
- if (rv != h->prim_poly) return 0;
- if (rv == 3) return 0x100000009ULL;
- if (rv == 2) return 0x100000004ULL;
- if (rv == 0x10005) return 0x100000003ULL;
- if (rv == 0x10002) return 0x100000005ULL;
- if (rv == 0x10008) return 0x100000006ULL; /* JSP: (0x0x100000003 works too,
- but I want to differentiate cases). */
- return 0;
- } else {
- if (h->prim_poly == 0x1bULL) return 2;
- return 0;
- }
- }
- return 0;
-}
-
-int gf_error_check(int w, int mult_type, int region_type, int divide_type,
- int arg1, int arg2, uint64_t poly, gf_t *base)
-{
- int sse3 = 0;
- int sse2 = 0;
- int pclmul = 0;
- int rdouble, rquad, rlazy, rsimd, rnosimd, raltmap, rcauchy, tmp;
- gf_internal_t *sub;
-
- rdouble = (region_type & GF_REGION_DOUBLE_TABLE);
- rquad = (region_type & GF_REGION_QUAD_TABLE);
- rlazy = (region_type & GF_REGION_LAZY);
- rsimd = (region_type & GF_REGION_SIMD);
- rnosimd = (region_type & GF_REGION_NOSIMD);
- raltmap = (region_type & GF_REGION_ALTMAP);
- rcauchy = (region_type & GF_REGION_CAUCHY);
-
- if (divide_type != GF_DIVIDE_DEFAULT &&
- divide_type != GF_DIVIDE_MATRIX &&
- divide_type != GF_DIVIDE_EUCLID) {
- _gf_errno = GF_E_UNK_DIV;
- return 0;
- }
-
- tmp = ( GF_REGION_DOUBLE_TABLE | GF_REGION_QUAD_TABLE | GF_REGION_LAZY |
- GF_REGION_SIMD | GF_REGION_NOSIMD | GF_REGION_ALTMAP |
- GF_REGION_CAUCHY );
- if (region_type & (~tmp)) { _gf_errno = GF_E_UNK_REG; return 0; }
-
-#ifdef INTEL_SSE2
- sse2 = 1;
-#endif
-
-#ifdef INTEL_SSSE3
- sse3 = 1;
-#endif
-
-#ifdef INTEL_SSE4_PCLMUL
- pclmul = 1;
-#endif
-
-#ifdef ARM_NEON
- pclmul = 1;
- sse3 = 1;
-#endif
-
-
- if (w < 1 || (w > 32 && w != 64 && w != 128)) { _gf_errno = GF_E_BAD___W; return 0; }
-
- if (mult_type != GF_MULT_COMPOSITE && w < 64) {
- if ((poly >> (w+1)) != 0) { _gf_errno = GF_E_BADPOLY; return 0; }
- }
-
- if (mult_type == GF_MULT_DEFAULT) {
- if (divide_type != GF_DIVIDE_DEFAULT) { _gf_errno = GF_E_MDEFDIV; return 0; }
- if (region_type != GF_REGION_DEFAULT) { _gf_errno = GF_E_MDEFREG; return 0; }
- if (arg1 != 0 || arg2 != 0) { _gf_errno = GF_E_MDEFARG; return 0; }
- return 1;
- }
-
- if (rsimd && rnosimd) { _gf_errno = GF_E_SIMD_NO; return 0; }
- if (rcauchy && w > 32) { _gf_errno = GF_E_CAUGT32; return 0; }
- if (rcauchy && region_type != GF_REGION_CAUCHY) { _gf_errno = GF_E_CAUCHYB; return 0; }
- if (rcauchy && mult_type == GF_MULT_COMPOSITE) { _gf_errno = GF_E_CAUCOMP; return 0; }
-
- if (arg1 != 0 && mult_type != GF_MULT_COMPOSITE &&
- mult_type != GF_MULT_SPLIT_TABLE && mult_type != GF_MULT_GROUP) {
- _gf_errno = GF_E_ARG1SET;
- return 0;
- }
-
- if (arg2 != 0 && mult_type != GF_MULT_SPLIT_TABLE && mult_type != GF_MULT_GROUP) {
- _gf_errno = GF_E_ARG2SET;
- return 0;
- }
-
- if (divide_type == GF_DIVIDE_MATRIX && w > 32) { _gf_errno = GF_E_MATRIXW; return 0; }
-
- if (rdouble) {
- if (rquad) { _gf_errno = GF_E_DOUQUAD; return 0; }
- if (mult_type != GF_MULT_TABLE) { _gf_errno = GF_E_DOUBLET; return 0; }
- if (w != 4 && w != 8) { _gf_errno = GF_E_DOUBLEW; return 0; }
- if (rsimd || rnosimd || raltmap) { _gf_errno = GF_E_DOUBLEJ; return 0; }
- if (rlazy && w == 4) { _gf_errno = GF_E_DOUBLEL; return 0; }
- return 1;
- }
-
- if (rquad) {
- if (mult_type != GF_MULT_TABLE) { _gf_errno = GF_E_QUAD__T; return 0; }
- if (w != 4) { _gf_errno = GF_E_QUAD__W; return 0; }
- if (rsimd || rnosimd || raltmap) { _gf_errno = GF_E_QUAD__J; return 0; }
- return 1;
- }
-
- if (rlazy) { _gf_errno = GF_E_LAZY__X; return 0; }
-
- if (mult_type == GF_MULT_SHIFT) {
- if (raltmap) { _gf_errno = GF_E_ALTSHIF; return 0; }
- if (rsimd || rnosimd) { _gf_errno = GF_E_SSESHIF; return 0; }
- return 1;
- }
-
- if (mult_type == GF_MULT_CARRY_FREE) {
- if (w != 4 && w != 8 && w != 16 &&
- w != 32 && w != 64 && w != 128) { _gf_errno = GF_E_CFM___W; return 0; }
- if (w == 4 && (poly & 0xc)) { _gf_errno = GF_E_CFM4POL; return 0; }
- if (w == 8 && (poly & 0x80)) { _gf_errno = GF_E_CFM8POL; return 0; }
- if (w == 16 && (poly & 0xe000)) { _gf_errno = GF_E_CF16POL; return 0; }
- if (w == 32 && (poly & 0xfe000000)) { _gf_errno = GF_E_CF32POL; return 0; }
- if (w == 64 && (poly & 0xfffe000000000000ULL)) { _gf_errno = GF_E_CF64POL; return 0; }
- if (raltmap) { _gf_errno = GF_E_ALT_CFM; return 0; }
- if (rsimd || rnosimd) { _gf_errno = GF_E_SSE_CFM; return 0; }
- if (!pclmul) { _gf_errno = GF_E_PCLMULX; return 0; }
- return 1;
- }
-
- if (mult_type == GF_MULT_CARRY_FREE_GK) {
- if (w != 4 && w != 8 && w != 16 &&
- w != 32 && w != 64 && w != 128) { _gf_errno = GF_E_CFM___W; return 0; }
- if (raltmap) { _gf_errno = GF_E_ALT_CFM; return 0; }
- if (rsimd || rnosimd) { _gf_errno = GF_E_SSE_CFM; return 0; }
- if (!pclmul) { _gf_errno = GF_E_PCLMULX; return 0; }
- return 1;
- }
-
- if (mult_type == GF_MULT_BYTWO_p || mult_type == GF_MULT_BYTWO_b) {
- if (raltmap) { _gf_errno = GF_E_ALT_BY2; return 0; }
- if (rsimd && !sse2) { _gf_errno = GF_E_BY2_SSE; return 0; }
- return 1;
- }
-
- if (mult_type == GF_MULT_LOG_TABLE || mult_type == GF_MULT_LOG_ZERO
- || mult_type == GF_MULT_LOG_ZERO_EXT ) {
- if (w > 27) { _gf_errno = GF_E_LOGBADW; return 0; }
- if (raltmap || rsimd || rnosimd) { _gf_errno = GF_E_LOG___J; return 0; }
-
- if (mult_type == GF_MULT_LOG_TABLE) return 1;
-
- if (w != 8 && w != 16) { _gf_errno = GF_E_ZERBADW; return 0; }
-
- if (mult_type == GF_MULT_LOG_ZERO) return 1;
-
- if (w != 8) { _gf_errno = GF_E_ZEXBADW; return 0; }
- return 1;
- }
-
- if (mult_type == GF_MULT_GROUP) {
- if (arg1 <= 0 || arg2 <= 0) { _gf_errno = GF_E_GR_ARGX; return 0; }
- if (w == 4 || w == 8) { _gf_errno = GF_E_GR_W_48; return 0; }
- if (w == 16 && (arg1 != 4 || arg2 != 4)) { _gf_errno = GF_E_GR_W_16; return 0; }
- if (w == 128 && (arg1 != 4 ||
- (arg2 != 4 && arg2 != 8 && arg2 != 16))) { _gf_errno = GF_E_GR_128A; return 0; }
- if (arg1 > 27 || arg2 > 27) { _gf_errno = GF_E_GR_A_27; return 0; }
- if (arg1 > w || arg2 > w) { _gf_errno = GF_E_GR_AR_W; return 0; }
- if (raltmap || rsimd || rnosimd) { _gf_errno = GF_E_GR____J; return 0; }
- return 1;
- }
-
- if (mult_type == GF_MULT_TABLE) {
- if (w != 16 && w >= 15) { _gf_errno = GF_E_TABLE_W; return 0; }
- if (w != 4 && (rsimd || rnosimd)) { _gf_errno = GF_E_TAB_SSE; return 0; }
- if (rsimd && !sse3) { _gf_errno = GF_E_TABSSE3; return 0; }
- if (raltmap) { _gf_errno = GF_E_TAB_ALT; return 0; }
- return 1;
- }
-
- if (mult_type == GF_MULT_SPLIT_TABLE) {
- if (arg1 > arg2) {
- tmp = arg1;
- arg1 = arg2;
- arg2 = tmp;
- }
- if (w == 8) {
- if (arg1 != 4 || arg2 != 8) { _gf_errno = GF_E_SP_8_AR; return 0; }
- if (rsimd && !sse3) { _gf_errno = GF_E_SP_SSE3; return 0; }
- if (raltmap) { _gf_errno = GF_E_SP_8__A; return 0; }
- } else if (w == 16) {
- if ((arg1 == 8 && arg2 == 8) ||
- (arg1 == 8 && arg2 == 16)) {
- if (rsimd || rnosimd) { _gf_errno = GF_E_SP_16_S; return 0; }
- if (raltmap) { _gf_errno = GF_E_SP_16_A; return 0; }
- } else if (arg1 == 4 && arg2 == 16) {
- if (rsimd && !sse3) { _gf_errno = GF_E_SP_SSE3; return 0; }
- } else { _gf_errno = GF_E_SP_16AR; return 0; }
- } else if (w == 32) {
- if ((arg1 == 8 && arg2 == 8) ||
- (arg1 == 8 && arg2 == 32) ||
- (arg1 == 16 && arg2 == 32)) {
- if (rsimd || rnosimd) { _gf_errno = GF_E_SP_32_S; return 0; }
- if (raltmap) { _gf_errno = GF_E_SP_32_A; return 0; }
- } else if (arg1 == 4 && arg2 == 32) {
- if (rsimd && !sse3) { _gf_errno = GF_E_SP_SSE3; return 0; }
- if (raltmap && !sse3) { _gf_errno = GF_E_SP_32AS; return 0; }
- if (raltmap && rnosimd) { _gf_errno = GF_E_SP_32AS; return 0; }
- } else { _gf_errno = GF_E_SP_32AR; return 0; }
- } else if (w == 64) {
- if ((arg1 == 8 && arg2 == 8) ||
- (arg1 == 8 && arg2 == 64) ||
- (arg1 == 16 && arg2 == 64)) {
- if (rsimd || rnosimd) { _gf_errno = GF_E_SP_64_S; return 0; }
- if (raltmap) { _gf_errno = GF_E_SP_64_A; return 0; }
- } else if (arg1 == 4 && arg2 == 64) {
- if (rsimd && !sse3) { _gf_errno = GF_E_SP_SSE3; return 0; }
- if (raltmap && !sse3) { _gf_errno = GF_E_SP_64AS; return 0; }
- if (raltmap && rnosimd) { _gf_errno = GF_E_SP_64AS; return 0; }
- } else { _gf_errno = GF_E_SP_64AR; return 0; }
- } else if (w == 128) {
- if (arg1 == 8 && arg2 == 128) {
- if (rsimd || rnosimd) { _gf_errno = GF_E_SP128_S; return 0; }
- if (raltmap) { _gf_errno = GF_E_SP128_A; return 0; }
- } else if (arg1 == 4 && arg2 == 128) {
- if (rsimd && !sse3) { _gf_errno = GF_E_SP_SSE3; return 0; }
- if (raltmap && !sse3) { _gf_errno = GF_E_SP128AS; return 0; }
- if (raltmap && rnosimd) { _gf_errno = GF_E_SP128AS; return 0; }
- } else { _gf_errno = GF_E_SP128AR; return 0; }
- } else { _gf_errno = GF_E_SPLIT_W; return 0; }
- return 1;
- }
-
- if (mult_type == GF_MULT_COMPOSITE) {
- if (w != 8 && w != 16 && w != 32
- && w != 64 && w != 128) { _gf_errno = GF_E_COMP__W; return 0; }
- if (w < 128 && (poly >> (w/2)) != 0) { _gf_errno = GF_E_COMP_PP; return 0; }
- if (divide_type != GF_DIVIDE_DEFAULT) { _gf_errno = GF_E_DIVCOMP; return 0; }
- if (arg1 != 2) { _gf_errno = GF_E_COMP_A2; return 0; }
- if (rsimd || rnosimd) { _gf_errno = GF_E_COMP_SS; return 0; }
- if (base != NULL) {
- sub = (gf_internal_t *) base->scratch;
- if (sub->w != w/2) { _gf_errno = GF_E_BASE__W; return 0; }
- if (poly == 0) {
- if (gf_composite_get_default_poly(base) == 0) { _gf_errno = GF_E_COMPXPP; return 0; }
- }
- }
- return 1;
- }
-
- _gf_errno = GF_E_UNKNOWN;
- return 0;
-}
-
-int gf_scratch_size(int w,
- int mult_type,
- int region_type,
- int divide_type,
- int arg1,
- int arg2)
-{
- if (gf_error_check(w, mult_type, region_type, divide_type, arg1, arg2, 0, NULL) == 0) return 0;
-
- switch(w) {
- case 4: return gf_w4_scratch_size(mult_type, region_type, divide_type, arg1, arg2);
- case 8: return gf_w8_scratch_size(mult_type, region_type, divide_type, arg1, arg2);
- case 16: return gf_w16_scratch_size(mult_type, region_type, divide_type, arg1, arg2);
- case 32: return gf_w32_scratch_size(mult_type, region_type, divide_type, arg1, arg2);
- case 64: return gf_w64_scratch_size(mult_type, region_type, divide_type, arg1, arg2);
- case 128: return gf_w128_scratch_size(mult_type, region_type, divide_type, arg1, arg2);
- default: return gf_wgen_scratch_size(w, mult_type, region_type, divide_type, arg1, arg2);
- }
-}
-
-extern int gf_size(gf_t *gf)
-{
- gf_internal_t *h;
- int s;
-
- s = sizeof(gf_t);
- h = (gf_internal_t *) gf->scratch;
- s += gf_scratch_size(h->w, h->mult_type, h->region_type, h->divide_type, h->arg1, h->arg2);
- if (h->mult_type == GF_MULT_COMPOSITE) s += gf_size(h->base_gf);
- return s;
-}
-
-
-int gf_init_easy(gf_t *gf, int w)
-{
- return gf_init_hard(gf, w, GF_MULT_DEFAULT, GF_REGION_DEFAULT, GF_DIVIDE_DEFAULT,
- 0, 0, 0, NULL, NULL);
-}
-
-/* Allen: What's going on here is this function is putting info into the
- scratch mem of gf, and then calling the relevant REAL init
- func for the word size. Probably done this way to consolidate
- those aspects of initialization that don't rely on word size,
- and then take care of word-size-specific stuff. */
-
-int gf_init_hard(gf_t *gf, int w, int mult_type,
- int region_type,
- int divide_type,
- uint64_t prim_poly,
- int arg1, int arg2,
- gf_t *base_gf,
- void *scratch_memory)
-{
- int sz;
- gf_internal_t *h;
-
- if (gf_error_check(w, mult_type, region_type, divide_type,
- arg1, arg2, prim_poly, base_gf) == 0) return 0;
-
- sz = gf_scratch_size(w, mult_type, region_type, divide_type, arg1, arg2);
- if (sz <= 0) return 0; /* This shouldn't happen, as all errors should get caught
- in gf_error_check() */
-
- if (scratch_memory == NULL) {
- h = (gf_internal_t *) malloc(sz);
- h->free_me = 1;
- } else {
- h = scratch_memory;
- h->free_me = 0;
- }
- gf->scratch = (void *) h;
- h->mult_type = mult_type;
- h->region_type = region_type;
- h->divide_type = divide_type;
- h->w = w;
- h->prim_poly = prim_poly;
- h->arg1 = arg1;
- h->arg2 = arg2;
- h->base_gf = base_gf;
- h->private = (void *) gf->scratch;
- h->private = (uint8_t *)h->private + (sizeof(gf_internal_t));
- gf->extract_word.w32 = NULL;
-
- switch(w) {
- case 4: return gf_w4_init(gf);
- case 8: return gf_w8_init(gf);
- case 16: return gf_w16_init(gf);
- case 32: return gf_w32_init(gf);
- case 64: return gf_w64_init(gf);
- case 128: return gf_w128_init(gf);
- default: return gf_wgen_init(gf);
- }
-}
-
-int gf_free(gf_t *gf, int recursive)
-{
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- if (recursive && h->base_gf != NULL) {
- gf_free(h->base_gf, 1);
- free(h->base_gf);
- }
- if (h->free_me) free(h);
- return 0; /* Making compiler happy */
-}
-
-void gf_alignment_error(char *s, int a)
-{
- fprintf(stderr, "Alignment error in %s:\n", s);
- fprintf(stderr, " The source and destination buffers must be aligned to each other,\n");
- fprintf(stderr, " and they must be aligned to a %d-byte address.\n", a);
- assert(0);
-}
-
-static
-void gf_invert_binary_matrix(uint32_t *mat, uint32_t *inv, int rows) {
- int cols, i, j;
- uint32_t tmp;
-
- cols = rows;
-
- for (i = 0; i < rows; i++) inv[i] = (1 << i);
-
- /* First -- convert into upper triangular */
-
- for (i = 0; i < cols; i++) {
-
- /* Swap rows if we ave a zero i,i element. If we can't swap, then the
- matrix was not invertible */
-
- if ((mat[i] & (1 << i)) == 0) {
- for (j = i+1; j < rows && (mat[j] & (1 << i)) == 0; j++) ;
- if (j == rows) {
- fprintf(stderr, "galois_invert_matrix: Matrix not invertible!!\n");
- assert(0);
- }
- tmp = mat[i]; mat[i] = mat[j]; mat[j] = tmp;
- tmp = inv[i]; inv[i] = inv[j]; inv[j] = tmp;
- }
-
- /* Now for each j>i, add A_ji*Ai to Aj */
- for (j = i+1; j != rows; j++) {
- if ((mat[j] & (1 << i)) != 0) {
- mat[j] ^= mat[i];
- inv[j] ^= inv[i];
- }
- }
- }
-
- /* Now the matrix is upper triangular. Start at the top and multiply down */
-
- for (i = rows-1; i >= 0; i--) {
- for (j = 0; j < i; j++) {
- if (mat[j] & (1 << i)) {
- /* mat[j] ^= mat[i]; */
- inv[j] ^= inv[i];
- }
- }
- }
-}
-
-uint32_t gf_bitmatrix_inverse(uint32_t y, int w, uint32_t pp)
-{
- uint32_t mat[32], inv[32], mask;
- int i;
-
- mask = (w == 32) ? 0xffffffff : (1 << w) - 1;
- for (i = 0; i < w; i++) {
- mat[i] = y;
-
- if (y & (1 << (w-1))) {
- y = y << 1;
- y = ((y ^ pp) & mask);
- } else {
- y = y << 1;
- }
- }
-
- gf_invert_binary_matrix(mat, inv, w);
- return inv[0];
-}
-
-void gf_two_byte_region_table_multiply(gf_region_data *rd, uint16_t *base)
-{
- uint64_t a, prod;
- int xor;
- uint64_t *s64, *d64, *top;
-
- s64 = rd->s_start;
- d64 = rd->d_start;
- top = rd->d_top;
- xor = rd->xor;
-
- if (xor) {
- while (d64 != top) {
- a = *s64;
- prod = base[a >> 48];
- a <<= 16;
- prod <<= 16;
- prod ^= base[a >> 48];
- a <<= 16;
- prod <<= 16;
- prod ^= base[a >> 48];
- a <<= 16;
- prod <<= 16;
- prod ^= base[a >> 48];
- prod ^= *d64;
- *d64 = prod;
- s64++;
- d64++;
- }
- } else {
- while (d64 != top) {
- a = *s64;
- prod = base[a >> 48];
- a <<= 16;
- prod <<= 16;
- prod ^= base[a >> 48];
- a <<= 16;
- prod <<= 16;
- prod ^= base[a >> 48];
- a <<= 16;
- prod <<= 16;
- prod ^= base[a >> 48];
- *d64 = prod;
- s64++;
- d64++;
- }
- }
-}
-
-static void gf_slow_multiply_region(gf_region_data *rd, void *src, void *dest, void *s_top)
-{
- uint8_t *s8, *d8;
- uint16_t *s16, *d16;
- uint32_t *s32, *d32;
- uint64_t *s64, *d64;
- gf_internal_t *h;
- int wb;
- uint32_t p, a;
-
- h = rd->gf->scratch;
- wb = (h->w)/8;
- if (wb == 0) wb = 1;
-
- while (src < s_top) {
- switch (h->w) {
- case 8:
- s8 = (uint8_t *) src;
- d8 = (uint8_t *) dest;
- *d8 = (rd->xor) ? (*d8 ^ rd->gf->multiply.w32(rd->gf, rd->val, *s8)) :
- rd->gf->multiply.w32(rd->gf, rd->val, *s8);
- break;
- case 4:
- s8 = (uint8_t *) src;
- d8 = (uint8_t *) dest;
- a = *s8;
- p = rd->gf->multiply.w32(rd->gf, rd->val, a&0xf);
- p |= (rd->gf->multiply.w32(rd->gf, rd->val, a >> 4) << 4);
- if (rd->xor) p ^= *d8;
- *d8 = p;
- break;
- case 16:
- s16 = (uint16_t *) src;
- d16 = (uint16_t *) dest;
- *d16 = (rd->xor) ? (*d16 ^ rd->gf->multiply.w32(rd->gf, rd->val, *s16)) :
- rd->gf->multiply.w32(rd->gf, rd->val, *s16);
- break;
- case 32:
- s32 = (uint32_t *) src;
- d32 = (uint32_t *) dest;
- *d32 = (rd->xor) ? (*d32 ^ rd->gf->multiply.w32(rd->gf, rd->val, *s32)) :
- rd->gf->multiply.w32(rd->gf, rd->val, *s32);
- break;
- case 64:
- s64 = (uint64_t *) src;
- d64 = (uint64_t *) dest;
- *d64 = (rd->xor) ? (*d64 ^ rd->gf->multiply.w64(rd->gf, rd->val, *s64)) :
- rd->gf->multiply.w64(rd->gf, rd->val, *s64);
- break;
- default:
- fprintf(stderr, "Error: gf_slow_multiply_region: w=%d not implemented.\n", h->w);
- exit(1);
- }
- src = (uint8_t *)src + wb;
- dest = (uint8_t *)dest + wb;
- }
-}
-
-/* JSP - The purpose of this procedure is to error check alignment,
- and to set up the region operation so that it can best leverage
- large words.
-
- It stores its information in rd.
-
- Assuming you're not doing Cauchy coding, (see below for that),
- then w will be 4, 8, 16, 32 or 64. It can't be 128 (probably
- should change that).
-
- src and dest must then be aligned on ceil(w/8)-byte boundaries.
- Moreover, bytes must be a multiple of ceil(w/8). If the variable
- align is equal to ceil(w/8), then we will set s_start = src,
- d_start = dest, s_top to (src+bytes) and d_top to (dest+bytes).
- And we return -- the implementation will go ahead and do the
- multiplication on individual words (e.g. using discrete logs).
-
- If align is greater than ceil(w/8), then the implementation needs
- to work on groups of "align" bytes. For example, suppose you are
- implementing BYTWO, without SSE. Then you will be doing the region
- multiplication in units of 8 bytes, so align = 8. Or, suppose you
- are doing a Quad table in GF(2^4). You will be doing the region
- multiplication in units of 2 bytes, so align = 2. Or, suppose you
- are doing split multiplication with SSE operations in GF(2^8).
- Then align = 16. Worse yet, suppose you are doing split
- multiplication with SSE operations in GF(2^16), with or without
- ALTMAP. Then, you will be doing the multiplication on 256 bits at
- a time. So align = 32.
-
- When align does not equal ceil(w/8), we split the region
- multiplication into three parts. We are going to make s_start be
- the first address greater than or equal to src that is a multiple
- of align. s_top is going to be the largest address >= src+bytes
- such that (s_top - s_start) is a multiple of align. We do the
- same with d_start and d_top. When we say that "src and dest must
- be aligned with respect to each other, we mean that s_start-src
- must equal d_start-dest.
-
- Now, the region multiplication is done in three parts -- the part
- between src and s_start must be done using single words.
- Similarly, the part between s_top and src+bytes must also be done
- using single words. The part between s_start and s_top will be
- done in chunks of "align" bytes.
-
- One final thing -- if align > 16, then s_start and d_start will be
- aligned on a 16 byte boundary. Perhaps we should have two
- variables: align and chunksize. Then we'd have s_start & d_start
- aligned to "align", and have s_top-s_start be a multiple of
- chunksize. That may be less confusing, but it would be a big
- change.
-
- Finally, if align = -1, then we are doing Cauchy multiplication,
- using only XOR's. In this case, we're not going to care about
- alignment because we are just doing XOR's. Instead, the only
- thing we care about is that bytes must be a multiple of w.
-
- This is not to say that alignment doesn't matter in performance
- with XOR's. See that discussion in gf_multby_one().
-
- After you call gf_set_region_data(), the procedure
- gf_do_initial_region_alignment() calls gf->multiply.w32() on
- everything between src and s_start. The procedure
- gf_do_final_region_alignment() calls gf->multiply.w32() on
- everything between s_top and src+bytes.
- */
-
-void gf_set_region_data(gf_region_data *rd,
- gf_t *gf,
- void *src,
- void *dest,
- int bytes,
- uint64_t val,
- int xor,
- int align)
-{
- gf_internal_t *h = NULL;
- int wb;
- uint32_t a;
- unsigned long uls, uld;
-
- if (gf == NULL) { /* JSP - Can be NULL if you're just doing XOR's */
- wb = 1;
- } else {
- h = gf->scratch;
- wb = (h->w)/8;
- if (wb == 0) wb = 1;
- }
-
- rd->gf = gf;
- rd->src = src;
- rd->dest = dest;
- rd->bytes = bytes;
- rd->val = val;
- rd->xor = xor;
- rd->align = align;
-
- uls = (unsigned long) src;
- uld = (unsigned long) dest;
-
- a = (align <= 16) ? align : 16;
-
- if (align == -1) { /* JSP: This is cauchy. Error check bytes, then set up the pointers
- so that there are no alignment regions. */
- if (h != NULL && bytes % h->w != 0) {
- fprintf(stderr, "Error in region multiply operation.\n");
- fprintf(stderr, "The size must be a multiple of %d bytes.\n", h->w);
- assert(0);
- }
-
- rd->s_start = src;
- rd->d_start = dest;
- rd->s_top = (uint8_t *)src + bytes;
- rd->d_top = (uint8_t *)src + bytes;
- return;
- }
-
- if (uls % a != uld % a) {
- fprintf(stderr, "Error in region multiply operation.\n");
- fprintf(stderr, "The source & destination pointers must be aligned with respect\n");
- fprintf(stderr, "to each other along a %d byte boundary.\n", a);
- fprintf(stderr, "Src = 0x%lx. Dest = 0x%lx\n", (unsigned long) src,
- (unsigned long) dest);
- assert(0);
- }
-
- if (uls % wb != 0) {
- fprintf(stderr, "Error in region multiply operation.\n");
- fprintf(stderr, "The pointers must be aligned along a %d byte boundary.\n", wb);
- fprintf(stderr, "Src = 0x%lx. Dest = 0x%lx\n", (unsigned long) src,
- (unsigned long) dest);
- assert(0);
- }
-
- if (bytes % wb != 0) {
- fprintf(stderr, "Error in region multiply operation.\n");
- fprintf(stderr, "The size must be a multiple of %d bytes.\n", wb);
- assert(0);
- }
-
- uls %= a;
- if (uls != 0) uls = (a-uls);
- rd->s_start = (uint8_t *)rd->src + uls;
- rd->d_start = (uint8_t *)rd->dest + uls;
- bytes -= uls;
- bytes -= (bytes % align);
- rd->s_top = (uint8_t *)rd->s_start + bytes;
- rd->d_top = (uint8_t *)rd->d_start + bytes;
-
-}
-
-void gf_do_initial_region_alignment(gf_region_data *rd)
-{
- gf_slow_multiply_region(rd, rd->src, rd->dest, rd->s_start);
-}
-
-void gf_do_final_region_alignment(gf_region_data *rd)
-{
- gf_slow_multiply_region(rd, rd->s_top, rd->d_top, (uint8_t *)rd->src+rd->bytes);
-}
-
-void gf_multby_zero(void *dest, int bytes, int xor)
-{
- if (xor) return;
- bzero(dest, bytes);
- return;
-}
-
-/* JSP - gf_multby_one tries to do this in the most efficient way
- possible. If xor = 0, then simply call memcpy() since that
- should be optimized by the system. Otherwise, try to do the xor
- in the following order:
-
- If src and dest are aligned with respect to each other on 16-byte
- boundaries and you have SSE instructions, then use aligned SSE
- instructions.
-
- If they aren't but you still have SSE instructions, use unaligned
- SSE instructions.
-
- If there are no SSE instructions, but they are aligned with
- respect to each other on 8-byte boundaries, then do them with
- uint64_t's.
-
- Otherwise, call gf_unaligned_xor(), which does the following:
- align a destination pointer along an 8-byte boundary, and then
- memcpy 32 bytes at a time from the src pointer to an array of
- doubles. I'm not sure if that's the best -- probably needs
- testing, but this seems like it could be a black hole.
- */
-
-static void gf_unaligned_xor(void *src, void *dest, int bytes);
-
-void gf_multby_one(void *src, void *dest, int bytes, int xor)
-{
-#ifdef INTEL_SSE2
- __m128i ms, md;
-#endif
- unsigned long uls, uld;
- uint8_t *s8, *d8;
- uint64_t *s64, *d64, *dtop64;
- gf_region_data rd;
-
- if (!xor) {
- memcpy(dest, src, bytes);
- return;
- }
- uls = (unsigned long) src;
- uld = (unsigned long) dest;
-
-#ifdef INTEL_SSE2
- int abytes;
- s8 = (uint8_t *) src;
- d8 = (uint8_t *) dest;
- if (uls % 16 == uld % 16) {
- gf_set_region_data(&rd, NULL, src, dest, bytes, 1, xor, 16);
- while (s8 != rd.s_start) {
- *d8 ^= *s8;
- d8++;
- s8++;
- }
- while (s8 < (uint8_t *) rd.s_top) {
- ms = _mm_load_si128 ((__m128i *)(s8));
- md = _mm_load_si128 ((__m128i *)(d8));
- md = _mm_xor_si128(md, ms);
- _mm_store_si128((__m128i *)(d8), md);
- s8 += 16;
- d8 += 16;
- }
- while (s8 != (uint8_t *) src + bytes) {
- *d8 ^= *s8;
- d8++;
- s8++;
- }
- return;
- }
-
- abytes = (bytes & 0xfffffff0);
-
- while (d8 < (uint8_t *) dest + abytes) {
- ms = _mm_loadu_si128 ((__m128i *)(s8));
- md = _mm_loadu_si128 ((__m128i *)(d8));
- md = _mm_xor_si128(md, ms);
- _mm_storeu_si128((__m128i *)(d8), md);
- s8 += 16;
- d8 += 16;
- }
- while (d8 != (uint8_t *) dest+bytes) {
- *d8 ^= *s8;
- d8++;
- s8++;
- }
- return;
-#endif
-#if defined(ARM_NEON)
- s8 = (uint8_t *) src;
- d8 = (uint8_t *) dest;
-
- if (uls % 16 == uld % 16) {
- gf_set_region_data(&rd, NULL, src, dest, bytes, 1, xor, 16);
- while (s8 != rd.s_start) {
- *d8 ^= *s8;
- s8++;
- d8++;
- }
- while (s8 < (uint8_t *) rd.s_top) {
- uint8x16_t vs = vld1q_u8 (s8);
- uint8x16_t vd = vld1q_u8 (d8);
- uint8x16_t vr = veorq_u8 (vs, vd);
- vst1q_u8 (d8, vr);
- s8 += 16;
- d8 += 16;
- }
- } else {
- while (s8 + 15 < (uint8_t *) src + bytes) {
- uint8x16_t vs = vld1q_u8 (s8);
- uint8x16_t vd = vld1q_u8 (d8);
- uint8x16_t vr = veorq_u8 (vs, vd);
- vst1q_u8 (d8, vr);
- s8 += 16;
- d8 += 16;
- }
- }
- while (s8 < (uint8_t *) src + bytes) {
- *d8 ^= *s8;
- s8++;
- d8++;
- }
- return;
-#endif
- if (uls % 8 != uld % 8) {
- gf_unaligned_xor(src, dest, bytes);
- return;
- }
-
- gf_set_region_data(&rd, NULL, src, dest, bytes, 1, xor, 8);
- s8 = (uint8_t *) src;
- d8 = (uint8_t *) dest;
- while (d8 != rd.d_start) {
- *d8 ^= *s8;
- d8++;
- s8++;
- }
- dtop64 = (uint64_t *) rd.d_top;
-
- d64 = (uint64_t *) rd.d_start;
- s64 = (uint64_t *) rd.s_start;
-
- while (d64 < dtop64) {
- *d64 ^= *s64;
- d64++;
- s64++;
- }
-
- s8 = (uint8_t *) rd.s_top;
- d8 = (uint8_t *) rd.d_top;
-
- while (d8 != (uint8_t *) dest+bytes) {
- *d8 ^= *s8;
- d8++;
- s8++;
- }
- return;
-}
-
-#define UNALIGNED_BUFSIZE (8)
-
-static void gf_unaligned_xor(void *src, void *dest, int bytes)
-{
- uint64_t scopy[UNALIGNED_BUFSIZE], *d64;
- int i;
- gf_region_data rd;
- uint8_t *s8, *d8;
-
- /* JSP - call gf_set_region_data(), but use dest in both places. This is
- because I only want to set up dest. If I used src, gf_set_region_data()
- would fail because src and dest are not aligned to each other wrt
- 8-byte pointers. I know this will actually align d_start to 16 bytes.
- If I change gf_set_region_data() to split alignment & chunksize, then
- I could do this correctly. */
-
- gf_set_region_data(&rd, NULL, dest, dest, bytes, 1, 1, 8*UNALIGNED_BUFSIZE);
- s8 = (uint8_t *) src;
- d8 = (uint8_t *) dest;
-
- while (d8 < (uint8_t *) rd.d_start) {
- *d8 ^= *s8;
- d8++;
- s8++;
- }
-
- d64 = (uint64_t *) d8;
- while (d64 < (uint64_t *) rd.d_top) {
- memcpy(scopy, s8, 8*UNALIGNED_BUFSIZE);
- s8 += 8*UNALIGNED_BUFSIZE;
- for (i = 0; i < UNALIGNED_BUFSIZE; i++) {
- *d64 ^= scopy[i];
- d64++;
- }
- }
-
- d8 = (uint8_t *) d64;
- while (d8 < (uint8_t *) ((uint8_t *)dest+bytes)) {
- *d8 ^= *s8;
- d8++;
- s8++;
- }
-}
diff --git a/src/c/gf-complete/src/gf_general.c b/src/c/gf-complete/src/gf_general.c
deleted file mode 100644
index 866fe43..0000000
--- a/src/c/gf-complete/src/gf_general.c
+++ /dev/null
@@ -1,539 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_general.c
- *
- * This file has helper routines for doing basic GF operations with any
- * legal value of w. The problem is that w <= 32, w=64 and w=128 all have
- * different data types, which is a pain. The procedures in this file try
- * to alleviate that pain. They are used in gf_unit and gf_time.
- */
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-#include <assert.h>
-
-#include "gf_complete.h"
-#include "gf_int.h"
-#include "gf_method.h"
-#include "gf_rand.h"
-#include "gf_general.h"
-
-void gf_general_set_zero(gf_general_t *v, int w)
-{
- if (w <= 32) {
- v->w32 = 0;
- } else if (w <= 64) {
- v->w64 = 0;
- } else {
- v->w128[0] = 0;
- v->w128[1] = 0;
- }
-}
-
-void gf_general_set_one(gf_general_t *v, int w)
-{
- if (w <= 32) {
- v->w32 = 1;
- } else if (w <= 64) {
- v->w64 = 1;
- } else {
- v->w128[0] = 0;
- v->w128[1] = 1;
- }
-}
-
-void gf_general_set_two(gf_general_t *v, int w)
-{
- if (w <= 32) {
- v->w32 = 2;
- } else if (w <= 64) {
- v->w64 = 2;
- } else {
- v->w128[0] = 0;
- v->w128[1] = 2;
- }
-}
-
-int gf_general_is_zero(gf_general_t *v, int w)
-{
- if (w <= 32) {
- return (v->w32 == 0);
- } else if (w <= 64) {
- return (v->w64 == 0);
- } else {
- return (v->w128[0] == 0 && v->w128[1] == 0);
- }
-}
-
-int gf_general_is_one(gf_general_t *v, int w)
-{
- if (w <= 32) {
- return (v->w32 == 1);
- } else if (w <= 64) {
- return (v->w64 == 1);
- } else {
- return (v->w128[0] == 0 && v->w128[1] == 1);
- }
-}
-
-void gf_general_set_random(gf_general_t *v, int w, int zero_ok)
-{
- if (w <= 32) {
- v->w32 = MOA_Random_W(w, zero_ok);
- } else if (w <= 64) {
- while (1) {
- v->w64 = MOA_Random_64();
- if (v->w64 != 0 || zero_ok) return;
- }
- } else {
- while (1) {
- MOA_Random_128(v->w128);
- if (v->w128[0] != 0 || v->w128[1] != 0 || zero_ok) return;
- }
- }
-}
-
-void gf_general_val_to_s(gf_general_t *v, int w, char *s, int hex)
-{
- if (w <= 32) {
- if (hex) {
- sprintf(s, "%x", v->w32);
- } else {
- sprintf(s, "%u", v->w32);
- }
- } else if (w <= 64) {
- if (hex) {
- sprintf(s, "%llx", (long long unsigned int) v->w64);
- } else {
- sprintf(s, "%lld", (long long unsigned int) v->w64);
- }
- } else {
- if (v->w128[0] == 0) {
- sprintf(s, "%llx", (long long unsigned int) v->w128[1]);
- } else {
- sprintf(s, "%llx%016llx", (long long unsigned int) v->w128[0],
- (long long unsigned int) v->w128[1]);
- }
- }
-}
-
-int gf_general_s_to_val(gf_general_t *v, int w, char *s, int hex)
-{
- int l;
- int save;
-
- if (w <= 32) {
- if (hex) {
- if (sscanf(s, "%x", &(v->w32)) == 0) return 0;
- } else {
- if (sscanf(s, "%u", &(v->w32)) == 0) return 0;
- }
- if (w == 32) return 1;
- if (w == 31) {
- if (v->w32 & (1 << 31)) return 0;
- return 1;
- }
- if (v->w32 & ~((1 << w)-1)) return 0;
- return 1;
- } else if (w <= 64) {
- if (hex) return (sscanf(s, "%llx", (long long unsigned int *) (&(v->w64))) == 1);
- return (sscanf(s, "%lld", (long long int *) (&(v->w64))) == 1);
- } else {
- if (!hex) return 0;
- l = strlen(s);
- if (l <= 16) {
- v->w128[0] = 0;
- return (sscanf(s, "%llx", (long long unsigned int *) (&(v->w128[1]))) == 1);
- } else {
- if (l > 32) return 0;
- save = s[l-16];
- s[l-16] = '\0';
- if (sscanf(s, "%llx", (long long unsigned int *) (&(v->w128[0]))) == 0) {
- s[l-16] = save;
- return 0;
- }
- return (sscanf(s+(l-16), "%llx", (long long unsigned int *) (&(v->w128[1]))) == 1);
- }
- }
-}
-
-void gf_general_add(gf_t *gf, gf_general_t *a, gf_general_t *b, gf_general_t *c)
-{
- gf_internal_t *h;
- int w;
-
- h = (gf_internal_t *) gf->scratch;
- w = h->w;
-
- if (w <= 32) {
- c->w32 = a->w32 ^ b->w32;
- } else if (w <= 64) {
- c->w64 = a->w64 ^ b->w64;
- } else {
- c->w128[0] = a->w128[0] ^ b->w128[0];
- c->w128[1] = a->w128[1] ^ b->w128[1];
- }
-}
-
-void gf_general_multiply(gf_t *gf, gf_general_t *a, gf_general_t *b, gf_general_t *c)
-{
- gf_internal_t *h;
- int w;
-
- h = (gf_internal_t *) gf->scratch;
- w = h->w;
-
- if (w <= 32) {
- c->w32 = gf->multiply.w32(gf, a->w32, b->w32);
- } else if (w <= 64) {
- c->w64 = gf->multiply.w64(gf, a->w64, b->w64);
- } else {
- gf->multiply.w128(gf, a->w128, b->w128, c->w128);
- }
-}
-
-void gf_general_divide(gf_t *gf, gf_general_t *a, gf_general_t *b, gf_general_t *c)
-{
- gf_internal_t *h;
- int w;
-
- h = (gf_internal_t *) gf->scratch;
- w = h->w;
-
- if (w <= 32) {
- c->w32 = gf->divide.w32(gf, a->w32, b->w32);
- } else if (w <= 64) {
- c->w64 = gf->divide.w64(gf, a->w64, b->w64);
- } else {
- gf->divide.w128(gf, a->w128, b->w128, c->w128);
- }
-}
-
-void gf_general_inverse(gf_t *gf, gf_general_t *a, gf_general_t *b)
-{
- gf_internal_t *h;
- int w;
-
- h = (gf_internal_t *) gf->scratch;
- w = h->w;
-
- if (w <= 32) {
- b->w32 = gf->inverse.w32(gf, a->w32);
- } else if (w <= 64) {
- b->w64 = gf->inverse.w64(gf, a->w64);
- } else {
- gf->inverse.w128(gf, a->w128, b->w128);
- }
-}
-
-int gf_general_are_equal(gf_general_t *v1, gf_general_t *v2, int w)
-{
- if (w <= 32) {
- return (v1->w32 == v2->w32);
- } else if (w <= 64) {
- return (v1->w64 == v2->w64);
- } else {
- return (v1->w128[0] == v2->w128[0] &&
- v1->w128[1] == v2->w128[1]);
- }
-}
-
-void gf_general_do_region_multiply(gf_t *gf, gf_general_t *a, void *ra, void *rb, int bytes, int xor)
-{
- gf_internal_t *h;
- int w;
-
- h = (gf_internal_t *) gf->scratch;
- w = h->w;
-
- if (w <= 32) {
- gf->multiply_region.w32(gf, ra, rb, a->w32, bytes, xor);
- } else if (w <= 64) {
- gf->multiply_region.w64(gf, ra, rb, a->w64, bytes, xor);
- } else {
- gf->multiply_region.w128(gf, ra, rb, a->w128, bytes, xor);
- }
-}
-
-void gf_general_do_region_check(gf_t *gf, gf_general_t *a, void *orig_a, void *orig_target, void *final_target, int bytes, int xor)
-{
- gf_internal_t *h;
- int w, words, i;
- gf_general_t oa, ot, ft, sb;
- char sa[50], soa[50], sot[50], sft[50], ssb[50];
-
- h = (gf_internal_t *) gf->scratch;
- w = h->w;
-
- words = (bytes * 8) / w;
- for (i = 0; i < words; i++) {
- if (w <= 32) {
- oa.w32 = gf->extract_word.w32(gf, orig_a, bytes, i);
- ot.w32 = gf->extract_word.w32(gf, orig_target, bytes, i);
- ft.w32 = gf->extract_word.w32(gf, final_target, bytes, i);
- sb.w32 = gf->multiply.w32(gf, a->w32, oa.w32);
- if (xor) sb.w32 ^= ot.w32;
- } else if (w <= 64) {
- oa.w64 = gf->extract_word.w64(gf, orig_a, bytes, i);
- ot.w64 = gf->extract_word.w64(gf, orig_target, bytes, i);
- ft.w64 = gf->extract_word.w64(gf, final_target, bytes, i);
- sb.w64 = gf->multiply.w64(gf, a->w64, oa.w64);
- if (xor) sb.w64 ^= ot.w64;
- } else {
- gf->extract_word.w128(gf, orig_a, bytes, i, oa.w128);
- gf->extract_word.w128(gf, orig_target, bytes, i, ot.w128);
- gf->extract_word.w128(gf, final_target, bytes, i, ft.w128);
- gf->multiply.w128(gf, a->w128, oa.w128, sb.w128);
- if (xor) {
- sb.w128[0] ^= ot.w128[0];
- sb.w128[1] ^= ot.w128[1];
- }
- }
-
- if (!gf_general_are_equal(&ft, &sb, w)) {
-
- fprintf(stderr,"Problem with region multiply (all values in hex):\n");
- fprintf(stderr," Target address base: 0x%lx. Word 0x%x of 0x%x. Xor: %d\n",
- (unsigned long) final_target, i, words, xor);
- gf_general_val_to_s(a, w, sa, 1);
- gf_general_val_to_s(&oa, w, soa, 1);
- gf_general_val_to_s(&ot, w, sot, 1);
- gf_general_val_to_s(&ft, w, sft, 1);
- gf_general_val_to_s(&sb, w, ssb, 1);
- fprintf(stderr," Value: %s\n", sa);
- fprintf(stderr," Original source word: %s\n", soa);
- if (xor) fprintf(stderr," XOR with target word: %s\n", sot);
- fprintf(stderr," Product word: %s\n", sft);
- fprintf(stderr," It should be: %s\n", ssb);
- assert(0);
- }
- }
-}
-
-void gf_general_set_up_single_timing_test(int w, void *ra, void *rb, int size)
-{
- void *top;
- gf_general_t g;
- uint8_t *r8, *r8a;
- uint16_t *r16;
- uint32_t *r32;
- uint64_t *r64;
- int i;
-
- top = (uint8_t *)rb+size;
-
- /* If w is 8, 16, 32, 64 or 128, fill the regions with random bytes.
- However, don't allow for zeros in rb, because that will screw up
- division.
-
- When w is 4, you fill the regions with random 4-bit words in each byte.
-
- Otherwise, treat every four bytes as an uint32_t
- and fill it with a random value mod (1 << w).
- */
-
- if (w == 8 || w == 16 || w == 32 || w == 64 || w == 128) {
- MOA_Fill_Random_Region (ra, size);
- while (rb < top) {
- gf_general_set_random(&g, w, 0);
- switch (w) {
- case 8:
- r8 = (uint8_t *) rb;
- *r8 = g.w32;
- break;
- case 16:
- r16 = (uint16_t *) rb;
- *r16 = g.w32;
- break;
- case 32:
- r32 = (uint32_t *) rb;
- *r32 = g.w32;
- break;
- case 64:
- r64 = (uint64_t *) rb;
- *r64 = g.w64;
- break;
- case 128:
- r64 = (uint64_t *) rb;
- r64[0] = g.w128[0];
- r64[1] = g.w128[1];
- break;
- }
- rb = (uint8_t *)rb + (w/8);
- }
- } else if (w == 4) {
- r8a = (uint8_t *) ra;
- r8 = (uint8_t *) rb;
- while (r8 < (uint8_t *) top) {
- gf_general_set_random(&g, w, 1);
- *r8a = g.w32;
- gf_general_set_random(&g, w, 0);
- *r8 = g.w32;
- r8a++;
- r8++;
- }
- } else {
- r32 = (uint32_t *) ra;
- for (i = 0; i < size/4; i++) r32[i] = MOA_Random_W(w, 1);
- r32 = (uint32_t *) rb;
- for (i = 0; i < size/4; i++) r32[i] = MOA_Random_W(w, 0);
- }
-}
-
-/* This sucks, but in order to time, you really need to avoid putting ifs in
- the inner loops. So, I'm doing a separate timing test for each w:
- (4 & 8), 16, 32, 64, 128 and everything else. Fortunately, the "everything else"
- tests can be equivalent to w=32.
-
- I'm also putting the results back into ra, because otherwise, the optimizer might
- figure out that we're not really doing anything in the inner loops and it
- will chuck that. */
-
-int gf_general_do_single_timing_test(gf_t *gf, void *ra, void *rb, int size, char test)
-{
- gf_internal_t *h;
- void *top;
- uint8_t *r8a, *r8b, *top8;
- uint16_t *r16a, *r16b, *top16;
- uint32_t *r32a, *r32b, *top32;
- uint64_t *r64a, *r64b, *top64, *r64c;
- int w, rv;
-
- h = (gf_internal_t *) gf->scratch;
- w = h->w;
- top = (uint8_t *)ra + size;
-
- if (w == 8 || w == 4) {
- r8a = (uint8_t *) ra;
- r8b = (uint8_t *) rb;
- top8 = (uint8_t *) top;
- if (test == 'M') {
- while (r8a < top8) {
- *r8a = gf->multiply.w32(gf, *r8a, *r8b);
- r8a++;
- r8b++;
- }
- } else if (test == 'D') {
- while (r8a < top8) {
- *r8a = gf->divide.w32(gf, *r8a, *r8b);
- r8a++;
- r8b++;
- }
- } else if (test == 'I') {
- while (r8a < top8) {
- *r8a = gf->inverse.w32(gf, *r8a);
- r8a++;
- }
- }
- return (top8 - (uint8_t *) ra);
- }
-
- if (w == 16) {
- r16a = (uint16_t *) ra;
- r16b = (uint16_t *) rb;
- top16 = (uint16_t *) top;
- if (test == 'M') {
- while (r16a < top16) {
- *r16a = gf->multiply.w32(gf, *r16a, *r16b);
- r16a++;
- r16b++;
- }
- } else if (test == 'D') {
- while (r16a < top16) {
- *r16a = gf->divide.w32(gf, *r16a, *r16b);
- r16a++;
- r16b++;
- }
- } else if (test == 'I') {
- while (r16a < top16) {
- *r16a = gf->inverse.w32(gf, *r16a);
- r16a++;
- }
- }
- return (top16 - (uint16_t *) ra);
- }
- if (w <= 32) {
- r32a = (uint32_t *) ra;
- r32b = (uint32_t *) rb;
- top32 = (uint32_t *) ra + (size/4); /* This is for the "everything elses" */
-
- if (test == 'M') {
- while (r32a < top32) {
- *r32a = gf->multiply.w32(gf, *r32a, *r32b);
- r32a++;
- r32b++;
- }
- } else if (test == 'D') {
- while (r32a < top32) {
- *r32a = gf->divide.w32(gf, *r32a, *r32b);
- r32a++;
- r32b++;
- }
- } else if (test == 'I') {
- while (r32a < top32) {
- *r32a = gf->inverse.w32(gf, *r32a);
- r32a++;
- }
- }
- return (top32 - (uint32_t *) ra);
- }
- if (w == 64) {
- r64a = (uint64_t *) ra;
- r64b = (uint64_t *) rb;
- top64 = (uint64_t *) top;
- if (test == 'M') {
- while (r64a < top64) {
- *r64a = gf->multiply.w64(gf, *r64a, *r64b);
- r64a++;
- r64b++;
- }
- } else if (test == 'D') {
- while (r64a < top64) {
- *r64a = gf->divide.w64(gf, *r64a, *r64b);
- r64a++;
- r64b++;
- }
- } else if (test == 'I') {
- while (r64a < top64) {
- *r64a = gf->inverse.w64(gf, *r64a);
- r64a++;
- }
- }
- return (top64 - (uint64_t *) ra);
- }
- if (w == 128) {
- r64a = (uint64_t *) ra;
- r64c = r64a;
- r64a += 2;
- r64b = (uint64_t *) rb;
- top64 = (uint64_t *) top;
- rv = (top64 - r64a)/2;
- if (test == 'M') {
- while (r64a < top64) {
- gf->multiply.w128(gf, r64a, r64b, r64c);
- r64a += 2;
- r64b += 2;
- }
- } else if (test == 'D') {
- while (r64a < top64) {
- gf->divide.w128(gf, r64a, r64b, r64c);
- r64a += 2;
- r64b += 2;
- }
- } else if (test == 'I') {
- while (r64a < top64) {
- gf->inverse.w128(gf, r64a, r64c);
- r64a += 2;
- }
- }
- return rv;
- }
- return 0;
-}
diff --git a/src/c/gf-complete/src/gf_method.c b/src/c/gf-complete/src/gf_method.c
deleted file mode 100644
index 08ac660..0000000
--- a/src/c/gf-complete/src/gf_method.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_method.c
- *
- * Parses argv to figure out the mult_type and arguments. Returns the gf.
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-
-#include "gf_complete.h"
-#include "gf_int.h"
-#include "gf_method.h"
-
-int create_gf_from_argv(gf_t *gf, int w, int argc, char **argv, int starting)
-{
- int mult_type, divide_type, region_type;
- int arg1, arg2;
- uint64_t prim_poly;
- gf_t *base;
-
- mult_type = GF_MULT_DEFAULT;
- region_type = GF_REGION_DEFAULT;
- divide_type = GF_DIVIDE_DEFAULT;
- prim_poly = 0;
- base = NULL;
- arg1 = 0;
- arg2 = 0;
- while (1) {
- if (argc > starting) {
- if (strcmp(argv[starting], "-m") == 0) {
- starting++;
- if (mult_type != GF_MULT_DEFAULT) {
- if (base != NULL) gf_free(base, 1);
- _gf_errno = GF_E_TWOMULT;
- return 0;
- }
- if (strcmp(argv[starting], "SHIFT") == 0) {
- mult_type = GF_MULT_SHIFT;
- starting++;
- } else if (strcmp(argv[starting], "CARRY_FREE") == 0) {
- mult_type = GF_MULT_CARRY_FREE;
- starting++;
- } else if (strcmp(argv[starting], "CARRY_FREE_GK") == 0) {
- mult_type = GF_MULT_CARRY_FREE_GK;
- starting++;
- } else if (strcmp(argv[starting], "GROUP") == 0) {
- mult_type = GF_MULT_GROUP;
- if (argc < starting + 3) {
- _gf_errno = GF_E_GROUPAR;
- return 0;
- }
- if (sscanf(argv[starting+1], "%d", &arg1) == 0 ||
- sscanf(argv[starting+2], "%d", &arg2) == 0) {
- _gf_errno = GF_E_GROUPNU;
- return 0;
- }
- starting += 3;
- } else if (strcmp(argv[starting], "BYTWO_p") == 0) {
- mult_type = GF_MULT_BYTWO_p;
- starting++;
- } else if (strcmp(argv[starting], "BYTWO_b") == 0) {
- mult_type = GF_MULT_BYTWO_b;
- starting++;
- } else if (strcmp(argv[starting], "TABLE") == 0) {
- mult_type = GF_MULT_TABLE;
- starting++;
- } else if (strcmp(argv[starting], "LOG") == 0) {
- mult_type = GF_MULT_LOG_TABLE;
- starting++;
- } else if (strcmp(argv[starting], "LOG_ZERO") == 0) {
- mult_type = GF_MULT_LOG_ZERO;
- starting++;
- } else if (strcmp(argv[starting], "LOG_ZERO_EXT") == 0) {
- mult_type = GF_MULT_LOG_ZERO_EXT;
- starting++;
- } else if (strcmp(argv[starting], "SPLIT") == 0) {
- mult_type = GF_MULT_SPLIT_TABLE;
- if (argc < starting + 3) {
- _gf_errno = GF_E_SPLITAR;
- return 0;
- }
- if (sscanf(argv[starting+1], "%d", &arg1) == 0 ||
- sscanf(argv[starting+2], "%d", &arg2) == 0) {
- _gf_errno = GF_E_SPLITNU;
- return 0;
- }
- starting += 3;
- } else if (strcmp(argv[starting], "COMPOSITE") == 0) {
- mult_type = GF_MULT_COMPOSITE;
- if (argc < starting + 2) { _gf_errno = GF_E_FEWARGS; return 0; }
- if (sscanf(argv[starting+1], "%d", &arg1) == 0) {
- _gf_errno = GF_E_COMP_A2;
- return 0;
- }
- starting += 2;
- base = (gf_t *) malloc(sizeof(gf_t));
- starting = create_gf_from_argv(base, w/arg1, argc, argv, starting);
- if (starting == 0) {
- free(base);
- return 0;
- }
- } else {
- _gf_errno = GF_E_UNKNOWN;
- return 0;
- }
- } else if (strcmp(argv[starting], "-r") == 0) {
- starting++;
- if (strcmp(argv[starting], "DOUBLE") == 0) {
- region_type |= GF_REGION_DOUBLE_TABLE;
- starting++;
- } else if (strcmp(argv[starting], "QUAD") == 0) {
- region_type |= GF_REGION_QUAD_TABLE;
- starting++;
- } else if (strcmp(argv[starting], "LAZY") == 0) {
- region_type |= GF_REGION_LAZY;
- starting++;
- } else if (strcmp(argv[starting], "SIMD") == 0) {
- region_type |= GF_REGION_SIMD;
- starting++;
- } else if (strcmp(argv[starting], "NOSIMD") == 0) {
- region_type |= GF_REGION_NOSIMD;
- starting++;
- } else if (strcmp(argv[starting], "SSE") == 0) {
- region_type |= GF_REGION_SIMD;
- starting++;
- } else if (strcmp(argv[starting], "NOSSE") == 0) {
- region_type |= GF_REGION_NOSIMD;
- starting++;
- } else if (strcmp(argv[starting], "CAUCHY") == 0) {
- region_type |= GF_REGION_CAUCHY;
- starting++;
- } else if (strcmp(argv[starting], "ALTMAP") == 0) {
- region_type |= GF_REGION_ALTMAP;
- starting++;
- } else {
- if (base != NULL) gf_free(base, 1);
- _gf_errno = GF_E_UNK_REG;
- return 0;
- }
- } else if (strcmp(argv[starting], "-p") == 0) {
- starting++;
- if (sscanf(argv[starting], "%llx", (long long unsigned int *)(&prim_poly)) == 0) {
- if (base != NULL) gf_free(base, 1);
- _gf_errno = GF_E_POLYSPC;
- return 0;
- }
- starting++;
- } else if (strcmp(argv[starting], "-d") == 0) {
- starting++;
- if (divide_type != GF_DIVIDE_DEFAULT) {
- if (base != NULL) gf_free(base, 1);
- _gf_errno = GF_E_TWO_DIV;
- return 0;
- } else if (strcmp(argv[starting], "EUCLID") == 0) {
- divide_type = GF_DIVIDE_EUCLID;
- starting++;
- } else if (strcmp(argv[starting], "MATRIX") == 0) {
- divide_type = GF_DIVIDE_MATRIX;
- starting++;
- } else {
- _gf_errno = GF_E_UNK_DIV;
- return 0;
- }
- } else if (strcmp(argv[starting], "-") == 0) {
- /*
- printf("Scratch size: %d\n", gf_scratch_size(w,
- mult_type, region_type, divide_type, arg1, arg2));
- */
- if (gf_init_hard(gf, w, mult_type, region_type, divide_type,
- prim_poly, arg1, arg2, base, NULL) == 0) {
- if (base != NULL) gf_free(base, 1);
- return 0;
- } else
- return starting + 1;
- } else {
- if (base != NULL) gf_free(base, 1);
- _gf_errno = GF_E_UNKFLAG;
- return 0;
- }
- } else {
- if (base != NULL) gf_free(base, 1);
- _gf_errno = GF_E_FEWARGS;
- return 0;
- }
- }
-}
diff --git a/src/c/gf-complete/src/gf_rand.c b/src/c/gf-complete/src/gf_rand.c
deleted file mode 100644
index 3ec4a86..0000000
--- a/src/c/gf-complete/src/gf_rand.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_rand.c -- Random number generator.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include "gf_rand.h"
-
-/* Lifted the "Mother of All" random number generator from http://www.agner.org/random/ */
-
-static uint32_t MOA_X[5];
-
-uint32_t MOA_Random_32() {
- uint64_t sum;
- sum = (uint64_t)2111111111UL * (uint64_t)MOA_X[3] +
- (uint64_t)1492 * (uint64_t)(MOA_X[2]) +
- (uint64_t)1776 * (uint64_t)(MOA_X[1]) +
- (uint64_t)5115 * (uint64_t)(MOA_X[0]) +
- (uint64_t)MOA_X[4];
- MOA_X[3] = MOA_X[2]; MOA_X[2] = MOA_X[1]; MOA_X[1] = MOA_X[0];
- MOA_X[4] = (uint32_t)(sum >> 32);
- MOA_X[0] = (uint32_t)sum;
- return MOA_X[0];
-}
-
-uint64_t MOA_Random_64() {
- uint64_t sum;
-
- sum = MOA_Random_32();
- sum <<= 32;
- sum |= MOA_Random_32();
- return sum;
-}
-
-void MOA_Random_128(uint64_t *x) {
- x[0] = MOA_Random_64();
- x[1] = MOA_Random_64();
- return;
-}
-
-uint32_t MOA_Random_W(int w, int zero_ok)
-{
- uint32_t b;
-
- do {
- b = MOA_Random_32();
- if (w == 31) b &= 0x7fffffff;
- if (w < 31) b %= (1 << w);
- } while (!zero_ok && b == 0);
- return b;
-}
-
-void MOA_Seed(uint32_t seed) {
- int i;
- uint32_t s = seed;
- for (i = 0; i < 5; i++) {
- s = s * 29943829 - 1;
- MOA_X[i] = s;
- }
- for (i=0; i<19; i++) MOA_Random_32();
-}
-
-
-void MOA_Fill_Random_Region (void *reg, int size)
-{
- uint32_t *r32;
- uint8_t *r8;
- int i;
-
- r32 = (uint32_t *) reg;
- r8 = (uint8_t *) reg;
- for (i = 0; i < size/4; i++) r32[i] = MOA_Random_32();
- for (i *= 4; i < size; i++) r8[i] = MOA_Random_W(8, 1);
-}
diff --git a/src/c/gf-complete/src/gf_w128.c b/src/c/gf-complete/src/gf_w128.c
deleted file mode 100644
index 5916a47..0000000
--- a/src/c/gf-complete/src/gf_w128.c
+++ /dev/null
@@ -1,1783 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_w128.c
- *
- * Routines for 128-bit Galois fields
- */
-
-#include "gf_int.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-#define GF_FIELD_WIDTH (128)
-
-#define two_x(a) {\
- a[0] <<= 1; \
- if (a[1] & 1ULL << 63) a[0] ^= 1; \
- a[1] <<= 1; }
-
-#define a_get_b(a, i, b, j) {\
- a[i] = b[j]; \
- a[i + 1] = b[j + 1];}
-
-#define set_zero(a, i) {\
- a[i] = 0; \
- a[i + 1] = 0;}
-
-struct gf_w128_split_4_128_data {
- uint64_t last_value[2];
- uint64_t tables[2][32][16];
-};
-
-struct gf_w128_split_8_128_data {
- uint64_t last_value[2];
- uint64_t tables[2][16][256];
-};
-
-typedef struct gf_group_tables_s {
- gf_val_128_t m_table;
- gf_val_128_t r_table;
-} gf_group_tables_t;
-
-#define MM_PRINT8(s, r) { uint8_t blah[16], ii; printf("%-12s", s); _mm_storeu_si128((__m128i *)blah, r); for (ii = 0; ii < 16; ii += 1) printf("%s%02x", (ii%4==0) ? " " : " ", blah[15-ii]); printf("\n"); }
-
-static
-void
-gf_w128_multiply_region_from_single(gf_t *gf, void *src, void *dest, gf_val_128_t val, int bytes,
-int xor)
-{
- int i;
- gf_val_128_t s128;
- gf_val_128_t d128;
- uint64_t c128[2];
- gf_region_data rd;
-
- /* We only do this to check on alignment. */
- gf_set_region_data(&rd, gf, src, dest, bytes, 0, xor, 8);
-
- if (val[0] == 0) {
- if (val[1] == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val[1] == 1) { gf_multby_one(src, dest, bytes, xor); return; }
- }
-
- set_zero(c128, 0);
-
- s128 = (gf_val_128_t) src;
- d128 = (gf_val_128_t) dest;
-
- if (xor) {
- for (i = 0; i < bytes/sizeof(gf_val_64_t); i += 2) {
- gf->multiply.w128(gf, &s128[i], val, c128);
- d128[i] ^= c128[0];
- d128[i+1] ^= c128[1];
- }
- } else {
- for (i = 0; i < bytes/sizeof(gf_val_64_t); i += 2) {
- gf->multiply.w128(gf, &s128[i], val, &d128[i]);
- }
- }
-}
-
-#if defined(INTEL_SSE4_PCLMUL)
-static
-void
-gf_w128_clm_multiply_region_from_single(gf_t *gf, void *src, void *dest, gf_val_128_t val, int bytes,
-int xor)
-{
- int i;
- gf_val_128_t s128;
- gf_val_128_t d128;
- gf_region_data rd;
- __m128i a,b;
- __m128i result0,result1;
- __m128i prim_poly;
- __m128i c,d,e,f;
- gf_internal_t * h = gf->scratch;
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)h->prim_poly);
- /* We only do this to check on alignment. */
- gf_set_region_data(&rd, gf, src, dest, bytes, 0, xor, 8);
-
- if (val[0] == 0) {
- if (val[1] == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val[1] == 1) { gf_multby_one(src, dest, bytes, xor); return; }
- }
-
- s128 = (gf_val_128_t) src;
- d128 = (gf_val_128_t) dest;
-
- if (xor) {
- for (i = 0; i < bytes/sizeof(gf_val_64_t); i += 2) {
- a = _mm_insert_epi64 (_mm_setzero_si128(), s128[i+1], 0);
- b = _mm_insert_epi64 (a, val[1], 0);
- a = _mm_insert_epi64 (a, s128[i], 1);
- b = _mm_insert_epi64 (b, val[0], 1);
-
- c = _mm_clmulepi64_si128 (a, b, 0x00); /*low-low*/
- f = _mm_clmulepi64_si128 (a, b, 0x01); /*high-low*/
- e = _mm_clmulepi64_si128 (a, b, 0x10); /*low-high*/
- d = _mm_clmulepi64_si128 (a, b, 0x11); /*high-high*/
-
- /* now reusing a and b as temporary variables*/
- result0 = _mm_setzero_si128();
- result1 = result0;
-
- result0 = _mm_xor_si128 (result0, _mm_insert_epi64 (d, 0, 0));
- a = _mm_xor_si128 (_mm_srli_si128 (e, 8), _mm_insert_epi64 (d, 0, 1));
- result0 = _mm_xor_si128 (result0, _mm_xor_si128 (_mm_srli_si128 (f, 8), a));
-
- a = _mm_xor_si128 (_mm_slli_si128 (e, 8), _mm_insert_epi64 (c, 0, 0));
- result1 = _mm_xor_si128 (result1, _mm_xor_si128 (_mm_slli_si128 (f, 8), a));
- result1 = _mm_xor_si128 (result1, _mm_insert_epi64 (c, 0, 1));
- /* now we have constructed our 'result' with result0 being the carry bits, and we have to reduce. */
-
- a = _mm_srli_si128 (result0, 8);
- b = _mm_clmulepi64_si128 (a, prim_poly, 0x00);
- result0 = _mm_xor_si128 (result0, _mm_srli_si128 (b, 8));
- result1 = _mm_xor_si128 (result1, _mm_slli_si128 (b, 8));
-
- a = _mm_insert_epi64 (result0, 0, 1);
- b = _mm_clmulepi64_si128 (a, prim_poly, 0x00);
- result1 = _mm_xor_si128 (result1, b);
- d128[i] ^= (uint64_t)_mm_extract_epi64(result1,1);
- d128[i+1] ^= (uint64_t)_mm_extract_epi64(result1,0);
- }
- } else {
- for (i = 0; i < bytes/sizeof(gf_val_64_t); i += 2) {
- a = _mm_insert_epi64 (_mm_setzero_si128(), s128[i+1], 0);
- b = _mm_insert_epi64 (a, val[1], 0);
- a = _mm_insert_epi64 (a, s128[i], 1);
- b = _mm_insert_epi64 (b, val[0], 1);
-
- c = _mm_clmulepi64_si128 (a, b, 0x00); /*low-low*/
- f = _mm_clmulepi64_si128 (a, b, 0x01); /*high-low*/
- e = _mm_clmulepi64_si128 (a, b, 0x10); /*low-high*/
- d = _mm_clmulepi64_si128 (a, b, 0x11); /*high-high*/
-
- /* now reusing a and b as temporary variables*/
- result0 = _mm_setzero_si128();
- result1 = result0;
-
- result0 = _mm_xor_si128 (result0, _mm_insert_epi64 (d, 0, 0));
- a = _mm_xor_si128 (_mm_srli_si128 (e, 8), _mm_insert_epi64 (d, 0, 1));
- result0 = _mm_xor_si128 (result0, _mm_xor_si128 (_mm_srli_si128 (f, 8), a));
-
- a = _mm_xor_si128 (_mm_slli_si128 (e, 8), _mm_insert_epi64 (c, 0, 0));
- result1 = _mm_xor_si128 (result1, _mm_xor_si128 (_mm_slli_si128 (f, 8), a));
- result1 = _mm_xor_si128 (result1, _mm_insert_epi64 (c, 0, 1));
- /* now we have constructed our 'result' with result0 being the carry bits, and we have to reduce.*/
-
- a = _mm_srli_si128 (result0, 8);
- b = _mm_clmulepi64_si128 (a, prim_poly, 0x00);
- result0 = _mm_xor_si128 (result0, _mm_srli_si128 (b, 8));
- result1 = _mm_xor_si128 (result1, _mm_slli_si128 (b, 8));
-
- a = _mm_insert_epi64 (result0, 0, 1);
- b = _mm_clmulepi64_si128 (a, prim_poly, 0x00);
- result1 = _mm_xor_si128 (result1, b);
- d128[i] = (uint64_t)_mm_extract_epi64(result1,1);
- d128[i+1] = (uint64_t)_mm_extract_epi64(result1,0);
- }
- }
-}
-#endif
-
-/*
- * Some w128 notes:
- * --Big Endian
- * --return values allocated beforehand
- */
-
-#define GF_W128_IS_ZERO(val) (val[0] == 0 && val[1] == 0)
-
-void
-gf_w128_shift_multiply(gf_t *gf, gf_val_128_t a128, gf_val_128_t b128, gf_val_128_t c128)
-{
- /* ordered highest bit to lowest l[0] l[1] r[0] r[1] */
- uint64_t pl[2], pr[2], ppl[2], ppr[2], i, a[2], bl[2], br[2], one, lbit;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
-
- if (GF_W128_IS_ZERO(a128) || GF_W128_IS_ZERO(b128)) {
- set_zero(c128, 0);
- return;
- }
-
- a_get_b(a, 0, a128, 0);
- a_get_b(br, 0, b128, 0);
- set_zero(bl, 0);
-
- one = 1;
- lbit = (one << 63);
-
- set_zero(pl, 0);
- set_zero(pr, 0);
-
- /* Allen: a*b for right half of a */
- for (i = 0; i < GF_FIELD_WIDTH/2; i++) {
- if (a[1] & (one << i)) {
- pl[1] ^= bl[1];
- pr[0] ^= br[0];
- pr[1] ^= br[1];
- }
- bl[1] <<= 1;
- if (br[0] & lbit) bl[1] ^= 1;
- br[0] <<= 1;
- if (br[1] & lbit) br[0] ^= 1;
- br[1] <<= 1;
- }
-
- /* Allen: a*b for left half of a */
- for (i = 0; i < GF_FIELD_WIDTH/2; i++) {
- if (a[0] & (one << i)) {
- pl[0] ^= bl[0];
- pl[1] ^= bl[1];
- pr[0] ^= br[0];
- }
- bl[0] <<= 1;
- if (bl[1] & lbit) bl[0] ^= 1;
- bl[1] <<= 1;
- if (br[0] & lbit) bl[1] ^= 1;
- br[0] <<= 1;
- }
-
- /* Allen: do first half of reduction (based on left quarter of initial product) */
- one = lbit >> 1;
- ppl[0] = one; /* Allen: introduce leading one of primitive polynomial */
- ppl[1] = h->prim_poly >> 2;
- ppr[0] = h->prim_poly << (GF_FIELD_WIDTH/2-2);
- ppr[1] = 0;
- while (one != 0) {
- if (pl[0] & one) {
- pl[0] ^= ppl[0];
- pl[1] ^= ppl[1];
- pr[0] ^= ppr[0];
- pr[1] ^= ppr[1];
- }
- one >>= 1;
- ppr[1] >>= 1;
- if (ppr[0] & 1) ppr[1] ^= lbit;
- ppr[0] >>= 1;
- if (ppl[1] & 1) ppr[0] ^= lbit;
- ppl[1] >>= 1;
- if (ppl[0] & 1) ppl[1] ^= lbit;
- ppl[0] >>= 1;
- }
-
- /* Allen: final half of reduction */
- one = lbit;
- while (one != 0) {
- if (pl[1] & one) {
- pl[1] ^= ppl[1];
- pr[0] ^= ppr[0];
- pr[1] ^= ppr[1];
- }
- one >>= 1;
- ppr[1] >>= 1;
- if (ppr[0] & 1) ppr[1] ^= lbit;
- ppr[0] >>= 1;
- if (ppl[1] & 1) ppr[0] ^= lbit;
- ppl[1] >>= 1;
- }
-
- /* Allen: if we really want to optimize this we can just be using c128 instead of pr all along */
- c128[0] = pr[0];
- c128[1] = pr[1];
-
- return;
-}
-
-void
-gf_w128_clm_multiply(gf_t *gf, gf_val_128_t a128, gf_val_128_t b128, gf_val_128_t c128)
-{
-#if defined(INTEL_SSE4_PCLMUL)
-
- __m128i a,b;
- __m128i result0,result1;
- __m128i prim_poly;
- __m128i c,d,e,f;
- gf_internal_t * h = gf->scratch;
-
- a = _mm_insert_epi64 (_mm_setzero_si128(), a128[1], 0);
- b = _mm_insert_epi64 (a, b128[1], 0);
- a = _mm_insert_epi64 (a, a128[0], 1);
- b = _mm_insert_epi64 (b, b128[0], 1);
-
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)h->prim_poly);
-
- /* we need to test algorithm 2 later*/
- c = _mm_clmulepi64_si128 (a, b, 0x00); /*low-low*/
- f = _mm_clmulepi64_si128 (a, b, 0x01); /*high-low*/
- e = _mm_clmulepi64_si128 (a, b, 0x10); /*low-high*/
- d = _mm_clmulepi64_si128 (a, b, 0x11); /*high-high*/
-
- /* now reusing a and b as temporary variables*/
- result0 = _mm_setzero_si128();
- result1 = result0;
-
- result0 = _mm_xor_si128 (result0, _mm_insert_epi64 (d, 0, 0));
- a = _mm_xor_si128 (_mm_srli_si128 (e, 8), _mm_insert_epi64 (d, 0, 1));
- result0 = _mm_xor_si128 (result0, _mm_xor_si128 (_mm_srli_si128 (f, 8), a));
-
- a = _mm_xor_si128 (_mm_slli_si128 (e, 8), _mm_insert_epi64 (c, 0, 0));
- result1 = _mm_xor_si128 (result1, _mm_xor_si128 (_mm_slli_si128 (f, 8), a));
- result1 = _mm_xor_si128 (result1, _mm_insert_epi64 (c, 0, 1));
- /* now we have constructed our 'result' with result0 being the carry bits, and we have to reduce.*/
-
- a = _mm_srli_si128 (result0, 8);
- b = _mm_clmulepi64_si128 (a, prim_poly, 0x00);
- result0 = _mm_xor_si128 (result0, _mm_srli_si128 (b, 8));
- result1 = _mm_xor_si128 (result1, _mm_slli_si128 (b, 8));
-
- a = _mm_insert_epi64 (result0, 0, 1);
- b = _mm_clmulepi64_si128 (a, prim_poly, 0x00);
- result1 = _mm_xor_si128 (result1, b);
-
- c128[0] = (uint64_t)_mm_extract_epi64(result1,1);
- c128[1] = (uint64_t)_mm_extract_epi64(result1,0);
-#endif
-return;
-}
-
-void
-gf_w128_bytwo_p_multiply(gf_t *gf, gf_val_128_t a128, gf_val_128_t b128, gf_val_128_t c128)
-{
- uint64_t amask[2], pmask, pp, prod[2]; /*John: pmask is always the highest bit set, and the rest zeros. amask changes, it's a countdown.*/
- uint64_t topbit; /* this is used as a boolean value */
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
- prod[0] = 0;
- prod[1] = 0;
- pmask = 0x8000000000000000ULL;
- amask[0] = 0x8000000000000000ULL;
- amask[1] = 0;
-
- while (amask[1] != 0 || amask[0] != 0) {
- topbit = (prod[0] & pmask);
- prod[0] <<= 1;
- if (prod[1] & pmask) prod[0] ^= 1;
- prod[1] <<= 1;
- if (topbit) prod[1] ^= pp;
- if ((a128[0] & amask[0]) || (a128[1] & amask[1])) {
- prod[0] ^= b128[0];
- prod[1] ^= b128[1];
- }
- amask[1] >>= 1;
- if (amask[0] & 1) amask[1] ^= pmask;
- amask[0] >>= 1;
- }
- c128[0] = prod [0];
- c128[1] = prod [1];
- return;
-}
-
-void
-gf_w128_sse_bytwo_p_multiply(gf_t *gf, gf_val_128_t a128, gf_val_128_t b128, gf_val_128_t c128)
-{
-#if defined(INTEL_SSE4)
- int i;
- __m128i a, b, pp, prod, amask, u_middle_one;
- /*John: pmask is always the highest bit set, and the rest zeros. amask changes, it's a countdown.*/
- uint32_t topbit, middlebit, pmask; /* this is used as a boolean value */
- gf_internal_t *h;
-
-
- h = (gf_internal_t *) gf->scratch;
- pp = _mm_set_epi32(0, 0, 0, (uint32_t)h->prim_poly);
- prod = _mm_setzero_si128();
- a = _mm_insert_epi64(prod, a128[1], 0x0);
- a = _mm_insert_epi64(a, a128[0], 0x1);
- b = _mm_insert_epi64(prod, b128[1], 0x0);
- b = _mm_insert_epi64(b, b128[0], 0x1);
- pmask = 0x80000000;
- amask = _mm_insert_epi32(prod, 0x80000000, 0x3);
- u_middle_one = _mm_insert_epi32(prod, 1, 0x2);
-
- for (i = 0; i < 64; i++) {
- topbit = (_mm_extract_epi32(prod, 0x3) & pmask);
- middlebit = (_mm_extract_epi32(prod, 0x1) & pmask);
- prod = _mm_slli_epi64(prod, 1); /* this instruction loses the middle bit */
- if (middlebit) {
- prod = _mm_xor_si128(prod, u_middle_one);
- }
- if (topbit) {
- prod = _mm_xor_si128(prod, pp);
- }
- if (((uint64_t)_mm_extract_epi64(_mm_and_si128(a, amask), 1))) {
- prod = _mm_xor_si128(prod, b);
- }
- amask = _mm_srli_epi64(amask, 1); /*so does this one, but we can just replace after loop*/
- }
- amask = _mm_insert_epi32(amask, 1 << 31, 0x1);
- for (i = 64; i < 128; i++) {
- topbit = (_mm_extract_epi32(prod, 0x3) & pmask);
- middlebit = (_mm_extract_epi32(prod, 0x1) & pmask);
- prod = _mm_slli_epi64(prod, 1);
- if (middlebit) prod = _mm_xor_si128(prod, u_middle_one);
- if (topbit) prod = _mm_xor_si128(prod, pp);
- if (((uint64_t)_mm_extract_epi64(_mm_and_si128(a, amask), 0))) {
- prod = _mm_xor_si128(prod, b);
- }
- amask = _mm_srli_epi64(amask, 1);
- }
- c128[0] = (uint64_t)_mm_extract_epi64(prod, 1);
- c128[1] = (uint64_t)_mm_extract_epi64(prod, 0);
-#endif
- return;
-}
-
-
-/* Ben: This slow function implements sse instrutions for bytwo_b because why not */
-void
-gf_w128_sse_bytwo_b_multiply(gf_t *gf, gf_val_128_t a128, gf_val_128_t b128, gf_val_128_t c128)
-{
-#if defined(INTEL_SSE4)
- __m128i a, b, lmask, hmask, pp, c, middle_one;
- gf_internal_t *h;
- uint64_t topbit, middlebit;
-
- h = (gf_internal_t *) gf->scratch;
-
- c = _mm_setzero_si128();
- lmask = _mm_insert_epi64(c, 1ULL << 63, 0);
- hmask = _mm_insert_epi64(c, 1ULL << 63, 1);
- b = _mm_insert_epi64(c, a128[0], 1);
- b = _mm_insert_epi64(b, a128[1], 0);
- a = _mm_insert_epi64(c, b128[0], 1);
- a = _mm_insert_epi64(a, b128[1], 0);
- pp = _mm_insert_epi64(c, h->prim_poly, 0);
- middle_one = _mm_insert_epi64(c, 1, 0x1);
-
- while (1) {
- if (_mm_extract_epi32(a, 0x0) & 1) {
- c = _mm_xor_si128(c, b);
- }
- middlebit = (_mm_extract_epi32(a, 0x2) & 1);
- a = _mm_srli_epi64(a, 1);
- if (middlebit) a = _mm_xor_si128(a, lmask);
- if ((_mm_extract_epi64(a, 0x1) == 0ULL) && (_mm_extract_epi64(a, 0x0) == 0ULL)){
- c128[0] = _mm_extract_epi64(c, 0x1);
- c128[1] = _mm_extract_epi64(c, 0x0);
- return;
- }
- topbit = (_mm_extract_epi64(_mm_and_si128(b, hmask), 1));
- middlebit = (_mm_extract_epi64(_mm_and_si128(b, lmask), 0));
- b = _mm_slli_epi64(b, 1);
- if (middlebit) b = _mm_xor_si128(b, middle_one);
- if (topbit) b = _mm_xor_si128(b, pp);
- }
-#endif
-}
-
-void
-gf_w128_bytwo_b_multiply(gf_t *gf, gf_val_128_t a128, gf_val_128_t b128, gf_val_128_t c128)
-{
- uint64_t bmask, pp;
- gf_internal_t *h;
- uint64_t a[2], b[2], c[2];
-
- h = (gf_internal_t *) gf->scratch;
-
- bmask = (1ULL << 63);
- set_zero(c, 0);
- b[0] = a128[0];
- b[1] = a128[1];
- a[0] = b128[0];
- a[1] = b128[1];
-
- while (1) {
- if (a[1] & 1) {
- c[0] ^= b[0];
- c[1] ^= b[1];
- }
- a[1] >>= 1;
- if (a[0] & 1) a[1] ^= bmask;
- a[0] >>= 1;
- if (a[1] == 0 && a[0] == 0) {
- c128[0] = c[0];
- c128[1] = c[1];
- return;
- }
- pp = (b[0] & bmask);
- b[0] <<= 1;
- if (b[1] & bmask) b[0] ^= 1;
- b[1] <<= 1;
- if (pp) b[1] ^= h->prim_poly;
- }
-}
-
-static
-void
-gf_w128_split_4_128_multiply_region(gf_t *gf, void *src, void *dest, gf_val_128_t val, int bytes, int xor)
-{
- int i, j, k;
- uint64_t pp;
- gf_internal_t *h;
- uint64_t *s64, *d64, *top;
- gf_region_data rd;
- uint64_t v[2], s;
- struct gf_w128_split_4_128_data *ld;
-
- /* We only do this to check on alignment. */
- gf_set_region_data(&rd, gf, src, dest, bytes, 0, xor, 8);
-
- if (val[0] == 0) {
- if (val[1] == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val[1] == 1) { gf_multby_one(src, dest, bytes, xor); return; }
- }
-
- h = (gf_internal_t *) gf->scratch;
- ld = (struct gf_w128_split_4_128_data *) h->private;
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top = (uint64_t *) rd.d_top;
-
- if (val[0] != ld->last_value[0] || val[1] != ld->last_value[1]) {
- v[0] = val[0];
- v[1] = val[1];
- for (i = 0; i < 32; i++) {
- ld->tables[0][i][0] = 0;
- ld->tables[1][i][0] = 0;
- for (j = 1; j < 16; j <<= 1) {
- for (k = 0; k < j; k++) {
- ld->tables[0][i][k^j] = (v[0] ^ ld->tables[0][i][k]);
- ld->tables[1][i][k^j] = (v[1] ^ ld->tables[1][i][k]);
- }
- pp = (v[0] & (1ULL << 63));
- v[0] <<= 1;
- if (v[1] & (1ULL << 63)) v[0] ^= 1;
- v[1] <<= 1;
- if (pp) v[1] ^= h->prim_poly;
- }
- }
- }
- ld->last_value[0] = val[0];
- ld->last_value[1] = val[1];
-
-/*
- for (i = 0; i < 32; i++) {
- for (j = 0; j < 16; j++) {
- printf("%2d %2d %016llx %016llx\n", i, j, ld->tables[0][i][j], ld->tables[1][i][j]);
- }
- printf("\n");
- }
- */
- while (d64 < top) {
- v[0] = (xor) ? d64[0] : 0;
- v[1] = (xor) ? d64[1] : 0;
- s = s64[1];
- i = 0;
- while (s != 0) {
- v[0] ^= ld->tables[0][i][s&0xf];
- v[1] ^= ld->tables[1][i][s&0xf];
- s >>= 4;
- i++;
- }
- s = s64[0];
- i = 16;
- while (s != 0) {
- v[0] ^= ld->tables[0][i][s&0xf];
- v[1] ^= ld->tables[1][i][s&0xf];
- s >>= 4;
- i++;
- }
- d64[0] = v[0];
- d64[1] = v[1];
- s64 += 2;
- d64 += 2;
- }
-}
-
-#if defined(INTEL_SSSE3) && defined(INTEL_SSE4)
-static
-void
-gf_w128_split_4_128_sse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_128_t val, int bytes, int xor)
-{
- gf_internal_t *h;
- int i, j, k;
- uint64_t pp, v[2], s, *s64, *d64, *top;
- __m128i p, tables[32][16];
- struct gf_w128_split_4_128_data *ld;
- gf_region_data rd;
-
- if (val[0] == 0) {
- if (val[1] == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val[1] == 1) { gf_multby_one(src, dest, bytes, xor); return; }
- }
-
- h = (gf_internal_t *) gf->scratch;
-
- /* We only do this to check on alignment. */
- gf_set_region_data(&rd, gf, src, dest, bytes, 0, xor, 16);
-
- /* Doing this instead of gf_do_initial_region_alignment() because that doesn't hold 128-bit vals */
-
- gf_w128_multiply_region_from_single(gf, src, dest, val, ((uint8_t *)rd.s_start-(uint8_t *)src), xor);
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top = (uint64_t *) rd.d_top;
-
- ld = (struct gf_w128_split_4_128_data *) h->private;
-
- if (val[0] != ld->last_value[0] || val[1] != ld->last_value[1]) {
- v[0] = val[0];
- v[1] = val[1];
- for (i = 0; i < 32; i++) {
- ld->tables[0][i][0] = 0;
- ld->tables[1][i][0] = 0;
- for (j = 1; j < 16; j <<= 1) {
- for (k = 0; k < j; k++) {
- ld->tables[0][i][k^j] = (v[0] ^ ld->tables[0][i][k]);
- ld->tables[1][i][k^j] = (v[1] ^ ld->tables[1][i][k]);
- }
- pp = (v[0] & (1ULL << 63));
- v[0] <<= 1;
- if (v[1] & (1ULL << 63)) v[0] ^= 1;
- v[1] <<= 1;
- if (pp) v[1] ^= h->prim_poly;
- }
- }
- }
-
- ld->last_value[0] = val[0];
- ld->last_value[1] = val[1];
-
- for (i = 0; i < 32; i++) {
- for (j = 0; j < 16; j++) {
- v[0] = ld->tables[0][i][j];
- v[1] = ld->tables[1][i][j];
- tables[i][j] = _mm_loadu_si128((__m128i *) v);
-
-/*
- printf("%2d %2d: ", i, j);
- MM_PRINT8("", tables[i][j]); */
- }
- }
-
- while (d64 != top) {
-
- if (xor) {
- p = _mm_load_si128 ((__m128i *) d64);
- } else {
- p = _mm_setzero_si128();
- }
- s = *s64;
- s64++;
- for (i = 0; i < 16; i++) {
- j = (s&0xf);
- s >>= 4;
- p = _mm_xor_si128(p, tables[16+i][j]);
- }
- s = *s64;
- s64++;
- for (i = 0; i < 16; i++) {
- j = (s&0xf);
- s >>= 4;
- p = _mm_xor_si128(p, tables[i][j]);
- }
- _mm_store_si128((__m128i *) d64, p);
- d64 += 2;
- }
-
- /* Doing this instead of gf_do_final_region_alignment() because that doesn't hold 128-bit vals */
-
- gf_w128_multiply_region_from_single(gf, rd.s_top, rd.d_top, val, ((uint8_t *)src+bytes)-(uint8_t *)rd.s_top, xor);
-}
-#endif
-
-#if defined(INTEL_SSSE3) && defined(INTEL_SSE4)
-static
-void
-gf_w128_split_4_128_sse_altmap_multiply_region(gf_t *gf, void *src, void *dest, gf_val_128_t val, int bytes, int xor)
-{
- gf_internal_t *h;
- int i, j, k;
- uint64_t pp, v[2], *s64, *d64, *top;
- __m128i si, tables[32][16], p[16], v0, mask1;
- struct gf_w128_split_4_128_data *ld;
- uint8_t btable[16];
- gf_region_data rd;
-
- if (val[0] == 0) {
- if (val[1] == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val[1] == 1) { gf_multby_one(src, dest, bytes, xor); return; }
- }
-
- h = (gf_internal_t *) gf->scratch;
-
- /* We only do this to check on alignment. */
- gf_set_region_data(&rd, gf, src, dest, bytes, 0, xor, 256);
-
- /* Doing this instead of gf_do_initial_region_alignment() because that doesn't hold 128-bit vals */
-
- gf_w128_multiply_region_from_single(gf, src, dest, val, ((uint8_t *)rd.s_start-(uint8_t *)src), xor);
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top = (uint64_t *) rd.d_top;
-
- ld = (struct gf_w128_split_4_128_data *) h->private;
-
- if (val[0] != ld->last_value[0] || val[1] != ld->last_value[1]) {
- v[0] = val[0];
- v[1] = val[1];
- for (i = 0; i < 32; i++) {
- ld->tables[0][i][0] = 0;
- ld->tables[1][i][0] = 0;
- for (j = 1; j < 16; j <<= 1) {
- for (k = 0; k < j; k++) {
- ld->tables[0][i][k^j] = (v[0] ^ ld->tables[0][i][k]);
- ld->tables[1][i][k^j] = (v[1] ^ ld->tables[1][i][k]);
- }
- pp = (v[0] & (1ULL << 63));
- v[0] <<= 1;
- if (v[1] & (1ULL << 63)) v[0] ^= 1;
- v[1] <<= 1;
- if (pp) v[1] ^= h->prim_poly;
- }
- }
- }
-
- ld->last_value[0] = val[0];
- ld->last_value[1] = val[1];
-
- for (i = 0; i < 32; i++) {
- for (j = 0; j < 16; j++) {
- for (k = 0; k < 16; k++) {
- btable[k] = (uint8_t) ld->tables[1-(j/8)][i][k];
- ld->tables[1-(j/8)][i][k] >>= 8;
- }
- tables[i][j] = _mm_loadu_si128((__m128i *) btable);
-/*
- printf("%2d %2d: ", i, j);
- MM_PRINT8("", tables[i][j]);
- */
- }
- }
-
-
- mask1 = _mm_set1_epi8(0xf);
-
- while (d64 != top) {
-
- if (xor) {
- for (i = 0; i < 16; i++) p[i] = _mm_load_si128 ((__m128i *) (d64+i*2));
- } else {
- for (i = 0; i < 16; i++) p[i] = _mm_setzero_si128();
- }
- i = 0;
- for (k = 0; k < 16; k++) {
- v0 = _mm_load_si128((__m128i *) s64);
- s64 += 2;
-
- si = _mm_and_si128(v0, mask1);
-
- for (j = 0; j < 16; j++) {
- p[j] = _mm_xor_si128(p[j], _mm_shuffle_epi8(tables[i][j], si));
- }
- i++;
- v0 = _mm_srli_epi32(v0, 4);
- si = _mm_and_si128(v0, mask1);
- for (j = 0; j < 16; j++) {
- p[j] = _mm_xor_si128(p[j], _mm_shuffle_epi8(tables[i][j], si));
- }
- i++;
- }
- for (i = 0; i < 16; i++) {
- _mm_store_si128((__m128i *) d64, p[i]);
- d64 += 2;
- }
- }
- /* Doing this instead of gf_do_final_region_alignment() because that doesn't hold 128-bit vals */
-
- gf_w128_multiply_region_from_single(gf, rd.s_top, rd.d_top, val, ((uint8_t *)src+bytes)-(uint8_t *)rd.s_top, xor);
-}
-#endif
-
-static
-void
-gf_w128_split_8_128_multiply_region(gf_t *gf, void *src, void *dest, gf_val_128_t val, int bytes, int xor)
-{
- int i, j, k;
- uint64_t pp;
- gf_internal_t *h;
- uint64_t *s64, *d64, *top;
- gf_region_data rd;
- uint64_t v[2], s;
- struct gf_w128_split_8_128_data *ld;
-
- /* Check on alignment. Ignore it otherwise. */
- gf_set_region_data(&rd, gf, src, dest, bytes, 0, xor, 8);
-
- if (val[0] == 0) {
- if (val[1] == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val[1] == 1) { gf_multby_one(src, dest, bytes, xor); return; }
- }
-
- h = (gf_internal_t *) gf->scratch;
- ld = (struct gf_w128_split_8_128_data *) h->private;
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top = (uint64_t *) rd.d_top;
-
- if (val[0] != ld->last_value[0] || val[1] != ld->last_value[1]) {
- v[0] = val[0];
- v[1] = val[1];
- for (i = 0; i < 16; i++) {
- ld->tables[0][i][0] = 0;
- ld->tables[1][i][0] = 0;
- for (j = 1; j < (1 << 8); j <<= 1) {
- for (k = 0; k < j; k++) {
- ld->tables[0][i][k^j] = (v[0] ^ ld->tables[0][i][k]);
- ld->tables[1][i][k^j] = (v[1] ^ ld->tables[1][i][k]);
- }
- pp = (v[0] & (1ULL << 63));
- v[0] <<= 1;
- if (v[1] & (1ULL << 63)) v[0] ^= 1;
- v[1] <<= 1;
- if (pp) v[1] ^= h->prim_poly;
- }
- }
- }
- ld->last_value[0] = val[0];
- ld->last_value[1] = val[1];
-
- while (d64 < top) {
- v[0] = (xor) ? d64[0] : 0;
- v[1] = (xor) ? d64[1] : 0;
- s = s64[1];
- i = 0;
- while (s != 0) {
- v[0] ^= ld->tables[0][i][s&0xff];
- v[1] ^= ld->tables[1][i][s&0xff];
- s >>= 8;
- i++;
- }
- s = s64[0];
- i = 8;
- while (s != 0) {
- v[0] ^= ld->tables[0][i][s&0xff];
- v[1] ^= ld->tables[1][i][s&0xff];
- s >>= 8;
- i++;
- }
- d64[0] = v[0];
- d64[1] = v[1];
- s64 += 2;
- d64 += 2;
- }
-}
-
-void
-gf_w128_bytwo_b_multiply_region(gf_t *gf, void *src, void *dest, gf_val_128_t val, int bytes, int xor)
-{
- uint64_t bmask, pp;
- gf_internal_t *h;
- uint64_t a[2], c[2], b[2], *s64, *d64, *top;
- gf_region_data rd;
-
- /* We only do this to check on alignment. */
- gf_set_region_data(&rd, gf, src, dest, bytes, 0, xor, 8);
-
- if (val[0] == 0) {
- if (val[1] == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val[1] == 1) { gf_multby_one(src, dest, bytes, xor); return; }
- }
-
- h = (gf_internal_t *) gf->scratch;
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top = (uint64_t *) rd.d_top;
- bmask = (1ULL << 63);
-
- while (d64 < top) {
- set_zero(c, 0);
- b[0] = s64[0];
- b[1] = s64[1];
- a[0] = val[0];
- a[1] = val[1];
-
- while (a[0] != 0) {
- if (a[1] & 1) {
- c[0] ^= b[0];
- c[1] ^= b[1];
- }
- a[1] >>= 1;
- if (a[0] & 1) a[1] ^= bmask;
- a[0] >>= 1;
- pp = (b[0] & bmask);
- b[0] <<= 1;
- if (b[1] & bmask) b[0] ^= 1;
- b[1] <<= 1;
- if (pp) b[1] ^= h->prim_poly;
- }
- while (1) {
- if (a[1] & 1) {
- c[0] ^= b[0];
- c[1] ^= b[1];
- }
- a[1] >>= 1;
- if (a[1] == 0) break;
- pp = (b[0] & bmask);
- b[0] <<= 1;
- if (b[1] & bmask) b[0] ^= 1;
- b[1] <<= 1;
- if (pp) b[1] ^= h->prim_poly;
- }
- if (xor) {
- d64[0] ^= c[0];
- d64[1] ^= c[1];
- } else {
- d64[0] = c[0];
- d64[1] = c[1];
- }
- s64 += 2;
- d64 += 2;
- }
-}
-
-static
-void gf_w128_group_m_init(gf_t *gf, gf_val_128_t b128)
-{
- int i, j;
- int g_m;
- uint64_t prim_poly, lbit;
- gf_internal_t *scratch;
- gf_group_tables_t *gt;
- uint64_t a128[2];
- scratch = (gf_internal_t *) gf->scratch;
- gt = scratch->private;
- g_m = scratch->arg1;
- prim_poly = scratch->prim_poly;
-
-
- set_zero(gt->m_table, 0);
- a_get_b(gt->m_table, 2, b128, 0);
- lbit = 1;
- lbit <<= 63;
-
- for (i = 2; i < (1 << g_m); i <<= 1) {
- a_get_b(a128, 0, gt->m_table, 2 * (i >> 1));
- two_x(a128);
- a_get_b(gt->m_table, 2 * i, a128, 0);
- if (gt->m_table[2 * (i >> 1)] & lbit) gt->m_table[(2 * i) + 1] ^= prim_poly;
- for (j = 0; j < i; j++) {
- gt->m_table[(2 * i) + (2 * j)] = gt->m_table[(2 * i)] ^ gt->m_table[(2 * j)];
- gt->m_table[(2 * i) + (2 * j) + 1] = gt->m_table[(2 * i) + 1] ^ gt->m_table[(2 * j) + 1];
- }
- }
- return;
-}
-
-void
-gf_w128_group_multiply(GFP gf, gf_val_128_t a128, gf_val_128_t b128, gf_val_128_t c128)
-{
- int i;
- /* index_r, index_m, total_m (if g_r > g_m) */
- int i_r, i_m, t_m;
- int mask_m, mask_r;
- int g_m, g_r;
- uint64_t p_i[2], a[2];
- gf_internal_t *scratch;
- gf_group_tables_t *gt;
-
- scratch = (gf_internal_t *) gf->scratch;
- gt = scratch->private;
- g_m = scratch->arg1;
- g_r = scratch->arg2;
-
- mask_m = (1 << g_m) - 1;
- mask_r = (1 << g_r) - 1;
-
- if (b128[0] != gt->m_table[2] || b128[1] != gt->m_table[3]) {
- gf_w128_group_m_init(gf, b128);
- }
-
- p_i[0] = 0;
- p_i[1] = 0;
- a[0] = a128[0];
- a[1] = a128[1];
-
- t_m = 0;
- i_r = 0;
-
- /* Top 64 bits */
- for (i = ((GF_FIELD_WIDTH / 2) / g_m) - 1; i >= 0; i--) {
- i_m = (a[0] >> (i * g_m)) & mask_m;
- i_r ^= (p_i[0] >> (64 - g_m)) & mask_r;
- p_i[0] <<= g_m;
- p_i[0] ^= (p_i[1] >> (64-g_m));
- p_i[1] <<= g_m;
- p_i[0] ^= gt->m_table[2 * i_m];
- p_i[1] ^= gt->m_table[(2 * i_m) + 1];
- t_m += g_m;
- if (t_m == g_r) {
- p_i[1] ^= gt->r_table[i_r];
- t_m = 0;
- i_r = 0;
- } else {
- i_r <<= g_m;
- }
- }
-
- for (i = ((GF_FIELD_WIDTH / 2) / g_m) - 1; i >= 0; i--) {
- i_m = (a[1] >> (i * g_m)) & mask_m;
- i_r ^= (p_i[0] >> (64 - g_m)) & mask_r;
- p_i[0] <<= g_m;
- p_i[0] ^= (p_i[1] >> (64-g_m));
- p_i[1] <<= g_m;
- p_i[0] ^= gt->m_table[2 * i_m];
- p_i[1] ^= gt->m_table[(2 * i_m) + 1];
- t_m += g_m;
- if (t_m == g_r) {
- p_i[1] ^= gt->r_table[i_r];
- t_m = 0;
- i_r = 0;
- } else {
- i_r <<= g_m;
- }
- }
- c128[0] = p_i[0];
- c128[1] = p_i[1];
-}
-
-static
-void
-gf_w128_group_multiply_region(gf_t *gf, void *src, void *dest, gf_val_128_t val, int bytes, int xor)
-{
- int i;
- int i_r, i_m, t_m;
- int mask_m, mask_r;
- int g_m, g_r;
- uint64_t p_i[2], a[2];
- gf_internal_t *scratch;
- gf_group_tables_t *gt;
- gf_region_data rd;
- uint64_t *a128, *c128, *top;
-
- /* We only do this to check on alignment. */
- gf_set_region_data(&rd, gf, src, dest, bytes, 0, xor, 8);
-
- if (val[0] == 0) {
- if (val[1] == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val[1] == 1) { gf_multby_one(src, dest, bytes, xor); return; }
- }
-
- scratch = (gf_internal_t *) gf->scratch;
- gt = scratch->private;
- g_m = scratch->arg1;
- g_r = scratch->arg2;
-
- mask_m = (1 << g_m) - 1;
- mask_r = (1 << g_r) - 1;
-
- if (val[0] != gt->m_table[2] || val[1] != gt->m_table[3]) {
- gf_w128_group_m_init(gf, val);
- }
-
- a128 = (uint64_t *) src;
- c128 = (uint64_t *) dest;
- top = (uint64_t *) rd.d_top;
-
- while (c128 < top) {
- p_i[0] = 0;
- p_i[1] = 0;
- a[0] = a128[0];
- a[1] = a128[1];
-
- t_m = 0;
- i_r = 0;
-
- /* Top 64 bits */
- for (i = ((GF_FIELD_WIDTH / 2) / g_m) - 1; i >= 0; i--) {
- i_m = (a[0] >> (i * g_m)) & mask_m;
- i_r ^= (p_i[0] >> (64 - g_m)) & mask_r;
- p_i[0] <<= g_m;
- p_i[0] ^= (p_i[1] >> (64-g_m));
- p_i[1] <<= g_m;
-
- p_i[0] ^= gt->m_table[2 * i_m];
- p_i[1] ^= gt->m_table[(2 * i_m) + 1];
- t_m += g_m;
- if (t_m == g_r) {
- p_i[1] ^= gt->r_table[i_r];
- t_m = 0;
- i_r = 0;
- } else {
- i_r <<= g_m;
- }
- }
- for (i = ((GF_FIELD_WIDTH / 2) / g_m) - 1; i >= 0; i--) {
- i_m = (a[1] >> (i * g_m)) & mask_m;
- i_r ^= (p_i[0] >> (64 - g_m)) & mask_r;
- p_i[0] <<= g_m;
- p_i[0] ^= (p_i[1] >> (64-g_m));
- p_i[1] <<= g_m;
- p_i[0] ^= gt->m_table[2 * i_m];
- p_i[1] ^= gt->m_table[(2 * i_m) + 1];
- t_m += g_m;
- if (t_m == g_r) {
- p_i[1] ^= gt->r_table[i_r];
- t_m = 0;
- i_r = 0;
- } else {
- i_r <<= g_m;
- }
- }
-
- if (xor) {
- c128[0] ^= p_i[0];
- c128[1] ^= p_i[1];
- } else {
- c128[0] = p_i[0];
- c128[1] = p_i[1];
- }
- a128 += 2;
- c128 += 2;
- }
-}
-
-/* a^-1 -> b */
- void
-gf_w128_euclid(GFP gf, gf_val_128_t a128, gf_val_128_t b128)
-{
- uint64_t e_i[2], e_im1[2], e_ip1[2];
- uint64_t d_i, d_im1, d_ip1;
- uint64_t y_i[2], y_im1[2], y_ip1[2];
- uint64_t c_i[2];
- uint64_t *b;
- uint64_t one = 1;
-
- /* This needs to return some sort of error (in b128?) */
- if (a128[0] == 0 && a128[1] == 0) return;
-
- b = (uint64_t *) b128;
-
- e_im1[0] = 0;
- e_im1[1] = ((gf_internal_t *) (gf->scratch))->prim_poly;
- e_i[0] = a128[0];
- e_i[1] = a128[1];
- d_im1 = 128;
-
- //Allen: I think d_i starts at 63 here, and checks each bit of a, starting at MSB, looking for the first nonzero bit
- //so d_i should be 0 if this half of a is all 0s, otherwise it should be the position from right of the first-from-left zero bit of this half of a.
- //BUT if d_i is 0 at end we won't know yet if the rightmost bit of this half is 1 or not
-
- for (d_i = (d_im1-1) % 64; ((one << d_i) & e_i[0]) == 0 && d_i > 0; d_i--) ;
-
- //Allen: this is testing just the first half of the stop condition above, so if it holds we know we did not find a nonzero bit yet
-
- if (!((one << d_i) & e_i[0])) {
-
- //Allen: this is doing the same thing on the other half of a. In other words, we're still searching for a nonzero bit of a.
- // but not bothering to test if d_i hits zero, which is fine because we've already tested for a=0.
-
- for (d_i = (d_im1-1) % 64; ((one << d_i) & e_i[1]) == 0; d_i--) ;
-
- } else {
-
- //Allen: if a 1 was found in more-significant half of a, make d_i the ACTUAL index of the first nonzero bit in the entire a.
-
- d_i += 64;
- }
- y_i[0] = 0;
- y_i[1] = 1;
- y_im1[0] = 0;
- y_im1[1] = 0;
-
- while (!(e_i[0] == 0 && e_i[1] == 1)) {
-
- e_ip1[0] = e_im1[0];
- e_ip1[1] = e_im1[1];
- d_ip1 = d_im1;
- c_i[0] = 0;
- c_i[1] = 0;
-
- while (d_ip1 >= d_i) {
- if ((d_ip1 - d_i) >= 64) {
- c_i[0] ^= (one << ((d_ip1 - d_i) - 64));
- e_ip1[0] ^= (e_i[1] << ((d_ip1 - d_i) - 64));
- } else {
- c_i[1] ^= (one << (d_ip1 - d_i));
- e_ip1[0] ^= (e_i[0] << (d_ip1 - d_i));
- if (d_ip1 - d_i > 0) e_ip1[0] ^= (e_i[1] >> (64 - (d_ip1 - d_i)));
- e_ip1[1] ^= (e_i[1] << (d_ip1 - d_i));
- }
- d_ip1--;
- if (e_ip1[0] == 0 && e_ip1[1] == 0) { b[0] = 0; b[1] = 0; return; }
- while (d_ip1 >= 64 && (e_ip1[0] & (one << (d_ip1 - 64))) == 0) d_ip1--;
- while (d_ip1 < 64 && (e_ip1[1] & (one << d_ip1)) == 0) d_ip1--;
- }
- gf->multiply.w128(gf, c_i, y_i, y_ip1);
- y_ip1[0] ^= y_im1[0];
- y_ip1[1] ^= y_im1[1];
-
- y_im1[0] = y_i[0];
- y_im1[1] = y_i[1];
-
- y_i[0] = y_ip1[0];
- y_i[1] = y_ip1[1];
-
- e_im1[0] = e_i[0];
- e_im1[1] = e_i[1];
- d_im1 = d_i;
- e_i[0] = e_ip1[0];
- e_i[1] = e_ip1[1];
- d_i = d_ip1;
- }
-
- b[0] = y_i[0];
- b[1] = y_i[1];
- return;
-}
-
- void
-gf_w128_divide_from_inverse(GFP gf, gf_val_128_t a128, gf_val_128_t b128, gf_val_128_t c128)
-{
- uint64_t d[2];
- gf->inverse.w128(gf, b128, d);
- gf->multiply.w128(gf, a128, d, c128);
- return;
-}
-
- void
-gf_w128_inverse_from_divide(GFP gf, gf_val_128_t a128, gf_val_128_t b128)
-{
- uint64_t one128[2];
- one128[0] = 0;
- one128[1] = 1;
- gf->divide.w128(gf, one128, a128, b128);
- return;
-}
-
-
-static
- void
-gf_w128_composite_inverse(gf_t *gf, gf_val_128_t a, gf_val_128_t inv)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint64_t a0 = a[1];
- uint64_t a1 = a[0];
- uint64_t c0, c1, d, tmp;
- uint64_t a0inv, a1inv;
-
- if (a0 == 0) {
- a1inv = base_gf->inverse.w64(base_gf, a1);
- c0 = base_gf->multiply.w64(base_gf, a1inv, h->prim_poly);
- c1 = a1inv;
- } else if (a1 == 0) {
- c0 = base_gf->inverse.w64(base_gf, a0);
- c1 = 0;
- } else {
- a1inv = base_gf->inverse.w64(base_gf, a1);
- a0inv = base_gf->inverse.w64(base_gf, a0);
-
- d = base_gf->multiply.w64(base_gf, a1, a0inv);
-
- tmp = (base_gf->multiply.w64(base_gf, a1, a0inv) ^ base_gf->multiply.w64(base_gf, a0, a1inv) ^ h->prim_poly);
- tmp = base_gf->inverse.w64(base_gf, tmp);
-
- d = base_gf->multiply.w64(base_gf, d, tmp);
-
- c0 = base_gf->multiply.w64(base_gf, (d^1), a0inv);
- c1 = base_gf->multiply.w64(base_gf, d, a1inv);
- }
- inv[0] = c1;
- inv[1] = c0;
-}
-
-static
- void
-gf_w128_composite_multiply(gf_t *gf, gf_val_128_t a, gf_val_128_t b, gf_val_128_t rv)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint64_t b0 = b[1];
- uint64_t b1 = b[0];
- uint64_t a0 = a[1];
- uint64_t a1 = a[0];
- uint64_t a1b1;
-
- a1b1 = base_gf->multiply.w64(base_gf, a1, b1);
-
- rv[1] = (base_gf->multiply.w64(base_gf, a0, b0) ^ a1b1);
- rv[0] = base_gf->multiply.w64(base_gf, a1, b0) ^
- base_gf->multiply.w64(base_gf, a0, b1) ^
- base_gf->multiply.w64(base_gf, a1b1, h->prim_poly);
-}
-
-static
- void
-gf_w128_composite_multiply_region(gf_t *gf, void *src, void *dest, gf_val_128_t val, int bytes, int xor)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint64_t b0 = val[1];
- uint64_t b1 = val[0];
- uint64_t *s64, *d64;
- uint64_t *top;
- uint64_t a0, a1, a1b1;
- gf_region_data rd;
-
- if (val[0] == 0 && val[1] == 0) { gf_multby_zero(dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, 0, xor, 8);
-
- s64 = rd.s_start;
- d64 = rd.d_start;
- top = rd.d_top;
-
- if (xor) {
- while (d64 < top) {
- a1 = s64[0];
- a0 = s64[1];
- a1b1 = base_gf->multiply.w64(base_gf, a1, b1);
-
- d64[1] ^= (base_gf->multiply.w64(base_gf, a0, b0) ^ a1b1);
- d64[0] ^= (base_gf->multiply.w64(base_gf, a1, b0) ^
- base_gf->multiply.w64(base_gf, a0, b1) ^
- base_gf->multiply.w64(base_gf, a1b1, h->prim_poly));
- s64 += 2;
- d64 += 2;
- }
- } else {
- while (d64 < top) {
- a1 = s64[0];
- a0 = s64[1];
- a1b1 = base_gf->multiply.w64(base_gf, a1, b1);
-
- d64[1] = (base_gf->multiply.w64(base_gf, a0, b0) ^ a1b1);
- d64[0] = (base_gf->multiply.w64(base_gf, a1, b0) ^
- base_gf->multiply.w64(base_gf, a0, b1) ^
- base_gf->multiply.w64(base_gf, a1b1, h->prim_poly));
- s64 += 2;
- d64 += 2;
- }
- }
-}
-
-static
-void
-gf_w128_composite_multiply_region_alt(gf_t *gf, void *src, void *dest, gf_val_128_t val, int bytes, int
- xor)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch; gf_t *base_gf = h->base_gf;
- gf_val_64_t val0 = val[1];
- gf_val_64_t val1 = val[0];
- uint8_t *slow, *shigh;
- uint8_t *dlow, *dhigh, *top;
- int sub_reg_size;
- gf_region_data rd;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, 0, xor, 64);
- gf_w128_multiply_region_from_single(gf, src, dest, val, ((uint8_t *)rd.s_start-(uint8_t *)src), xor);
-
- slow = (uint8_t *) rd.s_start;
- dlow = (uint8_t *) rd.d_start;
- top = (uint8_t*) rd.d_top;
- sub_reg_size = (top - dlow)/2;
- shigh = slow + sub_reg_size;
- dhigh = dlow + sub_reg_size;
-
- base_gf->multiply_region.w64(base_gf, slow, dlow, val0, sub_reg_size, xor);
- base_gf->multiply_region.w64(base_gf, shigh, dlow, val1, sub_reg_size, 1);
- base_gf->multiply_region.w64(base_gf, slow, dhigh, val1, sub_reg_size, xor);
- base_gf->multiply_region.w64(base_gf, shigh, dhigh, val0, sub_reg_size, 1);
- base_gf->multiply_region.w64(base_gf, shigh, dhigh, base_gf->multiply.w64(base_gf, h->prim_poly, val1
- ), sub_reg_size, 1);
-
- gf_w128_multiply_region_from_single(gf, rd.s_top, rd.d_top, val, ((uint8_t *)src+bytes)-(uint8_t *)rd.s_top, xor);
-}
-
-
- static
-int gf_w128_composite_init(gf_t *gf)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
-
- if (h->region_type & GF_REGION_ALTMAP) {
- gf->multiply_region.w128 = gf_w128_composite_multiply_region_alt;
- } else {
- gf->multiply_region.w128 = gf_w128_composite_multiply_region;
- }
-
- gf->multiply.w128 = gf_w128_composite_multiply;
- gf->divide.w128 = gf_w128_divide_from_inverse;
- gf->inverse.w128 = gf_w128_composite_inverse;
-
- return 1;
-}
-
-static
-int gf_w128_cfm_init(gf_t *gf)
-{
-#if defined(INTEL_SSE4_PCLMUL)
- gf->inverse.w128 = gf_w128_euclid;
- gf->multiply.w128 = gf_w128_clm_multiply;
- gf->multiply_region.w128 = gf_w128_clm_multiply_region_from_single;
- return 1;
-#endif
-
- return 0;
-}
-
-static
-int gf_w128_shift_init(gf_t *gf)
-{
- gf->multiply.w128 = gf_w128_shift_multiply;
- gf->inverse.w128 = gf_w128_euclid;
- gf->multiply_region.w128 = gf_w128_multiply_region_from_single;
- return 1;
-}
-
- static
-int gf_w128_bytwo_init(gf_t *gf)
-{
- gf_internal_t *h;
- h = (gf_internal_t *) gf->scratch;
-
- if (h->mult_type == GF_MULT_BYTWO_p) {
- gf->multiply.w128 = gf_w128_bytwo_p_multiply;
- /*gf->multiply.w128 = gf_w128_sse_bytwo_p_multiply;*/
- /* John: the sse function is slower.*/
- } else {
- gf->multiply.w128 = gf_w128_bytwo_b_multiply;
- /*gf->multiply.w128 = gf_w128_sse_bytwo_b_multiply;
-Ben: This sse function is also slower. */
- }
- gf->inverse.w128 = gf_w128_euclid;
- gf->multiply_region.w128 = gf_w128_bytwo_b_multiply_region;
- return 1;
-}
-
-/*
- * Because the prim poly is only 8 bits and we are limiting g_r to 16, I do not need the high 64
- * bits in all of these numbers.
- */
- static
-void gf_w128_group_r_init(gf_t *gf)
-{
- int i, j;
- int g_r;
- uint64_t pp;
- gf_internal_t *scratch;
- gf_group_tables_t *gt;
- scratch = (gf_internal_t *) gf->scratch;
- gt = scratch->private;
- g_r = scratch->arg2;
- pp = scratch->prim_poly;
-
- gt->r_table[0] = 0;
- for (i = 1; i < (1 << g_r); i++) {
- gt->r_table[i] = 0;
- for (j = 0; j < g_r; j++) {
- if (i & (1 << j)) {
- gt->r_table[i] ^= (pp << j);
- }
- }
- }
- return;
-}
-
-#if 0 // defined(INTEL_SSE4)
- static
-void gf_w128_group_r_sse_init(gf_t *gf)
-{
- int i, j;
- int g_r;
- uint64_t pp;
- gf_internal_t *scratch;
- gf_group_tables_t *gt;
- scratch = (gf_internal_t *) gf->scratch;
- gt = scratch->private;
- __m128i zero = _mm_setzero_si128();
- __m128i *table = (__m128i *)(gt->r_table);
- g_r = scratch->arg2;
- pp = scratch->prim_poly;
- table[0] = zero;
- for (i = 1; i < (1 << g_r); i++) {
- table[i] = zero;
- for (j = 0; j < g_r; j++) {
- if (i & (1 << j)) {
- table[i] = _mm_xor_si128(table[i], _mm_insert_epi64(zero, pp << j, 0));
- }
- }
- }
- return;
-}
-#endif
-
- static
-int gf_w128_split_init(gf_t *gf)
-{
- struct gf_w128_split_4_128_data *sd4;
- struct gf_w128_split_8_128_data *sd8;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
-
- gf->multiply.w128 = gf_w128_bytwo_p_multiply;
-#if defined(INTEL_SSE4_PCLMUL)
- if (!(h->region_type & GF_REGION_NOSIMD)){
- gf->multiply.w128 = gf_w128_clm_multiply;
- }
-#endif
-
- gf->inverse.w128 = gf_w128_euclid;
-
- if ((h->arg1 != 4 && h->arg2 != 4) || h->mult_type == GF_MULT_DEFAULT) {
- sd8 = (struct gf_w128_split_8_128_data *) h->private;
- sd8->last_value[0] = 0;
- sd8->last_value[1] = 0;
- gf->multiply_region.w128 = gf_w128_split_8_128_multiply_region;
- } else {
- sd4 = (struct gf_w128_split_4_128_data *) h->private;
- sd4->last_value[0] = 0;
- sd4->last_value[1] = 0;
- if((h->region_type & GF_REGION_ALTMAP))
- {
- #ifdef INTEL_SSE4
- if(!(h->region_type & GF_REGION_NOSIMD))
- gf->multiply_region.w128 = gf_w128_split_4_128_sse_altmap_multiply_region;
- else
- return 0;
- #else
- return 0;
- #endif
- }
- else {
- #ifdef INTEL_SSE4
- if(!(h->region_type & GF_REGION_NOSIMD))
- gf->multiply_region.w128 = gf_w128_split_4_128_sse_multiply_region;
- else
- gf->multiply_region.w128 = gf_w128_split_4_128_multiply_region;
- #else
- gf->multiply_region.w128 = gf_w128_split_4_128_multiply_region;
- #endif
- }
- }
- return 1;
-}
-
-
-static
-int gf_w128_group_init(gf_t *gf)
-{
- gf_internal_t *scratch;
- gf_group_tables_t *gt;
- int g_r, size_r;
-
- scratch = (gf_internal_t *) gf->scratch;
- gt = scratch->private;
- g_r = scratch->arg2;
- size_r = (1 << g_r);
-
- gt->r_table = (gf_val_128_t)((uint8_t *)scratch->private + (2 * sizeof(uint64_t *)));
- gt->m_table = gt->r_table + size_r;
- gt->m_table[2] = 0;
- gt->m_table[3] = 0;
-
- gf->multiply.w128 = gf_w128_group_multiply;
- gf->inverse.w128 = gf_w128_euclid;
- gf->multiply_region.w128 = gf_w128_group_multiply_region;
-
- gf_w128_group_r_init(gf);
-
- return 1;
-}
-
-void gf_w128_extract_word(gf_t *gf, void *start, int bytes, int index, gf_val_128_t rv)
-{
- gf_val_128_t s;
-
- s = (gf_val_128_t) start;
- s += (index * 2);
- memcpy(rv, s, 16);
-}
-
-static void gf_w128_split_extract_word(gf_t *gf, void *start, int bytes, int index, gf_val_128_t rv)
-{
- int i, blocks;
- uint64_t *r64, tmp;
- uint8_t *r8;
- gf_region_data rd;
-
- gf_set_region_data(&rd, gf, start, start, bytes, 0, 0, 256);
- r64 = (uint64_t *) start;
- if ((r64 + index*2 < (uint64_t *) rd.d_start) ||
- (r64 + index*2 >= (uint64_t *) rd.d_top)) {
- memcpy(rv, r64+(index*2), 16);
- return;
- }
-
- index -= (((uint64_t *) rd.d_start) - r64)/2;
- r64 = (uint64_t *) rd.d_start;
-
- blocks = index/16;
- r64 += (blocks*32);
- index %= 16;
- r8 = (uint8_t *) r64;
- r8 += index;
- rv[0] = 0;
- rv[1] = 0;
-
- for (i = 0; i < 8; i++) {
- tmp = *r8;
- rv[1] |= (tmp << (i*8));
- r8 += 16;
- }
-
- for (i = 0; i < 8; i++) {
- tmp = *r8;
- rv[0] |= (tmp << (i*8));
- r8 += 16;
- }
- return;
-}
-
- static
-void gf_w128_composite_extract_word(gf_t *gf, void *start, int bytes, int index, gf_val_128_t rv)
-{
- int sub_size;
- gf_internal_t *h;
- uint8_t *r8, *top;
- uint64_t *r64;
- gf_region_data rd;
-
- h = (gf_internal_t *) gf->scratch;
- gf_set_region_data(&rd, gf, start, start, bytes, 0, 0, 64);
- r64 = (uint64_t *) start;
- if ((r64 + index*2 < (uint64_t *) rd.d_start) ||
- (r64 + index*2 >= (uint64_t *) rd.d_top)) {
- memcpy(rv, r64+(index*2), 16);
- return;
- }
- index -= (((uint64_t *) rd.d_start) - r64)/2;
- r8 = (uint8_t *) rd.d_start;
- top = (uint8_t *) rd.d_top;
- sub_size = (top-r8)/2;
-
- rv[1] = h->base_gf->extract_word.w64(h->base_gf, r8, sub_size, index);
- rv[0] = h->base_gf->extract_word.w64(h->base_gf, r8+sub_size, sub_size, index);
-
- return;
-}
-
-int gf_w128_scratch_size(int mult_type, int region_type, int divide_type, int arg1, int arg2)
-{
- int size_m, size_r;
- if (divide_type==GF_DIVIDE_MATRIX) return 0;
-
- switch(mult_type)
- {
- case GF_MULT_CARRY_FREE:
- return sizeof(gf_internal_t);
- break;
- case GF_MULT_SHIFT:
- return sizeof(gf_internal_t);
- break;
- case GF_MULT_BYTWO_p:
- case GF_MULT_BYTWO_b:
- return sizeof(gf_internal_t);
- break;
- case GF_MULT_DEFAULT:
- case GF_MULT_SPLIT_TABLE:
- if ((arg1 == 4 && arg2 == 128) || (arg1 == 128 && arg2 == 4)) {
- return sizeof(gf_internal_t) + sizeof(struct gf_w128_split_4_128_data) + 64;
- } else if ((arg1 == 8 && arg2 == 128) || (arg1 == 128 && arg2 == 8) || mult_type == GF_MULT_DEFAULT) {
- return sizeof(gf_internal_t) + sizeof(struct gf_w128_split_8_128_data) + 64;
- }
- return 0;
- break;
- case GF_MULT_GROUP:
- /* JSP We've already error checked the arguments. */
- size_m = (1 << arg1) * 2 * sizeof(uint64_t);
- size_r = (1 << arg2) * 2 * sizeof(uint64_t);
- /*
- * two pointers prepend the table data for structure
- * because the tables are of dynamic size
- */
- return sizeof(gf_internal_t) + size_m + size_r + 4 * sizeof(uint64_t *);
- break;
- case GF_MULT_COMPOSITE:
- if (arg1 == 2) {
- return sizeof(gf_internal_t) + 4;
- } else {
- return 0;
- }
- break;
-
- default:
- return 0;
- }
-}
-
-int gf_w128_init(gf_t *gf)
-{
- gf_internal_t *h;
- int no_default_flag = 0;
-
- h = (gf_internal_t *) gf->scratch;
-
- /* Allen: set default primitive polynomial / irreducible polynomial if needed */
-
- if (h->prim_poly == 0) {
- if (h->mult_type == GF_MULT_COMPOSITE) {
- h->prim_poly = gf_composite_get_default_poly(h->base_gf);
- if (h->prim_poly == 0) return 0; /* This shouldn't happen */
- } else {
- h->prim_poly = 0x87; /* Omitting the leftmost 1 as in w=32 */
- }
- if (no_default_flag == 1) {
- fprintf(stderr,"Code contains no default irreducible polynomial for given base field\n");
- return 0;
- }
- }
-
- gf->multiply.w128 = NULL;
- gf->divide.w128 = NULL;
- gf->inverse.w128 = NULL;
- gf->multiply_region.w128 = NULL;
- switch(h->mult_type) {
- case GF_MULT_BYTWO_p:
- case GF_MULT_BYTWO_b: if (gf_w128_bytwo_init(gf) == 0) return 0; break;
- case GF_MULT_CARRY_FREE: if (gf_w128_cfm_init(gf) == 0) return 0; break;
- case GF_MULT_SHIFT: if (gf_w128_shift_init(gf) == 0) return 0; break;
- case GF_MULT_GROUP: if (gf_w128_group_init(gf) == 0) return 0; break;
- case GF_MULT_DEFAULT:
- case GF_MULT_SPLIT_TABLE: if (gf_w128_split_init(gf) == 0) return 0; break;
- case GF_MULT_COMPOSITE: if (gf_w128_composite_init(gf) == 0) return 0; break;
- default: return 0;
- }
-
- /* Ben: Used to be h->region_type == GF_REGION_ALTMAP, but failed since there
- are multiple flags in h->region_type */
- if (h->mult_type == GF_MULT_SPLIT_TABLE && (h->region_type & GF_REGION_ALTMAP)) {
- gf->extract_word.w128 = gf_w128_split_extract_word;
- } else if (h->mult_type == GF_MULT_COMPOSITE && h->region_type == GF_REGION_ALTMAP) {
- gf->extract_word.w128 = gf_w128_composite_extract_word;
- } else {
- gf->extract_word.w128 = gf_w128_extract_word;
- }
-
- if (h->divide_type == GF_DIVIDE_EUCLID) {
- gf->divide.w128 = gf_w128_divide_from_inverse;
- }
-
- if (gf->inverse.w128 != NULL && gf->divide.w128 == NULL) {
- gf->divide.w128 = gf_w128_divide_from_inverse;
- }
- if (gf->inverse.w128 == NULL && gf->divide.w128 != NULL) {
- gf->inverse.w128 = gf_w128_inverse_from_divide;
- }
- return 1;
-}
diff --git a/src/c/gf-complete/src/gf_w16.c b/src/c/gf-complete/src/gf_w16.c
deleted file mode 100644
index 3594ac4..0000000
--- a/src/c/gf-complete/src/gf_w16.c
+++ /dev/null
@@ -1,2451 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_w16.c
- *
- * Routines for 16-bit Galois fields
- */
-
-#include "gf_int.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "gf_w16.h"
-
-#define AB2(ip, am1 ,am2, b, t1, t2) {\
- t1 = (b << 1) & am1;\
- t2 = b & am2; \
- t2 = ((t2 << 1) - (t2 >> (GF_FIELD_WIDTH-1))); \
- b = (t1 ^ (t2 & ip));}
-
-#define SSE_AB2(pp, m1 ,m2, va, t1, t2) {\
- t1 = _mm_and_si128(_mm_slli_epi64(va, 1), m1); \
- t2 = _mm_and_si128(va, m2); \
- t2 = _mm_sub_epi64 (_mm_slli_epi64(t2, 1), _mm_srli_epi64(t2, (GF_FIELD_WIDTH-1))); \
- va = _mm_xor_si128(t1, _mm_and_si128(t2, pp)); }
-
-#define MM_PRINT(s, r) { uint8_t blah[16], ii; printf("%-12s", s); _mm_storeu_si128((__m128i *)blah, r); for (ii = 0; ii < 16; ii += 2) printf(" %02x %02x", blah[15-ii], blah[14-ii]); printf("\n"); }
-
-#define GF_FIRST_BIT (1 << 15)
-#define GF_MULTBY_TWO(p) (((p) & GF_FIRST_BIT) ? (((p) << 1) ^ h->prim_poly) : (p) << 1)
-
-static
-inline
-gf_val_32_t gf_w16_inverse_from_divide (gf_t *gf, gf_val_32_t a)
-{
- return gf->divide.w32(gf, 1, a);
-}
-
-static
-inline
-gf_val_32_t gf_w16_divide_from_inverse (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- b = gf->inverse.w32(gf, b);
- return gf->multiply.w32(gf, a, b);
-}
-
-static
-void
-gf_w16_multiply_region_from_single(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- gf_region_data rd;
- uint16_t *s16;
- uint16_t *d16;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 2);
- gf_do_initial_region_alignment(&rd);
-
- s16 = (uint16_t *) rd.s_start;
- d16 = (uint16_t *) rd.d_start;
-
- if (xor) {
- while (d16 < ((uint16_t *) rd.d_top)) {
- *d16 ^= gf->multiply.w32(gf, val, *s16);
- d16++;
- s16++;
- }
- } else {
- while (d16 < ((uint16_t *) rd.d_top)) {
- *d16 = gf->multiply.w32(gf, val, *s16);
- d16++;
- s16++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-
-#if defined(INTEL_SSE4_PCLMUL)
-static
-void
-gf_w16_clm_multiply_region_from_single_2(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- gf_region_data rd;
- uint16_t *s16;
- uint16_t *d16;
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0x1ffffULL));
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 2);
- gf_do_initial_region_alignment(&rd);
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), val, 0);
-
- s16 = (uint16_t *) rd.s_start;
- d16 = (uint16_t *) rd.d_start;
-
- if (xor) {
- while (d16 < ((uint16_t *) rd.d_top)) {
-
- /* see gf_w16_clm_multiply() to see explanation of method */
-
- b = _mm_insert_epi32 (a, (gf_val_32_t)(*s16), 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
-
- *d16 ^= ((gf_val_32_t)_mm_extract_epi32(result, 0));
- d16++;
- s16++;
- }
- } else {
- while (d16 < ((uint16_t *) rd.d_top)) {
-
- /* see gf_w16_clm_multiply() to see explanation of method */
-
- b = _mm_insert_epi32 (a, (gf_val_32_t)(*s16), 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
-
- *d16 = ((gf_val_32_t)_mm_extract_epi32(result, 0));
- d16++;
- s16++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-#if defined(INTEL_SSE4_PCLMUL)
-static
-void
-gf_w16_clm_multiply_region_from_single_3(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- gf_region_data rd;
- uint16_t *s16;
- uint16_t *d16;
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0x1ffffULL));
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), val, 0);
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 2);
- gf_do_initial_region_alignment(&rd);
-
- s16 = (uint16_t *) rd.s_start;
- d16 = (uint16_t *) rd.d_start;
-
- if (xor) {
- while (d16 < ((uint16_t *) rd.d_top)) {
-
- /* see gf_w16_clm_multiply() to see explanation of method */
-
- b = _mm_insert_epi32 (a, (gf_val_32_t)(*s16), 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
-
- *d16 ^= ((gf_val_32_t)_mm_extract_epi32(result, 0));
- d16++;
- s16++;
- }
- } else {
- while (d16 < ((uint16_t *) rd.d_top)) {
-
- /* see gf_w16_clm_multiply() to see explanation of method */
-
- b = _mm_insert_epi32 (a, (gf_val_32_t)(*s16), 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
-
- *d16 = ((gf_val_32_t)_mm_extract_epi32(result, 0));
- d16++;
- s16++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-#if defined(INTEL_SSE4_PCLMUL)
-static
-void
-gf_w16_clm_multiply_region_from_single_4(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- gf_region_data rd;
- uint16_t *s16;
- uint16_t *d16;
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0x1ffffULL));
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 2);
- gf_do_initial_region_alignment(&rd);
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), val, 0);
-
- s16 = (uint16_t *) rd.s_start;
- d16 = (uint16_t *) rd.d_start;
-
- if (xor) {
- while (d16 < ((uint16_t *) rd.d_top)) {
-
- /* see gf_w16_clm_multiply() to see explanation of method */
-
- b = _mm_insert_epi32 (a, (gf_val_32_t)(*s16), 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
-
- *d16 ^= ((gf_val_32_t)_mm_extract_epi32(result, 0));
- d16++;
- s16++;
- }
- } else {
- while (d16 < ((uint16_t *) rd.d_top)) {
-
- /* see gf_w16_clm_multiply() to see explanation of method */
-
- b = _mm_insert_epi32 (a, (gf_val_32_t)(*s16), 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
-
- *d16 = ((gf_val_32_t)_mm_extract_epi32(result, 0));
- d16++;
- s16++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-static
-inline
-gf_val_32_t gf_w16_euclid (gf_t *gf, gf_val_32_t b)
-{
- gf_val_32_t e_i, e_im1, e_ip1;
- gf_val_32_t d_i, d_im1, d_ip1;
- gf_val_32_t y_i, y_im1, y_ip1;
- gf_val_32_t c_i;
-
- if (b == 0) return -1;
- e_im1 = ((gf_internal_t *) (gf->scratch))->prim_poly;
- e_i = b;
- d_im1 = 16;
- for (d_i = d_im1; ((1 << d_i) & e_i) == 0; d_i--) ;
- y_i = 1;
- y_im1 = 0;
-
- while (e_i != 1) {
-
- e_ip1 = e_im1;
- d_ip1 = d_im1;
- c_i = 0;
-
- while (d_ip1 >= d_i) {
- c_i ^= (1 << (d_ip1 - d_i));
- e_ip1 ^= (e_i << (d_ip1 - d_i));
- if (e_ip1 == 0) return 0;
- while ((e_ip1 & (1 << d_ip1)) == 0) d_ip1--;
- }
-
- y_ip1 = y_im1 ^ gf->multiply.w32(gf, c_i, y_i);
- y_im1 = y_i;
- y_i = y_ip1;
-
- e_im1 = e_i;
- d_im1 = d_i;
- e_i = e_ip1;
- d_i = d_ip1;
- }
-
- return y_i;
-}
-
-static
-gf_val_32_t gf_w16_extract_word(gf_t *gf, void *start, int bytes, int index)
-{
- uint16_t *r16, rv;
-
- r16 = (uint16_t *) start;
- rv = r16[index];
- return rv;
-}
-
-static
-gf_val_32_t gf_w16_composite_extract_word(gf_t *gf, void *start, int bytes, int index)
-{
- int sub_size;
- gf_internal_t *h;
- uint8_t *r8, *top;
- uint16_t a, b, *r16;
- gf_region_data rd;
-
- h = (gf_internal_t *) gf->scratch;
- gf_set_region_data(&rd, gf, start, start, bytes, 0, 0, 32);
- r16 = (uint16_t *) start;
- if (r16 + index < (uint16_t *) rd.d_start) return r16[index];
- if (r16 + index >= (uint16_t *) rd.d_top) return r16[index];
- index -= (((uint16_t *) rd.d_start) - r16);
- r8 = (uint8_t *) rd.d_start;
- top = (uint8_t *) rd.d_top;
- sub_size = (top-r8)/2;
-
- a = h->base_gf->extract_word.w32(h->base_gf, r8, sub_size, index);
- b = h->base_gf->extract_word.w32(h->base_gf, r8+sub_size, sub_size, index);
- return (a | (b << 8));
-}
-
-static
-gf_val_32_t gf_w16_split_extract_word(gf_t *gf, void *start, int bytes, int index)
-{
- uint16_t *r16, rv;
- uint8_t *r8;
- gf_region_data rd;
-
- gf_set_region_data(&rd, gf, start, start, bytes, 0, 0, 32);
- r16 = (uint16_t *) start;
- if (r16 + index < (uint16_t *) rd.d_start) return r16[index];
- if (r16 + index >= (uint16_t *) rd.d_top) return r16[index];
- index -= (((uint16_t *) rd.d_start) - r16);
- r8 = (uint8_t *) rd.d_start;
- r8 += ((index & 0xfffffff0)*2);
- r8 += (index & 0xf);
- rv = (*r8 << 8);
- r8 += 16;
- rv |= *r8;
- return rv;
-}
-
-static
-inline
-gf_val_32_t gf_w16_matrix (gf_t *gf, gf_val_32_t b)
-{
- return gf_bitmatrix_inverse(b, 16, ((gf_internal_t *) (gf->scratch))->prim_poly);
-}
-
-/* JSP: GF_MULT_SHIFT: The world's dumbest multiplication algorithm. I only
- include it for completeness. It does have the feature that it requires no
- extra memory.
- */
-
-static
-inline
-gf_val_32_t
-gf_w16_clm_multiply_2 (gf_t *gf, gf_val_32_t a16, gf_val_32_t b16)
-{
- gf_val_32_t rv = 0;
-
-#if defined(INTEL_SSE4_PCLMUL)
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), a16, 0);
- b = _mm_insert_epi32 (a, b16, 0);
-
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0x1ffffULL));
-
- /* Do the initial multiply */
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- /* Ben: Do prim_poly reduction twice. We are guaranteed that we will only
- have to do the reduction at most twice, because (w-2)/z == 2. Where
- z is equal to the number of zeros after the leading 1
-
- _mm_clmulepi64_si128 is the carryless multiply operation. Here
- _mm_srli_si128 shifts the result to the right by 2 bytes. This allows
- us to multiply the prim_poly by the leading bits of the result. We
- then xor the result of that operation back with the result.*/
-
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
-
- /* Extracts 32 bit value from result. */
-
- rv = ((gf_val_32_t)_mm_extract_epi32(result, 0));
-
-
-#endif
- return rv;
-}
-
-static
-inline
-gf_val_32_t
-gf_w16_clm_multiply_3 (gf_t *gf, gf_val_32_t a16, gf_val_32_t b16)
-{
- gf_val_32_t rv = 0;
-
-#if defined(INTEL_SSE4_PCLMUL)
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), a16, 0);
- b = _mm_insert_epi32 (a, b16, 0);
-
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0x1ffffULL));
-
- /* Do the initial multiply */
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
-
- /* Extracts 32 bit value from result. */
-
- rv = ((gf_val_32_t)_mm_extract_epi32(result, 0));
-
-
-#endif
- return rv;
-}
-
-static
-inline
-gf_val_32_t
-gf_w16_clm_multiply_4 (gf_t *gf, gf_val_32_t a16, gf_val_32_t b16)
-{
- gf_val_32_t rv = 0;
-
-#if defined(INTEL_SSE4_PCLMUL)
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), a16, 0);
- b = _mm_insert_epi32 (a, b16, 0);
-
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0x1ffffULL));
-
- /* Do the initial multiply */
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 2), 0);
- result = _mm_xor_si128 (result, w);
-
- /* Extracts 32 bit value from result. */
-
- rv = ((gf_val_32_t)_mm_extract_epi32(result, 0));
-
-
-#endif
- return rv;
-}
-
-
-static
-inline
- gf_val_32_t
-gf_w16_shift_multiply (gf_t *gf, gf_val_32_t a16, gf_val_32_t b16)
-{
- gf_val_32_t product, i, pp, a, b;
- gf_internal_t *h;
-
- a = a16;
- b = b16;
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- product = 0;
-
- for (i = 0; i < GF_FIELD_WIDTH; i++) {
- if (a & (1 << i)) product ^= (b << i);
- }
- for (i = (GF_FIELD_WIDTH*2-2); i >= GF_FIELD_WIDTH; i--) {
- if (product & (1 << i)) product ^= (pp << (i-GF_FIELD_WIDTH));
- }
- return product;
-}
-
-static
-int gf_w16_shift_init(gf_t *gf)
-{
- gf->multiply.w32 = gf_w16_shift_multiply;
- return 1;
-}
-
-static
-int gf_w16_cfm_init(gf_t *gf)
-{
-#if defined(INTEL_SSE4_PCLMUL)
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
-
- /*Ben: Determining how many reductions to do */
-
- if ((0xfe00 & h->prim_poly) == 0) {
- gf->multiply.w32 = gf_w16_clm_multiply_2;
- gf->multiply_region.w32 = gf_w16_clm_multiply_region_from_single_2;
- } else if((0xf000 & h->prim_poly) == 0) {
- gf->multiply.w32 = gf_w16_clm_multiply_3;
- gf->multiply_region.w32 = gf_w16_clm_multiply_region_from_single_3;
- } else if ((0xe000 & h->prim_poly) == 0) {
- gf->multiply.w32 = gf_w16_clm_multiply_4;
- gf->multiply_region.w32 = gf_w16_clm_multiply_region_from_single_4;
- } else {
- return 0;
- }
- return 1;
-#endif
-
- return 0;
-}
-
-/* KMG: GF_MULT_LOGTABLE: */
-
-static
-void
-gf_w16_log_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint16_t *s16, *d16;
- int lv;
- struct gf_w16_logtable_data *ltd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 2);
- gf_do_initial_region_alignment(&rd);
-
- ltd = (struct gf_w16_logtable_data *) ((gf_internal_t *) gf->scratch)->private;
- s16 = (uint16_t *) rd.s_start;
- d16 = (uint16_t *) rd.d_start;
-
- lv = ltd->log_tbl[val];
-
- if (xor) {
- while (d16 < (uint16_t *) rd.d_top) {
- *d16 ^= (*s16 == 0 ? 0 : ltd->antilog_tbl[lv + ltd->log_tbl[*s16]]);
- d16++;
- s16++;
- }
- } else {
- while (d16 < (uint16_t *) rd.d_top) {
- *d16 = (*s16 == 0 ? 0 : ltd->antilog_tbl[lv + ltd->log_tbl[*s16]]);
- d16++;
- s16++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-
-static
-inline
-gf_val_32_t
-gf_w16_log_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_w16_logtable_data *ltd;
-
- ltd = (struct gf_w16_logtable_data *) ((gf_internal_t *) gf->scratch)->private;
- return (a == 0 || b == 0) ? 0 : ltd->antilog_tbl[(int) ltd->log_tbl[a] + (int) ltd->log_tbl[b]];
-}
-
-static
-inline
-gf_val_32_t
-gf_w16_log_divide(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- int log_sum = 0;
- struct gf_w16_logtable_data *ltd;
-
- if (a == 0 || b == 0) return 0;
- ltd = (struct gf_w16_logtable_data *) ((gf_internal_t *) gf->scratch)->private;
-
- log_sum = (int) ltd->log_tbl[a] - (int) ltd->log_tbl[b];
- return (ltd->d_antilog[log_sum]);
-}
-
-static
-gf_val_32_t
-gf_w16_log_inverse(gf_t *gf, gf_val_32_t a)
-{
- struct gf_w16_logtable_data *ltd;
-
- ltd = (struct gf_w16_logtable_data *) ((gf_internal_t *) gf->scratch)->private;
- return (ltd->inv_tbl[a]);
-}
-
-static
-int gf_w16_log_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_w16_logtable_data *ltd;
- int i, b;
- int check = 0;
-
- h = (gf_internal_t *) gf->scratch;
- ltd = h->private;
-
- for (i = 0; i < GF_MULT_GROUP_SIZE+1; i++)
- ltd->log_tbl[i] = 0;
- ltd->d_antilog = ltd->antilog_tbl + GF_MULT_GROUP_SIZE;
-
- b = 1;
- for (i = 0; i < GF_MULT_GROUP_SIZE; i++) {
- if (ltd->log_tbl[b] != 0) check = 1;
- ltd->log_tbl[b] = i;
- ltd->antilog_tbl[i] = b;
- ltd->antilog_tbl[i+GF_MULT_GROUP_SIZE] = b;
- b <<= 1;
- if (b & GF_FIELD_SIZE) {
- b = b ^ h->prim_poly;
- }
- }
-
- /* If you can't construct the log table, there's a problem. This code is used for
- some other implementations (e.g. in SPLIT), so if the log table doesn't work in
- that instance, use CARRY_FREE / SHIFT instead. */
-
- if (check) {
- if (h->mult_type != GF_MULT_LOG_TABLE) {
-
-#if defined(INTEL_SSE4_PCLMUL)
- return gf_w16_cfm_init(gf);
-#endif
- return gf_w16_shift_init(gf);
- } else {
- _gf_errno = GF_E_LOGPOLY;
- return 0;
- }
- }
-
- ltd->inv_tbl[0] = 0; /* Not really, but we need to fill it with something */
- ltd->inv_tbl[1] = 1;
- for (i = 2; i < GF_FIELD_SIZE; i++) {
- ltd->inv_tbl[i] = ltd->antilog_tbl[GF_MULT_GROUP_SIZE-ltd->log_tbl[i]];
- }
-
- gf->inverse.w32 = gf_w16_log_inverse;
- gf->divide.w32 = gf_w16_log_divide;
- gf->multiply.w32 = gf_w16_log_multiply;
- gf->multiply_region.w32 = gf_w16_log_multiply_region;
-
- return 1;
-}
-
-/* JSP: GF_MULT_SPLIT_TABLE: Using 8 multiplication tables to leverage SSE instructions.
-*/
-
-
-/* Ben: Does alternate mapping multiplication using a split table in the
- lazy method without sse instructions*/
-
-static
-void
-gf_w16_split_4_16_lazy_nosse_altmap_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint64_t i, j, c, prod;
- uint8_t *s8, *d8, *top;
- uint16_t table[4][16];
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 32);
- gf_do_initial_region_alignment(&rd);
-
- /*Ben: Constructs lazy multiplication table*/
-
- for (j = 0; j < 16; j++) {
- for (i = 0; i < 4; i++) {
- c = (j << (i*4));
- table[i][j] = gf->multiply.w32(gf, c, val);
- }
- }
-
- /*Ben: s8 is the start of source, d8 is the start of dest, top is end of dest region. */
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
- top = (uint8_t *) rd.d_top;
-
-
- while (d8 < top) {
-
- /*Ben: Multiplies across 16 two byte quantities using alternate mapping
- high bits are on the left, low bits are on the right. */
-
- for (j=0;j<16;j++) {
-
- /*Ben: If the xor flag is set, the product should include what is in dest */
- prod = (xor) ? ((uint16_t)(*d8)<<8) ^ *(d8+16) : 0;
-
- /*Ben: xors all 4 table lookups into the product variable*/
-
- prod ^= ((table[0][*(s8+16)&0xf]) ^
- (table[1][(*(s8+16)&0xf0)>>4]) ^
- (table[2][*(s8)&0xf]) ^
- (table[3][(*(s8)&0xf0)>>4]));
-
- /*Ben: Stores product in the destination and moves on*/
-
- *d8 = (uint8_t)(prod >> 8);
- *(d8+16) = (uint8_t)(prod & 0x00ff);
- s8++;
- d8++;
- }
- s8+=16;
- d8+=16;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-static
- void
-gf_w16_split_4_16_lazy_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint64_t i, j, a, c, prod;
- uint16_t *s16, *d16, *top;
- uint16_t table[4][16];
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 2);
- gf_do_initial_region_alignment(&rd);
-
- for (j = 0; j < 16; j++) {
- for (i = 0; i < 4; i++) {
- c = (j << (i*4));
- table[i][j] = gf->multiply.w32(gf, c, val);
- }
- }
-
- s16 = (uint16_t *) rd.s_start;
- d16 = (uint16_t *) rd.d_start;
- top = (uint16_t *) rd.d_top;
-
- while (d16 < top) {
- a = *s16;
- prod = (xor) ? *d16 : 0;
- for (i = 0; i < 4; i++) {
- prod ^= table[i][a&0xf];
- a >>= 4;
- }
- *d16 = prod;
- s16++;
- d16++;
- }
-}
-
-static
-void
-gf_w16_split_8_16_lazy_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint64_t j, k, v, a, prod, *s64, *d64, *top64;
- gf_internal_t *h;
- uint64_t htable[256], ltable[256];
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 8);
- gf_do_initial_region_alignment(&rd);
-
- h = (gf_internal_t *) gf->scratch;
-
- v = val;
- ltable[0] = 0;
- for (j = 1; j < 256; j <<= 1) {
- for (k = 0; k < j; k++) ltable[k^j] = (v ^ ltable[k]);
- v = GF_MULTBY_TWO(v);
- }
- htable[0] = 0;
- for (j = 1; j < 256; j <<= 1) {
- for (k = 0; k < j; k++) htable[k^j] = (v ^ htable[k]);
- v = GF_MULTBY_TWO(v);
- }
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top64 = (uint64_t *) rd.d_top;
-
-/* Does Unrolling Matter? -- Doesn't seem to.
- while (d64 != top64) {
- a = *s64;
-
- prod = htable[a >> 56];
- a <<= 8;
- prod ^= ltable[a >> 56];
- a <<= 8;
- prod <<= 16;
-
- prod ^= htable[a >> 56];
- a <<= 8;
- prod ^= ltable[a >> 56];
- a <<= 8;
- prod <<= 16;
-
- prod ^= htable[a >> 56];
- a <<= 8;
- prod ^= ltable[a >> 56];
- a <<= 8;
- prod <<= 16;
-
- prod ^= htable[a >> 56];
- a <<= 8;
- prod ^= ltable[a >> 56];
- prod ^= ((xor) ? *d64 : 0);
- *d64 = prod;
- s64++;
- d64++;
- }
-*/
-
- while (d64 != top64) {
- a = *s64;
-
- prod = 0;
- for (j = 0; j < 4; j++) {
- prod <<= 16;
- prod ^= htable[a >> 56];
- a <<= 8;
- prod ^= ltable[a >> 56];
- a <<= 8;
- }
-
- //JSP: We can move the conditional outside the while loop, but we need to fully test it to understand which is better.
-
- prod ^= ((xor) ? *d64 : 0);
- *d64 = prod;
- s64++;
- d64++;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-static void
-gf_w16_table_lazy_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint64_t c;
- gf_internal_t *h;
- struct gf_w16_lazytable_data *ltd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 8);
- gf_do_initial_region_alignment(&rd);
-
- h = (gf_internal_t *) gf->scratch;
- ltd = (struct gf_w16_lazytable_data *) h->private;
-
- ltd->lazytable[0] = 0;
-
- /*
- a = val;
- c = 1;
- pp = h->prim_poly;
-
- do {
- ltd->lazytable[c] = a;
- c <<= 1;
- if (c & (1 << GF_FIELD_WIDTH)) c ^= pp;
- a <<= 1;
- if (a & (1 << GF_FIELD_WIDTH)) a ^= pp;
- } while (c != 1);
- */
-
- for (c = 1; c < GF_FIELD_SIZE; c++) {
- ltd->lazytable[c] = gf_w16_shift_multiply(gf, c, val);
- }
-
- gf_two_byte_region_table_multiply(&rd, ltd->lazytable);
- gf_do_final_region_alignment(&rd);
-}
-
-static
-void
-gf_w16_split_4_16_lazy_sse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
-#ifdef INTEL_SSSE3
- uint64_t i, j, *s64, *d64, *top64;;
- uint64_t c, prod;
- uint8_t low[4][16];
- uint8_t high[4][16];
- gf_region_data rd;
-
- __m128i mask, ta, tb, ti, tpl, tph, tlow[4], thigh[4], tta, ttb, lmask;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 32);
- gf_do_initial_region_alignment(&rd);
-
- for (j = 0; j < 16; j++) {
- for (i = 0; i < 4; i++) {
- c = (j << (i*4));
- prod = gf->multiply.w32(gf, c, val);
- low[i][j] = (prod & 0xff);
- high[i][j] = (prod >> 8);
- }
- }
-
- for (i = 0; i < 4; i++) {
- tlow[i] = _mm_loadu_si128((__m128i *)low[i]);
- thigh[i] = _mm_loadu_si128((__m128i *)high[i]);
- }
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top64 = (uint64_t *) rd.d_top;
-
- mask = _mm_set1_epi8 (0x0f);
- lmask = _mm_set1_epi16 (0xff);
-
- if (xor) {
- while (d64 != top64) {
-
- ta = _mm_load_si128((__m128i *) s64);
- tb = _mm_load_si128((__m128i *) (s64+2));
-
- tta = _mm_srli_epi16(ta, 8);
- ttb = _mm_srli_epi16(tb, 8);
- tpl = _mm_and_si128(tb, lmask);
- tph = _mm_and_si128(ta, lmask);
-
- tb = _mm_packus_epi16(tpl, tph);
- ta = _mm_packus_epi16(ttb, tta);
-
- ti = _mm_and_si128 (mask, tb);
- tph = _mm_shuffle_epi8 (thigh[0], ti);
- tpl = _mm_shuffle_epi8 (tlow[0], ti);
-
- tb = _mm_srli_epi16(tb, 4);
- ti = _mm_and_si128 (mask, tb);
- tpl = _mm_xor_si128(_mm_shuffle_epi8 (tlow[1], ti), tpl);
- tph = _mm_xor_si128(_mm_shuffle_epi8 (thigh[1], ti), tph);
-
- ti = _mm_and_si128 (mask, ta);
- tpl = _mm_xor_si128(_mm_shuffle_epi8 (tlow[2], ti), tpl);
- tph = _mm_xor_si128(_mm_shuffle_epi8 (thigh[2], ti), tph);
-
- ta = _mm_srli_epi16(ta, 4);
- ti = _mm_and_si128 (mask, ta);
- tpl = _mm_xor_si128(_mm_shuffle_epi8 (tlow[3], ti), tpl);
- tph = _mm_xor_si128(_mm_shuffle_epi8 (thigh[3], ti), tph);
-
- ta = _mm_unpackhi_epi8(tpl, tph);
- tb = _mm_unpacklo_epi8(tpl, tph);
-
- tta = _mm_load_si128((__m128i *) d64);
- ta = _mm_xor_si128(ta, tta);
- ttb = _mm_load_si128((__m128i *) (d64+2));
- tb = _mm_xor_si128(tb, ttb);
- _mm_store_si128 ((__m128i *)d64, ta);
- _mm_store_si128 ((__m128i *)(d64+2), tb);
-
- d64 += 4;
- s64 += 4;
-
- }
- } else {
- while (d64 != top64) {
-
- ta = _mm_load_si128((__m128i *) s64);
- tb = _mm_load_si128((__m128i *) (s64+2));
-
- tta = _mm_srli_epi16(ta, 8);
- ttb = _mm_srli_epi16(tb, 8);
- tpl = _mm_and_si128(tb, lmask);
- tph = _mm_and_si128(ta, lmask);
-
- tb = _mm_packus_epi16(tpl, tph);
- ta = _mm_packus_epi16(ttb, tta);
-
- ti = _mm_and_si128 (mask, tb);
- tph = _mm_shuffle_epi8 (thigh[0], ti);
- tpl = _mm_shuffle_epi8 (tlow[0], ti);
-
- tb = _mm_srli_epi16(tb, 4);
- ti = _mm_and_si128 (mask, tb);
- tpl = _mm_xor_si128(_mm_shuffle_epi8 (tlow[1], ti), tpl);
- tph = _mm_xor_si128(_mm_shuffle_epi8 (thigh[1], ti), tph);
-
- ti = _mm_and_si128 (mask, ta);
- tpl = _mm_xor_si128(_mm_shuffle_epi8 (tlow[2], ti), tpl);
- tph = _mm_xor_si128(_mm_shuffle_epi8 (thigh[2], ti), tph);
-
- ta = _mm_srli_epi16(ta, 4);
- ti = _mm_and_si128 (mask, ta);
- tpl = _mm_xor_si128(_mm_shuffle_epi8 (tlow[3], ti), tpl);
- tph = _mm_xor_si128(_mm_shuffle_epi8 (thigh[3], ti), tph);
-
- ta = _mm_unpackhi_epi8(tpl, tph);
- tb = _mm_unpacklo_epi8(tpl, tph);
-
- _mm_store_si128 ((__m128i *)d64, ta);
- _mm_store_si128 ((__m128i *)(d64+2), tb);
-
- d64 += 4;
- s64 += 4;
- }
- }
-
- gf_do_final_region_alignment(&rd);
-#endif
-}
-
-static
-void
-gf_w16_split_4_16_lazy_sse_altmap_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
-#ifdef INTEL_SSSE3
- uint64_t i, j, *s64, *d64, *top64;;
- uint64_t c, prod;
- uint8_t low[4][16];
- uint8_t high[4][16];
- gf_region_data rd;
- __m128i mask, ta, tb, ti, tpl, tph, tlow[4], thigh[4];
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 32);
- gf_do_initial_region_alignment(&rd);
-
- for (j = 0; j < 16; j++) {
- for (i = 0; i < 4; i++) {
- c = (j << (i*4));
- prod = gf->multiply.w32(gf, c, val);
- low[i][j] = (prod & 0xff);
- high[i][j] = (prod >> 8);
- }
- }
-
- for (i = 0; i < 4; i++) {
- tlow[i] = _mm_loadu_si128((__m128i *)low[i]);
- thigh[i] = _mm_loadu_si128((__m128i *)high[i]);
- }
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top64 = (uint64_t *) rd.d_top;
-
- mask = _mm_set1_epi8 (0x0f);
-
- if (xor) {
- while (d64 != top64) {
-
- ta = _mm_load_si128((__m128i *) s64);
- tb = _mm_load_si128((__m128i *) (s64+2));
-
- ti = _mm_and_si128 (mask, tb);
- tph = _mm_shuffle_epi8 (thigh[0], ti);
- tpl = _mm_shuffle_epi8 (tlow[0], ti);
-
- tb = _mm_srli_epi16(tb, 4);
- ti = _mm_and_si128 (mask, tb);
- tpl = _mm_xor_si128(_mm_shuffle_epi8 (tlow[1], ti), tpl);
- tph = _mm_xor_si128(_mm_shuffle_epi8 (thigh[1], ti), tph);
-
- ti = _mm_and_si128 (mask, ta);
- tpl = _mm_xor_si128(_mm_shuffle_epi8 (tlow[2], ti), tpl);
- tph = _mm_xor_si128(_mm_shuffle_epi8 (thigh[2], ti), tph);
-
- ta = _mm_srli_epi16(ta, 4);
- ti = _mm_and_si128 (mask, ta);
- tpl = _mm_xor_si128(_mm_shuffle_epi8 (tlow[3], ti), tpl);
- tph = _mm_xor_si128(_mm_shuffle_epi8 (thigh[3], ti), tph);
-
- ta = _mm_load_si128((__m128i *) d64);
- tph = _mm_xor_si128(tph, ta);
- _mm_store_si128 ((__m128i *)d64, tph);
- tb = _mm_load_si128((__m128i *) (d64+2));
- tpl = _mm_xor_si128(tpl, tb);
- _mm_store_si128 ((__m128i *)(d64+2), tpl);
-
- d64 += 4;
- s64 += 4;
- }
- } else {
- while (d64 != top64) {
-
- ta = _mm_load_si128((__m128i *) s64);
- tb = _mm_load_si128((__m128i *) (s64+2));
-
- ti = _mm_and_si128 (mask, tb);
- tph = _mm_shuffle_epi8 (thigh[0], ti);
- tpl = _mm_shuffle_epi8 (tlow[0], ti);
-
- tb = _mm_srli_epi16(tb, 4);
- ti = _mm_and_si128 (mask, tb);
- tpl = _mm_xor_si128(_mm_shuffle_epi8 (tlow[1], ti), tpl);
- tph = _mm_xor_si128(_mm_shuffle_epi8 (thigh[1], ti), tph);
-
- ti = _mm_and_si128 (mask, ta);
- tpl = _mm_xor_si128(_mm_shuffle_epi8 (tlow[2], ti), tpl);
- tph = _mm_xor_si128(_mm_shuffle_epi8 (thigh[2], ti), tph);
-
- ta = _mm_srli_epi16(ta, 4);
- ti = _mm_and_si128 (mask, ta);
- tpl = _mm_xor_si128(_mm_shuffle_epi8 (tlow[3], ti), tpl);
- tph = _mm_xor_si128(_mm_shuffle_epi8 (thigh[3], ti), tph);
-
- _mm_store_si128 ((__m128i *)d64, tph);
- _mm_store_si128 ((__m128i *)(d64+2), tpl);
-
- d64 += 4;
- s64 += 4;
-
- }
- }
- gf_do_final_region_alignment(&rd);
-
-#endif
-}
-
-uint32_t
-gf_w16_split_8_8_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- uint32_t alow, blow;
- struct gf_w16_split_8_8_data *d8;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- d8 = (struct gf_w16_split_8_8_data *) h->private;
-
- alow = a & 0xff;
- blow = b & 0xff;
- a >>= 8;
- b >>= 8;
-
- return d8->tables[0][alow][blow] ^
- d8->tables[1][alow][b] ^
- d8->tables[1][a][blow] ^
- d8->tables[2][a][b];
-}
-
-static
-int gf_w16_split_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_w16_split_8_8_data *d8;
- int i, j, exp, issse3;
- int isneon = 0;
- uint32_t p, basep;
-
- h = (gf_internal_t *) gf->scratch;
-
-#ifdef INTEL_SSSE3
- issse3 = 1;
-#else
- issse3 = 0;
-#endif
-#ifdef ARM_NEON
- isneon = 1;
-#endif
-
- if (h->arg1 == 8 && h->arg2 == 8) {
- d8 = (struct gf_w16_split_8_8_data *) h->private;
- basep = 1;
- for (exp = 0; exp < 3; exp++) {
- for (j = 0; j < 256; j++) d8->tables[exp][0][j] = 0;
- for (i = 0; i < 256; i++) d8->tables[exp][i][0] = 0;
- d8->tables[exp][1][1] = basep;
- for (i = 2; i < 256; i++) {
- if (i&1) {
- p = d8->tables[exp][i^1][1];
- d8->tables[exp][i][1] = p ^ basep;
- } else {
- p = d8->tables[exp][i>>1][1];
- d8->tables[exp][i][1] = GF_MULTBY_TWO(p);
- }
- }
- for (i = 1; i < 256; i++) {
- p = d8->tables[exp][i][1];
- for (j = 1; j < 256; j++) {
- if (j&1) {
- d8->tables[exp][i][j] = d8->tables[exp][i][j^1] ^ p;
- } else {
- d8->tables[exp][i][j] = GF_MULTBY_TWO(d8->tables[exp][i][j>>1]);
- }
- }
- }
- for (i = 0; i < 8; i++) basep = GF_MULTBY_TWO(basep);
- }
- gf->multiply.w32 = gf_w16_split_8_8_multiply;
- gf->multiply_region.w32 = gf_w16_split_8_16_lazy_multiply_region;
- return 1;
-
- }
-
- /* We'll be using LOG for multiplication, unless the pp isn't primitive.
- In that case, we'll be using SHIFT. */
-
- gf_w16_log_init(gf);
-
- /* Defaults */
-
- if (issse3) {
- gf->multiply_region.w32 = gf_w16_split_4_16_lazy_sse_multiply_region;
- } else if (isneon) {
-#ifdef ARM_NEON
- gf_w16_neon_split_init(gf);
-#endif
- } else {
- gf->multiply_region.w32 = gf_w16_split_8_16_lazy_multiply_region;
- }
-
-
- if ((h->arg1 == 8 && h->arg2 == 16) || (h->arg2 == 8 && h->arg1 == 16)) {
- gf->multiply_region.w32 = gf_w16_split_8_16_lazy_multiply_region;
-
- } else if ((h->arg1 == 4 && h->arg2 == 16) || (h->arg2 == 4 && h->arg1 == 16)) {
- if (issse3 || isneon) {
- if(h->region_type & GF_REGION_ALTMAP && h->region_type & GF_REGION_NOSIMD)
- gf->multiply_region.w32 = gf_w16_split_4_16_lazy_nosse_altmap_multiply_region;
- else if(h->region_type & GF_REGION_NOSIMD)
- gf->multiply_region.w32 = gf_w16_split_4_16_lazy_multiply_region;
- else if(h->region_type & GF_REGION_ALTMAP && issse3)
- gf->multiply_region.w32 = gf_w16_split_4_16_lazy_sse_altmap_multiply_region;
- } else {
- if(h->region_type & GF_REGION_SIMD)
- return 0;
- else if(h->region_type & GF_REGION_ALTMAP)
- gf->multiply_region.w32 = gf_w16_split_4_16_lazy_nosse_altmap_multiply_region;
- else
- gf->multiply_region.w32 = gf_w16_split_4_16_lazy_multiply_region;
- }
- }
-
- return 1;
-}
-
-static
-int gf_w16_table_init(gf_t *gf)
-{
- gf_w16_log_init(gf);
-
- gf->multiply_region.w32 = gf_w16_table_lazy_multiply_region;
- return 1;
-}
-
-static
-void
-gf_w16_log_zero_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint16_t lv;
- int i;
- uint16_t *s16, *d16, *top16;
- struct gf_w16_zero_logtable_data *ltd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 2);
- gf_do_initial_region_alignment(&rd);
-
- ltd = (struct gf_w16_zero_logtable_data*) ((gf_internal_t *) gf->scratch)->private;
- s16 = (uint16_t *) rd.s_start;
- d16 = (uint16_t *) rd.d_start;
- top16 = (uint16_t *) rd.d_top;
- bytes = top16 - d16;
-
- lv = ltd->log_tbl[val];
-
- if (xor) {
- for (i = 0; i < bytes; i++) {
- d16[i] ^= (ltd->antilog_tbl[lv + ltd->log_tbl[s16[i]]]);
- }
- } else {
- for (i = 0; i < bytes; i++) {
- d16[i] = (ltd->antilog_tbl[lv + ltd->log_tbl[s16[i]]]);
- }
- }
-
- /* This isn't necessary. */
-
- gf_do_final_region_alignment(&rd);
-}
-
-/* Here -- double-check Kevin */
-
-static
-inline
-gf_val_32_t
-gf_w16_log_zero_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_w16_zero_logtable_data *ltd;
-
- ltd = (struct gf_w16_zero_logtable_data *) ((gf_internal_t *) gf->scratch)->private;
- return ltd->antilog_tbl[ltd->log_tbl[a] + ltd->log_tbl[b]];
-}
-
-static
-inline
-gf_val_32_t
-gf_w16_log_zero_divide (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- int log_sum = 0;
- struct gf_w16_zero_logtable_data *ltd;
-
- if (a == 0 || b == 0) return 0;
- ltd = (struct gf_w16_zero_logtable_data *) ((gf_internal_t *) gf->scratch)->private;
-
- log_sum = ltd->log_tbl[a] - ltd->log_tbl[b] + (GF_MULT_GROUP_SIZE);
- return (ltd->antilog_tbl[log_sum]);
-}
-
-static
-gf_val_32_t
-gf_w16_log_zero_inverse (gf_t *gf, gf_val_32_t a)
-{
- struct gf_w16_zero_logtable_data *ltd;
-
- ltd = (struct gf_w16_zero_logtable_data *) ((gf_internal_t *) gf->scratch)->private;
- return (ltd->inv_tbl[a]);
-}
-
-static
-inline
-gf_val_32_t
-gf_w16_bytwo_p_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- uint32_t prod, pp, pmask, amask;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
-
- prod = 0;
- pmask = 0x8000;
- amask = 0x8000;
-
- while (amask != 0) {
- if (prod & pmask) {
- prod = ((prod << 1) ^ pp);
- } else {
- prod <<= 1;
- }
- if (a & amask) prod ^= b;
- amask >>= 1;
- }
- return prod;
-}
-
-static
-inline
-gf_val_32_t
-gf_w16_bytwo_b_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- uint32_t prod, pp, bmask;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- prod = 0;
- bmask = 0x8000;
-
- while (1) {
- if (a & 1) prod ^= b;
- a >>= 1;
- if (a == 0) return prod;
- if (b & bmask) {
- b = ((b << 1) ^ pp);
- } else {
- b <<= 1;
- }
- }
-}
-
-static
-void
-gf_w16_bytwo_p_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint64_t *s64, *d64, t1, t2, ta, prod, amask;
- gf_region_data rd;
- struct gf_w16_bytwo_data *btd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- btd = (struct gf_w16_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 8);
- gf_do_initial_region_alignment(&rd);
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
-
- if (xor) {
- while (s64 < (uint64_t *) rd.s_top) {
- prod = 0;
- amask = 0x8000;
- ta = *s64;
- while (amask != 0) {
- AB2(btd->prim_poly, btd->mask1, btd->mask2, prod, t1, t2);
- if (val & amask) prod ^= ta;
- amask >>= 1;
- }
- *d64 ^= prod;
- d64++;
- s64++;
- }
- } else {
- while (s64 < (uint64_t *) rd.s_top) {
- prod = 0;
- amask = 0x8000;
- ta = *s64;
- while (amask != 0) {
- AB2(btd->prim_poly, btd->mask1, btd->mask2, prod, t1, t2);
- if (val & amask) prod ^= ta;
- amask >>= 1;
- }
- *d64 = prod;
- d64++;
- s64++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-
-#define BYTWO_P_ONESTEP {\
- SSE_AB2(pp, m1 ,m2, prod, t1, t2); \
- t1 = _mm_and_si128(v, one); \
- t1 = _mm_sub_epi16(t1, one); \
- t1 = _mm_and_si128(t1, ta); \
- prod = _mm_xor_si128(prod, t1); \
- v = _mm_srli_epi64(v, 1); }
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w16_bytwo_p_sse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- int i;
- uint8_t *s8, *d8;
- uint32_t vrev;
- __m128i pp, m1, m2, ta, prod, t1, t2, tp, one, v;
- struct gf_w16_bytwo_data *btd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- btd = (struct gf_w16_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- vrev = 0;
- for (i = 0; i < 16; i++) {
- vrev <<= 1;
- if (!(val & (1 << i))) vrev |= 1;
- }
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- pp = _mm_set1_epi16(btd->prim_poly&0xffff);
- m1 = _mm_set1_epi16((btd->mask1)&0xffff);
- m2 = _mm_set1_epi16((btd->mask2)&0xffff);
- one = _mm_set1_epi16(1);
-
- while (d8 < (uint8_t *) rd.d_top) {
- prod = _mm_setzero_si128();
- v = _mm_set1_epi16(vrev);
- ta = _mm_load_si128((__m128i *) s8);
- tp = (!xor) ? _mm_setzero_si128() : _mm_load_si128((__m128i *) d8);
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- _mm_store_si128((__m128i *) d8, _mm_xor_si128(prod, tp));
- d8 += 16;
- s8 += 16;
- }
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w16_bytwo_b_sse_region_2_noxor(gf_region_data *rd, struct gf_w16_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, m2, t1, t2, va;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi16(btd->prim_poly&0xffff);
- m1 = _mm_set1_epi16((btd->mask1)&0xffff);
- m2 = _mm_set1_epi16((btd->mask2)&0xffff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- SSE_AB2(pp, m1, m2, va, t1, t2);
- _mm_store_si128((__m128i *)d8, va);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w16_bytwo_b_sse_region_2_xor(gf_region_data *rd, struct gf_w16_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, m2, t1, t2, va, vb;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi16(btd->prim_poly&0xffff);
- m1 = _mm_set1_epi16((btd->mask1)&0xffff);
- m2 = _mm_set1_epi16((btd->mask2)&0xffff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- SSE_AB2(pp, m1, m2, va, t1, t2);
- vb = _mm_load_si128 ((__m128i *)(d8));
- vb = _mm_xor_si128(vb, va);
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w16_bytwo_b_sse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- int itb;
- uint8_t *d8, *s8;
- __m128i pp, m1, m2, t1, t2, va, vb;
- struct gf_w16_bytwo_data *btd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- btd = (struct gf_w16_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- if (val == 2) {
- if (xor) {
- gf_w16_bytwo_b_sse_region_2_xor(&rd, btd);
- } else {
- gf_w16_bytwo_b_sse_region_2_noxor(&rd, btd);
- }
- gf_do_final_region_alignment(&rd);
- return;
- }
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- pp = _mm_set1_epi16(btd->prim_poly&0xffff);
- m1 = _mm_set1_epi16((btd->mask1)&0xffff);
- m2 = _mm_set1_epi16((btd->mask2)&0xffff);
-
- while (d8 < (uint8_t *) rd.d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- vb = (!xor) ? _mm_setzero_si128() : _mm_load_si128 ((__m128i *)(d8));
- itb = val;
- while (1) {
- if (itb & 1) vb = _mm_xor_si128(vb, va);
- itb >>= 1;
- if (itb == 0) break;
- SSE_AB2(pp, m1, m2, va, t1, t2);
- }
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
-
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-static
-void
-gf_w16_bytwo_b_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint64_t *s64, *d64, t1, t2, ta, tb, prod;
- struct gf_w16_bytwo_data *btd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- btd = (struct gf_w16_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
-
- switch (val) {
- case 2:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= ta;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta;
- d64++;
- s64++;
- }
- }
- break;
- case 3:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 4:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= ta;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta;
- d64++;
- s64++;
- }
- }
- break;
- case 5:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta ^ prod;
- d64++;
- s64++;
- }
- }
- break;
- default:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- prod = *d64 ;
- ta = *s64;
- tb = val;
- while (1) {
- if (tb & 1) prod ^= ta;
- tb >>= 1;
- if (tb == 0) break;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- }
- *d64 = prod;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- prod = 0 ;
- ta = *s64;
- tb = val;
- while (1) {
- if (tb & 1) prod ^= ta;
- tb >>= 1;
- if (tb == 0) break;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- }
- *d64 = prod;
- d64++;
- s64++;
- }
- }
- break;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-static
-int gf_w16_bytwo_init(gf_t *gf)
-{
- gf_internal_t *h;
- uint64_t ip, m1, m2;
- struct gf_w16_bytwo_data *btd;
-
- h = (gf_internal_t *) gf->scratch;
- btd = (struct gf_w16_bytwo_data *) (h->private);
- ip = h->prim_poly & 0xffff;
- m1 = 0xfffe;
- m2 = 0x8000;
- btd->prim_poly = 0;
- btd->mask1 = 0;
- btd->mask2 = 0;
-
- while (ip != 0) {
- btd->prim_poly |= ip;
- btd->mask1 |= m1;
- btd->mask2 |= m2;
- ip <<= GF_FIELD_WIDTH;
- m1 <<= GF_FIELD_WIDTH;
- m2 <<= GF_FIELD_WIDTH;
- }
-
- if (h->mult_type == GF_MULT_BYTWO_p) {
- gf->multiply.w32 = gf_w16_bytwo_p_multiply;
- #ifdef INTEL_SSE2
- if (h->region_type & GF_REGION_NOSIMD)
- gf->multiply_region.w32 = gf_w16_bytwo_p_nosse_multiply_region;
- else
- gf->multiply_region.w32 = gf_w16_bytwo_p_sse_multiply_region;
- #else
- gf->multiply_region.w32 = gf_w16_bytwo_p_nosse_multiply_region;
- if(h->region_type & GF_REGION_SIMD)
- return 0;
- #endif
- } else {
- gf->multiply.w32 = gf_w16_bytwo_b_multiply;
- #ifdef INTEL_SSE2
- if (h->region_type & GF_REGION_NOSIMD)
- gf->multiply_region.w32 = gf_w16_bytwo_b_nosse_multiply_region;
- else
- gf->multiply_region.w32 = gf_w16_bytwo_b_sse_multiply_region;
- #else
- gf->multiply_region.w32 = gf_w16_bytwo_b_nosse_multiply_region;
- if(h->region_type & GF_REGION_SIMD)
- return 0;
- #endif
- }
-
- return 1;
-}
-
-static
-int gf_w16_log_zero_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_w16_zero_logtable_data *ltd;
- int i, b;
-
- h = (gf_internal_t *) gf->scratch;
- ltd = h->private;
-
- ltd->log_tbl[0] = (-GF_MULT_GROUP_SIZE) + 1;
-
- bzero(&(ltd->_antilog_tbl[0]), sizeof(ltd->_antilog_tbl));
-
- ltd->antilog_tbl = &(ltd->_antilog_tbl[GF_FIELD_SIZE * 2]);
-
- b = 1;
- for (i = 0; i < GF_MULT_GROUP_SIZE; i++) {
- ltd->log_tbl[b] = (uint16_t)i;
- ltd->antilog_tbl[i] = (uint16_t)b;
- ltd->antilog_tbl[i+GF_MULT_GROUP_SIZE] = (uint16_t)b;
- b <<= 1;
- if (b & GF_FIELD_SIZE) {
- b = b ^ h->prim_poly;
- }
- }
- ltd->inv_tbl[0] = 0; /* Not really, but we need to fill it with something */
- ltd->inv_tbl[1] = 1;
- for (i = 2; i < GF_FIELD_SIZE; i++) {
- ltd->inv_tbl[i] = ltd->antilog_tbl[GF_MULT_GROUP_SIZE-ltd->log_tbl[i]];
- }
-
- gf->inverse.w32 = gf_w16_log_zero_inverse;
- gf->divide.w32 = gf_w16_log_zero_divide;
- gf->multiply.w32 = gf_w16_log_zero_multiply;
- gf->multiply_region.w32 = gf_w16_log_zero_multiply_region;
- return 1;
-}
-
-static
-gf_val_32_t
-gf_w16_composite_multiply_recursive(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint8_t b0 = b & 0x00ff;
- uint8_t b1 = (b & 0xff00) >> 8;
- uint8_t a0 = a & 0x00ff;
- uint8_t a1 = (a & 0xff00) >> 8;
- uint8_t a1b1;
- uint16_t rv;
-
- a1b1 = base_gf->multiply.w32(base_gf, a1, b1);
-
- rv = ((base_gf->multiply.w32(base_gf, a0, b0) ^ a1b1) | ((base_gf->multiply.w32(base_gf, a1, b0) ^ base_gf->multiply.w32(base_gf, a0, b1) ^ base_gf->multiply.w32(base_gf, a1b1, h->prim_poly)) << 8));
- return rv;
-}
-
-static
-gf_val_32_t
-gf_w16_composite_multiply_inline(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- uint8_t b0 = b & 0x00ff;
- uint8_t b1 = (b & 0xff00) >> 8;
- uint8_t a0 = a & 0x00ff;
- uint8_t a1 = (a & 0xff00) >> 8;
- uint8_t a1b1, *mt;
- uint16_t rv;
- struct gf_w16_composite_data *cd;
-
- cd = (struct gf_w16_composite_data *) h->private;
- mt = cd->mult_table;
-
- a1b1 = GF_W8_INLINE_MULTDIV(mt, a1, b1);
-
- rv = ((GF_W8_INLINE_MULTDIV(mt, a0, b0) ^ a1b1) | ((GF_W8_INLINE_MULTDIV(mt, a1, b0) ^ GF_W8_INLINE_MULTDIV(mt, a0, b1) ^ GF_W8_INLINE_MULTDIV(mt, a1b1, h->prim_poly)) << 8));
- return rv;
-}
-
-/*
- * Composite field division trick (explained in 2007 tech report)
- *
- * Compute a / b = a*b^-1, where p(x) = x^2 + sx + 1
- *
- * let c = b^-1
- *
- * c*b = (s*b1c1+b1c0+b0c1)x+(b1c1+b0c0)
- *
- * want (s*b1c1+b1c0+b0c1) = 0 and (b1c1+b0c0) = 1
- *
- * let d = b1c1 and d+1 = b0c0
- *
- * solve s*b1c1+b1c0+b0c1 = 0
- *
- * solution: d = (b1b0^-1)(b1b0^-1+b0b1^-1+s)^-1
- *
- * c0 = (d+1)b0^-1
- * c1 = d*b1^-1
- *
- * a / b = a * c
- */
-
-static
-gf_val_32_t
-gf_w16_composite_inverse(gf_t *gf, gf_val_32_t a)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint8_t a0 = a & 0x00ff;
- uint8_t a1 = (a & 0xff00) >> 8;
- uint8_t c0, c1, d, tmp;
- uint16_t c;
- uint8_t a0inv, a1inv;
-
- if (a0 == 0) {
- a1inv = base_gf->inverse.w32(base_gf, a1);
- c0 = base_gf->multiply.w32(base_gf, a1inv, h->prim_poly);
- c1 = a1inv;
- } else if (a1 == 0) {
- c0 = base_gf->inverse.w32(base_gf, a0);
- c1 = 0;
- } else {
- a1inv = base_gf->inverse.w32(base_gf, a1);
- a0inv = base_gf->inverse.w32(base_gf, a0);
-
- d = base_gf->multiply.w32(base_gf, a1, a0inv);
-
- tmp = (base_gf->multiply.w32(base_gf, a1, a0inv) ^ base_gf->multiply.w32(base_gf, a0, a1inv) ^ h->prim_poly);
- tmp = base_gf->inverse.w32(base_gf, tmp);
-
- d = base_gf->multiply.w32(base_gf, d, tmp);
-
- c0 = base_gf->multiply.w32(base_gf, (d^1), a0inv);
- c1 = base_gf->multiply.w32(base_gf, d, a1inv);
- }
-
- c = c0 | (c1 << 8);
-
- return c;
-}
-
-static
-void
-gf_w16_composite_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint8_t b0 = val & 0x00ff;
- uint8_t b1 = (val & 0xff00) >> 8;
- uint16_t *s16, *d16, *top;
- uint8_t a0, a1, a1b1, *mt;
- gf_region_data rd;
- struct gf_w16_composite_data *cd;
-
- cd = (struct gf_w16_composite_data *) h->private;
- mt = cd->mult_table;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 2);
-
- s16 = rd.s_start;
- d16 = rd.d_start;
- top = rd.d_top;
-
- if (mt == NULL) {
- if (xor) {
- while (d16 < top) {
- a0 = (*s16) & 0x00ff;
- a1 = ((*s16) & 0xff00) >> 8;
- a1b1 = base_gf->multiply.w32(base_gf, a1, b1);
-
- (*d16) ^= ((base_gf->multiply.w32(base_gf, a0, b0) ^ a1b1) |
- ((base_gf->multiply.w32(base_gf, a1, b0) ^
- base_gf->multiply.w32(base_gf, a0, b1) ^
- base_gf->multiply.w32(base_gf, a1b1, h->prim_poly)) << 8));
- s16++;
- d16++;
- }
- } else {
- while (d16 < top) {
- a0 = (*s16) & 0x00ff;
- a1 = ((*s16) & 0xff00) >> 8;
- a1b1 = base_gf->multiply.w32(base_gf, a1, b1);
-
- (*d16) = ((base_gf->multiply.w32(base_gf, a0, b0) ^ a1b1) |
- ((base_gf->multiply.w32(base_gf, a1, b0) ^
- base_gf->multiply.w32(base_gf, a0, b1) ^
- base_gf->multiply.w32(base_gf, a1b1, h->prim_poly)) << 8));
- s16++;
- d16++;
- }
- }
- } else {
- if (xor) {
- while (d16 < top) {
- a0 = (*s16) & 0x00ff;
- a1 = ((*s16) & 0xff00) >> 8;
- a1b1 = GF_W8_INLINE_MULTDIV(mt, a1, b1);
-
- (*d16) ^= ((GF_W8_INLINE_MULTDIV(mt, a0, b0) ^ a1b1) |
- ((GF_W8_INLINE_MULTDIV(mt, a1, b0) ^
- GF_W8_INLINE_MULTDIV(mt, a0, b1) ^
- GF_W8_INLINE_MULTDIV(mt, a1b1, h->prim_poly)) << 8));
- s16++;
- d16++;
- }
- } else {
- while (d16 < top) {
- a0 = (*s16) & 0x00ff;
- a1 = ((*s16) & 0xff00) >> 8;
- a1b1 = GF_W8_INLINE_MULTDIV(mt, a1, b1);
-
- (*d16) = ((GF_W8_INLINE_MULTDIV(mt, a0, b0) ^ a1b1) |
- ((GF_W8_INLINE_MULTDIV(mt, a1, b0) ^
- GF_W8_INLINE_MULTDIV(mt, a0, b1) ^
- GF_W8_INLINE_MULTDIV(mt, a1b1, h->prim_poly)) << 8));
- s16++;
- d16++;
- }
- }
- }
-}
-
-static
-void
-gf_w16_composite_multiply_region_alt(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint8_t val0 = val & 0x00ff;
- uint8_t val1 = (val & 0xff00) >> 8;
- gf_region_data rd;
- int sub_reg_size;
- uint8_t *slow, *shigh;
- uint8_t *dlow, *dhigh, *top;;
-
- /* JSP: I want the two pointers aligned wrt each other on 16 byte
- boundaries. So I'm going to make sure that the area on
- which the two operate is a multiple of 32. Of course, that
- junks up the mapping, but so be it -- that's why we have extract_word.... */
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 32);
- gf_do_initial_region_alignment(&rd);
-
- slow = (uint8_t *) rd.s_start;
- dlow = (uint8_t *) rd.d_start;
- top = (uint8_t *) rd.d_top;
- sub_reg_size = (top - dlow)/2;
- shigh = slow + sub_reg_size;
- dhigh = dlow + sub_reg_size;
-
- base_gf->multiply_region.w32(base_gf, slow, dlow, val0, sub_reg_size, xor);
- base_gf->multiply_region.w32(base_gf, shigh, dlow, val1, sub_reg_size, 1);
- base_gf->multiply_region.w32(base_gf, slow, dhigh, val1, sub_reg_size, xor);
- base_gf->multiply_region.w32(base_gf, shigh, dhigh, val0, sub_reg_size, 1);
- base_gf->multiply_region.w32(base_gf, shigh, dhigh, base_gf->multiply.w32(base_gf, h->prim_poly, val1), sub_reg_size, 1);
-
- gf_do_final_region_alignment(&rd);
-}
-
-static
-int gf_w16_composite_init(gf_t *gf)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- struct gf_w16_composite_data *cd;
-
- if (h->base_gf == NULL) return 0;
-
- cd = (struct gf_w16_composite_data *) h->private;
- cd->mult_table = gf_w8_get_mult_table(h->base_gf);
-
- if (h->region_type & GF_REGION_ALTMAP) {
- gf->multiply_region.w32 = gf_w16_composite_multiply_region_alt;
- } else {
- gf->multiply_region.w32 = gf_w16_composite_multiply_region;
- }
-
- if (cd->mult_table == NULL) {
- gf->multiply.w32 = gf_w16_composite_multiply_recursive;
- } else {
- gf->multiply.w32 = gf_w16_composite_multiply_inline;
- }
- gf->divide.w32 = NULL;
- gf->inverse.w32 = gf_w16_composite_inverse;
-
- return 1;
-}
-
-static
-void
-gf_w16_group_4_set_shift_tables(uint16_t *shift, uint16_t val, gf_internal_t *h)
-{
- int i, j;
-
- shift[0] = 0;
- for (i = 0; i < 16; i += 2) {
- j = (shift[i>>1] << 1);
- if (j & (1 << 16)) j ^= h->prim_poly;
- shift[i] = j;
- shift[i^1] = j^val;
- }
-}
-
-static
-inline
-gf_val_32_t
-gf_w16_group_4_4_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- uint16_t p, l, ind, r, a16;
-
- struct gf_w16_group_4_4_data *d44;
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
-
- d44 = (struct gf_w16_group_4_4_data *) h->private;
- gf_w16_group_4_set_shift_tables(d44->shift, b, h);
-
- a16 = a;
- ind = a16 >> 12;
- a16 <<= 4;
- p = d44->shift[ind];
- r = p & 0xfff;
- l = p >> 12;
- ind = a16 >> 12;
- a16 <<= 4;
- p = (d44->shift[ind] ^ d44->reduce[l] ^ (r << 4));
- r = p & 0xfff;
- l = p >> 12;
- ind = a16 >> 12;
- a16 <<= 4;
- p = (d44->shift[ind] ^ d44->reduce[l] ^ (r << 4));
- r = p & 0xfff;
- l = p >> 12;
- ind = a16 >> 12;
- p = (d44->shift[ind] ^ d44->reduce[l] ^ (r << 4));
- return p;
-}
-
-static
-void gf_w16_group_4_4_region_multiply(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint16_t p, l, ind, r, a16, p16;
- struct gf_w16_group_4_4_data *d44;
- gf_region_data rd;
- uint16_t *s16, *d16, *top;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- d44 = (struct gf_w16_group_4_4_data *) h->private;
- gf_w16_group_4_set_shift_tables(d44->shift, val, h);
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 2);
- gf_do_initial_region_alignment(&rd);
-
- s16 = (uint16_t *) rd.s_start;
- d16 = (uint16_t *) rd.d_start;
- top = (uint16_t *) rd.d_top;
-
- while (d16 < top) {
- a16 = *s16;
- p16 = (xor) ? *d16 : 0;
- ind = a16 >> 12;
- a16 <<= 4;
- p = d44->shift[ind];
- r = p & 0xfff;
- l = p >> 12;
- ind = a16 >> 12;
- a16 <<= 4;
- p = (d44->shift[ind] ^ d44->reduce[l] ^ (r << 4));
- r = p & 0xfff;
- l = p >> 12;
- ind = a16 >> 12;
- a16 <<= 4;
- p = (d44->shift[ind] ^ d44->reduce[l] ^ (r << 4));
- r = p & 0xfff;
- l = p >> 12;
- ind = a16 >> 12;
- p = (d44->shift[ind] ^ d44->reduce[l] ^ (r << 4));
- p ^= p16;
- *d16 = p;
- d16++;
- s16++;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-static
-int gf_w16_group_init(gf_t *gf)
-{
- int i, j, p;
- struct gf_w16_group_4_4_data *d44;
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
-
- d44 = (struct gf_w16_group_4_4_data *) h->private;
- d44->reduce[0] = 0;
- for (i = 0; i < 16; i++) {
- p = 0;
- for (j = 0; j < 4; j++) {
- if (i & (1 << j)) p ^= (h->prim_poly << j);
- }
- d44->reduce[p>>16] = (p&0xffff);
- }
-
- gf->multiply.w32 = gf_w16_group_4_4_multiply;
- gf->divide.w32 = NULL;
- gf->inverse.w32 = NULL;
- gf->multiply_region.w32 = gf_w16_group_4_4_region_multiply;
-
- return 1;
-}
-
-int gf_w16_scratch_size(int mult_type, int region_type, int divide_type, int arg1, int arg2)
-{
- switch(mult_type)
- {
- case GF_MULT_TABLE:
- return sizeof(gf_internal_t) + sizeof(struct gf_w16_lazytable_data) + 64;
- break;
- case GF_MULT_BYTWO_p:
- case GF_MULT_BYTWO_b:
- return sizeof(gf_internal_t) + sizeof(struct gf_w16_bytwo_data);
- break;
- case GF_MULT_LOG_ZERO:
- return sizeof(gf_internal_t) + sizeof(struct gf_w16_zero_logtable_data) + 64;
- break;
- case GF_MULT_LOG_TABLE:
- return sizeof(gf_internal_t) + sizeof(struct gf_w16_logtable_data) + 64;
- break;
- case GF_MULT_DEFAULT:
- case GF_MULT_SPLIT_TABLE:
- if (arg1 == 8 && arg2 == 8) {
- return sizeof(gf_internal_t) + sizeof(struct gf_w16_split_8_8_data) + 64;
- } else if ((arg1 == 8 && arg2 == 16) || (arg2 == 8 && arg1 == 16)) {
- return sizeof(gf_internal_t) + sizeof(struct gf_w16_logtable_data) + 64;
- } else if (mult_type == GF_MULT_DEFAULT ||
- (arg1 == 4 && arg2 == 16) || (arg2 == 4 && arg1 == 16)) {
- return sizeof(gf_internal_t) + sizeof(struct gf_w16_logtable_data) + 64;
- }
- return 0;
- break;
- case GF_MULT_GROUP:
- return sizeof(gf_internal_t) + sizeof(struct gf_w16_group_4_4_data) + 64;
- break;
- case GF_MULT_CARRY_FREE:
- return sizeof(gf_internal_t);
- break;
- case GF_MULT_SHIFT:
- return sizeof(gf_internal_t);
- break;
- case GF_MULT_COMPOSITE:
- return sizeof(gf_internal_t) + sizeof(struct gf_w16_composite_data) + 64;
- break;
-
- default:
- return 0;
- }
- return 0;
-}
-
-int gf_w16_init(gf_t *gf)
-{
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
-
- /* Allen: set default primitive polynomial / irreducible polynomial if needed */
-
- if (h->prim_poly == 0) {
- if (h->mult_type == GF_MULT_COMPOSITE) {
- h->prim_poly = gf_composite_get_default_poly(h->base_gf);
- if (h->prim_poly == 0) return 0;
- } else {
-
- /* Allen: use the following primitive polynomial to make
- carryless multiply work more efficiently for GF(2^16).
-
- h->prim_poly = 0x1002d;
-
- The following is the traditional primitive polynomial for GF(2^16) */
-
- h->prim_poly = 0x1100b;
- }
- }
-
- if (h->mult_type != GF_MULT_COMPOSITE) h->prim_poly |= (1 << 16);
-
- gf->multiply.w32 = NULL;
- gf->divide.w32 = NULL;
- gf->inverse.w32 = NULL;
- gf->multiply_region.w32 = NULL;
-
- switch(h->mult_type) {
- case GF_MULT_LOG_ZERO: if (gf_w16_log_zero_init(gf) == 0) return 0; break;
- case GF_MULT_LOG_TABLE: if (gf_w16_log_init(gf) == 0) return 0; break;
- case GF_MULT_DEFAULT:
- case GF_MULT_SPLIT_TABLE: if (gf_w16_split_init(gf) == 0) return 0; break;
- case GF_MULT_TABLE: if (gf_w16_table_init(gf) == 0) return 0; break;
- case GF_MULT_CARRY_FREE: if (gf_w16_cfm_init(gf) == 0) return 0; break;
- case GF_MULT_SHIFT: if (gf_w16_shift_init(gf) == 0) return 0; break;
- case GF_MULT_COMPOSITE: if (gf_w16_composite_init(gf) == 0) return 0; break;
- case GF_MULT_BYTWO_p:
- case GF_MULT_BYTWO_b: if (gf_w16_bytwo_init(gf) == 0) return 0; break;
- case GF_MULT_GROUP: if (gf_w16_group_init(gf) == 0) return 0; break;
- default: return 0;
- }
- if (h->divide_type == GF_DIVIDE_EUCLID) {
- gf->divide.w32 = gf_w16_divide_from_inverse;
- gf->inverse.w32 = gf_w16_euclid;
- } else if (h->divide_type == GF_DIVIDE_MATRIX) {
- gf->divide.w32 = gf_w16_divide_from_inverse;
- gf->inverse.w32 = gf_w16_matrix;
- }
-
- if (gf->divide.w32 == NULL) {
- gf->divide.w32 = gf_w16_divide_from_inverse;
- if (gf->inverse.w32 == NULL) gf->inverse.w32 = gf_w16_euclid;
- }
-
- if (gf->inverse.w32 == NULL) gf->inverse.w32 = gf_w16_inverse_from_divide;
-
- if (h->region_type & GF_REGION_ALTMAP) {
- if (h->mult_type == GF_MULT_COMPOSITE) {
- gf->extract_word.w32 = gf_w16_composite_extract_word;
- } else {
- gf->extract_word.w32 = gf_w16_split_extract_word;
- }
- } else if (h->region_type == GF_REGION_CAUCHY) {
- gf->multiply_region.w32 = gf_wgen_cauchy_region;
- gf->extract_word.w32 = gf_wgen_extract_word;
- } else {
- gf->extract_word.w32 = gf_w16_extract_word;
- }
- if (gf->multiply_region.w32 == NULL) {
- gf->multiply_region.w32 = gf_w16_multiply_region_from_single;
- }
- return 1;
-}
-
-/* Inline setup functions */
-
-uint16_t *gf_w16_get_log_table(gf_t *gf)
-{
- struct gf_w16_logtable_data *ltd;
-
- if (gf->multiply.w32 == gf_w16_log_multiply) {
- ltd = (struct gf_w16_logtable_data *) ((gf_internal_t *) gf->scratch)->private;
- return (uint16_t *) ltd->log_tbl;
- }
- return NULL;
-}
-
-uint16_t *gf_w16_get_mult_alog_table(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_w16_logtable_data *ltd;
-
- h = (gf_internal_t *) gf->scratch;
- if (gf->multiply.w32 == gf_w16_log_multiply) {
- ltd = (struct gf_w16_logtable_data *) h->private;
- return (uint16_t *) ltd->antilog_tbl;
- }
- return NULL;
-}
-
-uint16_t *gf_w16_get_div_alog_table(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_w16_logtable_data *ltd;
-
- h = (gf_internal_t *) gf->scratch;
- if (gf->multiply.w32 == gf_w16_log_multiply) {
- ltd = (struct gf_w16_logtable_data *) h->private;
- return (uint16_t *) ltd->d_antilog;
- }
- return NULL;
-}
diff --git a/src/c/gf-complete/src/gf_w32.c b/src/c/gf-complete/src/gf_w32.c
deleted file mode 100644
index 9732b17..0000000
--- a/src/c/gf-complete/src/gf_w32.c
+++ /dev/null
@@ -1,2823 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_w32.c
- *
- * Routines for 32-bit Galois fields
- */
-
-
-#include "gf_int.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "gf_w32.h"
-
-#define MM_PRINT32(s, r) { uint8_t blah[16], ii; printf("%-12s", s); _mm_storeu_si128((__m128i *)blah, r); for (ii = 0; ii < 16; ii += 4) printf(" %02x%02x%02x%02x", blah[15-ii], blah[14-ii], blah[13-ii], blah[12-ii]); printf("\n"); }
-
-#define MM_PRINT8(s, r) { uint8_t blah[16], ii; printf("%-12s", s); _mm_storeu_si128((__m128i *)blah, r); for (ii = 0; ii < 16; ii += 1) printf("%s%02x", (ii%4==0) ? " " : " ", blah[15-ii]); printf("\n"); }
-
-#define AB2(ip, am1 ,am2, b, t1, t2) {\
- t1 = (b << 1) & am1;\
- t2 = b & am2; \
- t2 = ((t2 << 1) - (t2 >> (GF_FIELD_WIDTH-1))); \
- b = (t1 ^ (t2 & ip));}
-
-#define SSE_AB2(pp, m1 ,m2, va, t1, t2) {\
- t1 = _mm_and_si128(_mm_slli_epi64(va, 1), m1); \
- t2 = _mm_and_si128(va, m2); \
- t2 = _mm_sub_epi64 (_mm_slli_epi64(t2, 1), _mm_srli_epi64(t2, (GF_FIELD_WIDTH-1))); \
- va = _mm_xor_si128(t1, _mm_and_si128(t2, pp)); }
-
-static
-inline
-uint32_t gf_w32_inverse_from_divide (gf_t *gf, uint32_t a)
-{
- return gf->divide.w32(gf, 1, a);
-}
-
-static
-inline
-uint32_t gf_w32_divide_from_inverse (gf_t *gf, uint32_t a, uint32_t b)
-{
- b = gf->inverse.w32(gf, b);
- return gf->multiply.w32(gf, a, b);
-}
-
-static
-void
-gf_w32_multiply_region_from_single(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int
-xor)
-{
- int i;
- uint32_t *s32;
- uint32_t *d32;
-
- s32 = (uint32_t *) src;
- d32 = (uint32_t *) dest;
-
- if (xor) {
- for (i = 0; i < bytes/sizeof(uint32_t); i++) {
- d32[i] ^= gf->multiply.w32(gf, val, s32[i]);
- }
- } else {
- for (i = 0; i < bytes/sizeof(uint32_t); i++) {
- d32[i] = gf->multiply.w32(gf, val, s32[i]);
- }
- }
-}
-
-#if defined(INTEL_SSE4_PCLMUL)
-
-static
-void
-gf_w32_clm_multiply_region_from_single_2(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
-
- int i;
- uint32_t *s32;
- uint32_t *d32;
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
- prim_poly = _mm_set_epi32(0, 0, 1, (uint32_t)(h->prim_poly & 0xffffffffULL));
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), val, 0);
- s32 = (uint32_t *) src;
- d32 = (uint32_t *) dest;
-
- if (xor) {
- for (i = 0; i < bytes/sizeof(uint32_t); i++) {
- b = _mm_insert_epi32 (a, s32[i], 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- d32[i] ^= ((gf_val_32_t)_mm_extract_epi32(result, 0));
- }
- } else {
- for (i = 0; i < bytes/sizeof(uint32_t); i++) {
- b = _mm_insert_epi32 (a, s32[i], 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- d32[i] = ((gf_val_32_t)_mm_extract_epi32(result, 0));
- }
- }
-}
-#endif
-
-#if defined(INTEL_SSE4_PCLMUL)
-
-static
-void
-gf_w32_clm_multiply_region_from_single_3(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
-
- int i;
- uint32_t *s32;
- uint32_t *d32;
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
- prim_poly = _mm_set_epi32(0, 0, 1, (uint32_t)(h->prim_poly & 0xffffffffULL));
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), val, 0);
-
- s32 = (uint32_t *) src;
- d32 = (uint32_t *) dest;
-
- if (xor) {
- for (i = 0; i < bytes/sizeof(uint32_t); i++) {
- b = _mm_insert_epi32 (a, s32[i], 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- d32[i] ^= ((gf_val_32_t)_mm_extract_epi32(result, 0));
- }
- } else {
- for (i = 0; i < bytes/sizeof(uint32_t); i++) {
- b = _mm_insert_epi32 (a, s32[i], 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- d32[i] = ((gf_val_32_t)_mm_extract_epi32(result, 0));
- }
- }
-}
-#endif
-
-#if defined(INTEL_SSE4_PCLMUL)
-static
-void
-gf_w32_clm_multiply_region_from_single_4(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
- int i;
- uint32_t *s32;
- uint32_t *d32;
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
- prim_poly = _mm_set_epi32(0, 0, 1, (uint32_t)(h->prim_poly & 0xffffffffULL));
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), val, 0);
-
- s32 = (uint32_t *) src;
- d32 = (uint32_t *) dest;
-
- if (xor) {
- for (i = 0; i < bytes/sizeof(uint32_t); i++) {
- b = _mm_insert_epi32 (a, s32[i], 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- d32[i] ^= ((gf_val_32_t)_mm_extract_epi32(result, 0));
- }
- } else {
- for (i = 0; i < bytes/sizeof(uint32_t); i++) {
- b = _mm_insert_epi32 (a, s32[i], 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- d32[i] = ((gf_val_32_t)_mm_extract_epi32(result, 0));
- }
- }
-}
-#endif
-
-static
-inline
-uint32_t gf_w32_euclid (gf_t *gf, uint32_t b)
-{
- uint32_t e_i, e_im1, e_ip1;
- uint32_t d_i, d_im1, d_ip1;
- uint32_t y_i, y_im1, y_ip1;
- uint32_t c_i;
-
- if (b == 0) return -1;
- e_im1 = ((gf_internal_t *) (gf->scratch))->prim_poly;
- e_i = b;
- d_im1 = 32;
- for (d_i = d_im1-1; ((1 << d_i) & e_i) == 0; d_i--) ;
- y_i = 1;
- y_im1 = 0;
-
- while (e_i != 1) {
-
- e_ip1 = e_im1;
- d_ip1 = d_im1;
- c_i = 0;
-
- while (d_ip1 >= d_i) {
- c_i ^= (1 << (d_ip1 - d_i));
- e_ip1 ^= (e_i << (d_ip1 - d_i));
- d_ip1--;
- if (e_ip1 == 0) return 0;
- while ((e_ip1 & (1 << d_ip1)) == 0) d_ip1--;
- }
-
- y_ip1 = y_im1 ^ gf->multiply.w32(gf, c_i, y_i);
- y_im1 = y_i;
- y_i = y_ip1;
-
- e_im1 = e_i;
- d_im1 = d_i;
- e_i = e_ip1;
- d_i = d_ip1;
- }
-
- return y_i;
-}
-
-static
-gf_val_32_t gf_w32_extract_word(gf_t *gf, void *start, int bytes, int index)
-{
- uint32_t *r32, rv;
-
- r32 = (uint32_t *) start;
- rv = r32[index];
- return rv;
-}
-
-static
-gf_val_32_t gf_w32_composite_extract_word(gf_t *gf, void *start, int bytes, int index)
-{
- int sub_size;
- gf_internal_t *h;
- uint8_t *r8, *top;
- uint32_t a, b, *r32;
- gf_region_data rd;
-
- h = (gf_internal_t *) gf->scratch;
- gf_set_region_data(&rd, gf, start, start, bytes, 0, 0, 32);
- r32 = (uint32_t *) start;
- if (r32 + index < (uint32_t *) rd.d_start) return r32[index];
- if (r32 + index >= (uint32_t *) rd.d_top) return r32[index];
- index -= (((uint32_t *) rd.d_start) - r32);
- r8 = (uint8_t *) rd.d_start;
- top = (uint8_t *) rd.d_top;
- sub_size = (top-r8)/2;
-
- a = h->base_gf->extract_word.w32(h->base_gf, r8, sub_size, index);
- b = h->base_gf->extract_word.w32(h->base_gf, r8+sub_size, sub_size, index);
- return (a | (b << 16));
-}
-
-static
-gf_val_32_t gf_w32_split_extract_word(gf_t *gf, void *start, int bytes, int index)
-{
- int i;
- uint32_t *r32, rv;
- uint8_t *r8;
- gf_region_data rd;
-
- gf_set_region_data(&rd, gf, start, start, bytes, 0, 0, 64);
- r32 = (uint32_t *) start;
- if (r32 + index < (uint32_t *) rd.d_start) return r32[index];
- if (r32 + index >= (uint32_t *) rd.d_top) return r32[index];
- index -= (((uint32_t *) rd.d_start) - r32);
- r8 = (uint8_t *) rd.d_start;
- r8 += ((index & 0xfffffff0)*4);
- r8 += (index & 0xf);
- r8 += 48;
- rv =0;
- for (i = 0; i < 4; i++) {
- rv <<= 8;
- rv |= *r8;
- r8 -= 16;
- }
- return rv;
-}
-
-
-static
-inline
-uint32_t gf_w32_matrix (gf_t *gf, uint32_t b)
-{
- return gf_bitmatrix_inverse(b, 32, ((gf_internal_t *) (gf->scratch))->prim_poly);
-}
-
-/* JSP: GF_MULT_SHIFT: The world's dumbest multiplication algorithm. I only
- include it for completeness. It does have the feature that it requires no
- extra memory.
-*/
-
-static
-inline
-gf_val_32_t
-gf_w32_cfmgk_multiply (gf_t *gf, gf_val_32_t a32, gf_val_32_t b32)
-{
- gf_val_32_t rv = 0;
-
-#if defined(INTEL_SSE4_PCLMUL)
-
- __m128i a, b;
- __m128i result;
- __m128i w;
- __m128i g, q;
- gf_internal_t * h = gf->scratch;
- uint64_t g_star, q_plus;
-
- q_plus = *(uint64_t *) h->private;
- g_star = *((uint64_t *) h->private + 1);
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), a32, 0);
- b = _mm_insert_epi32 (a, b32, 0);
- g = _mm_insert_epi64 (a, g_star, 0);
- q = _mm_insert_epi64 (a, q_plus, 0);
-
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (q, _mm_srli_si128 (result, 4), 0);
- w = _mm_clmulepi64_si128 (g, _mm_srli_si128 (w, 4), 0);
- result = _mm_xor_si128 (result, w);
-
- /* Extracts 32 bit value from result. */
- rv = ((gf_val_32_t)_mm_extract_epi32(result, 0));
-#endif
- return rv;
-}
-
-#if defined(INTEL_SSE4_PCLMUL)
-
-static
-void
-gf_w32_cfmgk_multiply_region_from_single(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
-
- int i;
- uint32_t *s32;
- uint32_t *d32;
-
- __m128i a, b;
- __m128i result;
- __m128i w;
- __m128i g, q;
- gf_internal_t * h = gf->scratch;
- uint64_t g_star, q_plus;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- q_plus = *(uint64_t *) h->private;
- g_star = *((uint64_t *) h->private + 1);
-
- g = _mm_insert_epi64 (a, g_star, 0);
- q = _mm_insert_epi64 (a, q_plus, 0);
- a = _mm_insert_epi32 (_mm_setzero_si128(), val, 0);
- s32 = (uint32_t *) src;
- d32 = (uint32_t *) dest;
-
- if (xor) {
- for (i = 0; i < bytes/sizeof(uint32_t); i++) {
- b = _mm_insert_epi32 (a, s32[i], 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (q, _mm_srli_si128 (result, 4), 0);
- w = _mm_clmulepi64_si128 (g, _mm_srli_si128 (w, 4), 0);
- result = _mm_xor_si128 (result, w);
- d32[i] ^= ((gf_val_32_t)_mm_extract_epi32(result, 0));
- }
- } else {
- for (i = 0; i < bytes/sizeof(uint32_t); i++) {
- b = _mm_insert_epi32 (a, s32[i], 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (q, _mm_srli_si128 (result, 4), 0);
- w = _mm_clmulepi64_si128 (g, _mm_srli_si128 (w, 4), 0);
- result = _mm_xor_si128 (result, w);
- d32[i] = ((gf_val_32_t)_mm_extract_epi32(result, 0));
- }
- }
-}
-#endif
-
-
-static
-inline
-gf_val_32_t
-gf_w32_clm_multiply_2 (gf_t *gf, gf_val_32_t a32, gf_val_32_t b32)
-{
- gf_val_32_t rv = 0;
-
-#if defined(INTEL_SSE4_PCLMUL)
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), a32, 0);
- b = _mm_insert_epi32 (a, b32, 0);
-
- prim_poly = _mm_set_epi32(0, 0, 1, (uint32_t)(h->prim_poly & 0xffffffffULL));
-
- /* Do the initial multiply */
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- /* Ben: Do prim_poly reduction twice. We are guaranteed that we will only
- have to do the reduction at most twice, because (w-2)/z == 2. Where
- z is equal to the number of zeros after the leading 1
-
- _mm_clmulepi64_si128 is the carryless multiply operation. Here
- _mm_srli_si128 shifts the result to the right by 4 bytes. This allows
- us to multiply the prim_poly by the leading bits of the result. We
- then xor the result of that operation back with the result.*/
-
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
-
- /* Extracts 32 bit value from result. */
- rv = ((gf_val_32_t)_mm_extract_epi32(result, 0));
-#endif
- return rv;
-}
-
-static
-inline
-gf_val_32_t
-gf_w32_clm_multiply_3 (gf_t *gf, gf_val_32_t a32, gf_val_32_t b32)
-{
- gf_val_32_t rv = 0;
-
-#if defined(INTEL_SSE4_PCLMUL)
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), a32, 0);
- b = _mm_insert_epi32 (a, b32, 0);
-
- prim_poly = _mm_set_epi32(0, 0, 1, (uint32_t)(h->prim_poly & 0xffffffffULL));
-
- /* Do the initial multiply */
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
-
- /* Extracts 32 bit value from result. */
-
- rv = ((gf_val_32_t)_mm_extract_epi32(result, 0));
-#endif
- return rv;
-}
-
-static
-inline
-gf_val_32_t
-gf_w32_clm_multiply_4 (gf_t *gf, gf_val_32_t a32, gf_val_32_t b32)
-{
- gf_val_32_t rv = 0;
-
-#if defined(INTEL_SSE4_PCLMUL)
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), a32, 0);
- b = _mm_insert_epi32 (a, b32, 0);
-
- prim_poly = _mm_set_epi32(0, 0, 1, (uint32_t)(h->prim_poly & 0xffffffffULL));
-
- /* Do the initial multiply */
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
-
- /* Extracts 32 bit value from result. */
-
- rv = ((gf_val_32_t)_mm_extract_epi32(result, 0));
-#endif
- return rv;
-}
-
-
-static
-inline
-uint32_t
-gf_w32_shift_multiply (gf_t *gf, uint32_t a32, uint32_t b32)
-{
- uint64_t product, i, pp, a, b, one;
- gf_internal_t *h;
-
- a = a32;
- b = b32;
- h = (gf_internal_t *) gf->scratch;
- one = 1;
- pp = h->prim_poly | (one << 32);
-
- product = 0;
-
- for (i = 0; i < GF_FIELD_WIDTH; i++) {
- if (a & (one << i)) product ^= (b << i);
- }
- for (i = (GF_FIELD_WIDTH*2-2); i >= GF_FIELD_WIDTH; i--) {
- if (product & (one << i)) product ^= (pp << (i-GF_FIELD_WIDTH));
- }
- return product;
-}
-
- static
-int gf_w32_cfmgk_init(gf_t *gf)
-{
- gf->inverse.w32 = gf_w32_euclid;
- gf->multiply_region.w32 = gf_w32_multiply_region_from_single;
-
-#if defined(INTEL_SSE4_PCLMUL)
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- gf->multiply.w32 = gf_w32_cfmgk_multiply;
- gf->multiply_region.w32 = gf_w32_cfmgk_multiply_region_from_single;
-
- uint64_t *q_plus = (uint64_t *) h->private;
- uint64_t *g_star = (uint64_t *) h->private + 1;
-
- uint64_t tmp = h->prim_poly << 32;
- *q_plus = 1ULL << 32;
-
- int i;
- for(i = 63; i >= 32; i--)
- if((1ULL << i) & tmp)
- {
- *q_plus |= 1ULL << (i-32);
- tmp ^= h->prim_poly << (i-32);
- }
-
- *g_star = h->prim_poly & ((1ULL << 32) - 1);
-
- return 1;
-#endif
-
- return 0;
-}
-
- static
-int gf_w32_cfm_init(gf_t *gf)
-{
- gf->inverse.w32 = gf_w32_euclid;
- gf->multiply_region.w32 = gf_w32_multiply_region_from_single;
-
- /*Ben: We also check to see if the prim poly will work for pclmul */
- /*Ben: Check to see how many reduction steps it will take*/
-
-#if defined(INTEL_SSE4_PCLMUL)
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
-
- if ((0xfffe0000 & h->prim_poly) == 0){
- gf->multiply.w32 = gf_w32_clm_multiply_2;
- gf->multiply_region.w32 = gf_w32_clm_multiply_region_from_single_2;
- }else if ((0xffc00000 & h->prim_poly) == 0){
- gf->multiply.w32 = gf_w32_clm_multiply_3;
- gf->multiply_region.w32 = gf_w32_clm_multiply_region_from_single_3;
- }else if ((0xfe000000 & h->prim_poly) == 0){
- gf->multiply.w32 = gf_w32_clm_multiply_4;
- gf->multiply_region.w32 = gf_w32_clm_multiply_region_from_single_4;
- } else {
- return 0;
- }
- return 1;
- #endif
-
- return 0;
-}
-
- static
-int gf_w32_shift_init(gf_t *gf)
-{
- gf->inverse.w32 = gf_w32_euclid;
- gf->multiply_region.w32 = gf_w32_multiply_region_from_single;
- gf->multiply.w32 = gf_w32_shift_multiply;
- return 1;
-}
-
-static
- void
-gf_w32_group_set_shift_tables(uint32_t *shift, uint32_t val, gf_internal_t *h)
-{
- int i;
- uint32_t j;
-
- shift[0] = 0;
-
- for (i = 1; i < (1 << h->arg1); i <<= 1) {
- for (j = 0; j < i; j++) shift[i|j] = shift[j]^val;
- if (val & GF_FIRST_BIT) {
- val <<= 1;
- val ^= h->prim_poly;
- } else {
- val <<= 1;
- }
- }
-}
-
- static
-void gf_w32_group_s_equals_r_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- int leftover, rs;
- uint32_t p, l, ind, a32;
- int bits_left;
- int g_s;
- gf_region_data rd;
- uint32_t *s32, *d32, *top;
- struct gf_w32_group_data *gd;
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gd = (struct gf_w32_group_data *) h->private;
- g_s = h->arg1;
- gf_w32_group_set_shift_tables(gd->shift, val, h);
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 4);
- gf_do_initial_region_alignment(&rd);
-
- s32 = (uint32_t *) rd.s_start;
- d32 = (uint32_t *) rd.d_start;
- top = (uint32_t *) rd.d_top;
-
- leftover = 32 % g_s;
- if (leftover == 0) leftover = g_s;
-
- while (d32 < top) {
- rs = 32 - leftover;
- a32 = *s32;
- ind = a32 >> rs;
- a32 <<= leftover;
- p = gd->shift[ind];
-
- bits_left = rs;
- rs = 32 - g_s;
-
- while (bits_left > 0) {
- bits_left -= g_s;
- ind = a32 >> rs;
- a32 <<= g_s;
- l = p >> rs;
- p = (gd->shift[ind] ^ gd->reduce[l] ^ (p << g_s));
- }
- if (xor) p ^= *d32;
- *d32 = p;
- d32++;
- s32++;
- }
- gf_do_final_region_alignment(&rd);
-}
-
- static
-void gf_w32_group_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint32_t *s32, *d32, *top;
- int i;
- int leftover;
- uint64_t p, l, r;
- uint32_t a32, ind;
- int g_s, g_r;
- struct gf_w32_group_data *gd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- g_s = h->arg1;
- g_r = h->arg2;
- gd = (struct gf_w32_group_data *) h->private;
- gf_w32_group_set_shift_tables(gd->shift, val, h);
-
- leftover = GF_FIELD_WIDTH % g_s;
- if (leftover == 0) leftover = g_s;
-
- gd = (struct gf_w32_group_data *) h->private;
- gf_w32_group_set_shift_tables(gd->shift, val, h);
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 4);
- gf_do_initial_region_alignment(&rd);
-
- s32 = (uint32_t *) rd.s_start;
- d32 = (uint32_t *) rd.d_start;
- top = (uint32_t *) rd.d_top;
-
- while (d32 < top) {
- a32 = *s32;
- ind = a32 >> (GF_FIELD_WIDTH - leftover);
- p = gd->shift[ind];
- p <<= g_s;
- a32 <<= leftover;
-
- i = (GF_FIELD_WIDTH - leftover);
- while (i > g_s) {
- ind = a32 >> (GF_FIELD_WIDTH-g_s);
- p ^= gd->shift[ind];
- a32 <<= g_s;
- p <<= g_s;
- i -= g_s;
- }
-
- ind = a32 >> (GF_FIELD_WIDTH-g_s);
- p ^= gd->shift[ind];
-
- for (i = gd->tshift ; i >= 0; i -= g_r) {
- l = p & (gd->rmask << i);
- r = gd->reduce[l >> (i+32)];
- r <<= (i);
- p ^= r;
- }
-
- if (xor) p ^= *d32;
- *d32 = p;
- d32++;
- s32++;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-static
-inline
-gf_val_32_t
-gf_w32_group_s_equals_r_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- int leftover, rs;
- uint32_t p, l, ind, a32;
- int bits_left;
- int g_s;
-
- struct gf_w32_group_data *gd;
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- g_s = h->arg1;
-
- gd = (struct gf_w32_group_data *) h->private;
- gf_w32_group_set_shift_tables(gd->shift, b, h);
-
- leftover = 32 % g_s;
- if (leftover == 0) leftover = g_s;
-
- rs = 32 - leftover;
- a32 = a;
- ind = a32 >> rs;
- a32 <<= leftover;
- p = gd->shift[ind];
-
- bits_left = rs;
- rs = 32 - g_s;
-
- while (bits_left > 0) {
- bits_left -= g_s;
- ind = a32 >> rs;
- a32 <<= g_s;
- l = p >> rs;
- p = (gd->shift[ind] ^ gd->reduce[l] ^ (p << g_s));
- }
- return p;
-}
-
-static
-inline
-gf_val_32_t
-gf_w32_group_4_4_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- uint32_t p, l, ind, a32;
-
- struct gf_w32_group_data *d44;
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
-
- d44 = (struct gf_w32_group_data *) h->private;
- gf_w32_group_set_shift_tables(d44->shift, b, h);
-
- a32 = a;
- ind = a32 >> 28;
- a32 <<= 4;
- p = d44->shift[ind];
- ind = a32 >> 28;
- a32 <<= 4;
- l = p >> 28;
- p = (d44->shift[ind] ^ d44->reduce[l] ^ (p << 4));
- ind = a32 >> 28;
- a32 <<= 4;
- l = p >> 28;
- p = (d44->shift[ind] ^ d44->reduce[l] ^ (p << 4));
- ind = a32 >> 28;
- a32 <<= 4;
- l = p >> 28;
- p = (d44->shift[ind] ^ d44->reduce[l] ^ (p << 4));
- ind = a32 >> 28;
- a32 <<= 4;
- l = p >> 28;
- p = (d44->shift[ind] ^ d44->reduce[l] ^ (p << 4));
- ind = a32 >> 28;
- a32 <<= 4;
- l = p >> 28;
- p = (d44->shift[ind] ^ d44->reduce[l] ^ (p << 4));
- ind = a32 >> 28;
- a32 <<= 4;
- l = p >> 28;
- p = (d44->shift[ind] ^ d44->reduce[l] ^ (p << 4));
- ind = a32 >> 28;
- l = p >> 28;
- p = (d44->shift[ind] ^ d44->reduce[l] ^ (p << 4));
- return p;
-}
-
-static
-inline
-gf_val_32_t
-gf_w32_group_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- int i;
- int leftover;
- uint64_t p, l, r;
- uint32_t a32, ind;
- int g_s, g_r;
- struct gf_w32_group_data *gd;
-
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- g_s = h->arg1;
- g_r = h->arg2;
- gd = (struct gf_w32_group_data *) h->private;
- gf_w32_group_set_shift_tables(gd->shift, b, h);
-
- leftover = GF_FIELD_WIDTH % g_s;
- if (leftover == 0) leftover = g_s;
-
- a32 = a;
- ind = a32 >> (GF_FIELD_WIDTH - leftover);
- p = gd->shift[ind];
- p <<= g_s;
- a32 <<= leftover;
-
- i = (GF_FIELD_WIDTH - leftover);
- while (i > g_s) {
- ind = a32 >> (GF_FIELD_WIDTH-g_s);
- p ^= gd->shift[ind];
- a32 <<= g_s;
- p <<= g_s;
- i -= g_s;
- }
-
- ind = a32 >> (GF_FIELD_WIDTH-g_s);
- p ^= gd->shift[ind];
-
- for (i = gd->tshift ; i >= 0; i -= g_r) {
- l = p & (gd->rmask << i);
- r = gd->reduce[l >> (i+32)];
- r <<= (i);
- p ^= r;
- }
- return p;
-}
-
-static
-inline
-gf_val_32_t
-gf_w32_bytwo_b_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- uint32_t prod, pp, bmask;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- prod = 0;
- bmask = 0x80000000;
-
- while (1) {
- if (a & 1) prod ^= b;
- a >>= 1;
- if (a == 0) return prod;
- if (b & bmask) {
- b = ((b << 1) ^ pp);
- } else {
- b <<= 1;
- }
- }
-}
-
-static
-inline
-gf_val_32_t
-gf_w32_bytwo_p_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- uint32_t prod, pp, pmask, amask;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
-
- prod = 0;
- pmask = 0x80000000;
- amask = 0x80000000;
-
- while (amask != 0) {
- if (prod & pmask) {
- prod = ((prod << 1) ^ pp);
- } else {
- prod <<= 1;
- }
- if (a & amask) prod ^= b;
- amask >>= 1;
- }
- return prod;
-}
-
-static
-void
-gf_w32_bytwo_p_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint64_t *s64, *d64, t1, t2, ta, prod, amask;
- gf_region_data rd;
- struct gf_w32_bytwo_data *btd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- btd = (struct gf_w32_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 8);
- gf_do_initial_region_alignment(&rd);
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
-
- if (xor) {
- while (s64 < (uint64_t *) rd.s_top) {
- prod = 0;
- amask = 0x80000000;
- ta = *s64;
- while (amask != 0) {
- AB2(btd->prim_poly, btd->mask1, btd->mask2, prod, t1, t2);
- if (val & amask) prod ^= ta;
- amask >>= 1;
- }
- *d64 ^= prod;
- d64++;
- s64++;
- }
- } else {
- while (s64 < (uint64_t *) rd.s_top) {
- prod = 0;
- amask = 0x80000000;
- ta = *s64;
- while (amask != 0) {
- AB2(btd->prim_poly, btd->mask1, btd->mask2, prod, t1, t2);
- if (val & amask) prod ^= ta;
- amask >>= 1;
- }
- *d64 = prod;
- d64++;
- s64++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-
-#define BYTWO_P_ONESTEP {\
- SSE_AB2(pp, m1 ,m2, prod, t1, t2); \
- t1 = _mm_and_si128(v, one); \
- t1 = _mm_sub_epi32(t1, one); \
- t1 = _mm_and_si128(t1, ta); \
- prod = _mm_xor_si128(prod, t1); \
- v = _mm_srli_epi64(v, 1); }
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w32_bytwo_p_sse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- int i;
- uint8_t *s8, *d8;
- uint32_t vrev;
- __m128i pp, m1, m2, ta, prod, t1, t2, tp, one, v;
- struct gf_w32_bytwo_data *btd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- btd = (struct gf_w32_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- vrev = 0;
- for (i = 0; i < 32; i++) {
- vrev <<= 1;
- if (!(val & (1 << i))) vrev |= 1;
- }
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- pp = _mm_set1_epi32(btd->prim_poly&0xffffffff);
- m1 = _mm_set1_epi32((btd->mask1)&0xffffffff);
- m2 = _mm_set1_epi32((btd->mask2)&0xffffffff);
- one = _mm_set1_epi32(1);
-
- while (d8 < (uint8_t *) rd.d_top) {
- prod = _mm_setzero_si128();
- v = _mm_set1_epi32(vrev);
- ta = _mm_load_si128((__m128i *) s8);
- tp = (!xor) ? _mm_setzero_si128() : _mm_load_si128((__m128i *) d8);
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- _mm_store_si128((__m128i *) d8, _mm_xor_si128(prod, tp));
- d8 += 16;
- s8 += 16;
- }
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-static
-void
-gf_w32_bytwo_b_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint64_t *s64, *d64, t1, t2, ta, tb, prod;
- struct gf_w32_bytwo_data *btd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 32);
- gf_do_initial_region_alignment(&rd);
-
- btd = (struct gf_w32_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
-
- switch (val) {
- case 2:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= ta;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta;
- d64++;
- s64++;
- }
- }
- break;
- case 3:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 4:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= ta;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta;
- d64++;
- s64++;
- }
- }
- break;
- case 5:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta ^ prod;
- d64++;
- s64++;
- }
- }
- break;
- default:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- prod = *d64 ;
- ta = *s64;
- tb = val;
- while (1) {
- if (tb & 1) prod ^= ta;
- tb >>= 1;
- if (tb == 0) break;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- }
- *d64 = prod;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- prod = 0 ;
- ta = *s64;
- tb = val;
- while (1) {
- if (tb & 1) prod ^= ta;
- tb >>= 1;
- if (tb == 0) break;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- }
- *d64 = prod;
- d64++;
- s64++;
- }
- }
- break;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w32_bytwo_b_sse_region_2_noxor(gf_region_data *rd, struct gf_w32_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, m2, t1, t2, va;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi32(btd->prim_poly&0xffffffff);
- m1 = _mm_set1_epi32((btd->mask1)&0xffffffff);
- m2 = _mm_set1_epi32((btd->mask2)&0xffffffff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- SSE_AB2(pp, m1, m2, va, t1, t2);
- _mm_store_si128((__m128i *)d8, va);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w32_bytwo_b_sse_region_2_xor(gf_region_data *rd, struct gf_w32_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, m2, t1, t2, va, vb;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi32(btd->prim_poly&0xffffffff);
- m1 = _mm_set1_epi32((btd->mask1)&0xffffffff);
- m2 = _mm_set1_epi32((btd->mask2)&0xffffffff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- SSE_AB2(pp, m1, m2, va, t1, t2);
- vb = _mm_load_si128 ((__m128i *)(d8));
- vb = _mm_xor_si128(vb, va);
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w32_bytwo_b_sse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint32_t itb;
- uint8_t *d8, *s8;
- __m128i pp, m1, m2, t1, t2, va, vb;
- struct gf_w32_bytwo_data *btd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- btd = (struct gf_w32_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- if (val == 2) {
- if (xor) {
- gf_w32_bytwo_b_sse_region_2_xor(&rd, btd);
- } else {
- gf_w32_bytwo_b_sse_region_2_noxor(&rd, btd);
- }
- gf_do_final_region_alignment(&rd);
- return;
- }
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- pp = _mm_set1_epi32(btd->prim_poly&0xffffffff);
- m1 = _mm_set1_epi32((btd->mask1)&0xffffffff);
- m2 = _mm_set1_epi32((btd->mask2)&0xffffffff);
-
- while (d8 < (uint8_t *) rd.d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- vb = (!xor) ? _mm_setzero_si128() : _mm_load_si128 ((__m128i *)(d8));
- itb = val;
- while (1) {
- if (itb & 1) vb = _mm_xor_si128(vb, va);
- itb >>= 1;
- if (itb == 0) break;
- SSE_AB2(pp, m1, m2, va, t1, t2);
- }
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
-
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-static
-int gf_w32_bytwo_init(gf_t *gf)
-{
- gf_internal_t *h;
- uint64_t ip, m1, m2;
- struct gf_w32_bytwo_data *btd;
-
- h = (gf_internal_t *) gf->scratch;
- btd = (struct gf_w32_bytwo_data *) (h->private);
- ip = h->prim_poly & 0xffffffff;
- m1 = 0xfffffffe;
- m2 = 0x80000000;
- btd->prim_poly = 0;
- btd->mask1 = 0;
- btd->mask2 = 0;
-
- while (ip != 0) {
- btd->prim_poly |= ip;
- btd->mask1 |= m1;
- btd->mask2 |= m2;
- ip <<= GF_FIELD_WIDTH;
- m1 <<= GF_FIELD_WIDTH;
- m2 <<= GF_FIELD_WIDTH;
- }
-
- if (h->mult_type == GF_MULT_BYTWO_p) {
- gf->multiply.w32 = gf_w32_bytwo_p_multiply;
- #ifdef INTEL_SSE2
- if (h->region_type & GF_REGION_NOSIMD)
- gf->multiply_region.w32 = gf_w32_bytwo_p_nosse_multiply_region;
- else
- gf->multiply_region.w32 = gf_w32_bytwo_p_sse_multiply_region;
- #else
- gf->multiply_region.w32 = gf_w32_bytwo_p_nosse_multiply_region;
- if(h->region_type & GF_REGION_SIMD)
- return 0;
- #endif
- } else {
- gf->multiply.w32 = gf_w32_bytwo_b_multiply;
- #ifdef INTEL_SSE2
- if (h->region_type & GF_REGION_NOSIMD)
- gf->multiply_region.w32 = gf_w32_bytwo_b_nosse_multiply_region;
- else
- gf->multiply_region.w32 = gf_w32_bytwo_b_sse_multiply_region;
- #else
- gf->multiply_region.w32 = gf_w32_bytwo_b_nosse_multiply_region;
- if(h->region_type & GF_REGION_SIMD)
- return 0;
- #endif
- }
-
- gf->inverse.w32 = gf_w32_euclid;
- return 1;
-}
-
-static
-inline
-uint32_t
-gf_w32_split_8_8_multiply (gf_t *gf, uint32_t a32, uint32_t b32)
-{
- uint32_t product, i, j, mask, tb;
- gf_internal_t *h;
- struct gf_w32_split_8_8_data *d8;
-
- h = (gf_internal_t *) gf->scratch;
- d8 = (struct gf_w32_split_8_8_data *) h->private;
- product = 0;
- mask = 0xff;
-
- for (i = 0; i < 4; i++) {
- tb = b32;
- for (j = 0; j < 4; j++) {
- product ^= d8->tables[i+j][a32&mask][tb&mask];
- tb >>= 8;
- }
- a32 >>= 8;
- }
- return product;
-}
-
-static
-inline
-void
-gf_w32_split_8_32_lazy_multiply_region(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
- gf_internal_t *h;
- uint32_t *s32, *d32, *top, p, a, v;
- struct gf_split_8_32_lazy_data *d8;
- struct gf_w32_split_8_8_data *d88;
- uint32_t *t[4];
- int i, j, k, change;
- uint32_t pp;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) gf->scratch;
- if (h->arg1 == 32 || h->arg2 == 32 || h->mult_type == GF_MULT_DEFAULT) {
- d8 = (struct gf_split_8_32_lazy_data *) h->private;
- for (i = 0; i < 4; i++) t[i] = d8->tables[i];
- change = (val != d8->last_value);
- if (change) d8->last_value = val;
- } else {
- d88 = (struct gf_w32_split_8_8_data *) h->private;
- for (i = 0; i < 4; i++) t[i] = d88->region_tables[i];
- change = (val != d88->last_value);
- if (change) d88->last_value = val;
- }
- pp = h->prim_poly;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 4);
- gf_do_initial_region_alignment(&rd);
-
- s32 = (uint32_t *) rd.s_start;
- d32 = (uint32_t *) rd.d_start;
- top = (uint32_t *) rd.d_top;
-
- if (change) {
- v = val;
- for (i = 0; i < 4; i++) {
- t[i][0] = 0;
- for (j = 1; j < 256; j <<= 1) {
- for (k = 0; k < j; k++) {
- t[i][k^j] = (v ^ t[i][k]);
- }
- v = (v & GF_FIRST_BIT) ? ((v << 1) ^ pp) : (v << 1);
- }
- }
- }
-
- while (d32 < top) {
- p = (xor) ? *d32 : 0;
- a = *s32;
- i = 0;
- while (a != 0) {
- v = (a & 0xff);
- p ^= t[i][v];
- a >>= 8;
- i++;
- }
- *d32 = p;
- d32++;
- s32++;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-static
-inline
-void
-gf_w32_split_16_32_lazy_multiply_region(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
- gf_internal_t *h;
- uint32_t *s32, *d32, *top, p, a, v;
- struct gf_split_16_32_lazy_data *d16;
- uint32_t *t[2];
- int i, j, k, change;
- uint32_t pp;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) gf->scratch;
- d16 = (struct gf_split_16_32_lazy_data *) h->private;
- for (i = 0; i < 2; i++) t[i] = d16->tables[i];
- change = (val != d16->last_value);
- if (change) d16->last_value = val;
-
- pp = h->prim_poly;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 4);
- gf_do_initial_region_alignment(&rd);
-
- s32 = (uint32_t *) rd.s_start;
- d32 = (uint32_t *) rd.d_start;
- top = (uint32_t *) rd.d_top;
-
- if (change) {
- v = val;
- for (i = 0; i < 2; i++) {
- t[i][0] = 0;
- for (j = 1; j < (1 << 16); j <<= 1) {
- for (k = 0; k < j; k++) {
- t[i][k^j] = (v ^ t[i][k]);
- }
- v = (v & GF_FIRST_BIT) ? ((v << 1) ^ pp) : (v << 1);
- }
- }
- }
-
- while (d32 < top) {
- p = (xor) ? *d32 : 0;
- a = *s32;
- i = 0;
- while (a != 0 && i < 2) {
- v = (a & 0xffff);
- p ^= t[i][v];
- a >>= 16;
- i++;
- }
- *d32 = p;
- d32++;
- s32++;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-static
-void
-gf_w32_split_2_32_lazy_multiply_region(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
- gf_internal_t *h;
- struct gf_split_2_32_lazy_data *ld;
- int i;
- uint32_t pp, v, v2, s, *s32, *d32, *top;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 4);
- gf_do_initial_region_alignment(&rd);
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- ld = (struct gf_split_2_32_lazy_data *) h->private;
-
- if (ld->last_value != val) {
- v = val;
- for (i = 0; i < 16; i++) {
- v2 = (v << 1);
- if (v & GF_FIRST_BIT) v2 ^= pp;
- ld->tables[i][0] = 0;
- ld->tables[i][1] = v;
- ld->tables[i][2] = v2;
- ld->tables[i][3] = (v2 ^ v);
- v = (v2 << 1);
- if (v2 & GF_FIRST_BIT) v ^= pp;
- }
- }
- ld->last_value = val;
-
- s32 = (uint32_t *) rd.s_start;
- d32 = (uint32_t *) rd.d_start;
- top = (uint32_t *) rd.d_top;
-
- while (d32 != top) {
- v = (xor) ? *d32 : 0;
- s = *s32;
- i = 0;
- while (s != 0) {
- v ^= ld->tables[i][s&3];
- s >>= 2;
- i++;
- }
- *d32 = v;
- d32++;
- s32++;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-#ifdef INTEL_SSSE3
-static
-void
-gf_w32_split_2_32_lazy_sse_multiply_region(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
- gf_internal_t *h;
- int i, tindex;
- uint32_t pp, v, v2, *s32, *d32, *top;
- __m128i vi, si, pi, shuffler, tables[16], adder, xi, mask1, mask2;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 32);
- gf_do_initial_region_alignment(&rd);
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- s32 = (uint32_t *) rd.s_start;
- d32 = (uint32_t *) rd.d_start;
- top = (uint32_t *) rd.d_top;
-
- v = val;
- for (i = 0; i < 16; i++) {
- v2 = (v << 1);
- if (v & GF_FIRST_BIT) v2 ^= pp;
- tables[i] = _mm_set_epi32(v2 ^ v, v2, v, 0);
- v = (v2 << 1);
- if (v2 & GF_FIRST_BIT) v ^= pp;
- }
-
- shuffler = _mm_set_epi8(0xc, 0xc, 0xc, 0xc, 8, 8, 8, 8, 4, 4, 4, 4, 0, 0, 0, 0);
- adder = _mm_set_epi8(3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0);
- mask1 = _mm_set1_epi8(0x3);
- mask2 = _mm_set1_epi8(0xc);
-
- while (d32 != top) {
- pi = (xor) ? _mm_load_si128 ((__m128i *) d32) : _mm_setzero_si128();
- vi = _mm_load_si128((__m128i *) s32);
-
- tindex = 0;
- for (i = 0; i < 4; i++) {
- si = _mm_shuffle_epi8(vi, shuffler);
-
- xi = _mm_and_si128(si, mask1);
- xi = _mm_slli_epi16(xi, 2);
- xi = _mm_xor_si128(xi, adder);
- pi = _mm_xor_si128(pi, _mm_shuffle_epi8(tables[tindex], xi));
- tindex++;
-
- xi = _mm_and_si128(si, mask2);
- xi = _mm_xor_si128(xi, adder);
- pi = _mm_xor_si128(pi, _mm_shuffle_epi8(tables[tindex], xi));
- si = _mm_srli_epi16(si, 2);
- tindex++;
-
- xi = _mm_and_si128(si, mask2);
- xi = _mm_xor_si128(xi, adder);
- pi = _mm_xor_si128(pi, _mm_shuffle_epi8(tables[tindex], xi));
- si = _mm_srli_epi16(si, 2);
- tindex++;
-
- xi = _mm_and_si128(si, mask2);
- xi = _mm_xor_si128(xi, adder);
- pi = _mm_xor_si128(pi, _mm_shuffle_epi8(tables[tindex], xi));
- tindex++;
-
- vi = _mm_srli_epi32(vi, 8);
- }
- _mm_store_si128((__m128i *) d32, pi);
- d32 += 4;
- s32 += 4;
- }
-
- gf_do_final_region_alignment(&rd);
-
-}
-#endif
-
-static
-void
-gf_w32_split_4_32_lazy_multiply_region(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
- gf_internal_t *h;
- struct gf_split_4_32_lazy_data *ld;
- int i, j, k;
- uint32_t pp, v, s, *s32, *d32, *top;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- ld = (struct gf_split_4_32_lazy_data *) h->private;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 4);
- gf_do_initial_region_alignment(&rd);
-
- if (ld->last_value != val) {
- v = val;
- for (i = 0; i < 8; i++) {
- ld->tables[i][0] = 0;
- for (j = 1; j < 16; j <<= 1) {
- for (k = 0; k < j; k++) {
- ld->tables[i][k^j] = (v ^ ld->tables[i][k]);
- }
- v = (v & GF_FIRST_BIT) ? ((v << 1) ^ pp) : (v << 1);
- }
- }
- }
- ld->last_value = val;
-
- s32 = (uint32_t *) rd.s_start;
- d32 = (uint32_t *) rd.d_start;
- top = (uint32_t *) rd.d_top;
-
- while (d32 != top) {
- v = (xor) ? *d32 : 0;
- s = *s32;
- i = 0;
- while (s != 0) {
- v ^= ld->tables[i][s&0xf];
- s >>= 4;
- i++;
- }
- *d32 = v;
- d32++;
- s32++;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-static
-void
-gf_w32_split_4_32_lazy_sse_altmap_multiply_region(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
-#ifdef INTEL_SSSE3
- gf_internal_t *h;
- int i, j, k;
- uint32_t pp, v, *s32, *d32, *top;
- __m128i si, tables[8][4], p0, p1, p2, p3, mask1, v0, v1, v2, v3;
- struct gf_split_4_32_lazy_data *ld;
- uint8_t btable[16];
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 64);
- gf_do_initial_region_alignment(&rd);
-
- s32 = (uint32_t *) rd.s_start;
- d32 = (uint32_t *) rd.d_start;
- top = (uint32_t *) rd.d_top;
-
- ld = (struct gf_split_4_32_lazy_data *) h->private;
-
- v = val;
- for (i = 0; i < 8; i++) {
- ld->tables[i][0] = 0;
- for (j = 1; j < 16; j <<= 1) {
- for (k = 0; k < j; k++) {
- ld->tables[i][k^j] = (v ^ ld->tables[i][k]);
- }
- v = (v & GF_FIRST_BIT) ? ((v << 1) ^ pp) : (v << 1);
- }
- for (j = 0; j < 4; j++) {
- for (k = 0; k < 16; k++) {
- btable[k] = (uint8_t) ld->tables[i][k];
- ld->tables[i][k] >>= 8;
- }
- tables[i][j] = _mm_loadu_si128((__m128i *) btable);
- }
- }
-
- mask1 = _mm_set1_epi8(0xf);
-
- if (xor) {
- while (d32 != top) {
- p0 = _mm_load_si128 ((__m128i *) d32);
- p1 = _mm_load_si128 ((__m128i *) (d32+4));
- p2 = _mm_load_si128 ((__m128i *) (d32+8));
- p3 = _mm_load_si128 ((__m128i *) (d32+12));
-
- v0 = _mm_load_si128((__m128i *) s32); s32 += 4;
- v1 = _mm_load_si128((__m128i *) s32); s32 += 4;
- v2 = _mm_load_si128((__m128i *) s32); s32 += 4;
- v3 = _mm_load_si128((__m128i *) s32); s32 += 4;
-
- si = _mm_and_si128(v0, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[0][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[0][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[0][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[0][3], si));
-
- v0 = _mm_srli_epi32(v0, 4);
- si = _mm_and_si128(v0, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[1][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[1][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[1][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[1][3], si));
-
- si = _mm_and_si128(v1, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[2][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[2][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[2][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[2][3], si));
-
- v1 = _mm_srli_epi32(v1, 4);
- si = _mm_and_si128(v1, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[3][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[3][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[3][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[3][3], si));
-
- si = _mm_and_si128(v2, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[4][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[4][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[4][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[4][3], si));
-
- v2 = _mm_srli_epi32(v2, 4);
- si = _mm_and_si128(v2, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[5][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[5][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[5][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[5][3], si));
-
- si = _mm_and_si128(v3, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[6][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[6][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[6][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[6][3], si));
-
- v3 = _mm_srli_epi32(v3, 4);
- si = _mm_and_si128(v3, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[7][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[7][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[7][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[7][3], si));
-
- _mm_store_si128((__m128i *) d32, p0);
- _mm_store_si128((__m128i *) (d32+4), p1);
- _mm_store_si128((__m128i *) (d32+8), p2);
- _mm_store_si128((__m128i *) (d32+12), p3);
- d32 += 16;
- }
- } else {
- while (d32 != top) {
-
- v0 = _mm_load_si128((__m128i *) s32); s32 += 4;
- v1 = _mm_load_si128((__m128i *) s32); s32 += 4;
- v2 = _mm_load_si128((__m128i *) s32); s32 += 4;
- v3 = _mm_load_si128((__m128i *) s32); s32 += 4;
-
- si = _mm_and_si128(v0, mask1);
- p0 = _mm_shuffle_epi8(tables[0][0], si);
- p1 = _mm_shuffle_epi8(tables[0][1], si);
- p2 = _mm_shuffle_epi8(tables[0][2], si);
- p3 = _mm_shuffle_epi8(tables[0][3], si);
-
- v0 = _mm_srli_epi32(v0, 4);
- si = _mm_and_si128(v0, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[1][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[1][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[1][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[1][3], si));
-
- si = _mm_and_si128(v1, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[2][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[2][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[2][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[2][3], si));
-
- v1 = _mm_srli_epi32(v1, 4);
- si = _mm_and_si128(v1, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[3][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[3][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[3][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[3][3], si));
-
- si = _mm_and_si128(v2, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[4][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[4][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[4][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[4][3], si));
-
- v2 = _mm_srli_epi32(v2, 4);
- si = _mm_and_si128(v2, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[5][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[5][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[5][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[5][3], si));
-
- si = _mm_and_si128(v3, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[6][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[6][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[6][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[6][3], si));
-
- v3 = _mm_srli_epi32(v3, 4);
- si = _mm_and_si128(v3, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[7][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[7][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[7][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[7][3], si));
-
- _mm_store_si128((__m128i *) d32, p0);
- _mm_store_si128((__m128i *) (d32+4), p1);
- _mm_store_si128((__m128i *) (d32+8), p2);
- _mm_store_si128((__m128i *) (d32+12), p3);
- d32 += 16;
- }
- }
-
- gf_do_final_region_alignment(&rd);
-
-#endif
-}
-
-
-static
-void
-gf_w32_split_4_32_lazy_sse_multiply_region(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
-#ifdef INTEL_SSSE3
- gf_internal_t *h;
- int i, j, k;
- uint32_t pp, v, *s32, *d32, *top, tmp_table[16];
- __m128i si, tables[8][4], p0, p1, p2, p3, mask1, v0, v1, v2, v3, mask8;
- __m128i tv1, tv2, tv3, tv0;
- uint8_t btable[16];
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 64);
- gf_do_initial_region_alignment(&rd);
-
- s32 = (uint32_t *) rd.s_start;
- d32 = (uint32_t *) rd.d_start;
- top = (uint32_t *) rd.d_top;
-
- v = val;
- for (i = 0; i < 8; i++) {
- tmp_table[0] = 0;
- for (j = 1; j < 16; j <<= 1) {
- for (k = 0; k < j; k++) {
- tmp_table[k^j] = (v ^ tmp_table[k]);
- }
- v = (v & GF_FIRST_BIT) ? ((v << 1) ^ pp) : (v << 1);
- }
- for (j = 0; j < 4; j++) {
- for (k = 0; k < 16; k++) {
- btable[k] = (uint8_t) tmp_table[k];
- tmp_table[k] >>= 8;
- }
- tables[i][j] = _mm_loadu_si128((__m128i *) btable);
- }
- }
-
- mask1 = _mm_set1_epi8(0xf);
- mask8 = _mm_set1_epi16(0xff);
-
- if (xor) {
- while (d32 != top) {
- v0 = _mm_load_si128((__m128i *) s32); s32 += 4;
- v1 = _mm_load_si128((__m128i *) s32); s32 += 4;
- v2 = _mm_load_si128((__m128i *) s32); s32 += 4;
- v3 = _mm_load_si128((__m128i *) s32); s32 += 4;
-
- p0 = _mm_srli_epi16(v0, 8);
- p1 = _mm_srli_epi16(v1, 8);
- p2 = _mm_srli_epi16(v2, 8);
- p3 = _mm_srli_epi16(v3, 8);
-
- tv0 = _mm_and_si128(v0, mask8);
- tv1 = _mm_and_si128(v1, mask8);
- tv2 = _mm_and_si128(v2, mask8);
- tv3 = _mm_and_si128(v3, mask8);
-
- v0 = _mm_packus_epi16(p1, p0);
- v1 = _mm_packus_epi16(tv1, tv0);
- v2 = _mm_packus_epi16(p3, p2);
- v3 = _mm_packus_epi16(tv3, tv2);
-
- p0 = _mm_srli_epi16(v0, 8);
- p1 = _mm_srli_epi16(v1, 8);
- p2 = _mm_srli_epi16(v2, 8);
- p3 = _mm_srli_epi16(v3, 8);
-
- tv0 = _mm_and_si128(v0, mask8);
- tv1 = _mm_and_si128(v1, mask8);
- tv2 = _mm_and_si128(v2, mask8);
- tv3 = _mm_and_si128(v3, mask8);
-
- v0 = _mm_packus_epi16(p2, p0);
- v1 = _mm_packus_epi16(p3, p1);
- v2 = _mm_packus_epi16(tv2, tv0);
- v3 = _mm_packus_epi16(tv3, tv1);
-
- si = _mm_and_si128(v0, mask1);
- p0 = _mm_shuffle_epi8(tables[6][0], si);
- p1 = _mm_shuffle_epi8(tables[6][1], si);
- p2 = _mm_shuffle_epi8(tables[6][2], si);
- p3 = _mm_shuffle_epi8(tables[6][3], si);
-
- v0 = _mm_srli_epi32(v0, 4);
- si = _mm_and_si128(v0, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[7][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[7][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[7][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[7][3], si));
-
- si = _mm_and_si128(v1, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[4][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[4][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[4][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[4][3], si));
-
- v1 = _mm_srli_epi32(v1, 4);
- si = _mm_and_si128(v1, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[5][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[5][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[5][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[5][3], si));
-
- si = _mm_and_si128(v2, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[2][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[2][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[2][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[2][3], si));
-
- v2 = _mm_srli_epi32(v2, 4);
- si = _mm_and_si128(v2, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[3][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[3][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[3][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[3][3], si));
-
- si = _mm_and_si128(v3, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[0][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[0][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[0][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[0][3], si));
-
- v3 = _mm_srli_epi32(v3, 4);
- si = _mm_and_si128(v3, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[1][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[1][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[1][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[1][3], si));
-
- tv0 = _mm_unpackhi_epi8(p1, p3);
- tv1 = _mm_unpackhi_epi8(p0, p2);
- tv2 = _mm_unpacklo_epi8(p1, p3);
- tv3 = _mm_unpacklo_epi8(p0, p2);
-
- p0 = _mm_unpackhi_epi8(tv1, tv0);
- p1 = _mm_unpacklo_epi8(tv1, tv0);
- p2 = _mm_unpackhi_epi8(tv3, tv2);
- p3 = _mm_unpacklo_epi8(tv3, tv2);
-
- v0 = _mm_load_si128 ((__m128i *) d32);
- v1 = _mm_load_si128 ((__m128i *) (d32+4));
- v2 = _mm_load_si128 ((__m128i *) (d32+8));
- v3 = _mm_load_si128 ((__m128i *) (d32+12));
-
- p0 = _mm_xor_si128(p0, v0);
- p1 = _mm_xor_si128(p1, v1);
- p2 = _mm_xor_si128(p2, v2);
- p3 = _mm_xor_si128(p3, v3);
-
- _mm_store_si128((__m128i *) d32, p0);
- _mm_store_si128((__m128i *) (d32+4), p1);
- _mm_store_si128((__m128i *) (d32+8), p2);
- _mm_store_si128((__m128i *) (d32+12), p3);
- d32 += 16;
- }
- } else {
- while (d32 != top) {
- v0 = _mm_load_si128((__m128i *) s32); s32 += 4;
- v1 = _mm_load_si128((__m128i *) s32); s32 += 4;
- v2 = _mm_load_si128((__m128i *) s32); s32 += 4;
- v3 = _mm_load_si128((__m128i *) s32); s32 += 4;
-
- p0 = _mm_srli_epi16(v0, 8);
- p1 = _mm_srli_epi16(v1, 8);
- p2 = _mm_srli_epi16(v2, 8);
- p3 = _mm_srli_epi16(v3, 8);
-
- tv0 = _mm_and_si128(v0, mask8);
- tv1 = _mm_and_si128(v1, mask8);
- tv2 = _mm_and_si128(v2, mask8);
- tv3 = _mm_and_si128(v3, mask8);
-
- v0 = _mm_packus_epi16(p1, p0);
- v1 = _mm_packus_epi16(tv1, tv0);
- v2 = _mm_packus_epi16(p3, p2);
- v3 = _mm_packus_epi16(tv3, tv2);
-
- p0 = _mm_srli_epi16(v0, 8);
- p1 = _mm_srli_epi16(v1, 8);
- p2 = _mm_srli_epi16(v2, 8);
- p3 = _mm_srli_epi16(v3, 8);
-
- tv0 = _mm_and_si128(v0, mask8);
- tv1 = _mm_and_si128(v1, mask8);
- tv2 = _mm_and_si128(v2, mask8);
- tv3 = _mm_and_si128(v3, mask8);
-
- v0 = _mm_packus_epi16(p2, p0);
- v1 = _mm_packus_epi16(p3, p1);
- v2 = _mm_packus_epi16(tv2, tv0);
- v3 = _mm_packus_epi16(tv3, tv1);
-
- si = _mm_and_si128(v0, mask1);
- p0 = _mm_shuffle_epi8(tables[6][0], si);
- p1 = _mm_shuffle_epi8(tables[6][1], si);
- p2 = _mm_shuffle_epi8(tables[6][2], si);
- p3 = _mm_shuffle_epi8(tables[6][3], si);
-
- v0 = _mm_srli_epi32(v0, 4);
- si = _mm_and_si128(v0, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[7][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[7][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[7][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[7][3], si));
-
- si = _mm_and_si128(v1, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[4][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[4][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[4][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[4][3], si));
-
- v1 = _mm_srli_epi32(v1, 4);
- si = _mm_and_si128(v1, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[5][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[5][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[5][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[5][3], si));
-
- si = _mm_and_si128(v2, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[2][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[2][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[2][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[2][3], si));
-
- v2 = _mm_srli_epi32(v2, 4);
- si = _mm_and_si128(v2, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[3][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[3][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[3][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[3][3], si));
-
- si = _mm_and_si128(v3, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[0][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[0][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[0][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[0][3], si));
-
- v3 = _mm_srli_epi32(v3, 4);
- si = _mm_and_si128(v3, mask1);
- p0 = _mm_xor_si128(p0, _mm_shuffle_epi8(tables[1][0], si));
- p1 = _mm_xor_si128(p1, _mm_shuffle_epi8(tables[1][1], si));
- p2 = _mm_xor_si128(p2, _mm_shuffle_epi8(tables[1][2], si));
- p3 = _mm_xor_si128(p3, _mm_shuffle_epi8(tables[1][3], si));
-
- tv0 = _mm_unpackhi_epi8(p1, p3);
- tv1 = _mm_unpackhi_epi8(p0, p2);
- tv2 = _mm_unpacklo_epi8(p1, p3);
- tv3 = _mm_unpacklo_epi8(p0, p2);
-
- p0 = _mm_unpackhi_epi8(tv1, tv0);
- p1 = _mm_unpacklo_epi8(tv1, tv0);
- p2 = _mm_unpackhi_epi8(tv3, tv2);
- p3 = _mm_unpacklo_epi8(tv3, tv2);
-
- _mm_store_si128((__m128i *) d32, p0);
- _mm_store_si128((__m128i *) (d32+4), p1);
- _mm_store_si128((__m128i *) (d32+8), p2);
- _mm_store_si128((__m128i *) (d32+12), p3);
- d32 += 16;
- }
- }
- gf_do_final_region_alignment(&rd);
-
-#endif
-}
-
-static
-int gf_w32_split_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_split_2_32_lazy_data *ld2;
- struct gf_split_4_32_lazy_data *ld4;
- struct gf_w32_split_8_8_data *d8;
- struct gf_split_8_32_lazy_data *d32;
- struct gf_split_16_32_lazy_data *d16;
- uint32_t p, basep;
- int i, j, exp, ispclmul, issse3;
- int isneon = 0;
-
-#if defined(INTEL_SSE4_PCLMUL)
- ispclmul = 1;
-#else
- ispclmul = 0;
-#endif
-
-#ifdef INTEL_SSSE3
- issse3 = 1;
-#else
- issse3 = 0;
-#endif
-#ifdef ARM_NEON
- isneon = 1;
-#endif
-
- h = (gf_internal_t *) gf->scratch;
-
- /* Defaults */
-
- gf->inverse.w32 = gf_w32_euclid;
-
- /* JSP: First handle single multiplication:
- If args == 8, then we're doing split 8 8.
- Otherwise, if PCLMUL, we use that.
- Otherwise, we use bytwo_p.
- */
-
- if (h->arg1 == 8 && h->arg2 == 8) {
- gf->multiply.w32 = gf_w32_split_8_8_multiply;
- } else if (ispclmul) {
- if ((0xfffe0000 & h->prim_poly) == 0){
- gf->multiply.w32 = gf_w32_clm_multiply_2;
- } else if ((0xffc00000 & h->prim_poly) == 0){
- gf->multiply.w32 = gf_w32_clm_multiply_3;
- } else if ((0xfe000000 & h->prim_poly) == 0){
- gf->multiply.w32 = gf_w32_clm_multiply_4;
- }
- } else {
- gf->multiply.w32 = gf_w32_bytwo_p_multiply;
- }
-
- /* Easy cases: 16/32 and 2/32 */
-
- if ((h->arg1 == 16 && h->arg2 == 32) || (h->arg1 == 32 && h->arg2 == 16)) {
- d16 = (struct gf_split_16_32_lazy_data *) h->private;
- d16->last_value = 0;
- gf->multiply_region.w32 = gf_w32_split_16_32_lazy_multiply_region;
- return 1;
- }
-
- if ((h->arg1 == 2 && h->arg2 == 32) || (h->arg1 == 32 && h->arg2 == 2)) {
- ld2 = (struct gf_split_2_32_lazy_data *) h->private;
- ld2->last_value = 0;
- #ifdef INTEL_SSSE3
- if (!(h->region_type & GF_REGION_NOSIMD))
- gf->multiply_region.w32 = gf_w32_split_2_32_lazy_sse_multiply_region;
- else
- gf->multiply_region.w32 = gf_w32_split_2_32_lazy_multiply_region;
- #else
- gf->multiply_region.w32 = gf_w32_split_2_32_lazy_multiply_region;
- if(h->region_type & GF_REGION_SIMD) return 0;
- #endif
- return 1;
- }
-
- /* 4/32 or Default + SSE - There is no ALTMAP/NOSSE. */
-
- if ((h->arg1 == 4 && h->arg2 == 32) || (h->arg1 == 32 && h->arg2 == 4) ||
- ((issse3 || isneon) && h->mult_type == GF_REGION_DEFAULT)) {
- ld4 = (struct gf_split_4_32_lazy_data *) h->private;
- ld4->last_value = 0;
- if ((h->region_type & GF_REGION_NOSIMD) || !(issse3 || isneon)) {
- gf->multiply_region.w32 = gf_w32_split_4_32_lazy_multiply_region;
- } else if (isneon) {
-#ifdef ARM_NEON
- gf_w32_neon_split_init(gf);
-#endif
- } else if (h->region_type & GF_REGION_ALTMAP) {
- gf->multiply_region.w32 = gf_w32_split_4_32_lazy_sse_altmap_multiply_region;
- } else {
- gf->multiply_region.w32 = gf_w32_split_4_32_lazy_sse_multiply_region;
- }
- return 1;
- }
-
- /* 8/32 or Default + no SSE */
-
- if ((h->arg1 == 8 && h->arg2 == 32) || (h->arg1 == 32 && h->arg2 == 8) ||
- h->mult_type == GF_MULT_DEFAULT) {
- d32 = (struct gf_split_8_32_lazy_data *) h->private;
- d32->last_value = 0;
- gf->multiply_region.w32 = gf_w32_split_8_32_lazy_multiply_region;
- return 1;
- }
-
- /* Finally, if args == 8, then we have to set up the tables here. */
-
- if (h->arg1 == 8 && h->arg2 == 8) {
- d8 = (struct gf_w32_split_8_8_data *) h->private;
- d8->last_value = 0;
- gf->multiply.w32 = gf_w32_split_8_8_multiply;
- gf->multiply_region.w32 = gf_w32_split_8_32_lazy_multiply_region;
- basep = 1;
- for (exp = 0; exp < 7; exp++) {
- for (j = 0; j < 256; j++) d8->tables[exp][0][j] = 0;
- for (i = 0; i < 256; i++) d8->tables[exp][i][0] = 0;
- d8->tables[exp][1][1] = basep;
- for (i = 2; i < 256; i++) {
- if (i&1) {
- p = d8->tables[exp][i^1][1];
- d8->tables[exp][i][1] = p ^ basep;
- } else {
- p = d8->tables[exp][i>>1][1];
- d8->tables[exp][i][1] = GF_MULTBY_TWO(p);
- }
- }
- for (i = 1; i < 256; i++) {
- p = d8->tables[exp][i][1];
- for (j = 1; j < 256; j++) {
- if (j&1) {
- d8->tables[exp][i][j] = d8->tables[exp][i][j^1] ^ p;
- } else {
- d8->tables[exp][i][j] = GF_MULTBY_TWO(d8->tables[exp][i][j>>1]);
- }
- }
- }
- for (i = 0; i < 8; i++) basep = GF_MULTBY_TWO(basep);
- }
- return 1;
- }
-
- /* If we get here, then the arguments were bad. */
-
- return 0;
-}
-
-static
-int gf_w32_group_init(gf_t *gf)
-{
- uint32_t i, j, p, index;
- struct gf_w32_group_data *gd;
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- int g_r, g_s;
-
- g_s = h->arg1;
- g_r = h->arg2;
-
- gd = (struct gf_w32_group_data *) h->private;
- gd->shift = (uint32_t *) (&(gd->memory));
- gd->reduce = gd->shift + (1 << g_s);
-
- gd->rmask = (1 << g_r) - 1;
- gd->rmask <<= 32;
-
- gd->tshift = 32 % g_s;
- if (gd->tshift == 0) gd->tshift = g_s;
- gd->tshift = (32 - gd->tshift);
- gd->tshift = ((gd->tshift-1)/g_r) * g_r;
-
- gd->reduce[0] = 0;
- for (i = 0; i < (1 << g_r); i++) {
- p = 0;
- index = 0;
- for (j = 0; j < g_r; j++) {
- if (i & (1 << j)) {
- p ^= (h->prim_poly << j);
- index ^= (1 << j);
- index ^= (h->prim_poly >> (32-j));
- }
- }
- gd->reduce[index] = p;
- }
-
- if (g_s == g_r) {
- gf->multiply.w32 = gf_w32_group_s_equals_r_multiply;
- gf->multiply_region.w32 = gf_w32_group_s_equals_r_multiply_region;
- } else {
- gf->multiply.w32 = gf_w32_group_multiply;
- gf->multiply_region.w32 = gf_w32_group_multiply_region;
- }
- gf->divide.w32 = NULL;
- gf->inverse.w32 = gf_w32_euclid;
-
- return 1;
-}
-
-
-static
-uint32_t
-gf_w32_composite_multiply_recursive(gf_t *gf, uint32_t a, uint32_t b)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint32_t b0 = b & 0x0000ffff;
- uint32_t b1 = (b & 0xffff0000) >> 16;
- uint32_t a0 = a & 0x0000ffff;
- uint32_t a1 = (a & 0xffff0000) >> 16;
- uint32_t a1b1;
- uint32_t rv;
- a1b1 = base_gf->multiply.w32(base_gf, a1, b1);
-
- rv = ((base_gf->multiply.w32(base_gf, a1, b0) ^ base_gf->multiply.w32(base_gf, a0, b1) ^ base_gf->multiply.w32(base_gf, a1b1, h->prim_poly)) << 16) | (base_gf->multiply.w32(base_gf, a0, b0) ^ a1b1);
- return rv;
-}
-
-/* JSP: This could be made faster. Someday, when I'm bored. */
-
-static
-uint32_t
-gf_w32_composite_multiply_inline(gf_t *gf, uint32_t a, uint32_t b)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- uint32_t b0 = b & 0x0000ffff;
- uint32_t b1 = b >> 16;
- uint32_t a0 = a & 0x0000ffff;
- uint32_t a1 = a >> 16;
- uint32_t a1b1, prod;
- uint16_t *log, *alog;
- struct gf_w32_composite_data *cd;
-
- cd = (struct gf_w32_composite_data *) h->private;
- log = cd->log;
- alog = cd->alog;
-
- a1b1 = GF_W16_INLINE_MULT(log, alog, a1, b1);
- prod = GF_W16_INLINE_MULT(log, alog, a1, b0);
- prod ^= GF_W16_INLINE_MULT(log, alog, a0, b1);
- prod ^= GF_W16_INLINE_MULT(log, alog, a1b1, h->prim_poly);
- prod <<= 16;
- prod ^= GF_W16_INLINE_MULT(log, alog, a0, b0);
- prod ^= a1b1;
- return prod;
-}
-
-/*
- * Composite field division trick (explained in 2007 tech report)
- *
- * Compute a / b = a*b^-1, where p(x) = x^2 + sx + 1
- *
- * let c = b^-1
- *
- * c*b = (s*b1c1+b1c0+b0c1)x+(b1c1+b0c0)
- *
- * want (s*b1c1+b1c0+b0c1) = 0 and (b1c1+b0c0) = 1
- *
- * let d = b1c1 and d+1 = b0c0
- *
- * solve s*b1c1+b1c0+b0c1 = 0
- *
- * solution: d = (b1b0^-1)(b1b0^-1+b0b1^-1+s)^-1
- *
- * c0 = (d+1)b0^-1
- * c1 = d*b1^-1
- *
- * a / b = a * c
- */
-
-static
-uint32_t
-gf_w32_composite_inverse(gf_t *gf, uint32_t a)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint16_t a0 = a & 0x0000ffff;
- uint16_t a1 = (a & 0xffff0000) >> 16;
- uint16_t c0, c1, d, tmp;
- uint32_t c;
- uint16_t a0inv, a1inv;
-
- if (a0 == 0) {
- a1inv = base_gf->inverse.w32(base_gf, a1);
- c0 = base_gf->multiply.w32(base_gf, a1inv, h->prim_poly);
- c1 = a1inv;
- } else if (a1 == 0) {
- c0 = base_gf->inverse.w32(base_gf, a0);
- c1 = 0;
- } else {
- a1inv = base_gf->inverse.w32(base_gf, a1);
- a0inv = base_gf->inverse.w32(base_gf, a0);
-
- d = base_gf->multiply.w32(base_gf, a1, a0inv);
-
- tmp = (base_gf->multiply.w32(base_gf, a1, a0inv) ^ base_gf->multiply.w32(base_gf, a0, a1inv) ^ h->prim_poly);
- tmp = base_gf->inverse.w32(base_gf, tmp);
-
- d = base_gf->multiply.w32(base_gf, d, tmp);
-
- c0 = base_gf->multiply.w32(base_gf, (d^1), a0inv);
- c1 = base_gf->multiply.w32(base_gf, d, a1inv);
- }
-
- c = c0 | (c1 << 16);
-
- return c;
-}
-
-static
-void
-gf_w32_composite_multiply_region(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint32_t b0 = val & 0x0000ffff;
- uint32_t b1 = (val & 0xffff0000) >> 16;
- uint32_t *s32, *d32, *top;
- uint16_t a0, a1, a1b1, *log, *alog;
- uint32_t prod;
- gf_region_data rd;
- struct gf_w32_composite_data *cd;
-
- cd = (struct gf_w32_composite_data *) h->private;
- log = cd->log;
- alog = cd->alog;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 4);
-
- s32 = rd.s_start;
- d32 = rd.d_start;
- top = rd.d_top;
-
- if (log == NULL) {
- if (xor) {
- while (d32 < top) {
- a0 = *s32 & 0x0000ffff;
- a1 = (*s32 & 0xffff0000) >> 16;
- a1b1 = base_gf->multiply.w32(base_gf, a1, b1);
-
- *d32 ^= ((base_gf->multiply.w32(base_gf, a0, b0) ^ a1b1) |
- ((base_gf->multiply.w32(base_gf, a1, b0) ^ base_gf->multiply.w32(base_gf, a0, b1) ^ base_gf->multiply.w32(base_gf, a1b1, h->prim_poly)) << 16));
- s32++;
- d32++;
- }
- } else {
- while (d32 < top) {
- a0 = *s32 & 0x0000ffff;
- a1 = (*s32 & 0xffff0000) >> 16;
- a1b1 = base_gf->multiply.w32(base_gf, a1, b1);
-
- *d32 = ((base_gf->multiply.w32(base_gf, a0, b0) ^ a1b1) |
- ((base_gf->multiply.w32(base_gf, a1, b0) ^ base_gf->multiply.w32(base_gf, a0, b1) ^ base_gf->multiply.w32(base_gf, a1b1, h->prim_poly)) << 16));
- s32++;
- d32++;
- }
- }
- } else {
- if (xor) {
- while (d32 < top) {
- a0 = *s32 & 0x0000ffff;
- a1 = (*s32 & 0xffff0000) >> 16;
- a1b1 = GF_W16_INLINE_MULT(log, alog, a1, b1);
-
- prod = GF_W16_INLINE_MULT(log, alog, a1, b0);
- prod ^= GF_W16_INLINE_MULT(log, alog, a0, b1);
- prod ^= GF_W16_INLINE_MULT(log, alog, a1b1, h->prim_poly);
- prod <<= 16;
- prod ^= GF_W16_INLINE_MULT(log, alog, a0, b0);
- prod ^= a1b1;
- *d32 ^= prod;
- s32++;
- d32++;
- }
- } else {
- while (d32 < top) {
- a0 = *s32 & 0x0000ffff;
- a1 = (*s32 & 0xffff0000) >> 16;
- a1b1 = GF_W16_INLINE_MULT(log, alog, a1, b1);
-
- prod = GF_W16_INLINE_MULT(log, alog, a1, b0);
- prod ^= GF_W16_INLINE_MULT(log, alog, a0, b1);
- prod ^= GF_W16_INLINE_MULT(log, alog, a1b1, h->prim_poly);
- prod <<= 16;
- prod ^= GF_W16_INLINE_MULT(log, alog, a0, b0);
- prod ^= a1b1;
-
- *d32 = prod;
- s32++;
- d32++;
- }
- }
- }
-}
-
-static
-void
-gf_w32_composite_multiply_region_alt(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint16_t val0 = val & 0x0000ffff;
- uint16_t val1 = (val & 0xffff0000) >> 16;
- gf_region_data rd;
- int sub_reg_size;
- uint8_t *slow, *shigh;
- uint8_t *dlow, *dhigh, *top;
-
- /* JSP: I want the two pointers aligned wrt each other on 16 byte
- boundaries. So I'm going to make sure that the area on
- which the two operate is a multiple of 32. Of course, that
- junks up the mapping, but so be it -- that's why we have extract_word.... */
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 32);
- gf_do_initial_region_alignment(&rd);
-
- slow = (uint8_t *) rd.s_start;
- dlow = (uint8_t *) rd.d_start;
- top = (uint8_t *) rd.d_top;
- sub_reg_size = (top - dlow)/2;
- shigh = slow + sub_reg_size;
- dhigh = dlow + sub_reg_size;
-
- base_gf->multiply_region.w32(base_gf, slow, dlow, val0, sub_reg_size, xor);
- base_gf->multiply_region.w32(base_gf, shigh, dlow, val1, sub_reg_size, 1);
- base_gf->multiply_region.w32(base_gf, slow, dhigh, val1, sub_reg_size, xor);
- base_gf->multiply_region.w32(base_gf, shigh, dhigh, val0, sub_reg_size, 1);
- base_gf->multiply_region.w32(base_gf, shigh, dhigh, base_gf->multiply.w32(base_gf, h->prim_poly, val1), sub_reg_size, 1);
-
- gf_do_final_region_alignment(&rd);
-}
-
-static
-int gf_w32_composite_init(gf_t *gf)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- struct gf_w32_composite_data *cd;
-
- if (h->base_gf == NULL) return 0;
-
- cd = (struct gf_w32_composite_data *) h->private;
- cd->log = gf_w16_get_log_table(h->base_gf);
- cd->alog = gf_w16_get_mult_alog_table(h->base_gf);
-
- if (h->region_type & GF_REGION_ALTMAP) {
- gf->multiply_region.w32 = gf_w32_composite_multiply_region_alt;
- } else {
- gf->multiply_region.w32 = gf_w32_composite_multiply_region;
- }
-
- if (cd->log == NULL) {
- gf->multiply.w32 = gf_w32_composite_multiply_recursive;
- } else {
- gf->multiply.w32 = gf_w32_composite_multiply_inline;
- }
- gf->divide.w32 = NULL;
- gf->inverse.w32 = gf_w32_composite_inverse;
-
- return 1;
-}
-
-
-
-int gf_w32_scratch_size(int mult_type, int region_type, int divide_type, int arg1, int arg2)
-{
- int issse3 = 0;
- int isneon = 0;
-
-#ifdef INTEL_SSSE3
- issse3 = 1;
-#endif
-#ifdef ARM_NEON
- isneon = 1;
-#endif
-
- switch(mult_type)
- {
- case GF_MULT_BYTWO_p:
- case GF_MULT_BYTWO_b:
- return sizeof(gf_internal_t) + sizeof(struct gf_w32_bytwo_data) + 64;
- break;
- case GF_MULT_GROUP:
- return sizeof(gf_internal_t) + sizeof(struct gf_w32_group_data) +
- sizeof(uint32_t) * (1 << arg1) +
- sizeof(uint32_t) * (1 << arg2) + 64;
- break;
- case GF_MULT_DEFAULT:
-
- case GF_MULT_SPLIT_TABLE:
- if (arg1 == 8 && arg2 == 8){
- return sizeof(gf_internal_t) + sizeof(struct gf_w32_split_8_8_data) + 64;
- }
- if ((arg1 == 16 && arg2 == 32) || (arg2 == 16 && arg1 == 32)) {
- return sizeof(gf_internal_t) + sizeof(struct gf_split_16_32_lazy_data) + 64;
- }
- if ((arg1 == 2 && arg2 == 32) || (arg2 == 2 && arg1 == 32)) {
- return sizeof(gf_internal_t) + sizeof(struct gf_split_2_32_lazy_data) + 64;
- }
- if ((arg1 == 8 && arg2 == 32) || (arg2 == 8 && arg1 == 32) ||
- (mult_type == GF_MULT_DEFAULT && !(issse3 || isneon))) {
- return sizeof(gf_internal_t) + sizeof(struct gf_split_8_32_lazy_data) + 64;
- }
- if ((arg1 == 4 && arg2 == 32) ||
- (arg2 == 4 && arg1 == 32) ||
- mult_type == GF_MULT_DEFAULT) {
- return sizeof(gf_internal_t) + sizeof(struct gf_split_4_32_lazy_data) + 64;
- }
- return 0;
- case GF_MULT_CARRY_FREE:
- return sizeof(gf_internal_t);
- break;
- case GF_MULT_CARRY_FREE_GK:
- return sizeof(gf_internal_t) + sizeof(uint64_t)*2;
- break;
- case GF_MULT_SHIFT:
- return sizeof(gf_internal_t);
- break;
- case GF_MULT_COMPOSITE:
- return sizeof(gf_internal_t) + sizeof(struct gf_w32_composite_data) + 64;
- break;
-
- default:
- return 0;
- }
- return 0;
-}
-
-int gf_w32_init(gf_t *gf)
-{
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
-
- /* Allen: set default primitive polynomial / irreducible polynomial if needed */
-
- if (h->prim_poly == 0) {
- if (h->mult_type == GF_MULT_COMPOSITE) {
- h->prim_poly = gf_composite_get_default_poly(h->base_gf);
- if (h->prim_poly == 0) return 0; /* This shouldn't happen */
- } else {
-
- /* Allen: use the following primitive polynomial to make carryless multiply work more efficiently for GF(2^32).*/
-
- /* h->prim_poly = 0xc5; */
-
- /* Allen: The following is the traditional primitive polynomial for GF(2^32) */
-
- h->prim_poly = 0x400007;
- }
- }
-
- /* No leading one */
-
- if(h->mult_type != GF_MULT_COMPOSITE) h->prim_poly &= 0xffffffff;
-
- gf->multiply.w32 = NULL;
- gf->divide.w32 = NULL;
- gf->inverse.w32 = NULL;
- gf->multiply_region.w32 = NULL;
-
- switch(h->mult_type) {
- case GF_MULT_CARRY_FREE: if (gf_w32_cfm_init(gf) == 0) return 0; break;
- case GF_MULT_CARRY_FREE_GK: if (gf_w32_cfmgk_init(gf) == 0) return 0; break;
- case GF_MULT_SHIFT: if (gf_w32_shift_init(gf) == 0) return 0; break;
- case GF_MULT_COMPOSITE: if (gf_w32_composite_init(gf) == 0) return 0; break;
- case GF_MULT_DEFAULT:
- case GF_MULT_SPLIT_TABLE: if (gf_w32_split_init(gf) == 0) return 0; break;
- case GF_MULT_GROUP: if (gf_w32_group_init(gf) == 0) return 0; break;
- case GF_MULT_BYTWO_p:
- case GF_MULT_BYTWO_b: if (gf_w32_bytwo_init(gf) == 0) return 0; break;
- default: return 0;
- }
- if (h->divide_type == GF_DIVIDE_EUCLID) {
- gf->divide.w32 = gf_w32_divide_from_inverse;
- gf->inverse.w32 = gf_w32_euclid;
- } else if (h->divide_type == GF_DIVIDE_MATRIX) {
- gf->divide.w32 = gf_w32_divide_from_inverse;
- gf->inverse.w32 = gf_w32_matrix;
- }
-
- if (gf->inverse.w32 != NULL && gf->divide.w32 == NULL) {
- gf->divide.w32 = gf_w32_divide_from_inverse;
- }
- if (gf->inverse.w32 == NULL && gf->divide.w32 != NULL) {
- gf->inverse.w32 = gf_w32_inverse_from_divide;
- }
- if (h->region_type == GF_REGION_CAUCHY) {
- gf->extract_word.w32 = gf_wgen_extract_word;
- gf->multiply_region.w32 = gf_wgen_cauchy_region;
- } else if (h->region_type & GF_REGION_ALTMAP) {
- if (h->mult_type == GF_MULT_COMPOSITE) {
- gf->extract_word.w32 = gf_w32_composite_extract_word;
- } else {
- gf->extract_word.w32 = gf_w32_split_extract_word;
- }
- } else {
- gf->extract_word.w32 = gf_w32_extract_word;
- }
- return 1;
-}
diff --git a/src/c/gf-complete/src/gf_w4.c b/src/c/gf-complete/src/gf_w4.c
deleted file mode 100644
index fcfc3b6..0000000
--- a/src/c/gf-complete/src/gf_w4.c
+++ /dev/null
@@ -1,2050 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_w4.c
- *
- * Routines for 4-bit Galois fields
- */
-
-#include "gf_int.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "gf_w4.h"
-
-#define AB2(ip, am1 ,am2, b, t1, t2) {\
- t1 = (b << 1) & am1;\
- t2 = b & am2; \
- t2 = ((t2 << 1) - (t2 >> (GF_FIELD_WIDTH-1))); \
- b = (t1 ^ (t2 & ip));}
-
-// ToDo(KMG/JSP): Why is 0x88 hard-coded?
-#define SSE_AB2(pp, m1, va, t1, t2) {\
- t1 = _mm_and_si128(_mm_slli_epi64(va, 1), m1); \
- t2 = _mm_and_si128(va, _mm_set1_epi8(0x88)); \
- t2 = _mm_sub_epi64 (_mm_slli_epi64(t2, 1), _mm_srli_epi64(t2, (GF_FIELD_WIDTH-1))); \
- va = _mm_xor_si128(t1, _mm_and_si128(t2, pp)); }
-
-/* ------------------------------------------------------------
- JSP: These are basic and work from multiple implementations.
- */
-
-static
-inline
-gf_val_32_t gf_w4_inverse_from_divide (gf_t *gf, gf_val_32_t a)
-{
- return gf->divide.w32(gf, 1, a);
-}
-
-static
-inline
-gf_val_32_t gf_w4_divide_from_inverse (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- b = gf->inverse.w32(gf, b);
- return gf->multiply.w32(gf, a, b);
-}
-
-static
-inline
-gf_val_32_t gf_w4_euclid (gf_t *gf, gf_val_32_t b)
-{
- gf_val_32_t e_i, e_im1, e_ip1;
- gf_val_32_t d_i, d_im1, d_ip1;
- gf_val_32_t y_i, y_im1, y_ip1;
- gf_val_32_t c_i;
-
- if (b == 0) return -1;
- e_im1 = ((gf_internal_t *) (gf->scratch))->prim_poly;
- e_i = b;
- d_im1 = 4;
- for (d_i = d_im1; ((1 << d_i) & e_i) == 0; d_i--) ;
- y_i = 1;
- y_im1 = 0;
-
- while (e_i != 1) {
- e_ip1 = e_im1;
- d_ip1 = d_im1;
- c_i = 0;
-
- while (d_ip1 >= d_i) {
- c_i ^= (1 << (d_ip1 - d_i));
- e_ip1 ^= (e_i << (d_ip1 - d_i));
- if (e_ip1 == 0) return 0;
- while ((e_ip1 & (1 << d_ip1)) == 0) d_ip1--;
- }
-
- y_ip1 = y_im1 ^ gf->multiply.w32(gf, c_i, y_i);
- y_im1 = y_i;
- y_i = y_ip1;
-
- e_im1 = e_i;
- d_im1 = d_i;
- e_i = e_ip1;
- d_i = d_ip1;
- }
-
- return y_i;
-}
-
-static
-gf_val_32_t gf_w4_extract_word(gf_t *gf, void *start, int bytes, int index)
-{
- uint8_t *r8, v;
-
- r8 = (uint8_t *) start;
- v = r8[index/2];
- if (index%2) {
- return v >> 4;
- } else {
- return v&0xf;
- }
-}
-
-
-static
-inline
-gf_val_32_t gf_w4_matrix (gf_t *gf, gf_val_32_t b)
-{
- return gf_bitmatrix_inverse(b, 4, ((gf_internal_t *) (gf->scratch))->prim_poly);
-}
-
-
-static
-inline
-gf_val_32_t
-gf_w4_shift_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- uint8_t product, i, pp;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- product = 0;
-
- for (i = 0; i < GF_FIELD_WIDTH; i++) {
- if (a & (1 << i)) product ^= (b << i);
- }
- for (i = (GF_FIELD_WIDTH*2-2); i >= GF_FIELD_WIDTH; i--) {
- if (product & (1 << i)) product ^= (pp << (i-GF_FIELD_WIDTH));
- }
- return product;
-}
-
-/* Ben: This function works, but it is 33% slower than the normal shift mult */
-
-static
-inline
-gf_val_32_t
-gf_w4_clm_multiply (gf_t *gf, gf_val_32_t a4, gf_val_32_t b4)
-{
- gf_val_32_t rv = 0;
-
-#if defined(INTEL_SSE4_PCLMUL)
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), a4, 0);
- b = _mm_insert_epi32 (a, b4, 0);
-
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0x1fULL));
-
- /* Do the initial multiply */
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- /* Ben/JSP: Do prim_poly reduction once. We are guaranteed that we will only
- have to do the reduction only once, because (w-2)/z == 1. Where
- z is equal to the number of zeros after the leading 1.
-
- _mm_clmulepi64_si128 is the carryless multiply operation. Here
- _mm_srli_epi64 shifts the result to the right by 4 bits. This allows
- us to multiply the prim_poly by the leading bits of the result. We
- then xor the result of that operation back with the result. */
-
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_epi64 (result, 4), 0);
- result = _mm_xor_si128 (result, w);
-
- /* Extracts 32 bit value from result. */
-
- rv = ((gf_val_32_t)_mm_extract_epi32(result, 0));
-#endif
- return rv;
-}
-
-static
-void
-gf_w4_multiply_region_from_single(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int
- xor)
-{
- gf_region_data rd;
- uint8_t *s8;
- uint8_t *d8;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 1);
- gf_do_initial_region_alignment(&rd);
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- if (xor) {
- while (d8 < ((uint8_t *) rd.d_top)) {
- *d8 ^= (gf->multiply.w32(gf, val, (*s8 & 0xf)) |
- ((gf->multiply.w32(gf, val, (*s8 >> 4))) << 4));
- d8++;
- s8++;
- }
- } else {
- while (d8 < ((uint8_t *) rd.d_top)) {
- *d8 = (gf->multiply.w32(gf, val, (*s8 & 0xf)) |
- ((gf->multiply.w32(gf, val, (*s8 >> 4))) << 4));
- d8++;
- s8++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-
-/* ------------------------------------------------------------
- IMPLEMENTATION: LOG_TABLE:
-
- JSP: This is a basic log-antilog implementation.
- I'm not going to spend any time optimizing it because the
- other techniques are faster for both single and region
- operations.
- */
-
-static
-inline
-gf_val_32_t
-gf_w4_log_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_logtable_data *ltd;
-
- ltd = (struct gf_logtable_data *) ((gf_internal_t *) (gf->scratch))->private;
- return (a == 0 || b == 0) ? 0 : ltd->antilog_tbl[(unsigned)(ltd->log_tbl[a] + ltd->log_tbl[b])];
-}
-
-static
-inline
-gf_val_32_t
-gf_w4_log_divide (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- int log_sum = 0;
- struct gf_logtable_data *ltd;
-
- if (a == 0 || b == 0) return 0;
- ltd = (struct gf_logtable_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- log_sum = ltd->log_tbl[a] - ltd->log_tbl[b];
- return (ltd->antilog_tbl_div[log_sum]);
-}
-
-static
-void
-gf_w4_log_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- int i;
- uint8_t lv, b, c;
- uint8_t *s8, *d8;
-
- struct gf_logtable_data *ltd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- ltd = (struct gf_logtable_data *) ((gf_internal_t *) (gf->scratch))->private;
- s8 = (uint8_t *) src;
- d8 = (uint8_t *) dest;
-
- lv = ltd->log_tbl[val];
-
- for (i = 0; i < bytes; i++) {
- c = (xor) ? d8[i] : 0;
- b = (s8[i] >> GF_FIELD_WIDTH);
- c ^= (b == 0) ? 0 : (ltd->antilog_tbl[lv + ltd->log_tbl[b]] << GF_FIELD_WIDTH);
- b = (s8[i] & 0xf);
- c ^= (b == 0) ? 0 : ltd->antilog_tbl[lv + ltd->log_tbl[b]];
- d8[i] = c;
- }
-}
-
-static
-int gf_w4_log_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_logtable_data *ltd;
- int i, b;
-
- h = (gf_internal_t *) gf->scratch;
- ltd = h->private;
-
- for (i = 0; i < GF_FIELD_SIZE; i++)
- ltd->log_tbl[i]=0;
-
- ltd->antilog_tbl_div = ltd->antilog_tbl + (GF_FIELD_SIZE-1);
- b = 1;
- i = 0;
- do {
- if (ltd->log_tbl[b] != 0 && i != 0) {
- fprintf(stderr, "Cannot construct log table: Polynomial is not primitive.\n\n");
- return 0;
- }
- ltd->log_tbl[b] = i;
- ltd->antilog_tbl[i] = b;
- ltd->antilog_tbl[i+GF_FIELD_SIZE-1] = b;
- b <<= 1;
- i++;
- if (b & GF_FIELD_SIZE) b = b ^ h->prim_poly;
- } while (b != 1);
-
- if (i != GF_FIELD_SIZE - 1) {
- _gf_errno = GF_E_LOGPOLY;
- return 0;
- }
-
- gf->inverse.w32 = gf_w4_inverse_from_divide;
- gf->divide.w32 = gf_w4_log_divide;
- gf->multiply.w32 = gf_w4_log_multiply;
- gf->multiply_region.w32 = gf_w4_log_multiply_region;
- return 1;
-}
-
-/* ------------------------------------------------------------
- IMPLEMENTATION: SINGLE TABLE: JSP.
- */
-
-static
-inline
-gf_val_32_t
-gf_w4_single_table_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_single_table_data *std;
-
- std = (struct gf_single_table_data *) ((gf_internal_t *) (gf->scratch))->private;
- return std->mult[a][b];
-}
-
-static
-inline
-gf_val_32_t
-gf_w4_single_table_divide (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_single_table_data *std;
-
- std = (struct gf_single_table_data *) ((gf_internal_t *) (gf->scratch))->private;
- return std->div[a][b];
-}
-
-static
-void
-gf_w4_single_table_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- int i;
- uint8_t b, c;
- uint8_t *s8, *d8;
-
- struct gf_single_table_data *std;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- std = (struct gf_single_table_data *) ((gf_internal_t *) (gf->scratch))->private;
- s8 = (uint8_t *) src;
- d8 = (uint8_t *) dest;
-
- for (i = 0; i < bytes; i++) {
- c = (xor) ? d8[i] : 0;
- b = (s8[i] >> GF_FIELD_WIDTH);
- c ^= (std->mult[val][b] << GF_FIELD_WIDTH);
- b = (s8[i] & 0xf);
- c ^= (std->mult[val][b]);
- d8[i] = c;
- }
-}
-
-#define MM_PRINT(s, r) { uint8_t blah[16]; printf("%-12s", s); _mm_storeu_si128((__m128i *)blah, r); for (i = 0; i < 16; i++) printf(" %02x", blah[i]); printf("\n"); }
-
-#ifdef INTEL_SSSE3
-static
-void
-gf_w4_single_table_sse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- gf_region_data rd;
- uint8_t *base, *sptr, *dptr, *top;
- __m128i tl, loset, r, va, th;
-
- struct gf_single_table_data *std;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
-
- std = (struct gf_single_table_data *) ((gf_internal_t *) (gf->scratch))->private;
- base = (uint8_t *) std->mult;
- base += (val << GF_FIELD_WIDTH);
-
- gf_do_initial_region_alignment(&rd);
-
- tl = _mm_loadu_si128((__m128i *)base);
- th = _mm_slli_epi64(tl, 4);
- loset = _mm_set1_epi8 (0x0f);
-
- sptr = rd.s_start;
- dptr = rd.d_start;
- top = rd.s_top;
-
- while (sptr < (uint8_t *) top) {
- va = _mm_load_si128 ((__m128i *)(sptr));
- r = _mm_and_si128 (loset, va);
- r = _mm_shuffle_epi8 (tl, r);
- va = _mm_srli_epi64 (va, 4);
- va = _mm_and_si128 (loset, va);
- va = _mm_shuffle_epi8 (th, va);
- r = _mm_xor_si128 (r, va);
- va = (xor) ? _mm_load_si128 ((__m128i *)(dptr)) : _mm_setzero_si128();
- r = _mm_xor_si128 (r, va);
- _mm_store_si128 ((__m128i *)(dptr), r);
- dptr += 16;
- sptr += 16;
- }
- gf_do_final_region_alignment(&rd);
-
-}
-#endif
-
-static
-int gf_w4_single_table_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_single_table_data *std;
- int a, b, prod;
-
-
- h = (gf_internal_t *) gf->scratch;
- std = (struct gf_single_table_data *)h->private;
-
- bzero(std->mult, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
- bzero(std->div, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
-
- for (a = 1; a < GF_FIELD_SIZE; a++) {
- for (b = 1; b < GF_FIELD_SIZE; b++) {
- prod = gf_w4_shift_multiply(gf, a, b);
- std->mult[a][b] = prod;
- std->div[prod][b] = a;
- }
- }
-
- gf->inverse.w32 = NULL;
- gf->divide.w32 = gf_w4_single_table_divide;
- gf->multiply.w32 = gf_w4_single_table_multiply;
- #if defined(INTEL_SSSE3) || defined(ARM_NEON)
- if(h->region_type & (GF_REGION_NOSIMD | GF_REGION_CAUCHY))
- gf->multiply_region.w32 = gf_w4_single_table_multiply_region;
- else
- #if defined(INTEL_SSSE3)
- gf->multiply_region.w32 = gf_w4_single_table_sse_multiply_region;
- #elif defined(ARM_NEON)
- gf_w4_neon_single_table_init(gf);
- #endif
- #else
- gf->multiply_region.w32 = gf_w4_single_table_multiply_region;
- if (h->region_type & GF_REGION_SIMD) return 0;
- #endif
-
- return 1;
-}
-
-/* ------------------------------------------------------------
- IMPLEMENTATION: DOUBLE TABLE: JSP.
- */
-
-static
-inline
-gf_val_32_t
-gf_w4_double_table_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_double_table_data *std;
-
- std = (struct gf_double_table_data *) ((gf_internal_t *) (gf->scratch))->private;
- return std->mult[a][b];
-}
-
-static
-inline
-gf_val_32_t
-gf_w4_double_table_divide (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_double_table_data *std;
-
- std = (struct gf_double_table_data *) ((gf_internal_t *) (gf->scratch))->private;
- return std->div[a][b];
-}
-
-static
-void
-gf_w4_double_table_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- int i;
- uint8_t *s8, *d8, *base;
- gf_region_data rd;
- struct gf_double_table_data *std;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 8);
-
- std = (struct gf_double_table_data *) ((gf_internal_t *) (gf->scratch))->private;
- s8 = (uint8_t *) src;
- d8 = (uint8_t *) dest;
- base = (uint8_t *) std->mult;
- base += (val << GF_DOUBLE_WIDTH);
-
- if (xor) {
- for (i = 0; i < bytes; i++) d8[i] ^= base[s8[i]];
- } else {
- for (i = 0; i < bytes; i++) d8[i] = base[s8[i]];
- }
-}
-
-static
-int gf_w4_double_table_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_double_table_data *std;
- int a, b, c, prod, ab;
- uint8_t mult[GF_FIELD_SIZE][GF_FIELD_SIZE];
-
- h = (gf_internal_t *) gf->scratch;
- std = (struct gf_double_table_data *)h->private;
-
- bzero(mult, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
- bzero(std->div, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
-
- for (a = 1; a < GF_FIELD_SIZE; a++) {
- for (b = 1; b < GF_FIELD_SIZE; b++) {
- prod = gf_w4_shift_multiply(gf, a, b);
- mult[a][b] = prod;
- std->div[prod][b] = a;
- }
- }
- bzero(std->mult, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE * GF_FIELD_SIZE);
- for (a = 0; a < GF_FIELD_SIZE; a++) {
- for (b = 0; b < GF_FIELD_SIZE; b++) {
- ab = mult[a][b];
- for (c = 0; c < GF_FIELD_SIZE; c++) {
- std->mult[a][(b << 4) | c] = ((ab << 4) | mult[a][c]);
- }
- }
- }
-
- gf->inverse.w32 = NULL;
- gf->divide.w32 = gf_w4_double_table_divide;
- gf->multiply.w32 = gf_w4_double_table_multiply;
- gf->multiply_region.w32 = gf_w4_double_table_multiply_region;
- return 1;
-}
-
-
-static
-inline
-gf_val_32_t
-gf_w4_quad_table_lazy_divide (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_quad_table_lazy_data *std;
-
- std = (struct gf_quad_table_lazy_data *) ((gf_internal_t *) (gf->scratch))->private;
- return std->div[a][b];
-}
-
-static
-inline
-gf_val_32_t
-gf_w4_quad_table_lazy_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_quad_table_lazy_data *std;
-
- std = (struct gf_quad_table_lazy_data *) ((gf_internal_t *) (gf->scratch))->private;
- return std->smult[a][b];
-}
-
-static
-inline
-gf_val_32_t
-gf_w4_quad_table_divide (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_quad_table_data *std;
-
- std = (struct gf_quad_table_data *) ((gf_internal_t *) (gf->scratch))->private;
- return std->div[a][b];
-}
-
-static
-inline
-gf_val_32_t
-gf_w4_quad_table_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_quad_table_data *std;
- uint16_t v;
-
- std = (struct gf_quad_table_data *) ((gf_internal_t *) (gf->scratch))->private;
- v = std->mult[a][b];
- return v;
-}
-
-static
-void
-gf_w4_quad_table_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint16_t *base;
- gf_region_data rd;
- struct gf_quad_table_data *std;
- struct gf_quad_table_lazy_data *ltd;
- gf_internal_t *h;
- int a, b, c, d, va, vb, vc, vd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) (gf->scratch);
- if (h->region_type & GF_REGION_LAZY) {
- ltd = (struct gf_quad_table_lazy_data *) ((gf_internal_t *) (gf->scratch))->private;
- base = ltd->mult;
- for (a = 0; a < 16; a++) {
- va = (ltd->smult[val][a] << 12);
- for (b = 0; b < 16; b++) {
- vb = (ltd->smult[val][b] << 8);
- for (c = 0; c < 16; c++) {
- vc = (ltd->smult[val][c] << 4);
- for (d = 0; d < 16; d++) {
- vd = ltd->smult[val][d];
- base[(a << 12) | (b << 8) | (c << 4) | d ] = (va | vb | vc | vd);
- }
- }
- }
- }
- } else {
- std = (struct gf_quad_table_data *) ((gf_internal_t *) (gf->scratch))->private;
- base = &(std->mult[val][0]);
- }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 8);
- gf_do_initial_region_alignment(&rd);
- gf_two_byte_region_table_multiply(&rd, base);
- gf_do_final_region_alignment(&rd);
-}
-
-static
-int gf_w4_quad_table_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_quad_table_data *std;
- int prod, val, a, b, c, d, va, vb, vc, vd;
- uint8_t mult[GF_FIELD_SIZE][GF_FIELD_SIZE];
-
- h = (gf_internal_t *) gf->scratch;
- std = (struct gf_quad_table_data *)h->private;
-
- bzero(mult, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
- bzero(std->div, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
-
- for (a = 1; a < GF_FIELD_SIZE; a++) {
- for (b = 1; b < GF_FIELD_SIZE; b++) {
- prod = gf_w4_shift_multiply(gf, a, b);
- mult[a][b] = prod;
- std->div[prod][b] = a;
- }
- }
-
- for (val = 0; val < 16; val++) {
- for (a = 0; a < 16; a++) {
- va = (mult[val][a] << 12);
- for (b = 0; b < 16; b++) {
- vb = (mult[val][b] << 8);
- for (c = 0; c < 16; c++) {
- vc = (mult[val][c] << 4);
- for (d = 0; d < 16; d++) {
- vd = mult[val][d];
- std->mult[val][(a << 12) | (b << 8) | (c << 4) | d ] = (va | vb | vc | vd);
- }
- }
- }
- }
- }
-
- gf->inverse.w32 = NULL;
- gf->divide.w32 = gf_w4_quad_table_divide;
- gf->multiply.w32 = gf_w4_quad_table_multiply;
- gf->multiply_region.w32 = gf_w4_quad_table_multiply_region;
- return 1;
-}
-static
-int gf_w4_quad_table_lazy_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_quad_table_lazy_data *std;
- int a, b, prod, loga, logb;
- uint8_t log_tbl[GF_FIELD_SIZE];
- uint8_t antilog_tbl[GF_FIELD_SIZE*2];
-
- h = (gf_internal_t *) gf->scratch;
- std = (struct gf_quad_table_lazy_data *)h->private;
-
- b = 1;
- for (a = 0; a < GF_MULT_GROUP_SIZE; a++) {
- log_tbl[b] = a;
- antilog_tbl[a] = b;
- antilog_tbl[a+GF_MULT_GROUP_SIZE] = b;
- b <<= 1;
- if (b & GF_FIELD_SIZE) {
- b = b ^ h->prim_poly;
- }
- }
-
- bzero(std->smult, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
- bzero(std->div, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
-
- for (a = 1; a < GF_FIELD_SIZE; a++) {
- loga = log_tbl[a];
- for (b = 1; b < GF_FIELD_SIZE; b++) {
- logb = log_tbl[b];
- prod = antilog_tbl[loga+logb];
- std->smult[a][b] = prod;
- std->div[prod][b] = a;
- }
- }
-
- gf->inverse.w32 = NULL;
- gf->divide.w32 = gf_w4_quad_table_lazy_divide;
- gf->multiply.w32 = gf_w4_quad_table_lazy_multiply;
- gf->multiply_region.w32 = gf_w4_quad_table_multiply_region;
- return 1;
-}
-
-static
-int gf_w4_table_init(gf_t *gf)
-{
- int rt;
- gf_internal_t *h;
- int simd = 0;
-
-#if defined(INTEL_SSSE3) || defined(ARM_NEON)
- simd = 1;
-#endif
-
- h = (gf_internal_t *) gf->scratch;
- rt = (h->region_type);
-
- if (h->mult_type == GF_MULT_DEFAULT && !simd) rt |= GF_REGION_DOUBLE_TABLE;
-
- if (rt & GF_REGION_DOUBLE_TABLE) {
- return gf_w4_double_table_init(gf);
- } else if (rt & GF_REGION_QUAD_TABLE) {
- if (rt & GF_REGION_LAZY) {
- return gf_w4_quad_table_lazy_init(gf);
- } else {
- return gf_w4_quad_table_init(gf);
- }
- } else {
- return gf_w4_single_table_init(gf);
- }
- return 0;
-}
-
-/* ------------------------------------------------------------
- JSP: GF_MULT_BYTWO_p and _b: See the paper.
-*/
-
-static
-inline
-gf_val_32_t
-gf_w4_bytwo_p_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- uint32_t prod, pp, pmask, amask;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
-
- prod = 0;
- pmask = 0x8;
- amask = 0x8;
-
- while (amask != 0) {
- if (prod & pmask) {
- prod = ((prod << 1) ^ pp);
- } else {
- prod <<= 1;
- }
- if (a & amask) prod ^= b;
- amask >>= 1;
- }
- return prod;
-}
-
-static
-inline
-gf_val_32_t
-gf_w4_bytwo_b_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- uint32_t prod, pp, bmask;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- prod = 0;
- bmask = 0x8;
-
- while (1) {
- if (a & 1) prod ^= b;
- a >>= 1;
- if (a == 0) return prod;
- if (b & bmask) {
- b = ((b << 1) ^ pp);
- } else {
- b <<= 1;
- }
- }
-}
-
-static
-void
-gf_w4_bytwo_p_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint64_t *s64, *d64, t1, t2, ta, prod, amask;
- gf_region_data rd;
- struct gf_bytwo_data *btd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- btd = (struct gf_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 8);
- gf_do_initial_region_alignment(&rd);
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
-
- if (xor) {
- while (s64 < (uint64_t *) rd.s_top) {
- prod = 0;
- amask = 0x8;
- ta = *s64;
- while (amask != 0) {
- AB2(btd->prim_poly, btd->mask1, btd->mask2, prod, t1, t2);
- if (val & amask) prod ^= ta;
- amask >>= 1;
- }
- *d64 ^= prod;
- d64++;
- s64++;
- }
- } else {
- while (s64 < (uint64_t *) rd.s_top) {
- prod = 0;
- amask = 0x8;
- ta = *s64;
- while (amask != 0) {
- AB2(btd->prim_poly, btd->mask1, btd->mask2, prod, t1, t2);
- if (val & amask) prod ^= ta;
- amask >>= 1;
- }
- *d64 = prod;
- d64++;
- s64++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-
-#define BYTWO_P_ONESTEP {\
- SSE_AB2(pp, m1, prod, t1, t2); \
- t1 = _mm_and_si128(v, one); \
- t1 = _mm_sub_epi8(t1, one); \
- t1 = _mm_and_si128(t1, ta); \
- prod = _mm_xor_si128(prod, t1); \
- v = _mm_srli_epi64(v, 1); }
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w4_bytwo_p_sse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- int i;
- uint8_t *s8, *d8;
- uint8_t vrev;
- __m128i pp, m1, ta, prod, t1, t2, tp, one, v;
- struct gf_bytwo_data *btd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- btd = (struct gf_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- vrev = 0;
- for (i = 0; i < 4; i++) {
- vrev <<= 1;
- if (!(val & (1 << i))) vrev |= 1;
- }
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
- one = _mm_set1_epi8(1);
-
- while (d8 < (uint8_t *) rd.d_top) {
- prod = _mm_setzero_si128();
- v = _mm_set1_epi8(vrev);
- ta = _mm_load_si128((__m128i *) s8);
- tp = (!xor) ? _mm_setzero_si128() : _mm_load_si128((__m128i *) d8);
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- _mm_store_si128((__m128i *) d8, _mm_xor_si128(prod, tp));
- d8 += 16;
- s8 += 16;
- }
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-/*
-static
-void
-gf_w4_bytwo_b_sse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
-#ifdef INTEL_SSE2
- uint8_t *d8, *s8, tb;
- __m128i pp, m1, m2, t1, t2, va, vb;
- struct gf_bytwo_data *btd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- btd = (struct gf_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
- m2 = _mm_set1_epi8((btd->mask2)&0xff);
-
- if (xor) {
- while (d8 < (uint8_t *) rd.d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- vb = _mm_load_si128 ((__m128i *)(d8));
- tb = val;
- while (1) {
- if (tb & 1) vb = _mm_xor_si128(vb, va);
- tb >>= 1;
- if (tb == 0) break;
- SSE_AB2(pp, m1, m2, va, t1, t2);
- }
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
- } else {
- while (d8 < (uint8_t *) rd.d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- vb = _mm_setzero_si128 ();
- tb = val;
- while (1) {
- if (tb & 1) vb = _mm_xor_si128(vb, va);
- tb >>= 1;
- if (tb == 0) break;
- t1 = _mm_and_si128(_mm_slli_epi64(va, 1), m1);
- t2 = _mm_and_si128(va, m2);
- t2 = _mm_sub_epi64 (
- _mm_slli_epi64(t2, 1), _mm_srli_epi64(t2, (GF_FIELD_WIDTH-1)));
- va = _mm_xor_si128(t1, _mm_and_si128(t2, pp));
- }
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
- }
- gf_do_final_region_alignment(&rd);
-#endif
-}
-*/
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w4_bytwo_b_sse_region_2_noxor(gf_region_data *rd, struct gf_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, t1, t2, va;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- SSE_AB2(pp, m1, va, t1, t2);
- _mm_store_si128((__m128i *)d8, va);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w4_bytwo_b_sse_region_2_xor(gf_region_data *rd, struct gf_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, t1, t2, va, vb;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- SSE_AB2(pp, m1, va, t1, t2);
- vb = _mm_load_si128 ((__m128i *)(d8));
- vb = _mm_xor_si128(vb, va);
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w4_bytwo_b_sse_region_4_noxor(gf_region_data *rd, struct gf_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, t1, t2, va;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- SSE_AB2(pp, m1, va, t1, t2);
- SSE_AB2(pp, m1, va, t1, t2);
- _mm_store_si128((__m128i *)d8, va);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w4_bytwo_b_sse_region_4_xor(gf_region_data *rd, struct gf_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, t1, t2, va, vb;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- SSE_AB2(pp, m1, va, t1, t2);
- SSE_AB2(pp, m1, va, t1, t2);
- vb = _mm_load_si128 ((__m128i *)(d8));
- vb = _mm_xor_si128(vb, va);
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w4_bytwo_b_sse_region_3_noxor(gf_region_data *rd, struct gf_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, t1, t2, va, vb;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- vb = va;
- SSE_AB2(pp, m1, va, t1, t2);
- va = _mm_xor_si128(va, vb);
- _mm_store_si128((__m128i *)d8, va);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w4_bytwo_b_sse_region_3_xor(gf_region_data *rd, struct gf_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, t1, t2, va, vb;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- vb = _mm_xor_si128(_mm_load_si128 ((__m128i *)(d8)), va);
- SSE_AB2(pp, m1, va, t1, t2);
- vb = _mm_xor_si128(vb, va);
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w4_bytwo_b_sse_region_5_noxor(gf_region_data *rd, struct gf_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, t1, t2, va, vb;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- vb = va;
- SSE_AB2(pp, m1, va, t1, t2);
- SSE_AB2(pp, m1, va, t1, t2);
- va = _mm_xor_si128(va, vb);
- _mm_store_si128((__m128i *)d8, va);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w4_bytwo_b_sse_region_5_xor(gf_region_data *rd, struct gf_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, t1, t2, va, vb;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- vb = _mm_xor_si128(_mm_load_si128 ((__m128i *)(d8)), va);
- SSE_AB2(pp, m1, va, t1, t2);
- SSE_AB2(pp, m1, va, t1, t2);
- vb = _mm_xor_si128(vb, va);
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w4_bytwo_b_sse_region_7_noxor(gf_region_data *rd, struct gf_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, t1, t2, va, vb;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- vb = va;
- SSE_AB2(pp, m1, va, t1, t2);
- vb = _mm_xor_si128(va, vb);
- SSE_AB2(pp, m1, va, t1, t2);
- va = _mm_xor_si128(va, vb);
- _mm_store_si128((__m128i *)d8, va);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w4_bytwo_b_sse_region_7_xor(gf_region_data *rd, struct gf_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, t1, t2, va, vb;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- vb = _mm_xor_si128(_mm_load_si128 ((__m128i *)(d8)), va);
- SSE_AB2(pp, m1, va, t1, t2);
- vb = _mm_xor_si128(vb, va);
- SSE_AB2(pp, m1, va, t1, t2);
- vb = _mm_xor_si128(vb, va);
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w4_bytwo_b_sse_region_6_noxor(gf_region_data *rd, struct gf_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, t1, t2, va, vb;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- SSE_AB2(pp, m1, va, t1, t2);
- vb = va;
- SSE_AB2(pp, m1, va, t1, t2);
- va = _mm_xor_si128(va, vb);
- _mm_store_si128((__m128i *)d8, va);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w4_bytwo_b_sse_region_6_xor(gf_region_data *rd, struct gf_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, t1, t2, va, vb;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- SSE_AB2(pp, m1, va, t1, t2);
- vb = _mm_xor_si128(_mm_load_si128 ((__m128i *)(d8)), va);
- SSE_AB2(pp, m1, va, t1, t2);
- vb = _mm_xor_si128(vb, va);
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w4_bytwo_b_sse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint8_t *d8, *s8, tb;
- __m128i pp, m1, m2, t1, t2, va, vb;
- struct gf_bytwo_data *btd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- btd = (struct gf_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- switch (val) {
- case 2:
- if (!xor) {
- gf_w4_bytwo_b_sse_region_2_noxor(&rd, btd);
- } else {
- gf_w4_bytwo_b_sse_region_2_xor(&rd, btd);
- }
- gf_do_final_region_alignment(&rd);
- return;
- case 3:
- if (!xor) {
- gf_w4_bytwo_b_sse_region_3_noxor(&rd, btd);
- } else {
- gf_w4_bytwo_b_sse_region_3_xor(&rd, btd);
- }
- gf_do_final_region_alignment(&rd);
- return;
- case 4:
- if (!xor) {
- gf_w4_bytwo_b_sse_region_4_noxor(&rd, btd);
- } else {
- gf_w4_bytwo_b_sse_region_4_xor(&rd, btd);
- }
- gf_do_final_region_alignment(&rd);
- return;
- case 5:
- if (!xor) {
- gf_w4_bytwo_b_sse_region_5_noxor(&rd, btd);
- } else {
- gf_w4_bytwo_b_sse_region_5_xor(&rd, btd);
- }
- gf_do_final_region_alignment(&rd);
- return;
- case 6:
- if (!xor) {
- gf_w4_bytwo_b_sse_region_6_noxor(&rd, btd);
- } else {
- gf_w4_bytwo_b_sse_region_6_xor(&rd, btd);
- }
- gf_do_final_region_alignment(&rd);
- return;
- case 7:
- if (!xor) {
- gf_w4_bytwo_b_sse_region_7_noxor(&rd, btd);
- } else {
- gf_w4_bytwo_b_sse_region_7_xor(&rd, btd);
- }
- gf_do_final_region_alignment(&rd);
- return;
- }
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
- m2 = _mm_set1_epi8((btd->mask2)&0xff);
-
- if (xor) {
- while (d8 < (uint8_t *) rd.d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- vb = _mm_load_si128 ((__m128i *)(d8));
- tb = val;
- while (1) {
- if (tb & 1) vb = _mm_xor_si128(vb, va);
- tb >>= 1;
- if (tb == 0) break;
- SSE_AB2(pp, m1, va, t1, t2);
- }
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
- } else {
- while (d8 < (uint8_t *) rd.d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- vb = _mm_setzero_si128 ();
- tb = val;
- while (1) {
- if (tb & 1) vb = _mm_xor_si128(vb, va);
- tb >>= 1;
- if (tb == 0) break;
- t1 = _mm_and_si128(_mm_slli_epi64(va, 1), m1);
- t2 = _mm_and_si128(va, m2);
- t2 = _mm_sub_epi64 (
- _mm_slli_epi64(t2, 1), _mm_srli_epi64(t2, (GF_FIELD_WIDTH-1)));
- va = _mm_xor_si128(t1, _mm_and_si128(t2, pp));
- }
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-static
-void
-gf_w4_bytwo_b_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint64_t *s64, *d64, t1, t2, ta, tb, prod;
- struct gf_bytwo_data *btd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- btd = (struct gf_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
-
- switch (val) {
- case 1:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- *d64 ^= *s64;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- *d64 = *s64;
- d64++;
- s64++;
- }
- }
- break;
- case 2:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= ta;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta;
- d64++;
- s64++;
- }
- }
- break;
- case 3:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 4:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= ta;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta;
- d64++;
- s64++;
- }
- }
- break;
- case 5:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta ^ prod;
- d64++;
- s64++;
- }
- }
- break;
- case 6:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta ^ prod;
- d64++;
- s64++;
- }
- }
- break;
- case 7:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta ^ prod;
- d64++;
- s64++;
- }
- }
- break;
- case 8:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= ta;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta;
- d64++;
- s64++;
- }
- }
- break;
- case 9:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 10:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 11:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 12:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 13:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 14:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 15:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- default:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- prod = *d64 ;
- ta = *s64;
- tb = val;
- while (1) {
- if (tb & 1) prod ^= ta;
- tb >>= 1;
- if (tb == 0) break;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- }
- *d64 = prod;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- prod = 0 ;
- ta = *s64;
- tb = val;
- while (1) {
- if (tb & 1) prod ^= ta;
- tb >>= 1;
- if (tb == 0) break;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- }
- *d64 = prod;
- d64++;
- s64++;
- }
- }
- break;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-static
-int gf_w4_bytwo_init(gf_t *gf)
-{
- gf_internal_t *h;
- uint64_t ip, m1, m2;
- struct gf_bytwo_data *btd;
-
- h = (gf_internal_t *) gf->scratch;
- btd = (struct gf_bytwo_data *) (h->private);
- ip = h->prim_poly & 0xf;
- m1 = 0xe;
- m2 = 0x8;
- btd->prim_poly = 0;
- btd->mask1 = 0;
- btd->mask2 = 0;
-
- while (ip != 0) {
- btd->prim_poly |= ip;
- btd->mask1 |= m1;
- btd->mask2 |= m2;
- ip <<= GF_FIELD_WIDTH;
- m1 <<= GF_FIELD_WIDTH;
- m2 <<= GF_FIELD_WIDTH;
- }
-
- if (h->mult_type == GF_MULT_BYTWO_p) {
- gf->multiply.w32 = gf_w4_bytwo_p_multiply;
- #ifdef INTEL_SSE2
- if (h->region_type & GF_REGION_NOSIMD)
- gf->multiply_region.w32 = gf_w4_bytwo_p_nosse_multiply_region;
- else
- gf->multiply_region.w32 = gf_w4_bytwo_p_sse_multiply_region;
- #else
- gf->multiply_region.w32 = gf_w4_bytwo_p_nosse_multiply_region;
- if (h->region_type & GF_REGION_SIMD)
- return 0;
- #endif
- } else {
- gf->multiply.w32 = gf_w4_bytwo_b_multiply;
- #ifdef INTEL_SSE2
- if (h->region_type & GF_REGION_NOSIMD)
- gf->multiply_region.w32 = gf_w4_bytwo_b_nosse_multiply_region;
- else
- gf->multiply_region.w32 = gf_w4_bytwo_b_sse_multiply_region;
- #else
- gf->multiply_region.w32 = gf_w4_bytwo_b_nosse_multiply_region;
- if (h->region_type & GF_REGION_SIMD)
- return 0;
- #endif
- }
- return 1;
-}
-
-
-static
-int gf_w4_cfm_init(gf_t *gf)
-{
-#if defined(INTEL_SSE4_PCLMUL)
- gf->multiply.w32 = gf_w4_clm_multiply;
- return 1;
-#elif defined(ARM_NEON)
- return gf_w4_neon_cfm_init(gf);
-#endif
- return 0;
-}
-
-static
-int gf_w4_shift_init(gf_t *gf)
-{
- gf->multiply.w32 = gf_w4_shift_multiply;
- return 1;
-}
-
-/* JSP: I'm putting all error-checking into gf_error_check(), so you don't
- have to do error checking in scratch_size or in init */
-
-int gf_w4_scratch_size(int mult_type, int region_type, int divide_type, int arg1, int arg2)
-{
- int issse3 = 0, isneon = 0;
-
-#ifdef INTEL_SSSE3
- issse3 = 1;
-#endif
-#ifdef ARM_NEON
- isneon = 1;
-#endif
-
- switch(mult_type)
- {
- case GF_MULT_BYTWO_p:
- case GF_MULT_BYTWO_b:
- return sizeof(gf_internal_t) + sizeof(struct gf_bytwo_data);
- break;
- case GF_MULT_DEFAULT:
- case GF_MULT_TABLE:
- if (region_type == GF_REGION_CAUCHY) {
- return sizeof(gf_internal_t) + sizeof(struct gf_single_table_data) + 64;
- }
-
- if (mult_type == GF_MULT_DEFAULT && !(issse3 || isneon))
- region_type = GF_REGION_DOUBLE_TABLE;
-
- if (region_type & GF_REGION_DOUBLE_TABLE) {
- return sizeof(gf_internal_t) + sizeof(struct gf_double_table_data) + 64;
- } else if (region_type & GF_REGION_QUAD_TABLE) {
- if ((region_type & GF_REGION_LAZY) == 0) {
- return sizeof(gf_internal_t) + sizeof(struct gf_quad_table_data) + 64;
- } else {
- return sizeof(gf_internal_t) + sizeof(struct gf_quad_table_lazy_data) + 64;
- }
- } else {
- return sizeof(gf_internal_t) + sizeof(struct gf_single_table_data) + 64;
- }
- break;
-
- case GF_MULT_LOG_TABLE:
- return sizeof(gf_internal_t) + sizeof(struct gf_logtable_data) + 64;
- break;
- case GF_MULT_CARRY_FREE:
- return sizeof(gf_internal_t);
- break;
- case GF_MULT_SHIFT:
- return sizeof(gf_internal_t);
- break;
- default:
- return 0;
- }
- return 0;
-}
-
-int
-gf_w4_init (gf_t *gf)
-{
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- if (h->prim_poly == 0) h->prim_poly = 0x13;
- h->prim_poly |= 0x10;
- gf->multiply.w32 = NULL;
- gf->divide.w32 = NULL;
- gf->inverse.w32 = NULL;
- gf->multiply_region.w32 = NULL;
- gf->extract_word.w32 = gf_w4_extract_word;
-
- switch(h->mult_type) {
- case GF_MULT_CARRY_FREE: if (gf_w4_cfm_init(gf) == 0) return 0; break;
- case GF_MULT_SHIFT: if (gf_w4_shift_init(gf) == 0) return 0; break;
- case GF_MULT_BYTWO_p:
- case GF_MULT_BYTWO_b: if (gf_w4_bytwo_init(gf) == 0) return 0; break;
- case GF_MULT_LOG_TABLE: if (gf_w4_log_init(gf) == 0) return 0; break;
- case GF_MULT_DEFAULT:
- case GF_MULT_TABLE: if (gf_w4_table_init(gf) == 0) return 0; break;
- default: return 0;
- }
-
- if (h->divide_type == GF_DIVIDE_EUCLID) {
- gf->divide.w32 = gf_w4_divide_from_inverse;
- gf->inverse.w32 = gf_w4_euclid;
- } else if (h->divide_type == GF_DIVIDE_MATRIX) {
- gf->divide.w32 = gf_w4_divide_from_inverse;
- gf->inverse.w32 = gf_w4_matrix;
- }
-
- if (gf->divide.w32 == NULL) {
- gf->divide.w32 = gf_w4_divide_from_inverse;
- if (gf->inverse.w32 == NULL) gf->inverse.w32 = gf_w4_euclid;
- }
-
- if (gf->inverse.w32 == NULL) gf->inverse.w32 = gf_w4_inverse_from_divide;
-
- if (h->region_type == GF_REGION_CAUCHY) {
- gf->multiply_region.w32 = gf_wgen_cauchy_region;
- gf->extract_word.w32 = gf_wgen_extract_word;
- }
-
- if (gf->multiply_region.w32 == NULL) {
- gf->multiply_region.w32 = gf_w4_multiply_region_from_single;
- }
-
- return 1;
-}
-
-/* Inline setup functions */
-
-uint8_t *gf_w4_get_mult_table(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_single_table_data *std;
-
- h = (gf_internal_t *) gf->scratch;
- if (gf->multiply.w32 == gf_w4_single_table_multiply) {
- std = (struct gf_single_table_data *) h->private;
- return (uint8_t *) std->mult;
- }
- return NULL;
-}
-
-uint8_t *gf_w4_get_div_table(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_single_table_data *std;
-
- h = (gf_internal_t *) gf->scratch;
- if (gf->multiply.w32 == gf_w4_single_table_multiply) {
- std = (struct gf_single_table_data *) h->private;
- return (uint8_t *) std->div;
- }
- return NULL;
-}
diff --git a/src/c/gf-complete/src/gf_w64.c b/src/c/gf-complete/src/gf_w64.c
deleted file mode 100644
index 303c4f3..0000000
--- a/src/c/gf-complete/src/gf_w64.c
+++ /dev/null
@@ -1,2218 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_w64.c
- *
- * Routines for 64-bit Galois fields
- */
-
-#include "gf_int.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "gf_w64.h"
-
-static
-inline
-gf_val_64_t gf_w64_inverse_from_divide (gf_t *gf, gf_val_64_t a)
-{
- return gf->divide.w64(gf, 1, a);
-}
-
-#define MM_PRINT8(s, r) { uint8_t blah[16], ii; printf("%-12s", s); _mm_storeu_si128((__m128i *)blah, r); for (ii = 0; ii < 16; ii += 1) printf("%s%02x", (ii%4==0) ? " " : " ", blah[15-ii]); printf("\n"); }
-
-static
-inline
-gf_val_64_t gf_w64_divide_from_inverse (gf_t *gf, gf_val_64_t a, gf_val_64_t b)
-{
- b = gf->inverse.w64(gf, b);
- return gf->multiply.w64(gf, a, b);
-}
-
-static
-void
-gf_w64_multiply_region_from_single(gf_t *gf, void *src, void *dest, gf_val_64_t val, int bytes, int
-xor)
-{
- int i;
- gf_val_64_t *s64;
- gf_val_64_t *d64;
-
- s64 = (gf_val_64_t *) src;
- d64 = (gf_val_64_t *) dest;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- if (xor) {
- for (i = 0; i < bytes/sizeof(gf_val_64_t); i++) {
- d64[i] ^= gf->multiply.w64(gf, val, s64[i]);
- }
- } else {
- for (i = 0; i < bytes/sizeof(gf_val_64_t); i++) {
- d64[i] = gf->multiply.w64(gf, val, s64[i]);
- }
- }
-}
-
-#if defined(INTEL_SSE4_PCLMUL)
-static
-void
-gf_w64_clm_multiply_region_from_single_2(gf_t *gf, void *src, void *dest, gf_val_64_t val, int bytes, int
-xor)
-{
- gf_val_64_t *s64, *d64, *top;
- gf_region_data rd;
-
- __m128i a, b;
- __m128i result, r1;
- __m128i prim_poly;
- __m128i w;
- __m128i m1, m3, m4;
- gf_internal_t * h = gf->scratch;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0xffffffffULL));
- b = _mm_insert_epi64 (_mm_setzero_si128(), val, 0);
- m1 = _mm_set_epi32(0, 0, 0, (uint32_t)0xffffffff);
- m3 = _mm_slli_si128(m1, 8);
- m4 = _mm_slli_si128(m3, 4);
-
- s64 = (gf_val_64_t *) rd.s_start;
- d64 = (gf_val_64_t *) rd.d_start;
- top = (gf_val_64_t *) rd.d_top;
-
- if (xor) {
- while (d64 != top) {
- a = _mm_load_si128((__m128i *) s64);
- result = _mm_clmulepi64_si128 (a, b, 1);
-
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m4), prim_poly, 1);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m3), prim_poly, 1);
- r1 = _mm_xor_si128 (result, w);
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m4), prim_poly, 1);
- result = _mm_xor_si128 (result, w);
-
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m3), prim_poly, 1);
- result = _mm_xor_si128 (result, w);
-
- result = _mm_unpacklo_epi64(result, r1);
-
- r1 = _mm_load_si128((__m128i *) d64);
- result = _mm_xor_si128(r1, result);
- _mm_store_si128((__m128i *) d64, result);
- d64 += 2;
- s64 += 2;
- }
- } else {
- while (d64 != top) {
-
- a = _mm_load_si128((__m128i *) s64);
- result = _mm_clmulepi64_si128 (a, b, 1);
-
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m4), prim_poly, 1);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m3), prim_poly, 1);
- r1 = _mm_xor_si128 (result, w);
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m4), prim_poly, 1);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m3), prim_poly, 1);
- result = _mm_xor_si128 (result, w);
-
- result = _mm_unpacklo_epi64(result, r1);
-
- _mm_store_si128((__m128i *) d64, result);
- d64 += 2;
- s64 += 2;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-#if defined(INTEL_SSE4_PCLMUL)
-static
-void
-gf_w64_clm_multiply_region_from_single_4(gf_t *gf, void *src, void *dest, gf_val_64_t val, int bytes, int
-xor)
-{
- gf_val_64_t *s64, *d64, *top;
- gf_region_data rd;
-
- __m128i a, b;
- __m128i result, r1;
- __m128i prim_poly;
- __m128i w;
- __m128i m1, m3, m4;
- gf_internal_t * h = gf->scratch;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0xffffffffULL));
- b = _mm_insert_epi64 (_mm_setzero_si128(), val, 0);
- m1 = _mm_set_epi32(0, 0, 0, (uint32_t)0xffffffff);
- m3 = _mm_slli_si128(m1, 8);
- m4 = _mm_slli_si128(m3, 4);
-
- s64 = (gf_val_64_t *) rd.s_start;
- d64 = (gf_val_64_t *) rd.d_start;
- top = (gf_val_64_t *) rd.d_top;
-
- if (xor) {
- while (d64 != top) {
- a = _mm_load_si128((__m128i *) s64);
- result = _mm_clmulepi64_si128 (a, b, 1);
-
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m4), prim_poly, 1);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m3), prim_poly, 1);
- r1 = _mm_xor_si128 (result, w);
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m4), prim_poly, 1);
- result = _mm_xor_si128 (result, w);
-
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m3), prim_poly, 1);
- result = _mm_xor_si128 (result, w);
-
- result = _mm_unpacklo_epi64(result, r1);
-
- r1 = _mm_load_si128((__m128i *) d64);
- result = _mm_xor_si128(r1, result);
- _mm_store_si128((__m128i *) d64, result);
- d64 += 2;
- s64 += 2;
- }
- } else {
- while (d64 != top) {
- a = _mm_load_si128((__m128i *) s64);
- result = _mm_clmulepi64_si128 (a, b, 1);
-
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m4), prim_poly, 1);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m3), prim_poly, 1);
- r1 = _mm_xor_si128 (result, w);
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m4), prim_poly, 1);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (_mm_and_si128(result, m3), prim_poly, 1);
- result = _mm_xor_si128 (result, w);
-
- result = _mm_unpacklo_epi64(result, r1);
-
- _mm_store_si128((__m128i *) d64, result);
- d64 += 2;
- s64 += 2;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-static
- inline
-gf_val_64_t gf_w64_euclid (gf_t *gf, gf_val_64_t b)
-{
- gf_val_64_t e_i, e_im1, e_ip1;
- gf_val_64_t d_i, d_im1, d_ip1;
- gf_val_64_t y_i, y_im1, y_ip1;
- gf_val_64_t c_i;
- gf_val_64_t one = 1;
-
- if (b == 0) return -1;
- e_im1 = ((gf_internal_t *) (gf->scratch))->prim_poly;
- e_i = b;
- d_im1 = 64;
- for (d_i = d_im1-1; ((one << d_i) & e_i) == 0; d_i--) ;
- y_i = 1;
- y_im1 = 0;
-
- while (e_i != 1) {
-
- e_ip1 = e_im1;
- d_ip1 = d_im1;
- c_i = 0;
-
- while (d_ip1 >= d_i) {
- c_i ^= (one << (d_ip1 - d_i));
- e_ip1 ^= (e_i << (d_ip1 - d_i));
- d_ip1--;
- if (e_ip1 == 0) return 0;
- while ((e_ip1 & (one << d_ip1)) == 0) d_ip1--;
- }
-
- y_ip1 = y_im1 ^ gf->multiply.w64(gf, c_i, y_i);
- y_im1 = y_i;
- y_i = y_ip1;
-
- e_im1 = e_i;
- d_im1 = d_i;
- e_i = e_ip1;
- d_i = d_ip1;
- }
-
- return y_i;
-}
-
-/* JSP: GF_MULT_SHIFT: The world's dumbest multiplication algorithm. I only
- include it for completeness. It does have the feature that it requires no
- extra memory.
-*/
-
-static
-inline
-gf_val_64_t
-gf_w64_shift_multiply (gf_t *gf, gf_val_64_t a64, gf_val_64_t b64)
-{
- uint64_t pl, pr, ppl, ppr, i, a, bl, br, one, lbit;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
-
- /* Allen: set leading one of primitive polynomial */
-
- a = a64;
- bl = 0;
- br = b64;
- one = 1;
- lbit = (one << 63);
-
- pl = 0; /* Allen: left side of product */
- pr = 0; /* Allen: right side of product */
-
- /* Allen: unlike the corresponding functions for smaller word sizes,
- * this loop carries out the initial carryless multiply by
- * shifting b itself rather than simply looking at successively
- * higher shifts of b */
-
- for (i = 0; i < GF_FIELD_WIDTH; i++) {
- if (a & (one << i)) {
- pl ^= bl;
- pr ^= br;
- }
-
- bl <<= 1;
- if (br & lbit) bl ^= 1;
- br <<= 1;
- }
-
- /* Allen: the name of the variable "one" is no longer descriptive at this point */
-
- one = lbit >> 1;
- ppl = (h->prim_poly >> 2) | one;
- ppr = (h->prim_poly << (GF_FIELD_WIDTH-2));
- while (one != 0) {
- if (pl & one) {
- pl ^= ppl;
- pr ^= ppr;
- }
- one >>= 1;
- ppr >>= 1;
- if (ppl & 1) ppr ^= lbit;
- ppl >>= 1;
- }
- return pr;
-}
-
-/*
- * ELM: Use the Intel carryless multiply instruction to do very fast 64x64 multiply.
- */
-
-static
-inline
-gf_val_64_t
-gf_w64_clm_multiply_2 (gf_t *gf, gf_val_64_t a64, gf_val_64_t b64)
-{
- gf_val_64_t rv = 0;
-
-#if defined(INTEL_SSE4_PCLMUL)
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i v, w;
- gf_internal_t * h = gf->scratch;
-
- a = _mm_insert_epi64 (_mm_setzero_si128(), a64, 0);
- b = _mm_insert_epi64 (a, b64, 0);
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0xffffffffULL));
- /* Do the initial multiply */
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- /* Mask off the high order 32 bits using subtraction of the polynomial.
- * NOTE: this part requires that the polynomial have at least 32 leading 0 bits.
- */
-
- /* Adam: We cant include the leading one in the 64 bit pclmul,
- so we need to split up the high 8 bytes of the result into two
- parts before we multiply them with the prim_poly.*/
-
- v = _mm_insert_epi32 (_mm_srli_si128 (result, 8), 0, 0);
- w = _mm_clmulepi64_si128 (prim_poly, v, 0);
- result = _mm_xor_si128 (result, w);
- v = _mm_insert_epi32 (_mm_srli_si128 (result, 8), 0, 1);
- w = _mm_clmulepi64_si128 (prim_poly, v, 0);
- result = _mm_xor_si128 (result, w);
-
- rv = ((gf_val_64_t)_mm_extract_epi64(result, 0));
-#endif
- return rv;
-}
-
-static
-inline
-gf_val_64_t
-gf_w64_clm_multiply_4 (gf_t *gf, gf_val_64_t a64, gf_val_64_t b64)
-{
- gf_val_64_t rv = 0;
-
-#if defined(INTEL_SSE4_PCLMUL)
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i v, w;
- gf_internal_t * h = gf->scratch;
-
- a = _mm_insert_epi64 (_mm_setzero_si128(), a64, 0);
- b = _mm_insert_epi64 (a, b64, 0);
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0xffffffffULL));
-
- /* Do the initial multiply */
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- v = _mm_insert_epi32 (_mm_srli_si128 (result, 8), 0, 0);
- w = _mm_clmulepi64_si128 (prim_poly, v, 0);
- result = _mm_xor_si128 (result, w);
- v = _mm_insert_epi32 (_mm_srli_si128 (result, 8), 0, 1);
- w = _mm_clmulepi64_si128 (prim_poly, v, 0);
- result = _mm_xor_si128 (result, w);
-
- v = _mm_insert_epi32 (_mm_srli_si128 (result, 8), 0, 0);
- w = _mm_clmulepi64_si128 (prim_poly, v, 0);
- result = _mm_xor_si128 (result, w);
- v = _mm_insert_epi32 (_mm_srli_si128 (result, 8), 0, 1);
- w = _mm_clmulepi64_si128 (prim_poly, v, 0);
- result = _mm_xor_si128 (result, w);
-
- rv = ((gf_val_64_t)_mm_extract_epi64(result, 0));
-#endif
- return rv;
-}
-
-
- void
-gf_w64_clm_multiply_region(gf_t *gf, void *src, void *dest, uint64_t val, int bytes, int xor)
-{
-#if defined(INTEL_SSE4_PCLMUL)
- gf_internal_t *h;
- uint8_t *s8, *d8, *dtop;
- gf_region_data rd;
- __m128i v, b, m, prim_poly, c, fr, w, result;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) gf->scratch;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
- dtop = (uint8_t *) rd.d_top;
-
- v = _mm_insert_epi64(_mm_setzero_si128(), val, 0);
- m = _mm_set_epi32(0, 0, 0xffffffff, 0xffffffff);
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0xffffffffULL));
-
- if (xor) {
- while (d8 != dtop) {
- b = _mm_load_si128((__m128i *) s8);
- result = _mm_clmulepi64_si128 (b, v, 0);
- c = _mm_insert_epi32 (_mm_srli_si128 (result, 8), 0, 0);
- w = _mm_clmulepi64_si128 (prim_poly, c, 0);
- result = _mm_xor_si128 (result, w);
- c = _mm_insert_epi32 (_mm_srli_si128 (result, 8), 0, 1);
- w = _mm_clmulepi64_si128 (prim_poly, c, 0);
- fr = _mm_xor_si128 (result, w);
- fr = _mm_and_si128 (fr, m);
-
- result = _mm_clmulepi64_si128 (b, v, 1);
- c = _mm_insert_epi32 (_mm_srli_si128 (result, 8), 0, 0);
- w = _mm_clmulepi64_si128 (prim_poly, c, 0);
- result = _mm_xor_si128 (result, w);
- c = _mm_insert_epi32 (_mm_srli_si128 (result, 8), 0, 1);
- w = _mm_clmulepi64_si128 (prim_poly, c, 0);
- result = _mm_xor_si128 (result, w);
- result = _mm_slli_si128 (result, 8);
- fr = _mm_xor_si128 (result, fr);
- result = _mm_load_si128((__m128i *) d8);
- fr = _mm_xor_si128 (result, fr);
-
- _mm_store_si128((__m128i *) d8, fr);
- d8 += 16;
- s8 += 16;
- }
- } else {
- while (d8 < dtop) {
- b = _mm_load_si128((__m128i *) s8);
- result = _mm_clmulepi64_si128 (b, v, 0);
- c = _mm_insert_epi32 (_mm_srli_si128 (result, 8), 0, 0);
- w = _mm_clmulepi64_si128 (prim_poly, c, 0);
- result = _mm_xor_si128 (result, w);
- c = _mm_insert_epi32 (_mm_srli_si128 (result, 8), 0, 1);
- w = _mm_clmulepi64_si128 (prim_poly, c, 0);
- fr = _mm_xor_si128 (result, w);
- fr = _mm_and_si128 (fr, m);
-
- result = _mm_clmulepi64_si128 (b, v, 1);
- c = _mm_insert_epi32 (_mm_srli_si128 (result, 8), 0, 0);
- w = _mm_clmulepi64_si128 (prim_poly, c, 0);
- result = _mm_xor_si128 (result, w);
- c = _mm_insert_epi32 (_mm_srli_si128 (result, 8), 0, 1);
- w = _mm_clmulepi64_si128 (prim_poly, c, 0);
- result = _mm_xor_si128 (result, w);
- result = _mm_slli_si128 (result, 8);
- fr = _mm_xor_si128 (result, fr);
-
- _mm_store_si128((__m128i *) d8, fr);
- d8 += 16;
- s8 += 16;
- }
- }
- gf_do_final_region_alignment(&rd);
-#endif
-}
-
-void
-gf_w64_split_4_64_lazy_multiply_region(gf_t *gf, void *src, void *dest, uint64_t val, int bytes, int xor)
-{
- gf_internal_t *h;
- struct gf_split_4_64_lazy_data *ld;
- int i, j, k;
- uint64_t pp, v, s, *s64, *d64, *top;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- ld = (struct gf_split_4_64_lazy_data *) h->private;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 8);
- gf_do_initial_region_alignment(&rd);
-
- if (ld->last_value != val) {
- v = val;
- for (i = 0; i < 16; i++) {
- ld->tables[i][0] = 0;
- for (j = 1; j < 16; j <<= 1) {
- for (k = 0; k < j; k++) {
- ld->tables[i][k^j] = (v ^ ld->tables[i][k]);
- }
- v = (v & GF_FIRST_BIT) ? ((v << 1) ^ pp) : (v << 1);
- }
- }
- }
- ld->last_value = val;
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top = (uint64_t *) rd.d_top;
-
- while (d64 != top) {
- v = (xor) ? *d64 : 0;
- s = *s64;
- i = 0;
- while (s != 0) {
- v ^= ld->tables[i][s&0xf];
- s >>= 4;
- i++;
- }
- *d64 = v;
- d64++;
- s64++;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-static
-inline
-uint64_t
-gf_w64_split_8_8_multiply (gf_t *gf, uint64_t a64, uint64_t b64)
-{
- uint64_t product, i, j, mask, tb;
- gf_internal_t *h;
- struct gf_split_8_8_data *d8;
-
- h = (gf_internal_t *) gf->scratch;
- d8 = (struct gf_split_8_8_data *) h->private;
- product = 0;
- mask = 0xff;
-
- for (i = 0; a64 != 0; i++) {
- tb = b64;
- for (j = 0; tb != 0; j++) {
- product ^= d8->tables[i+j][a64&mask][tb&mask];
- tb >>= 8;
- }
- a64 >>= 8;
- }
- return product;
-}
-
-void
-gf_w64_split_8_64_lazy_multiply_region(gf_t *gf, void *src, void *dest, uint64_t val, int bytes, int xor)
-{
- gf_internal_t *h;
- struct gf_split_8_64_lazy_data *ld;
- int i, j, k;
- uint64_t pp, v, s, *s64, *d64, *top;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- ld = (struct gf_split_8_64_lazy_data *) h->private;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 4);
- gf_do_initial_region_alignment(&rd);
-
- if (ld->last_value != val) {
- v = val;
- for (i = 0; i < 8; i++) {
- ld->tables[i][0] = 0;
- for (j = 1; j < 256; j <<= 1) {
- for (k = 0; k < j; k++) {
- ld->tables[i][k^j] = (v ^ ld->tables[i][k]);
- }
- v = (v & GF_FIRST_BIT) ? ((v << 1) ^ pp) : (v << 1);
- }
- }
- }
- ld->last_value = val;
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top = (uint64_t *) rd.d_top;
-
- while (d64 != top) {
- v = (xor) ? *d64 : 0;
- s = *s64;
- i = 0;
- while (s != 0) {
- v ^= ld->tables[i][s&0xff];
- s >>= 8;
- i++;
- }
- *d64 = v;
- d64++;
- s64++;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-void
-gf_w64_split_16_64_lazy_multiply_region(gf_t *gf, void *src, void *dest, uint64_t val, int bytes, int xor)
-{
- gf_internal_t *h;
- struct gf_split_16_64_lazy_data *ld;
- int i, j, k;
- uint64_t pp, v, s, *s64, *d64, *top;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- ld = (struct gf_split_16_64_lazy_data *) h->private;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 4);
- gf_do_initial_region_alignment(&rd);
-
- if (ld->last_value != val) {
- v = val;
- for (i = 0; i < 4; i++) {
- ld->tables[i][0] = 0;
- for (j = 1; j < (1<<16); j <<= 1) {
- for (k = 0; k < j; k++) {
- ld->tables[i][k^j] = (v ^ ld->tables[i][k]);
- }
- v = (v & GF_FIRST_BIT) ? ((v << 1) ^ pp) : (v << 1);
- }
- }
- }
- ld->last_value = val;
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top = (uint64_t *) rd.d_top;
-
- while (d64 != top) {
- v = (xor) ? *d64 : 0;
- s = *s64;
- i = 0;
- while (s != 0) {
- v ^= ld->tables[i][s&0xffff];
- s >>= 16;
- i++;
- }
- *d64 = v;
- d64++;
- s64++;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-static
-int gf_w64_shift_init(gf_t *gf)
-{
- gf->multiply.w64 = gf_w64_shift_multiply;
- gf->inverse.w64 = gf_w64_euclid;
- gf->multiply_region.w64 = gf_w64_multiply_region_from_single;
- return 1;
-}
-
-static
-int gf_w64_cfm_init(gf_t *gf)
-{
- gf->inverse.w64 = gf_w64_euclid;
- gf->multiply_region.w64 = gf_w64_multiply_region_from_single;
-
-#if defined(INTEL_SSE4_PCLMUL)
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
-
- if ((0xfffffffe00000000ULL & h->prim_poly) == 0){
- gf->multiply.w64 = gf_w64_clm_multiply_2;
- gf->multiply_region.w64 = gf_w64_clm_multiply_region_from_single_2;
- }else if((0xfffe000000000000ULL & h->prim_poly) == 0){
- gf->multiply.w64 = gf_w64_clm_multiply_4;
- gf->multiply_region.w64 = gf_w64_clm_multiply_region_from_single_4;
- } else {
- return 0;
- }
- return 1;
-#endif
-
- return 0;
-}
-
-static
-void
-gf_w64_group_set_shift_tables(uint64_t *shift, uint64_t val, gf_internal_t *h)
-{
- int i;
- uint64_t j;
- uint64_t one = 1;
- int g_s;
-
- g_s = h->arg1;
- shift[0] = 0;
-
- for (i = 1; i < (1 << g_s); i <<= 1) {
- for (j = 0; j < i; j++) shift[i|j] = shift[j]^val;
- if (val & (one << 63)) {
- val <<= 1;
- val ^= h->prim_poly;
- } else {
- val <<= 1;
- }
- }
-}
-
-static
-inline
-gf_val_64_t
-gf_w64_group_multiply(gf_t *gf, gf_val_64_t a, gf_val_64_t b)
-{
- uint64_t top, bot, mask, tp;
- int g_s, g_r, lshift, rshift;
- struct gf_w64_group_data *gd;
-
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- g_s = h->arg1;
- g_r = h->arg2;
- gd = (struct gf_w64_group_data *) h->private;
- gf_w64_group_set_shift_tables(gd->shift, b, h);
-
- mask = ((1 << g_s) - 1);
- top = 0;
- bot = gd->shift[a&mask];
- a >>= g_s;
-
- if (a == 0) return bot;
- lshift = 0;
- rshift = 64;
-
- do { /* Shifting out is straightfoward */
- lshift += g_s;
- rshift -= g_s;
- tp = gd->shift[a&mask];
- top ^= (tp >> rshift);
- bot ^= (tp << lshift);
- a >>= g_s;
- } while (a != 0);
-
- /* Reducing is a bit gross, because I don't zero out the index bits of top.
- The reason is that we throw top away. Even better, that last (tp >> rshift)
- is going to be ignored, so it doesn't matter how (tp >> 64) is implemented. */
-
- lshift = ((lshift-1) / g_r) * g_r;
- rshift = 64 - lshift;
- mask = (1 << g_r) - 1;
- while (lshift >= 0) {
- tp = gd->reduce[(top >> lshift) & mask];
- top ^= (tp >> rshift);
- bot ^= (tp << lshift);
- lshift -= g_r;
- rshift += g_r;
- }
-
- return bot;
-}
-
-static
-void gf_w64_group_multiply_region(gf_t *gf, void *src, void *dest, gf_val_64_t val, int bytes, int xor)
-{
- int i, fzb;
- uint64_t a64, smask, rmask, top, bot, tp;
- int lshift, rshift, g_s, g_r;
- gf_region_data rd;
- uint64_t *s64, *d64, *dtop;
- struct gf_w64_group_data *gd;
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gd = (struct gf_w64_group_data *) h->private;
- g_s = h->arg1;
- g_r = h->arg2;
- gf_w64_group_set_shift_tables(gd->shift, val, h);
-
- for (i = 63; !(val & (1ULL << i)); i--) ;
- i += g_s;
-
- /* i is the bit position of the first zero bit in any element of
- gd->shift[] */
-
- if (i > 64) i = 64;
-
- fzb = i;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 4);
-
- gf_do_initial_region_alignment(&rd);
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- dtop = (uint64_t *) rd.d_top;
-
- smask = (1 << g_s) - 1;
- rmask = (1 << g_r) - 1;
-
- while (d64 < dtop) {
- a64 = *s64;
-
- top = 0;
- bot = gd->shift[a64&smask];
- a64 >>= g_s;
- i = fzb;
-
- if (a64 != 0) {
- lshift = 0;
- rshift = 64;
-
- do {
- lshift += g_s;
- rshift -= g_s;
- tp = gd->shift[a64&smask];
- top ^= (tp >> rshift);
- bot ^= (tp << lshift);
- a64 >>= g_s;
- } while (a64 != 0);
- i += lshift;
-
- lshift = ((i-64-1) / g_r) * g_r;
- rshift = 64 - lshift;
- while (lshift >= 0) {
- tp = gd->reduce[(top >> lshift) & rmask];
- top ^= (tp >> rshift);
- bot ^= (tp << lshift);
- lshift -= g_r;
- rshift += g_r;
- }
- }
-
- if (xor) bot ^= *d64;
- *d64 = bot;
- d64++;
- s64++;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-static
-inline
-gf_val_64_t
-gf_w64_group_s_equals_r_multiply(gf_t *gf, gf_val_64_t a, gf_val_64_t b)
-{
- int leftover, rs;
- uint64_t p, l, ind, a64;
- int bits_left;
- int g_s;
-
- struct gf_w64_group_data *gd;
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- g_s = h->arg1;
-
- gd = (struct gf_w64_group_data *) h->private;
- gf_w64_group_set_shift_tables(gd->shift, b, h);
-
- leftover = 64 % g_s;
- if (leftover == 0) leftover = g_s;
-
- rs = 64 - leftover;
- a64 = a;
- ind = a64 >> rs;
- a64 <<= leftover;
- p = gd->shift[ind];
-
- bits_left = rs;
- rs = 64 - g_s;
-
- while (bits_left > 0) {
- bits_left -= g_s;
- ind = a64 >> rs;
- a64 <<= g_s;
- l = p >> rs;
- p = (gd->shift[ind] ^ gd->reduce[l] ^ (p << g_s));
- }
- return p;
-}
-
-static
-void gf_w64_group_s_equals_r_multiply_region(gf_t *gf, void *src, void *dest, gf_val_64_t val, int bytes, int xor)
-{
- int leftover, rs;
- uint64_t p, l, ind, a64;
- int bits_left;
- int g_s;
- gf_region_data rd;
- uint64_t *s64, *d64, *top;
- struct gf_w64_group_data *gd;
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gd = (struct gf_w64_group_data *) h->private;
- g_s = h->arg1;
- gf_w64_group_set_shift_tables(gd->shift, val, h);
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 4);
- gf_do_initial_region_alignment(&rd);
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top = (uint64_t *) rd.d_top;
-
- leftover = 64 % g_s;
- if (leftover == 0) leftover = g_s;
-
- while (d64 < top) {
- rs = 64 - leftover;
- a64 = *s64;
- ind = a64 >> rs;
- a64 <<= leftover;
- p = gd->shift[ind];
-
- bits_left = rs;
- rs = 64 - g_s;
-
- while (bits_left > 0) {
- bits_left -= g_s;
- ind = a64 >> rs;
- a64 <<= g_s;
- l = p >> rs;
- p = (gd->shift[ind] ^ gd->reduce[l] ^ (p << g_s));
- }
- if (xor) p ^= *d64;
- *d64 = p;
- d64++;
- s64++;
- }
- gf_do_final_region_alignment(&rd);
-}
-
-
-static
-int gf_w64_group_init(gf_t *gf)
-{
- uint64_t i, j, p, index;
- struct gf_w64_group_data *gd;
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- int g_r, g_s;
-
- g_s = h->arg1;
- g_r = h->arg2;
-
- gd = (struct gf_w64_group_data *) h->private;
- gd->shift = (uint64_t *) (&(gd->memory));
- gd->reduce = gd->shift + (1 << g_s);
-
- gd->reduce[0] = 0;
- for (i = 0; i < (1 << g_r); i++) {
- p = 0;
- index = 0;
- for (j = 0; j < g_r; j++) {
- if (i & (1 << j)) {
- p ^= (h->prim_poly << j);
- index ^= (1 << j);
- if (j > 0) index ^= (h->prim_poly >> (64-j));
- }
- }
- gd->reduce[index] = p;
- }
-
- if (g_s == g_r) {
- gf->multiply.w64 = gf_w64_group_s_equals_r_multiply;
- gf->multiply_region.w64 = gf_w64_group_s_equals_r_multiply_region;
- } else {
- gf->multiply.w64 = gf_w64_group_multiply;
- gf->multiply_region.w64 = gf_w64_group_multiply_region;
- }
- gf->divide.w64 = NULL;
- gf->inverse.w64 = gf_w64_euclid;
-
- return 1;
-}
-
-static
-gf_val_64_t gf_w64_extract_word(gf_t *gf, void *start, int bytes, int index)
-{
- uint64_t *r64, rv;
-
- r64 = (uint64_t *) start;
- rv = r64[index];
- return rv;
-}
-
-static
-gf_val_64_t gf_w64_composite_extract_word(gf_t *gf, void *start, int bytes, int index)
-{
- int sub_size;
- gf_internal_t *h;
- uint8_t *r8, *top;
- uint64_t a, b, *r64;
- gf_region_data rd;
-
- h = (gf_internal_t *) gf->scratch;
- gf_set_region_data(&rd, gf, start, start, bytes, 0, 0, 32);
- r64 = (uint64_t *) start;
- if (r64 + index < (uint64_t *) rd.d_start) return r64[index];
- if (r64 + index >= (uint64_t *) rd.d_top) return r64[index];
- index -= (((uint64_t *) rd.d_start) - r64);
- r8 = (uint8_t *) rd.d_start;
- top = (uint8_t *) rd.d_top;
- sub_size = (top-r8)/2;
-
- a = h->base_gf->extract_word.w32(h->base_gf, r8, sub_size, index);
- b = h->base_gf->extract_word.w32(h->base_gf, r8+sub_size, sub_size, index);
- return (a | ((uint64_t)b << 32));
-}
-
-static
-gf_val_64_t gf_w64_split_extract_word(gf_t *gf, void *start, int bytes, int index)
-{
- int i;
- uint64_t *r64, rv;
- uint8_t *r8;
- gf_region_data rd;
-
- gf_set_region_data(&rd, gf, start, start, bytes, 0, 0, 128);
- r64 = (uint64_t *) start;
- if (r64 + index < (uint64_t *) rd.d_start) return r64[index];
- if (r64 + index >= (uint64_t *) rd.d_top) return r64[index];
- index -= (((uint64_t *) rd.d_start) - r64);
- r8 = (uint8_t *) rd.d_start;
- r8 += ((index & 0xfffffff0)*8);
- r8 += (index & 0xf);
- r8 += 112;
- rv =0;
- for (i = 0; i < 8; i++) {
- rv <<= 8;
- rv |= *r8;
- r8 -= 16;
- }
- return rv;
-}
-
-static
-inline
-gf_val_64_t
-gf_w64_bytwo_b_multiply (gf_t *gf, gf_val_64_t a, gf_val_64_t b)
-{
- uint64_t prod, pp, bmask;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- prod = 0;
- bmask = 0x8000000000000000ULL;
-
- while (1) {
- if (a & 1) prod ^= b;
- a >>= 1;
- if (a == 0) return prod;
- if (b & bmask) {
- b = ((b << 1) ^ pp);
- } else {
- b <<= 1;
- }
- }
-}
-
-static
-inline
-gf_val_64_t
-gf_w64_bytwo_p_multiply (gf_t *gf, gf_val_64_t a, gf_val_64_t b)
-{
- uint64_t prod, pp, pmask, amask;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- prod = 0;
-
- /* changed from declare then shift to just declare.*/
-
- pmask = 0x8000000000000000ULL;
- amask = 0x8000000000000000ULL;
-
- while (amask != 0) {
- if (prod & pmask) {
- prod = ((prod << 1) ^ pp);
- } else {
- prod <<= 1;
- }
- if (a & amask) prod ^= b;
- amask >>= 1;
- }
- return prod;
-}
-
-static
-void
-gf_w64_bytwo_p_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_64_t val, int bytes, int xor)
-{
- uint64_t *s64, *d64, ta, prod, amask, pmask, pp;
- gf_region_data rd;
- gf_internal_t *h;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 8);
- gf_do_initial_region_alignment(&rd);
-
- h = (gf_internal_t *) gf->scratch;
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- pmask = 0x80000000;
- pmask <<= 32;
- pp = h->prim_poly;
-
- if (xor) {
- while (s64 < (uint64_t *) rd.s_top) {
- prod = 0;
- amask = pmask;
- ta = *s64;
- while (amask != 0) {
- prod = (prod & pmask) ? ((prod << 1) ^ pp) : (prod << 1);
- if (val & amask) prod ^= ta;
- amask >>= 1;
- }
- *d64 ^= prod;
- d64++;
- s64++;
- }
- } else {
- while (s64 < (uint64_t *) rd.s_top) {
- prod = 0;
- amask = pmask;
- ta = *s64;
- while (amask != 0) {
- prod = (prod & pmask) ? ((prod << 1) ^ pp) : (prod << 1);
- if (val & amask) prod ^= ta;
- amask >>= 1;
- }
- *d64 = prod;
- d64++;
- s64++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-
-static
-void
-gf_w64_bytwo_b_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_64_t val, int bytes, int xor)
-{
- uint64_t *s64, *d64, ta, tb, prod, bmask, pp;
- gf_region_data rd;
- gf_internal_t *h;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 8);
- gf_do_initial_region_alignment(&rd);
-
- h = (gf_internal_t *) gf->scratch;
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- bmask = 0x80000000;
- bmask <<= 32;
- pp = h->prim_poly;
-
- if (xor) {
- while (s64 < (uint64_t *) rd.s_top) {
- prod = 0;
- tb = val;
- ta = *s64;
- while (1) {
- if (tb & 1) prod ^= ta;
- tb >>= 1;
- if (tb == 0) break;
- ta = (ta & bmask) ? ((ta << 1) ^ pp) : (ta << 1);
- }
- *d64 ^= prod;
- d64++;
- s64++;
- }
- } else {
- while (s64 < (uint64_t *) rd.s_top) {
- prod = 0;
- tb = val;
- ta = *s64;
- while (1) {
- if (tb & 1) prod ^= ta;
- tb >>= 1;
- if (tb == 0) break;
- ta = (ta & bmask) ? ((ta << 1) ^ pp) : (ta << 1);
- }
- *d64 = prod;
- d64++;
- s64++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-
-#define SSE_AB2(pp, m1 ,m2, va, t1, t2) {\
- t1 = _mm_and_si128(_mm_slli_epi64(va, 1), m1); \
- t2 = _mm_and_si128(va, m2); \
- t2 = _mm_sub_epi64 (_mm_slli_epi64(t2, 1), _mm_srli_epi64(t2, (GF_FIELD_WIDTH-1))); \
- va = _mm_xor_si128(t1, _mm_and_si128(t2, pp)); }
-
-#define BYTWO_P_ONESTEP {\
- SSE_AB2(pp, m1 ,m2, prod, t1, t2); \
- t1 = _mm_and_si128(v, one); \
- t1 = _mm_sub_epi64(t1, one); \
- t1 = _mm_and_si128(t1, ta); \
- prod = _mm_xor_si128(prod, t1); \
- v = _mm_srli_epi64(v, 1); }
-
-
-void gf_w64_bytwo_p_sse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_64_t val, int bytes, int xor)
-{
-#ifdef INTEL_SSE2
- int i;
- uint8_t *s8, *d8;
- uint64_t vrev, one64;
- uint64_t amask;
- __m128i pp, m1, m2, ta, prod, t1, t2, tp, one, v;
- gf_region_data rd;
- gf_internal_t *h;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- h = (gf_internal_t *) gf->scratch;
- one64 = 1;
- vrev = 0;
- for (i = 0; i < 64; i++) {
- vrev <<= 1;
- if (!(val & (one64 << i))) vrev |= 1;
- }
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- amask = -1;
- amask ^= 1;
- pp = _mm_set1_epi64x(h->prim_poly);
- m1 = _mm_set1_epi64x(amask);
- m2 = _mm_set1_epi64x(one64 << 63);
- one = _mm_set1_epi64x(1);
-
- while (d8 < (uint8_t *) rd.d_top) {
- prod = _mm_setzero_si128();
- v = _mm_set1_epi64x(vrev);
- ta = _mm_load_si128((__m128i *) s8);
- tp = (!xor) ? _mm_setzero_si128() : _mm_load_si128((__m128i *) d8);
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP; BYTWO_P_ONESTEP;
- _mm_store_si128((__m128i *) d8, _mm_xor_si128(prod, tp));
- d8 += 16;
- s8 += 16;
- }
- gf_do_final_region_alignment(&rd);
-#endif
-}
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w64_bytwo_b_sse_region_2_xor(gf_region_data *rd)
-{
- uint64_t one64, amask;
- uint8_t *d8, *s8;
- __m128i pp, m1, m2, t1, t2, va, vb;
- gf_internal_t *h;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- h = (gf_internal_t *) rd->gf->scratch;
- one64 = 1;
- amask = -1;
- amask ^= 1;
- pp = _mm_set1_epi64x(h->prim_poly);
- m1 = _mm_set1_epi64x(amask);
- m2 = _mm_set1_epi64x(one64 << 63);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- SSE_AB2(pp, m1, m2, va, t1, t2);
- vb = _mm_load_si128 ((__m128i *)(d8));
- vb = _mm_xor_si128(vb, va);
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w64_bytwo_b_sse_region_2_noxor(gf_region_data *rd)
-{
- uint64_t one64, amask;
- uint8_t *d8, *s8;
- __m128i pp, m1, m2, t1, t2, va;
- gf_internal_t *h;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- h = (gf_internal_t *) rd->gf->scratch;
- one64 = 1;
- amask = -1;
- amask ^= 1;
- pp = _mm_set1_epi64x(h->prim_poly);
- m1 = _mm_set1_epi64x(amask);
- m2 = _mm_set1_epi64x(one64 << 63);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- SSE_AB2(pp, m1, m2, va, t1, t2);
- _mm_store_si128((__m128i *)d8, va);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
-void
-gf_w64_bytwo_b_sse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_64_t val, int bytes, int xor)
-{
- uint64_t itb, amask, one64;
- uint8_t *d8, *s8;
- __m128i pp, m1, m2, t1, t2, va, vb;
- gf_region_data rd;
- gf_internal_t *h;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- if (val == 2) {
- if (xor) {
- gf_w64_bytwo_b_sse_region_2_xor(&rd);
- } else {
- gf_w64_bytwo_b_sse_region_2_noxor(&rd);
- }
- gf_do_final_region_alignment(&rd);
- return;
- }
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
- h = (gf_internal_t *) gf->scratch;
-
- one64 = 1;
- amask = -1;
- amask ^= 1;
- pp = _mm_set1_epi64x(h->prim_poly);
- m1 = _mm_set1_epi64x(amask);
- m2 = _mm_set1_epi64x(one64 << 63);
-
- while (d8 < (uint8_t *) rd.d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- vb = (!xor) ? _mm_setzero_si128() : _mm_load_si128 ((__m128i *)(d8));
- itb = val;
- while (1) {
- if (itb & 1) vb = _mm_xor_si128(vb, va);
- itb >>= 1;
- if (itb == 0) break;
- SSE_AB2(pp, m1, m2, va, t1, t2);
- }
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
-
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-
-static
-int gf_w64_bytwo_init(gf_t *gf)
-{
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
-
- if (h->mult_type == GF_MULT_BYTWO_p) {
- gf->multiply.w64 = gf_w64_bytwo_p_multiply;
- #ifdef INTEL_SSE2
- if (h->region_type & GF_REGION_NOSIMD)
- gf->multiply_region.w64 = gf_w64_bytwo_p_nosse_multiply_region;
- else
- gf->multiply_region.w64 = gf_w64_bytwo_p_sse_multiply_region;
- #else
- gf->multiply_region.w64 = gf_w64_bytwo_p_nosse_multiply_region;
- if(h->region_type & GF_REGION_SIMD)
- return 0;
- #endif
- } else {
- gf->multiply.w64 = gf_w64_bytwo_b_multiply;
- #ifdef INTEL_SSE2
- if (h->region_type & GF_REGION_NOSIMD)
- gf->multiply_region.w64 = gf_w64_bytwo_b_nosse_multiply_region;
- else
- gf->multiply_region.w64 = gf_w64_bytwo_b_sse_multiply_region;
- #else
- gf->multiply_region.w64 = gf_w64_bytwo_b_nosse_multiply_region;
- if(h->region_type & GF_REGION_SIMD)
- return 0;
- #endif
- }
- gf->inverse.w64 = gf_w64_euclid;
- return 1;
-}
-
-
-static
-gf_val_64_t
-gf_w64_composite_multiply(gf_t *gf, gf_val_64_t a, gf_val_64_t b)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint32_t b0 = b & 0x00000000ffffffff;
- uint32_t b1 = (b & 0xffffffff00000000) >> 32;
- uint32_t a0 = a & 0x00000000ffffffff;
- uint32_t a1 = (a & 0xffffffff00000000) >> 32;
- uint32_t a1b1;
-
- a1b1 = base_gf->multiply.w32(base_gf, a1, b1);
-
- return ((uint64_t)(base_gf->multiply.w32(base_gf, a0, b0) ^ a1b1) |
- ((uint64_t)(base_gf->multiply.w32(base_gf, a1, b0) ^ base_gf->multiply.w32(base_gf, a0, b1) ^ base_gf->multiply.w32(base_gf, a1b1, h->prim_poly)) << 32));
-}
-
-/*
- * Composite field division trick (explained in 2007 tech report)
- *
- * Compute a / b = a*b^-1, where p(x) = x^2 + sx + 1
- *
- * let c = b^-1
- *
- * c*b = (s*b1c1+b1c0+b0c1)x+(b1c1+b0c0)
- *
- * want (s*b1c1+b1c0+b0c1) = 0 and (b1c1+b0c0) = 1
- *
- * let d = b1c1 and d+1 = b0c0
- *
- * solve s*b1c1+b1c0+b0c1 = 0
- *
- * solution: d = (b1b0^-1)(b1b0^-1+b0b1^-1+s)^-1
- *
- * c0 = (d+1)b0^-1
- * c1 = d*b1^-1
- *
- * a / b = a * c
- */
-
-static
-gf_val_64_t
-gf_w64_composite_inverse(gf_t *gf, gf_val_64_t a)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint32_t a0 = a & 0x00000000ffffffff;
- uint32_t a1 = (a & 0xffffffff00000000) >> 32;
- uint32_t c0, c1, d, tmp;
- uint64_t c;
- uint32_t a0inv, a1inv;
-
- if (a0 == 0) {
- a1inv = base_gf->inverse.w32(base_gf, a1);
- c0 = base_gf->multiply.w32(base_gf, a1inv, h->prim_poly);
- c1 = a1inv;
- } else if (a1 == 0) {
- c0 = base_gf->inverse.w32(base_gf, a0);
- c1 = 0;
- } else {
- a1inv = base_gf->inverse.w32(base_gf, a1);
- a0inv = base_gf->inverse.w32(base_gf, a0);
-
- d = base_gf->multiply.w32(base_gf, a1, a0inv);
-
- tmp = (base_gf->multiply.w32(base_gf, a1, a0inv) ^ base_gf->multiply.w32(base_gf, a0, a1inv) ^ h->prim_poly);
- tmp = base_gf->inverse.w32(base_gf, tmp);
-
- d = base_gf->multiply.w32(base_gf, d, tmp);
-
- c0 = base_gf->multiply.w32(base_gf, (d^1), a0inv);
- c1 = base_gf->multiply.w32(base_gf, d, a1inv);
- }
-
- c = c0 | ((uint64_t)c1 << 32);
-
- return c;
-}
-
-static
-void
-gf_w64_composite_multiply_region(gf_t *gf, void *src, void *dest, gf_val_64_t val, int bytes, int xor)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint32_t b0 = val & 0x00000000ffffffff;
- uint32_t b1 = (val & 0xffffffff00000000) >> 32;
- uint64_t *s64, *d64;
- uint64_t *top;
- uint64_t a0, a1, a1b1;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 8);
-
- s64 = rd.s_start;
- d64 = rd.d_start;
- top = rd.d_top;
-
- if (xor) {
- while (d64 < top) {
- a0 = *s64 & 0x00000000ffffffff;
- a1 = (*s64 & 0xffffffff00000000) >> 32;
- a1b1 = base_gf->multiply.w32(base_gf, a1, b1);
-
- *d64 ^= ((uint64_t)(base_gf->multiply.w32(base_gf, a0, b0) ^ a1b1) |
- ((uint64_t)(base_gf->multiply.w32(base_gf, a1, b0) ^ base_gf->multiply.w32(base_gf, a0, b1) ^ base_gf->multiply.w32(base_gf, a1b1, h->prim_poly)) << 32));
- s64++;
- d64++;
- }
- } else {
- while (d64 < top) {
- a0 = *s64 & 0x00000000ffffffff;
- a1 = (*s64 & 0xffffffff00000000) >> 32;
- a1b1 = base_gf->multiply.w32(base_gf, a1, b1);
-
- *d64 = ((base_gf->multiply.w32(base_gf, a0, b0) ^ a1b1) |
- ((uint64_t)(base_gf->multiply.w32(base_gf, a1, b0) ^ base_gf->multiply.w32(base_gf, a0, b1) ^ base_gf->multiply.w32(base_gf, a1b1, h->prim_poly)) << 32));
- s64++;
- d64++;
- }
- }
-}
-
-static
-void
-gf_w64_composite_multiply_region_alt(gf_t *gf, void *src, void *dest, gf_val_64_t val, int bytes, int xor)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- gf_val_32_t val0 = val & 0x00000000ffffffff;
- gf_val_32_t val1 = (val & 0xffffffff00000000) >> 32;
- uint8_t *slow, *shigh;
- uint8_t *dlow, *dhigh, *top;
- int sub_reg_size;
- gf_region_data rd;
-
- if (!xor) {
- memset(dest, 0, bytes);
- }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 32);
- gf_do_initial_region_alignment(&rd);
-
- slow = (uint8_t *) rd.s_start;
- dlow = (uint8_t *) rd.d_start;
- top = (uint8_t*) rd.d_top;
- sub_reg_size = (top - dlow)/2;
- shigh = slow + sub_reg_size;
- dhigh = dlow + sub_reg_size;
-
- base_gf->multiply_region.w32(base_gf, slow, dlow, val0, sub_reg_size, xor);
- base_gf->multiply_region.w32(base_gf, shigh, dlow, val1, sub_reg_size, 1);
- base_gf->multiply_region.w32(base_gf, slow, dhigh, val1, sub_reg_size, xor);
- base_gf->multiply_region.w32(base_gf, shigh, dhigh, val0, sub_reg_size, 1);
- base_gf->multiply_region.w32(base_gf, shigh, dhigh, base_gf->multiply.w32(base_gf, h->prim_poly, val1), sub_reg_size, 1);
-
- gf_do_final_region_alignment(&rd);
-}
-
-
-
-static
-int gf_w64_composite_init(gf_t *gf)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
-
- if (h->region_type & GF_REGION_ALTMAP) {
- gf->multiply_region.w64 = gf_w64_composite_multiply_region_alt;
- } else {
- gf->multiply_region.w64 = gf_w64_composite_multiply_region;
- }
-
- gf->multiply.w64 = gf_w64_composite_multiply;
- gf->divide.w64 = NULL;
- gf->inverse.w64 = gf_w64_composite_inverse;
-
- return 1;
-}
-
-#ifdef INTEL_SSSE3
-static
- void
-gf_w64_split_4_64_lazy_sse_altmap_multiply_region(gf_t *gf, void *src, void *dest, uint64_t val, int bytes, int xor)
-{
- gf_internal_t *h;
- int i, j, k;
- uint64_t pp, v, *s64, *d64, *top;
- __m128i si, tables[16][8], p[8], v0, mask1;
- struct gf_split_4_64_lazy_data *ld;
- uint8_t btable[16];
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 128);
- gf_do_initial_region_alignment(&rd);
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top = (uint64_t *) rd.d_top;
-
- ld = (struct gf_split_4_64_lazy_data *) h->private;
-
- v = val;
- for (i = 0; i < 16; i++) {
- ld->tables[i][0] = 0;
- for (j = 1; j < 16; j <<= 1) {
- for (k = 0; k < j; k++) {
- ld->tables[i][k^j] = (v ^ ld->tables[i][k]);
- }
- v = (v & GF_FIRST_BIT) ? ((v << 1) ^ pp) : (v << 1);
- }
- for (j = 0; j < 8; j++) {
- for (k = 0; k < 16; k++) {
- btable[k] = (uint8_t) ld->tables[i][k];
- ld->tables[i][k] >>= 8;
- }
- tables[i][j] = _mm_loadu_si128((__m128i *) btable);
- }
- }
-
- mask1 = _mm_set1_epi8(0xf);
-
- while (d64 != top) {
-
- if (xor) {
- for (i = 0; i < 8; i++) p[i] = _mm_load_si128 ((__m128i *) (d64+i*2));
- } else {
- for (i = 0; i < 8; i++) p[i] = _mm_setzero_si128();
- }
- i = 0;
- for (k = 0; k < 8; k++) {
- v0 = _mm_load_si128((__m128i *) s64);
- /* MM_PRINT8("v", v0); */
- s64 += 2;
-
- si = _mm_and_si128(v0, mask1);
-
- for (j = 0; j < 8; j++) {
- p[j] = _mm_xor_si128(p[j], _mm_shuffle_epi8(tables[i][j], si));
- }
- i++;
- v0 = _mm_srli_epi32(v0, 4);
- si = _mm_and_si128(v0, mask1);
- for (j = 0; j < 8; j++) {
- p[j] = _mm_xor_si128(p[j], _mm_shuffle_epi8(tables[i][j], si));
- }
- i++;
- }
- for (i = 0; i < 8; i++) {
- /* MM_PRINT8("v", p[i]); */
- _mm_store_si128((__m128i *) d64, p[i]);
- d64 += 2;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-#ifdef INTEL_SSE4
-static
- void
-gf_w64_split_4_64_lazy_sse_multiply_region(gf_t *gf, void *src, void *dest, uint64_t val, int bytes, int xor)
-{
- gf_internal_t *h;
- int i, j, k;
- uint64_t pp, v, *s64, *d64, *top;
- __m128i si, tables[16][8], p[8], st[8], mask1, mask8, mask16, t1;
- struct gf_split_4_64_lazy_data *ld;
- uint8_t btable[16];
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 128);
- gf_do_initial_region_alignment(&rd);
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top = (uint64_t *) rd.d_top;
-
- ld = (struct gf_split_4_64_lazy_data *) h->private;
-
- v = val;
- for (i = 0; i < 16; i++) {
- ld->tables[i][0] = 0;
- for (j = 1; j < 16; j <<= 1) {
- for (k = 0; k < j; k++) {
- ld->tables[i][k^j] = (v ^ ld->tables[i][k]);
- }
- v = (v & GF_FIRST_BIT) ? ((v << 1) ^ pp) : (v << 1);
- }
- for (j = 0; j < 8; j++) {
- for (k = 0; k < 16; k++) {
- btable[k] = (uint8_t) ld->tables[i][k];
- ld->tables[i][k] >>= 8;
- }
- tables[i][j] = _mm_loadu_si128((__m128i *) btable);
- }
- }
-
- mask1 = _mm_set1_epi8(0xf);
- mask8 = _mm_set1_epi16(0xff);
- mask16 = _mm_set1_epi32(0xffff);
-
- while (d64 != top) {
-
- for (i = 0; i < 8; i++) p[i] = _mm_setzero_si128();
-
- for (k = 0; k < 8; k++) {
- st[k] = _mm_load_si128((__m128i *) s64);
- s64 += 2;
- }
-
- for (k = 0; k < 4; k ++) {
- st[k] = _mm_shuffle_epi32(st[k], _MM_SHUFFLE(3,1,2,0));
- st[k+4] = _mm_shuffle_epi32(st[k+4], _MM_SHUFFLE(2,0,3,1));
- t1 = _mm_blend_epi16(st[k], st[k+4], 0xf0);
- st[k] = _mm_srli_si128(st[k], 8);
- st[k+4] = _mm_slli_si128(st[k+4], 8);
- st[k+4] = _mm_blend_epi16(st[k], st[k+4], 0xf0);
- st[k] = t1;
- }
-
-/*
- printf("After pack pass 1\n");
- for (k = 0; k < 8; k++) {
- MM_PRINT8("v", st[k]);
- }
- printf("\n");
- */
-
- t1 = _mm_packus_epi32(_mm_and_si128(st[0], mask16), _mm_and_si128(st[2], mask16));
- st[2] = _mm_packus_epi32(_mm_srli_epi32(st[0], 16), _mm_srli_epi32(st[2], 16));
- st[0] = t1;
- t1 = _mm_packus_epi32(_mm_and_si128(st[1], mask16), _mm_and_si128(st[3], mask16));
- st[3] = _mm_packus_epi32(_mm_srli_epi32(st[1], 16), _mm_srli_epi32(st[3], 16));
- st[1] = t1;
- t1 = _mm_packus_epi32(_mm_and_si128(st[4], mask16), _mm_and_si128(st[6], mask16));
- st[6] = _mm_packus_epi32(_mm_srli_epi32(st[4], 16), _mm_srli_epi32(st[6], 16));
- st[4] = t1;
- t1 = _mm_packus_epi32(_mm_and_si128(st[5], mask16), _mm_and_si128(st[7], mask16));
- st[7] = _mm_packus_epi32(_mm_srli_epi32(st[5], 16), _mm_srli_epi32(st[7], 16));
- st[5] = t1;
-
-/*
- printf("After pack pass 2\n");
- for (k = 0; k < 8; k++) {
- MM_PRINT8("v", st[k]);
- }
- printf("\n");
- */
- t1 = _mm_packus_epi16(_mm_and_si128(st[0], mask8), _mm_and_si128(st[1], mask8));
- st[1] = _mm_packus_epi16(_mm_srli_epi16(st[0], 8), _mm_srli_epi16(st[1], 8));
- st[0] = t1;
- t1 = _mm_packus_epi16(_mm_and_si128(st[2], mask8), _mm_and_si128(st[3], mask8));
- st[3] = _mm_packus_epi16(_mm_srli_epi16(st[2], 8), _mm_srli_epi16(st[3], 8));
- st[2] = t1;
- t1 = _mm_packus_epi16(_mm_and_si128(st[4], mask8), _mm_and_si128(st[5], mask8));
- st[5] = _mm_packus_epi16(_mm_srli_epi16(st[4], 8), _mm_srli_epi16(st[5], 8));
- st[4] = t1;
- t1 = _mm_packus_epi16(_mm_and_si128(st[6], mask8), _mm_and_si128(st[7], mask8));
- st[7] = _mm_packus_epi16(_mm_srli_epi16(st[6], 8), _mm_srli_epi16(st[7], 8));
- st[6] = t1;
-
-/*
- printf("After final pack pass 2\n");
- for (k = 0; k < 8; k++) {
- MM_PRINT8("v", st[k]);
- }
- */
- i = 0;
- for (k = 0; k < 8; k++) {
- si = _mm_and_si128(st[k], mask1);
-
- for (j = 0; j < 8; j++) {
- p[j] = _mm_xor_si128(p[j], _mm_shuffle_epi8(tables[i][j], si));
- }
- i++;
- st[k] = _mm_srli_epi32(st[k], 4);
- si = _mm_and_si128(st[k], mask1);
- for (j = 0; j < 8; j++) {
- p[j] = _mm_xor_si128(p[j], _mm_shuffle_epi8(tables[i][j], si));
- }
- i++;
- }
-
- t1 = _mm_unpacklo_epi8(p[0], p[1]);
- p[1] = _mm_unpackhi_epi8(p[0], p[1]);
- p[0] = t1;
- t1 = _mm_unpacklo_epi8(p[2], p[3]);
- p[3] = _mm_unpackhi_epi8(p[2], p[3]);
- p[2] = t1;
- t1 = _mm_unpacklo_epi8(p[4], p[5]);
- p[5] = _mm_unpackhi_epi8(p[4], p[5]);
- p[4] = t1;
- t1 = _mm_unpacklo_epi8(p[6], p[7]);
- p[7] = _mm_unpackhi_epi8(p[6], p[7]);
- p[6] = t1;
-
-/*
- printf("After unpack pass 1:\n");
- for (i = 0; i < 8; i++) {
- MM_PRINT8("v", p[i]);
- }
- */
-
- t1 = _mm_unpacklo_epi16(p[0], p[2]);
- p[2] = _mm_unpackhi_epi16(p[0], p[2]);
- p[0] = t1;
- t1 = _mm_unpacklo_epi16(p[1], p[3]);
- p[3] = _mm_unpackhi_epi16(p[1], p[3]);
- p[1] = t1;
- t1 = _mm_unpacklo_epi16(p[4], p[6]);
- p[6] = _mm_unpackhi_epi16(p[4], p[6]);
- p[4] = t1;
- t1 = _mm_unpacklo_epi16(p[5], p[7]);
- p[7] = _mm_unpackhi_epi16(p[5], p[7]);
- p[5] = t1;
-
-/*
- printf("After unpack pass 2:\n");
- for (i = 0; i < 8; i++) {
- MM_PRINT8("v", p[i]);
- }
- */
-
- t1 = _mm_unpacklo_epi32(p[0], p[4]);
- p[4] = _mm_unpackhi_epi32(p[0], p[4]);
- p[0] = t1;
- t1 = _mm_unpacklo_epi32(p[1], p[5]);
- p[5] = _mm_unpackhi_epi32(p[1], p[5]);
- p[1] = t1;
- t1 = _mm_unpacklo_epi32(p[2], p[6]);
- p[6] = _mm_unpackhi_epi32(p[2], p[6]);
- p[2] = t1;
- t1 = _mm_unpacklo_epi32(p[3], p[7]);
- p[7] = _mm_unpackhi_epi32(p[3], p[7]);
- p[3] = t1;
-
- if (xor) {
- for (i = 0; i < 8; i++) {
- t1 = _mm_load_si128((__m128i *) d64);
- _mm_store_si128((__m128i *) d64, _mm_xor_si128(p[i], t1));
- d64 += 2;
- }
- } else {
- for (i = 0; i < 8; i++) {
- _mm_store_si128((__m128i *) d64, p[i]);
- d64 += 2;
- }
- }
-
- }
-
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-#define GF_MULTBY_TWO(p) (((p) & GF_FIRST_BIT) ? (((p) << 1) ^ h->prim_poly) : (p) << 1);
-
-static
-int gf_w64_split_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_split_4_64_lazy_data *d4;
- struct gf_split_8_64_lazy_data *d8;
- struct gf_split_8_8_data *d88;
- struct gf_split_16_64_lazy_data *d16;
- uint64_t p, basep;
- int exp, i, j;
-
- h = (gf_internal_t *) gf->scratch;
-
- /* Defaults */
-
- gf->multiply_region.w64 = gf_w64_multiply_region_from_single;
-
- gf->multiply.w64 = gf_w64_bytwo_p_multiply;
-
-#if defined(INTEL_SSE4_PCLMUL)
- if ((!(h->region_type & GF_REGION_NOSIMD) &&
- (h->arg1 == 64 || h->arg2 == 64)) ||
- h->mult_type == GF_MULT_DEFAULT){
-
- if ((0xfffffffe00000000ULL & h->prim_poly) == 0){
- gf->multiply.w64 = gf_w64_clm_multiply_2;
- gf->multiply_region.w64 = gf_w64_clm_multiply_region_from_single_2;
- }else if((0xfffe000000000000ULL & h->prim_poly) == 0){
- gf->multiply.w64 = gf_w64_clm_multiply_4;
- gf->multiply_region.w64 = gf_w64_clm_multiply_region_from_single_4;
- }else{
- return 0;
- }
- }
-#endif
-
- gf->inverse.w64 = gf_w64_euclid;
-
- /* Allen: set region pointers for default mult type. Single pointers are
- * taken care of above (explicitly for sse, implicitly for no sse). */
-
-#if defined(INTEL_SSE4) || defined(ARCH_AARCH64)
- if (h->mult_type == GF_MULT_DEFAULT) {
- d4 = (struct gf_split_4_64_lazy_data *) h->private;
- d4->last_value = 0;
-#if defined(INTEL_SSE4)
- gf->multiply_region.w64 = gf_w64_split_4_64_lazy_sse_multiply_region;
-#elif defined(ARCH_AARCH64)
- gf_w64_neon_split_init(gf);
-#endif
- }
-#else
- if (h->mult_type == GF_MULT_DEFAULT) {
- d8 = (struct gf_split_8_64_lazy_data *) h->private;
- d8->last_value = 0;
- gf->multiply_region.w64 = gf_w64_split_8_64_lazy_multiply_region;
- }
-#endif
-
- if ((h->arg1 == 4 && h->arg2 == 64) || (h->arg1 == 64 && h->arg2 == 4)) {
- d4 = (struct gf_split_4_64_lazy_data *) h->private;
- d4->last_value = 0;
-
- if((h->region_type & GF_REGION_ALTMAP) && (h->region_type & GF_REGION_NOSIMD)) return 0;
- if(h->region_type & GF_REGION_ALTMAP)
- {
- #ifdef INTEL_SSSE3
- gf->multiply_region.w64 = gf_w64_split_4_64_lazy_sse_altmap_multiply_region;
- #elif defined(ARCH_AARCH64)
- gf_w64_neon_split_init(gf);
- #else
- return 0;
- #endif
- }
- else //no altmap
- {
- #if defined(INTEL_SSE4) || defined(ARCH_AARCH64)
- if(h->region_type & GF_REGION_NOSIMD)
- gf->multiply_region.w64 = gf_w64_split_4_64_lazy_multiply_region;
- else
- #if defined(INTEL_SSE4)
- gf->multiply_region.w64 = gf_w64_split_4_64_lazy_sse_multiply_region;
- #elif defined(ARCH_AARCH64)
- gf_w64_neon_split_init(gf);
- #endif
- #else
- gf->multiply_region.w64 = gf_w64_split_4_64_lazy_multiply_region;
- if(h->region_type & GF_REGION_SIMD)
- return 0;
- #endif
- }
- }
- if ((h->arg1 == 8 && h->arg2 == 64) || (h->arg1 == 64 && h->arg2 == 8)) {
- d8 = (struct gf_split_8_64_lazy_data *) h->private;
- d8->last_value = 0;
- gf->multiply_region.w64 = gf_w64_split_8_64_lazy_multiply_region;
- }
- if ((h->arg1 == 16 && h->arg2 == 64) || (h->arg1 == 64 && h->arg2 == 16)) {
- d16 = (struct gf_split_16_64_lazy_data *) h->private;
- d16->last_value = 0;
- gf->multiply_region.w64 = gf_w64_split_16_64_lazy_multiply_region;
- }
- if ((h->arg1 == 8 && h->arg2 == 8)) {
- d88 = (struct gf_split_8_8_data *) h->private;
- gf->multiply.w64 = gf_w64_split_8_8_multiply;
-
- /* The performance of this guy sucks, so don't bother with a region op */
-
- basep = 1;
- for (exp = 0; exp < 15; exp++) {
- for (j = 0; j < 256; j++) d88->tables[exp][0][j] = 0;
- for (i = 0; i < 256; i++) d88->tables[exp][i][0] = 0;
- d88->tables[exp][1][1] = basep;
- for (i = 2; i < 256; i++) {
- if (i&1) {
- p = d88->tables[exp][i^1][1];
- d88->tables[exp][i][1] = p ^ basep;
- } else {
- p = d88->tables[exp][i>>1][1];
- d88->tables[exp][i][1] = GF_MULTBY_TWO(p);
- }
- }
- for (i = 1; i < 256; i++) {
- p = d88->tables[exp][i][1];
- for (j = 1; j < 256; j++) {
- if (j&1) {
- d88->tables[exp][i][j] = d88->tables[exp][i][j^1] ^ p;
- } else {
- d88->tables[exp][i][j] = GF_MULTBY_TWO(d88->tables[exp][i][j>>1]);
- }
- }
- }
- for (i = 0; i < 8; i++) basep = GF_MULTBY_TWO(basep);
- }
- }
- return 1;
-}
-
-int gf_w64_scratch_size(int mult_type, int region_type, int divide_type, int arg1, int arg2)
-{
- switch(mult_type)
- {
- case GF_MULT_SHIFT:
- return sizeof(gf_internal_t);
- break;
- case GF_MULT_CARRY_FREE:
- return sizeof(gf_internal_t);
- break;
- case GF_MULT_BYTWO_p:
- case GF_MULT_BYTWO_b:
- return sizeof(gf_internal_t);
- break;
-
- case GF_MULT_DEFAULT:
-
- /* Allen: set the *local* arg1 and arg2, just for scratch size purposes,
- * then fall through to split table scratch size code. */
-
-#if defined(INTEL_SSE4) || defined(ARCH_AARCH64)
- arg1 = 64;
- arg2 = 4;
-#else
- arg1 = 64;
- arg2 = 8;
-#endif
-
- case GF_MULT_SPLIT_TABLE:
- if (arg1 == 8 && arg2 == 8) {
- return sizeof(gf_internal_t) + sizeof(struct gf_split_8_8_data) + 64;
- }
- if ((arg1 == 16 && arg2 == 64) || (arg2 == 16 && arg1 == 64)) {
- return sizeof(gf_internal_t) + sizeof(struct gf_split_16_64_lazy_data) + 64;
- }
- if ((arg1 == 8 && arg2 == 64) || (arg2 == 8 && arg1 == 64)) {
- return sizeof(gf_internal_t) + sizeof(struct gf_split_8_64_lazy_data) + 64;
- }
-
- if ((arg1 == 64 && arg2 == 4) || (arg1 == 4 && arg2 == 64)) {
- return sizeof(gf_internal_t) + sizeof(struct gf_split_4_64_lazy_data) + 64;
- }
- return 0;
- case GF_MULT_GROUP:
- return sizeof(gf_internal_t) + sizeof(struct gf_w64_group_data) +
- sizeof(uint64_t) * (1 << arg1) +
- sizeof(uint64_t) * (1 << arg2) + 64;
- break;
- case GF_MULT_COMPOSITE:
- if (arg1 == 2) return sizeof(gf_internal_t) + 64;
- return 0;
- break;
- default:
- return 0;
- }
-}
-
-int gf_w64_init(gf_t *gf)
-{
- gf_internal_t *h;
- int no_default_flag = 0;
-
- h = (gf_internal_t *) gf->scratch;
-
- /* Allen: set default primitive polynomial / irreducible polynomial if needed */
-
- /* Omitting the leftmost 1 as in w=32 */
-
- if (h->prim_poly == 0) {
- if (h->mult_type == GF_MULT_COMPOSITE) {
- h->prim_poly = gf_composite_get_default_poly(h->base_gf);
- if (h->prim_poly == 0) return 0; /* This shouldn't happen */
- } else {
- h->prim_poly = 0x1b;
- }
- if (no_default_flag == 1) {
- fprintf(stderr,"Code contains no default irreducible polynomial for given base field\n");
- return 0;
- }
- }
-
- gf->multiply.w64 = NULL;
- gf->divide.w64 = NULL;
- gf->inverse.w64 = NULL;
- gf->multiply_region.w64 = NULL;
-
- switch(h->mult_type) {
- case GF_MULT_CARRY_FREE: if (gf_w64_cfm_init(gf) == 0) return 0; break;
- case GF_MULT_SHIFT: if (gf_w64_shift_init(gf) == 0) return 0; break;
- case GF_MULT_COMPOSITE: if (gf_w64_composite_init(gf) == 0) return 0; break;
- case GF_MULT_DEFAULT:
- case GF_MULT_SPLIT_TABLE: if (gf_w64_split_init(gf) == 0) return 0; break;
- case GF_MULT_GROUP: if (gf_w64_group_init(gf) == 0) return 0; break;
- case GF_MULT_BYTWO_p:
- case GF_MULT_BYTWO_b: if (gf_w64_bytwo_init(gf) == 0) return 0; break;
- default: return 0;
- }
- if (h->divide_type == GF_DIVIDE_EUCLID) {
- gf->divide.w64 = gf_w64_divide_from_inverse;
- gf->inverse.w64 = gf_w64_euclid;
- }
-
- if (gf->inverse.w64 != NULL && gf->divide.w64 == NULL) {
- gf->divide.w64 = gf_w64_divide_from_inverse;
- }
- if (gf->inverse.w64 == NULL && gf->divide.w64 != NULL) {
- gf->inverse.w64 = gf_w64_inverse_from_divide;
- }
-
- if (h->region_type == GF_REGION_CAUCHY) return 0;
-
- if (h->region_type & GF_REGION_ALTMAP) {
- if (h->mult_type == GF_MULT_COMPOSITE) {
- gf->extract_word.w64 = gf_w64_composite_extract_word;
- } else if (h->mult_type == GF_MULT_SPLIT_TABLE) {
- gf->extract_word.w64 = gf_w64_split_extract_word;
- }
- } else {
- gf->extract_word.w64 = gf_w64_extract_word;
- }
-
- return 1;
-}
diff --git a/src/c/gf-complete/src/gf_w8.c b/src/c/gf-complete/src/gf_w8.c
deleted file mode 100644
index 4da18a2..0000000
--- a/src/c/gf-complete/src/gf_w8.c
+++ /dev/null
@@ -1,2392 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_w8.c
- *
- * Routines for 8-bit Galois fields
- */
-
-#include "gf_int.h"
-#include "gf_w8.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-
-#define AB2(ip, am1 ,am2, b, t1, t2) {\
- t1 = (b << 1) & am1;\
- t2 = b & am2; \
- t2 = ((t2 << 1) - (t2 >> (GF_FIELD_WIDTH-1))); \
- b = (t1 ^ (t2 & ip));}
-
-#define SSE_AB2(pp, m1 ,m2, va, t1, t2) {\
- t1 = _mm_and_si128(_mm_slli_epi64(va, 1), m1); \
- t2 = _mm_and_si128(va, m2); \
- t2 = _mm_sub_epi64 (_mm_slli_epi64(t2, 1), _mm_srli_epi64(t2, (GF_FIELD_WIDTH-1))); \
- va = _mm_xor_si128(t1, _mm_and_si128(t2, pp)); }
-
-#define MM_PRINT(s, r) { uint8_t blah[16], ii; printf("%-12s", s); _mm_storeu_si128((__m128i *)blah, r); for (ii = 0; ii < 16; ii += 2) printf(" %02x %02x", blah[15-ii], blah[14-ii]); printf("\n"); }
-
-static
-inline
-uint32_t gf_w8_inverse_from_divide (gf_t *gf, uint32_t a)
-{
- return gf->divide.w32(gf, 1, a);
-}
-
-static
-inline
-uint32_t gf_w8_divide_from_inverse (gf_t *gf, uint32_t a, uint32_t b)
-{
- b = gf->inverse.w32(gf, b);
- return gf->multiply.w32(gf, a, b);
-}
-
-static
-inline
-uint32_t gf_w8_euclid (gf_t *gf, uint32_t b)
-{
- uint32_t e_i, e_im1, e_ip1;
- uint32_t d_i, d_im1, d_ip1;
- uint32_t y_i, y_im1, y_ip1;
- uint32_t c_i;
-
- if (b == 0) return -1;
- e_im1 = ((gf_internal_t *) (gf->scratch))->prim_poly;
- e_i = b;
- d_im1 = 8;
- for (d_i = d_im1; ((1 << d_i) & e_i) == 0; d_i--) ;
- y_i = 1;
- y_im1 = 0;
-
- while (e_i != 1) {
-
- e_ip1 = e_im1;
- d_ip1 = d_im1;
- c_i = 0;
-
- while (d_ip1 >= d_i) {
- c_i ^= (1 << (d_ip1 - d_i));
- e_ip1 ^= (e_i << (d_ip1 - d_i));
- if (e_ip1 == 0) return 0;
- while ((e_ip1 & (1 << d_ip1)) == 0) d_ip1--;
- }
-
- y_ip1 = y_im1 ^ gf->multiply.w32(gf, c_i, y_i);
- y_im1 = y_i;
- y_i = y_ip1;
-
- e_im1 = e_i;
- d_im1 = d_i;
- e_i = e_ip1;
- d_i = d_ip1;
- }
-
- return y_i;
-}
-
-static
-gf_val_32_t gf_w8_extract_word(gf_t *gf, void *start, int bytes, int index)
-{
- uint8_t *r8;
-
- r8 = (uint8_t *) start;
- return r8[index];
-}
-
-static
-gf_val_32_t gf_w8_composite_extract_word(gf_t *gf, void *start, int bytes, int index)
-{
- int sub_size;
- gf_internal_t *h;
- uint8_t *r8, *top;
- uint8_t a, b;
- gf_region_data rd;
-
- h = (gf_internal_t *) gf->scratch;
- gf_set_region_data(&rd, gf, start, start, bytes, 0, 0, 32);
- r8 = (uint8_t *) start;
- if (r8 + index < (uint8_t *) rd.d_start) return r8[index];
- if (r8 + index >= (uint8_t *) rd.d_top) return r8[index];
- index -= (((uint8_t *) rd.d_start) - r8);
- r8 = (uint8_t *) rd.d_start;
- top = (uint8_t *) rd.d_top;
- sub_size = (top-r8)/2;
-
- a = h->base_gf->extract_word.w32(h->base_gf, r8, sub_size, index);
- b = h->base_gf->extract_word.w32(h->base_gf, r8+sub_size, sub_size, index);
- return (a | (b << 4));
-}
-
-static
-inline
-uint32_t gf_w8_matrix (gf_t *gf, uint32_t b)
-{
- return gf_bitmatrix_inverse(b, 8, ((gf_internal_t *) (gf->scratch))->prim_poly);
-}
-
-
-static
-inline
-gf_val_32_t
-gf_w8_clm_multiply_2 (gf_t *gf, gf_val_32_t a8, gf_val_32_t b8)
-{
- gf_val_32_t rv = 0;
-
-#if defined(INTEL_SSE4_PCLMUL)
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), a8, 0);
- b = _mm_insert_epi32 (a, b8, 0);
-
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0x1ffULL));
-
- /* Do the initial multiply */
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- /* Ben: Do prim_poly reduction twice. We are guaranteed that we will only
- have to do the reduction at most twice, because (w-2)/z == 2. Where
- z is equal to the number of zeros after the leading 1
-
- _mm_clmulepi64_si128 is the carryless multiply operation. Here
- _mm_srli_si128 shifts the result to the right by 1 byte. This allows
- us to multiply the prim_poly by the leading bits of the result. We
- then xor the result of that operation back with the result.*/
-
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
-
- /* Extracts 32 bit value from result. */
-
- rv = ((gf_val_32_t)_mm_extract_epi32(result, 0));
-
-#endif
- return rv;
-}
-
-static
-inline
-gf_val_32_t
-gf_w8_clm_multiply_3 (gf_t *gf, gf_val_32_t a8, gf_val_32_t b8)
-{
- gf_val_32_t rv = 0;
-
-#if defined(INTEL_SSE4_PCLMUL)
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), a8, 0);
- b = _mm_insert_epi32 (a, b8, 0);
-
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0x1ffULL));
-
- /* Do the initial multiply */
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
-
- /* Extracts 32 bit value from result. */
-
- rv = ((gf_val_32_t)_mm_extract_epi32(result, 0));
-
-#endif
- return rv;
-}
-
-static
-inline
-gf_val_32_t
-gf_w8_clm_multiply_4 (gf_t *gf, gf_val_32_t a8, gf_val_32_t b8)
-{
- gf_val_32_t rv = 0;
-
-#if defined(INTEL_SSE4_PCLMUL)
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), a8, 0);
- b = _mm_insert_epi32 (a, b8, 0);
-
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0x1ffULL));
-
- /* Do the initial multiply */
-
- result = _mm_clmulepi64_si128 (a, b, 0);
-
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
-
- /* Extracts 32 bit value from result. */
- rv = ((gf_val_32_t)_mm_extract_epi32(result, 0));
-
-#endif
- return rv;
-}
-
-
-static
-void
-gf_w8_multiply_region_from_single(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int
- xor)
-{
- gf_region_data rd;
- uint8_t *s8;
- uint8_t *d8;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 1);
- gf_do_initial_region_alignment(&rd);
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- if (xor) {
- while (d8 < ((uint8_t *) rd.d_top)) {
- *d8 ^= gf->multiply.w32(gf, val, *s8);
- d8++;
- s8++;
- }
- } else {
- while (d8 < ((uint8_t *) rd.d_top)) {
- *d8 = gf->multiply.w32(gf, val, *s8);
- d8++;
- s8++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-
-#if defined(INTEL_SSE4_PCLMUL)
-static
-void
-gf_w8_clm_multiply_region_from_single_2(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int
- xor)
-{
- gf_region_data rd;
- uint8_t *s8;
- uint8_t *d8;
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0x1ffULL));
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), val, 0);
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 1);
- gf_do_initial_region_alignment(&rd);
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- if (xor) {
- while (d8 < ((uint8_t *) rd.d_top)) {
- b = _mm_insert_epi32 (a, (gf_val_32_t)(*s8), 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- *d8 ^= ((gf_val_32_t)_mm_extract_epi32(result, 0));
- d8++;
- s8++;
- }
- } else {
- while (d8 < ((uint8_t *) rd.d_top)) {
- b = _mm_insert_epi32 (a, (gf_val_32_t)(*s8), 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- *d8 = ((gf_val_32_t)_mm_extract_epi32(result, 0));
- d8++;
- s8++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-#if defined(INTEL_SSE4_PCLMUL)
-static
-void
-gf_w8_clm_multiply_region_from_single_3(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int
- xor)
-{
- gf_region_data rd;
- uint8_t *s8;
- uint8_t *d8;
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0x1ffULL));
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), val, 0);
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 1);
- gf_do_initial_region_alignment(&rd);
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- if (xor) {
- while (d8 < ((uint8_t *) rd.d_top)) {
- b = _mm_insert_epi32 (a, (gf_val_32_t)(*s8), 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- *d8 ^= ((gf_val_32_t)_mm_extract_epi32(result, 0));
- d8++;
- s8++;
- }
- } else {
- while (d8 < ((uint8_t *) rd.d_top)) {
- b = _mm_insert_epi32 (a, (gf_val_32_t)(*s8), 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- *d8 = ((gf_val_32_t)_mm_extract_epi32(result, 0));
- d8++;
- s8++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-#if defined(INTEL_SSE4_PCLMUL)
-static
-void
-gf_w8_clm_multiply_region_from_single_4(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int
- xor)
-{
- gf_region_data rd;
- uint8_t *s8;
- uint8_t *d8;
-
- __m128i a, b;
- __m128i result;
- __m128i prim_poly;
- __m128i w;
- gf_internal_t * h = gf->scratch;
-
- prim_poly = _mm_set_epi32(0, 0, 0, (uint32_t)(h->prim_poly & 0x1ffULL));
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- a = _mm_insert_epi32 (_mm_setzero_si128(), val, 0);
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 1);
- gf_do_initial_region_alignment(&rd);
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- if (xor) {
- while (d8 < ((uint8_t *) rd.d_top)) {
- b = _mm_insert_epi32 (a, (gf_val_32_t)(*s8), 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- *d8 ^= ((gf_val_32_t)_mm_extract_epi32(result, 0));
- d8++;
- s8++;
- }
- } else {
- while (d8 < ((uint8_t *) rd.d_top)) {
- b = _mm_insert_epi32 (a, (gf_val_32_t)(*s8), 0);
- result = _mm_clmulepi64_si128 (a, b, 0);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- w = _mm_clmulepi64_si128 (prim_poly, _mm_srli_si128 (result, 1), 0);
- result = _mm_xor_si128 (result, w);
- *d8 = ((gf_val_32_t)_mm_extract_epi32(result, 0));
- d8++;
- s8++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-/* ------------------------------------------------------------
-IMPLEMENTATION: SHIFT:
-
-JSP: The world's dumbest multiplication algorithm. I only
-include it for completeness. It does have the feature that it requires no
-extra memory.
- */
-
-static
-inline
- uint32_t
-gf_w8_shift_multiply (gf_t *gf, uint32_t a8, uint32_t b8)
-{
- uint16_t product, i, pp, a, b;
- gf_internal_t *h;
-
- a = a8;
- b = b8;
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- product = 0;
-
- for (i = 0; i < GF_FIELD_WIDTH; i++) {
- if (a & (1 << i)) product ^= (b << i);
- }
- for (i = (GF_FIELD_WIDTH*2-2); i >= GF_FIELD_WIDTH; i--) {
- if (product & (1 << i)) product ^= (pp << (i-GF_FIELD_WIDTH));
- }
- return product;
-}
-
-static
-int gf_w8_cfm_init(gf_t *gf)
-{
-#if defined(INTEL_SSE4_PCLMUL)
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
-
- if ((0xe0 & h->prim_poly) == 0){
- gf->multiply.w32 = gf_w8_clm_multiply_2;
- gf->multiply_region.w32 = gf_w8_clm_multiply_region_from_single_2;
- }else if ((0xc0 & h->prim_poly) == 0){
- gf->multiply.w32 = gf_w8_clm_multiply_3;
- gf->multiply_region.w32 = gf_w8_clm_multiply_region_from_single_3;
- }else if ((0x80 & h->prim_poly) == 0){
- gf->multiply.w32 = gf_w8_clm_multiply_4;
- gf->multiply_region.w32 = gf_w8_clm_multiply_region_from_single_4;
- }else{
- return 0;
- }
- return 1;
-#elif defined(ARM_NEON)
- return gf_w8_neon_cfm_init(gf);
-#endif
-
- return 0;
-
-}
-
-static
-int gf_w8_shift_init(gf_t *gf)
-{
- gf->multiply.w32 = gf_w8_shift_multiply; /* The others will be set automatically */
- return 1;
-}
-
-/* ------------------------------------------------------------
-IMPLEMENTATION: LOG_TABLE:
-
-JSP: Kevin wrote this, and I'm converting it to my structure.
-*/
-
-static
-inline
- uint32_t
-gf_w8_logzero_multiply (gf_t *gf, uint32_t a, uint32_t b)
-{
- struct gf_w8_logzero_table_data *ltd;
-
- ltd = (struct gf_w8_logzero_table_data *) ((gf_internal_t *) gf->scratch)->private;
- return ltd->antilog_tbl[ltd->log_tbl[a] + ltd->log_tbl[b]];
-}
-
-static
-inline
- uint32_t
-gf_w8_logzero_divide (gf_t *gf, uint32_t a, uint32_t b)
-{
- struct gf_w8_logzero_table_data *ltd;
-
- ltd = (struct gf_w8_logzero_table_data *) ((gf_internal_t *) gf->scratch)->private;
- return ltd->div_tbl[ltd->log_tbl[a] - ltd->log_tbl[b]];
-}
-
-static
-inline
- uint32_t
-gf_w8_logzero_small_multiply (gf_t *gf, uint32_t a, uint32_t b)
-{
- struct gf_w8_logzero_small_table_data *std;
-
- std = (struct gf_w8_logzero_small_table_data *) ((gf_internal_t *) gf->scratch)->private;
- if (b == 0) return 0;
- return std->antilog_tbl[std->log_tbl[a] + std->log_tbl[b]];
-}
-
-static
-inline
- uint32_t
-gf_w8_logzero_small_divide (gf_t *gf, uint32_t a, uint32_t b)
-{
- struct gf_w8_logzero_small_table_data *std;
-
- std = (struct gf_w8_logzero_small_table_data *) ((gf_internal_t *) gf->scratch)->private;
- return std->div_tbl[std->log_tbl[a] - std->log_tbl[b]];
-}
-
-static
-inline
- uint32_t
-gf_w8_log_multiply (gf_t *gf, uint32_t a, uint32_t b)
-{
- struct gf_w8_logtable_data *ltd;
-
- ltd = (struct gf_w8_logtable_data *) ((gf_internal_t *) gf->scratch)->private;
- return (a == 0 || b == 0) ? 0 : ltd->antilog_tbl[(unsigned)(ltd->log_tbl[a] + ltd->log_tbl[b])];
-}
-
-static
-inline
- uint32_t
-gf_w8_log_divide (gf_t *gf, uint32_t a, uint32_t b)
-{
- int log_sum = 0;
- struct gf_w8_logtable_data *ltd;
-
- if (a == 0 || b == 0) return 0;
- ltd = (struct gf_w8_logtable_data *) ((gf_internal_t *) gf->scratch)->private;
-
- log_sum = ltd->log_tbl[a] - ltd->log_tbl[b] + (GF_MULT_GROUP_SIZE);
- return (ltd->antilog_tbl[log_sum]);
-}
-
-static
- uint32_t
-gf_w8_log_inverse (gf_t *gf, uint32_t a)
-{
- struct gf_w8_logtable_data *ltd;
-
- ltd = (struct gf_w8_logtable_data *) ((gf_internal_t *) gf->scratch)->private;
- return (ltd->inv_tbl[a]);
-}
-
-static
- uint32_t
-gf_w8_logzero_inverse (gf_t *gf, uint32_t a)
-{
- struct gf_w8_logzero_table_data *ltd;
-
- ltd = (struct gf_w8_logzero_table_data *) ((gf_internal_t *) gf->scratch)->private;
- return (ltd->inv_tbl[a]);
-}
-
-static
- uint32_t
-gf_w8_logzero_small_inverse (gf_t *gf, uint32_t a)
-{
- struct gf_w8_logzero_small_table_data *std;
-
- std = (struct gf_w8_logzero_small_table_data *) ((gf_internal_t *) gf->scratch)->private;
- return (std->inv_tbl[a]);
-}
-
-static
- void
-gf_w8_log_multiply_region(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
- int i;
- uint8_t lv;
- uint8_t *s8, *d8;
- struct gf_w8_logtable_data *ltd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- ltd = (struct gf_w8_logtable_data *) ((gf_internal_t *) gf->scratch)->private;
- s8 = (uint8_t *) src;
- d8 = (uint8_t *) dest;
-
- lv = ltd->log_tbl[val];
-
- if (xor) {
- for (i = 0; i < bytes; i++) {
- d8[i] ^= (s8[i] == 0 ? 0 : ltd->antilog_tbl[lv + ltd->log_tbl[s8[i]]]);
- }
- } else {
- for (i = 0; i < bytes; i++) {
- d8[i] = (s8[i] == 0 ? 0 : ltd->antilog_tbl[lv + ltd->log_tbl[s8[i]]]);
- }
- }
-}
-
-static
- void
-gf_w8_logzero_multiply_region(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor)
-{
- int i;
- uint8_t lv;
- uint8_t *s8, *d8;
- struct gf_w8_logzero_table_data *ltd;
- struct gf_w8_logzero_small_table_data *std;
- short *log;
- uint8_t *alt;
- gf_internal_t *h;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) gf->scratch;
-
- if (h->arg1 == 1) {
- std = (struct gf_w8_logzero_small_table_data *) h->private;
- log = std->log_tbl;
- alt = std->antilog_tbl;
- } else {
- ltd = (struct gf_w8_logzero_table_data *) h->private;
- log = ltd->log_tbl;
- alt = ltd->antilog_tbl;
- }
- s8 = (uint8_t *) src;
- d8 = (uint8_t *) dest;
-
- lv = log[val];
-
- if (xor) {
- for (i = 0; i < bytes; i++) {
- d8[i] ^= (alt[lv + log[s8[i]]]);
- }
- } else {
- for (i = 0; i < bytes; i++) {
- d8[i] = (alt[lv + log[s8[i]]]);
- }
- }
-}
-
- static
-int gf_w8_log_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_w8_logtable_data *ltd = NULL;
- struct gf_w8_logzero_table_data *ztd = NULL;
- struct gf_w8_logzero_small_table_data *std = NULL;
- uint8_t *alt;
- uint8_t *inv;
- int i, b;
- int check = 0;
-
- h = (gf_internal_t *) gf->scratch;
- if (h->mult_type == GF_MULT_LOG_TABLE) {
- ltd = h->private;
- alt = ltd->antilog_tbl;
- inv = ltd->inv_tbl;
- } else if (h->mult_type == GF_MULT_LOG_ZERO) {
- std = h->private;
- alt = std->antilog_tbl;
- std->div_tbl = (alt + 255);
- inv = std->inv_tbl;
- } else {
- ztd = h->private;
- alt = ztd->antilog_tbl;
- ztd->inv_tbl = (alt + 512 + 256);
- ztd->div_tbl = (alt + 255);
- inv = ztd->inv_tbl;
- }
-
- for (i = 0; i < GF_MULT_GROUP_SIZE+1; i++) {
- if (h->mult_type == GF_MULT_LOG_TABLE)
- ltd->log_tbl[i] = 0;
- else if (h->mult_type == GF_MULT_LOG_ZERO)
- std->log_tbl[i] = 0;
- else
- ztd->log_tbl[i] = 0;
- }
-
- if (h->mult_type == GF_MULT_LOG_TABLE) {
- ltd->log_tbl[0] = 0;
- } else if (h->mult_type == GF_MULT_LOG_ZERO) {
- std->log_tbl[0] = 510;
- } else {
- ztd->log_tbl[0] = 512;
- }
-
- b = 1;
- for (i = 0; i < GF_MULT_GROUP_SIZE; i++) {
- if (h->mult_type == GF_MULT_LOG_TABLE) {
- if (ltd->log_tbl[b] != 0) check = 1;
- ltd->log_tbl[b] = i;
- } else if (h->mult_type == GF_MULT_LOG_ZERO) {
- if (std->log_tbl[b] != 0) check = 1;
- std->log_tbl[b] = i;
- } else {
- if (ztd->log_tbl[b] != 0) check = 1;
- ztd->log_tbl[b] = i;
- }
- alt[i] = b;
- alt[i+GF_MULT_GROUP_SIZE] = b;
- b <<= 1;
- if (b & GF_FIELD_SIZE) {
- b = b ^ h->prim_poly;
- }
- }
- if (check) {
- _gf_errno = GF_E_LOGPOLY;
- return 0;
- }
-
- if (h->mult_type == GF_MULT_LOG_ZERO) bzero(alt+510, 255);
-
- if (h->mult_type == GF_MULT_LOG_ZERO_EXT) {
- bzero(alt+512, 255);
- alt[512+512] = 0;
- }
-
- inv[0] = 0; /* Not really, but we need to fill it with something */
- i = 1;
- b = GF_MULT_GROUP_SIZE;
- do {
- inv[i] = alt[b];
- i <<= 1;
- if (i & (1 << 8)) i ^= h->prim_poly;
- b--;
- } while (i != 1);
-
- if (h->mult_type == GF_MULT_LOG_TABLE) {
- gf->inverse.w32 = gf_w8_log_inverse;
- gf->divide.w32 = gf_w8_log_divide;
- gf->multiply.w32 = gf_w8_log_multiply;
- gf->multiply_region.w32 = gf_w8_log_multiply_region;
- } else if (h->mult_type == GF_MULT_LOG_ZERO) {
- gf->inverse.w32 = gf_w8_logzero_small_inverse;
- gf->divide.w32 = gf_w8_logzero_small_divide;
- gf->multiply.w32 = gf_w8_logzero_small_multiply;
- gf->multiply_region.w32 = gf_w8_logzero_multiply_region;
- } else {
- gf->inverse.w32 = gf_w8_logzero_inverse;
- gf->divide.w32 = gf_w8_logzero_divide;
- gf->multiply.w32 = gf_w8_logzero_multiply;
- gf->multiply_region.w32 = gf_w8_logzero_multiply_region;
- }
- return 1;
-}
-
-/* ------------------------------------------------------------
-IMPLEMENTATION: FULL_TABLE:
-
-JSP: Kevin wrote this, and I'm converting it to my structure.
- */
-
-static
- gf_val_32_t
-gf_w8_table_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_w8_single_table_data *ftd;
-
- ftd = (struct gf_w8_single_table_data *) ((gf_internal_t *) gf->scratch)->private;
- return (ftd->multtable[a][b]);
-}
-
-static
- gf_val_32_t
-gf_w8_table_divide(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_w8_single_table_data *ftd;
-
- ftd = (struct gf_w8_single_table_data *) ((gf_internal_t *) gf->scratch)->private;
- return (ftd->divtable[a][b]);
-}
-
-static
- gf_val_32_t
-gf_w8_default_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_w8_default_data *ftd;
-
- ftd = (struct gf_w8_default_data *) ((gf_internal_t *) gf->scratch)->private;
- return (ftd->multtable[a][b]);
-}
-
-#if defined(INTEL_SSSE3) || defined(ARM_NEON)
-static
- gf_val_32_t
-gf_w8_default_divide(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_w8_default_data *ftd;
-
- ftd = (struct gf_w8_default_data *) ((gf_internal_t *) gf->scratch)->private;
- return (ftd->divtable[a][b]);
-}
-#endif
-
-static
- gf_val_32_t
-gf_w8_double_table_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_w8_double_table_data *ftd;
-
- ftd = (struct gf_w8_double_table_data *) ((gf_internal_t *) gf->scratch)->private;
- return (ftd->mult[a][b]);
-}
-
-static
- gf_val_32_t
-gf_w8_double_table_divide(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_w8_double_table_data *ftd;
-
- ftd = (struct gf_w8_double_table_data *) ((gf_internal_t *) gf->scratch)->private;
- return (ftd->div[a][b]);
-}
-
-static
- void
-gf_w8_double_table_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint16_t *base;
- uint32_t b, c, vc, vb;
- gf_internal_t *h;
- struct gf_w8_double_table_data *dtd;
- struct gf_w8_double_table_lazy_data *ltd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) (gf->scratch);
- if (h->region_type & GF_REGION_LAZY) {
- ltd = (struct gf_w8_double_table_lazy_data *) h->private;
- base = ltd->mult;
- for (b = 0; b < GF_FIELD_SIZE; b++) {
- vb = (ltd->smult[val][b] << 8);
- for (c = 0; c < GF_FIELD_SIZE; c++) {
- vc = ltd->smult[val][c];
- base[(b << 8)| c] = (vb | vc);
- }
- }
-
- } else {
- dtd = (struct gf_w8_double_table_data *) h->private;
- base = &(dtd->mult[val][0]);
- }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 8);
- gf_do_initial_region_alignment(&rd);
- gf_two_byte_region_table_multiply(&rd, base);
- gf_do_final_region_alignment(&rd);
-}
-
-static
- gf_val_32_t
-gf_w8_double_table_lazy_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_w8_double_table_lazy_data *ftd;
-
- ftd = (struct gf_w8_double_table_lazy_data *) ((gf_internal_t *) gf->scratch)->private;
- return (ftd->smult[a][b]);
-}
-
-static
- gf_val_32_t
-gf_w8_double_table_lazy_divide(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_w8_double_table_lazy_data *ftd;
-
- ftd = (struct gf_w8_double_table_lazy_data *) ((gf_internal_t *) gf->scratch)->private;
- return (ftd->div[a][b]);
-}
-
-static
- void
-gf_w8_table_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- int i;
- uint8_t *s8, *d8;
- struct gf_w8_single_table_data *ftd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- ftd = (struct gf_w8_single_table_data *) ((gf_internal_t *) gf->scratch)->private;
- s8 = (uint8_t *) src;
- d8 = (uint8_t *) dest;
-
- if (xor) {
- for (i = 0; i < bytes; i++) {
- d8[i] ^= ftd->multtable[s8[i]][val];
- }
- } else {
- for (i = 0; i < bytes; i++) {
- d8[i] = ftd->multtable[s8[i]][val];
- }
- }
-}
-
-#ifdef INTEL_SSSE3
-static
- void
-gf_w8_split_multiply_region_sse(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint8_t *bh, *bl, *sptr, *dptr;
- __m128i loset, t1, r, va, mth, mtl;
- struct gf_w8_half_table_data *htd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- htd = (struct gf_w8_half_table_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- bh = (uint8_t *) htd->high;
- bh += (val << 4);
- bl = (uint8_t *) htd->low;
- bl += (val << 4);
-
- sptr = rd.s_start;
- dptr = rd.d_start;
-
- mth = _mm_loadu_si128 ((__m128i *)(bh));
- mtl = _mm_loadu_si128 ((__m128i *)(bl));
- loset = _mm_set1_epi8 (0x0f);
-
- if (xor) {
- while (sptr < (uint8_t *) rd.s_top) {
- va = _mm_load_si128 ((__m128i *)(sptr));
- t1 = _mm_and_si128 (loset, va);
- r = _mm_shuffle_epi8 (mtl, t1);
- va = _mm_srli_epi64 (va, 4);
- t1 = _mm_and_si128 (loset, va);
- r = _mm_xor_si128 (r, _mm_shuffle_epi8 (mth, t1));
- va = _mm_load_si128 ((__m128i *)(dptr));
- r = _mm_xor_si128 (r, va);
- _mm_store_si128 ((__m128i *)(dptr), r);
- dptr += 16;
- sptr += 16;
- }
- } else {
- while (sptr < (uint8_t *) rd.s_top) {
- va = _mm_load_si128 ((__m128i *)(sptr));
- t1 = _mm_and_si128 (loset, va);
- r = _mm_shuffle_epi8 (mtl, t1);
- va = _mm_srli_epi64 (va, 4);
- t1 = _mm_and_si128 (loset, va);
- r = _mm_xor_si128 (r, _mm_shuffle_epi8 (mth, t1));
- _mm_store_si128 ((__m128i *)(dptr), r);
- dptr += 16;
- sptr += 16;
- }
- }
-
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-
-/* ------------------------------------------------------------
-IMPLEMENTATION: FULL_TABLE:
- */
-
-static
- gf_val_32_t
-gf_w8_split_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- struct gf_w8_half_table_data *htd;
- htd = (struct gf_w8_half_table_data *) ((gf_internal_t *) gf->scratch)->private;
-
- return htd->high[b][a>>4] ^ htd->low[b][a&0xf];
-}
-
-static
- void
-gf_w8_split_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- int i;
- uint8_t *s8, *d8;
- struct gf_w8_half_table_data *htd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- htd = (struct gf_w8_half_table_data *) ((gf_internal_t *) gf->scratch)->private;
- s8 = (uint8_t *) src;
- d8 = (uint8_t *) dest;
-
- if (xor) {
- for (i = 0; i < bytes; i++) {
- d8[i] ^= (htd->high[val][s8[i]>>4] ^ htd->low[val][s8[i]&0xf]);
- }
- } else {
- for (i = 0; i < bytes; i++) {
- d8[i] = (htd->high[val][s8[i]>>4] ^ htd->low[val][s8[i]&0xf]);
- }
- }
-}
-
-
- static
-int gf_w8_split_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_w8_half_table_data *htd;
- int a, b;
-
- h = (gf_internal_t *) gf->scratch;
- htd = (struct gf_w8_half_table_data *)h->private;
-
- bzero(htd->high, sizeof(uint8_t)*GF_FIELD_SIZE*GF_HALF_SIZE);
- bzero(htd->low, sizeof(uint8_t)*GF_FIELD_SIZE*GF_HALF_SIZE);
-
- for (a = 1; a < GF_FIELD_SIZE; a++) {
- for (b = 1; b < GF_HALF_SIZE; b++) {
- htd->low[a][b] = gf_w8_shift_multiply(gf,a,b);
- htd->high[a][b] = gf_w8_shift_multiply(gf,a,b<<4);
- }
- }
-
- gf->multiply.w32 = gf_w8_split_multiply;
-
- #if defined(INTEL_SSSE3) || defined(ARM_NEON)
- if (h->region_type & GF_REGION_NOSIMD)
- gf->multiply_region.w32 = gf_w8_split_multiply_region;
- else
- #if defined(INTEL_SSSE3)
- gf->multiply_region.w32 = gf_w8_split_multiply_region_sse;
- #elif defined(ARM_NEON)
- gf_w8_neon_split_init(gf);
- #endif
- #else
- gf->multiply_region.w32 = gf_w8_split_multiply_region;
- if(h->region_type & GF_REGION_SIMD)
- return 0;
- #endif
-
- return 1;
-}
-
-/* JSP: This is disgusting, but it is what it is. If there is no SSE,
- then the default is equivalent to single table. If there is SSE, then
- we use the "gf_w8_default_data" which is a hybrid of SPLIT & TABLE. */
-
-static
-int gf_w8_table_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_w8_single_table_data *ftd = NULL;
- struct gf_w8_double_table_data *dtd = NULL;
- struct gf_w8_double_table_lazy_data *ltd = NULL;
- struct gf_w8_default_data *dd = NULL;
- int a, b, c, prod, scase, use_simd;
-
- h = (gf_internal_t *) gf->scratch;
-
-#if defined(INTEL_SSSE3) || defined(ARM_NEON)
- use_simd = 1;
-#else
- use_simd = 0;
-#endif
-
- if (h->mult_type == GF_MULT_DEFAULT && use_simd) {
- dd = (struct gf_w8_default_data *)h->private;
- scase = 3;
- bzero(dd->high, sizeof(uint8_t) * GF_FIELD_SIZE * GF_HALF_SIZE);
- bzero(dd->low, sizeof(uint8_t) * GF_FIELD_SIZE * GF_HALF_SIZE);
- bzero(dd->divtable, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
- bzero(dd->multtable, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
- } else if (h->mult_type == GF_MULT_DEFAULT ||
- h->region_type == 0 || (h->region_type & GF_REGION_CAUCHY)) {
- ftd = (struct gf_w8_single_table_data *)h->private;
- bzero(ftd->divtable, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
- bzero(ftd->multtable, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
- scase = 0;
- } else if (h->region_type == GF_REGION_DOUBLE_TABLE) {
- dtd = (struct gf_w8_double_table_data *)h->private;
- bzero(dtd->div, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
- bzero(dtd->mult, sizeof(uint16_t) * GF_FIELD_SIZE * GF_FIELD_SIZE * GF_FIELD_SIZE);
- scase = 1;
- } else if (h->region_type == (GF_REGION_DOUBLE_TABLE | GF_REGION_LAZY)) {
- ltd = (struct gf_w8_double_table_lazy_data *)h->private;
- bzero(ltd->div, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
- bzero(ltd->smult, sizeof(uint8_t) * GF_FIELD_SIZE * GF_FIELD_SIZE);
- scase = 2;
- } else {
- fprintf(stderr, "Internal error in gf_w8_table_init\n");
- assert(0);
- }
-
- for (a = 1; a < GF_FIELD_SIZE; a++) {
- for (b = 1; b < GF_FIELD_SIZE; b++) {
- prod = gf_w8_shift_multiply(gf,a,b);
- switch (scase) {
- case 0:
- ftd->multtable[a][b] = prod;
- ftd->divtable[prod][b] = a;
- break;
- case 1:
- dtd->div[prod][b] = a;
- for (c = 0; c < GF_FIELD_SIZE; c++) {
- dtd->mult[a][(c<<8)|b] |= prod;
- dtd->mult[a][(b<<8)|c] |= (prod<<8);
- }
- break;
- case 2:
- ltd->div[prod][b] = a;
- ltd->smult[a][b] = prod;
- break;
- case 3:
- dd->multtable[a][b] = prod;
- dd->divtable[prod][b] = a;
- if ((b & 0xf) == b) { dd->low[a][b] = prod; }
- if ((b & 0xf0) == b) { dd->high[a][b>>4] = prod; }
- break;
- }
- }
- }
-
- gf->inverse.w32 = NULL; /* Will set from divide */
- switch (scase) {
- case 0:
- gf->divide.w32 = gf_w8_table_divide;
- gf->multiply.w32 = gf_w8_table_multiply;
- gf->multiply_region.w32 = gf_w8_table_multiply_region;
- break;
- case 1:
- gf->divide.w32 = gf_w8_double_table_divide;
- gf->multiply.w32 = gf_w8_double_table_multiply;
- gf->multiply_region.w32 = gf_w8_double_table_multiply_region;
- break;
- case 2:
- gf->divide.w32 = gf_w8_double_table_lazy_divide;
- gf->multiply.w32 = gf_w8_double_table_lazy_multiply;
- gf->multiply_region.w32 = gf_w8_double_table_multiply_region;
- break;
- case 3:
-#if defined(INTEL_SSSE3) || defined(ARM_NEON)
- gf->divide.w32 = gf_w8_default_divide;
- gf->multiply.w32 = gf_w8_default_multiply;
-#if defined(INTEL_SSSE3)
- gf->multiply_region.w32 = gf_w8_split_multiply_region_sse;
-#elif defined(ARM_NEON)
- gf_w8_neon_split_init(gf);
-#endif
-#endif
- break;
- }
- return 1;
-}
-
-static
- void
-gf_w8_composite_multiply_region_alt(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint8_t val0 = val & 0x0f;
- uint8_t val1 = (val & 0xf0) >> 4;
- gf_region_data rd;
- int sub_reg_size;
-
- if (val == 0) {
- if (xor) return;
- bzero(dest, bytes);
- return;
- }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 32);
- gf_do_initial_region_alignment(&rd);
-
- sub_reg_size = ((uint8_t *)rd.d_top - (uint8_t *)rd.d_start) / 2;
-
- base_gf->multiply_region.w32(base_gf, rd.s_start, rd.d_start, val0, sub_reg_size, xor);
- base_gf->multiply_region.w32(base_gf, (uint8_t *)rd.s_start+sub_reg_size, rd.d_start, val1, sub_reg_size, 1);
- base_gf->multiply_region.w32(base_gf, rd.s_start, (uint8_t *)rd.d_start+sub_reg_size, val1, sub_reg_size, xor);
- base_gf->multiply_region.w32(base_gf, (uint8_t *)rd.s_start+sub_reg_size, (uint8_t *)rd.d_start+sub_reg_size, val0, sub_reg_size, 1);
- base_gf->multiply_region.w32(base_gf, (uint8_t *)rd.s_start+sub_reg_size, (uint8_t *)rd.d_start+sub_reg_size, base_gf->multiply.w32(base_gf, h->prim_poly, val1), sub_reg_size, 1);
-
- gf_do_final_region_alignment(&rd);
-}
-
-static
-gf_val_32_t
-gf_w8_composite_multiply_recursive(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint8_t b0 = b & 0x0f;
- uint8_t b1 = (b & 0xf0) >> 4;
- uint8_t a0 = a & 0x0f;
- uint8_t a1 = (a & 0xf0) >> 4;
- uint8_t a1b1;
-
- a1b1 = base_gf->multiply.w32(base_gf, a1, b1);
-
- return ((base_gf->multiply.w32(base_gf, a0, b0) ^ a1b1) |
- ((base_gf->multiply.w32(base_gf, a1, b0) ^
- base_gf->multiply.w32(base_gf, a0, b1) ^
- base_gf->multiply.w32(base_gf, a1b1, h->prim_poly)) << 4));
-}
-
-static
-gf_val_32_t
-gf_w8_composite_multiply_inline(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- uint8_t b0 = b & 0x0f;
- uint8_t b1 = (b & 0xf0) >> 4;
- uint8_t a0 = a & 0x0f;
- uint8_t a1 = (a & 0xf0) >> 4;
- uint8_t a1b1, *mt;
- struct gf_w8_composite_data *cd;
-
- cd = (struct gf_w8_composite_data *) h->private;
- mt = cd->mult_table;
-
- a1b1 = GF_W4_INLINE_MULTDIV(mt, a1, b1);
-
- return ((GF_W4_INLINE_MULTDIV(mt, a0, b0) ^ a1b1) |
- ((GF_W4_INLINE_MULTDIV(mt, a1, b0) ^
- GF_W4_INLINE_MULTDIV(mt, a0, b1) ^
- GF_W4_INLINE_MULTDIV(mt, a1b1, h->prim_poly)) << 4));
-}
-
-/*
- * Composite field division trick (explained in 2007 tech report)
- *
- * Compute a / b = a*b^-1, where p(x) = x^2 + sx + 1
- *
- * let c = b^-1
- *
- * c*b = (s*b1c1+b1c0+b0c1)x+(b1c1+b0c0)
- *
- * want (s*b1c1+b1c0+b0c1) = 0 and (b1c1+b0c0) = 1
- *
- * let d = b1c1 and d+1 = b0c0
- *
- * solve s*b1c1+b1c0+b0c1 = 0
- *
- * solution: d = (b1b0^-1)(b1b0^-1+b0b1^-1+s)^-1
- *
- * c0 = (d+1)b0^-1
- * c1 = d*b1^-1
- *
- * a / b = a * c
- */
-
-static
-gf_val_32_t
-gf_w8_composite_inverse(gf_t *gf, gf_val_32_t a)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint8_t a0 = a & 0x0f;
- uint8_t a1 = (a & 0xf0) >> 4;
- uint8_t c0, c1, c, d, tmp;
- uint8_t a0inv, a1inv;
-
- if (a0 == 0) {
- a1inv = base_gf->inverse.w32(base_gf, a1) & 0xf;
- c0 = base_gf->multiply.w32(base_gf, a1inv, h->prim_poly);
- c1 = a1inv;
- } else if (a1 == 0) {
- c0 = base_gf->inverse.w32(base_gf, a0);
- c1 = 0;
- } else {
- a1inv = base_gf->inverse.w32(base_gf, a1) & 0xf;
- a0inv = base_gf->inverse.w32(base_gf, a0) & 0xf;
-
- d = base_gf->multiply.w32(base_gf, a1, a0inv) & 0xf;
-
- tmp = (base_gf->multiply.w32(base_gf, a1, a0inv) ^ base_gf->multiply.w32(base_gf, a0, a1inv) ^ h->prim_poly) & 0xf;
- tmp = base_gf->inverse.w32(base_gf, tmp) & 0xf;
-
- d = base_gf->multiply.w32(base_gf, d, tmp) & 0xf;
-
- c0 = base_gf->multiply.w32(base_gf, (d^1), a0inv) & 0xf;
- c1 = base_gf->multiply.w32(base_gf, d, a1inv) & 0xf;
- }
-
- c = c0 | (c1 << 4);
-
- return c;
-}
-
-static
-void
-gf_w8_composite_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- gf_region_data rd;
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- gf_t *base_gf = h->base_gf;
- uint8_t b0 = val & 0x0f;
- uint8_t b1 = (val & 0xf0) >> 4;
- uint8_t *s8;
- uint8_t *d8;
- uint8_t *mt;
- uint8_t a0, a1, a1b1;
- struct gf_w8_composite_data *cd;
-
- cd = (struct gf_w8_composite_data *) h->private;
-
- if (val == 0) {
- if (xor) return;
- bzero(dest, bytes);
- return;
- }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 1);
- gf_do_initial_region_alignment(&rd);
-
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- mt = cd->mult_table;
- if (mt == NULL) {
- if (xor) {
- while (d8 < (uint8_t *) rd.d_top) {
- a0 = *s8 & 0x0f;
- a1 = (*s8 & 0xf0) >> 4;
- a1b1 = base_gf->multiply.w32(base_gf, a1, b1);
-
- *d8 ^= ((base_gf->multiply.w32(base_gf, a0, b0) ^ a1b1) |
- ((base_gf->multiply.w32(base_gf, a1, b0) ^
- base_gf->multiply.w32(base_gf, a0, b1) ^
- base_gf->multiply.w32(base_gf, a1b1, h->prim_poly)) << 4));
- s8++;
- d8++;
- }
- } else {
- while (d8 < (uint8_t *) rd.d_top) {
- a0 = *s8 & 0x0f;
- a1 = (*s8 & 0xf0) >> 4;
- a1b1 = base_gf->multiply.w32(base_gf, a1, b1);
-
- *d8 = ((base_gf->multiply.w32(base_gf, a0, b0) ^ a1b1) |
- ((base_gf->multiply.w32(base_gf, a1, b0) ^
- base_gf->multiply.w32(base_gf, a0, b1) ^
- base_gf->multiply.w32(base_gf, a1b1, h->prim_poly)) << 4));
- s8++;
- d8++;
- }
- }
- } else {
- if (xor) {
- while (d8 < (uint8_t *) rd.d_top) {
- a0 = *s8 & 0x0f;
- a1 = (*s8 & 0xf0) >> 4;
- a1b1 = GF_W4_INLINE_MULTDIV(mt, a1, b1);
-
- *d8 ^= ((GF_W4_INLINE_MULTDIV(mt, a0, b0) ^ a1b1) |
- ((GF_W4_INLINE_MULTDIV(mt, a1, b0) ^
- GF_W4_INLINE_MULTDIV(mt, a0, b1) ^
- GF_W4_INLINE_MULTDIV(mt, a1b1, h->prim_poly)) << 4));
- s8++;
- d8++;
- }
- } else {
- while (d8 < (uint8_t *) rd.d_top) {
- a0 = *s8 & 0x0f;
- a1 = (*s8 & 0xf0) >> 4;
- a1b1 = GF_W4_INLINE_MULTDIV(mt, a1, b1);
-
- *d8 = ((GF_W4_INLINE_MULTDIV(mt, a0, b0) ^ a1b1) |
- ((GF_W4_INLINE_MULTDIV(mt, a1, b0) ^
- GF_W4_INLINE_MULTDIV(mt, a0, b1) ^
- GF_W4_INLINE_MULTDIV(mt, a1b1, h->prim_poly)) << 4));
- s8++;
- d8++;
- }
- }
- }
- gf_do_final_region_alignment(&rd);
- return;
-}
-
-static
-int gf_w8_composite_init(gf_t *gf)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- struct gf_w8_composite_data *cd;
-
- if (h->base_gf == NULL) return 0;
-
- cd = (struct gf_w8_composite_data *) h->private;
- cd->mult_table = gf_w4_get_mult_table(h->base_gf);
-
- if (h->region_type & GF_REGION_ALTMAP) {
- gf->multiply_region.w32 = gf_w8_composite_multiply_region_alt;
- } else {
- gf->multiply_region.w32 = gf_w8_composite_multiply_region;
- }
-
- if (cd->mult_table == NULL) {
- gf->multiply.w32 = gf_w8_composite_multiply_recursive;
- } else {
- gf->multiply.w32 = gf_w8_composite_multiply_inline;
- }
- gf->divide.w32 = NULL;
- gf->inverse.w32 = gf_w8_composite_inverse;
-
- return 1;
-}
-
-static
-inline
- gf_val_32_t
-gf_w8_bytwo_p_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- uint32_t prod, pp, pmask, amask;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
-
- prod = 0;
- pmask = 0x80;
- amask = 0x80;
-
- while (amask != 0) {
- if (prod & pmask) {
- prod = ((prod << 1) ^ pp);
- } else {
- prod <<= 1;
- }
- if (a & amask) prod ^= b;
- amask >>= 1;
- }
- return prod;
-}
-
-static
-inline
- gf_val_32_t
-gf_w8_bytwo_b_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- uint32_t prod, pp, bmask;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- prod = 0;
- bmask = 0x80;
-
- while (1) {
- if (a & 1) prod ^= b;
- a >>= 1;
- if (a == 0) return prod;
- if (b & bmask) {
- b = ((b << 1) ^ pp);
- } else {
- b <<= 1;
- }
- }
-}
-
-static
- void
-gf_w8_bytwo_p_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint64_t *s64, *d64, t1, t2, ta, prod, amask;
- gf_region_data rd;
- struct gf_w8_bytwo_data *btd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- btd = (struct gf_w8_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 8);
- gf_do_initial_region_alignment(&rd);
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
-
- if (xor) {
- while (s64 < (uint64_t *) rd.s_top) {
- prod = 0;
- amask = 0x80;
- ta = *s64;
- while (amask != 0) {
- AB2(btd->prim_poly, btd->mask1, btd->mask2, prod, t1, t2);
- if (val & amask) prod ^= ta;
- amask >>= 1;
- }
- *d64 ^= prod;
- d64++;
- s64++;
- }
- } else {
- while (s64 < (uint64_t *) rd.s_top) {
- prod = 0;
- amask = 0x80;
- ta = *s64;
- while (amask != 0) {
- AB2(btd->prim_poly, btd->mask1, btd->mask2, prod, t1, t2);
- if (val & amask) prod ^= ta;
- amask >>= 1;
- }
- *d64 = prod;
- d64++;
- s64++;
- }
- }
- gf_do_final_region_alignment(&rd);
-}
-
-#define BYTWO_P_ONESTEP {\
- SSE_AB2(pp, m1 ,m2, prod, t1, t2); \
- t1 = _mm_and_si128(v, one); \
- t1 = _mm_sub_epi8(t1, one); \
- t1 = _mm_and_si128(t1, ta); \
- prod = _mm_xor_si128(prod, t1); \
- v = _mm_srli_epi64(v, 1); }
-
-#ifdef INTEL_SSE2
-static
- void
-gf_w8_bytwo_p_sse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- int i;
- uint8_t *s8, *d8;
- uint8_t vrev;
- __m128i pp, m1, m2, ta, prod, t1, t2, tp, one, v;
- struct gf_w8_bytwo_data *btd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- btd = (struct gf_w8_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- vrev = 0;
- for (i = 0; i < 8; i++) {
- vrev <<= 1;
- if (!(val & (1 << i))) vrev |= 1;
- }
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
- m2 = _mm_set1_epi8((btd->mask2)&0xff);
- one = _mm_set1_epi8(1);
-
- while (d8 < (uint8_t *) rd.d_top) {
- prod = _mm_setzero_si128();
- v = _mm_set1_epi8(vrev);
- ta = _mm_load_si128((__m128i *) s8);
- tp = (!xor) ? _mm_setzero_si128() : _mm_load_si128((__m128i *) d8);
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- BYTWO_P_ONESTEP;
- _mm_store_si128((__m128i *) d8, _mm_xor_si128(prod, tp));
- d8 += 16;
- s8 += 16;
- }
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
- void
-gf_w8_bytwo_b_sse_region_2_noxor(gf_region_data *rd, struct gf_w8_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, m2, t1, t2, va;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
- m2 = _mm_set1_epi8((btd->mask2)&0xff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- SSE_AB2(pp, m1, m2, va, t1, t2);
- _mm_store_si128((__m128i *)d8, va);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-#ifdef INTEL_SSE2
-static
- void
-gf_w8_bytwo_b_sse_region_2_xor(gf_region_data *rd, struct gf_w8_bytwo_data *btd)
-{
- uint8_t *d8, *s8;
- __m128i pp, m1, m2, t1, t2, va, vb;
-
- s8 = (uint8_t *) rd->s_start;
- d8 = (uint8_t *) rd->d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
- m2 = _mm_set1_epi8((btd->mask2)&0xff);
-
- while (d8 < (uint8_t *) rd->d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- SSE_AB2(pp, m1, m2, va, t1, t2);
- vb = _mm_load_si128 ((__m128i *)(d8));
- vb = _mm_xor_si128(vb, va);
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
-}
-#endif
-
-
-#ifdef INTEL_SSE2
-static
- void
-gf_w8_bytwo_b_sse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- int itb;
- uint8_t *d8, *s8;
- __m128i pp, m1, m2, t1, t2, va, vb;
- struct gf_w8_bytwo_data *btd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- btd = (struct gf_w8_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- if (val == 2) {
- if (xor) {
- gf_w8_bytwo_b_sse_region_2_xor(&rd, btd);
- } else {
- gf_w8_bytwo_b_sse_region_2_noxor(&rd, btd);
- }
- gf_do_final_region_alignment(&rd);
- return;
- }
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- pp = _mm_set1_epi8(btd->prim_poly&0xff);
- m1 = _mm_set1_epi8((btd->mask1)&0xff);
- m2 = _mm_set1_epi8((btd->mask2)&0xff);
-
- while (d8 < (uint8_t *) rd.d_top) {
- va = _mm_load_si128 ((__m128i *)(s8));
- vb = (!xor) ? _mm_setzero_si128() : _mm_load_si128 ((__m128i *)(d8));
- itb = val;
- while (1) {
- if (itb & 1) vb = _mm_xor_si128(vb, va);
- itb >>= 1;
- if (itb == 0) break;
- SSE_AB2(pp, m1, m2, va, t1, t2);
- }
- _mm_store_si128((__m128i *)d8, vb);
- d8 += 16;
- s8 += 16;
- }
-
- gf_do_final_region_alignment(&rd);
-}
-#endif
-
-static
- void
-gf_w8_bytwo_b_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint64_t *s64, *d64, t1, t2, ta, tb, prod;
- struct gf_w8_bytwo_data *btd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- btd = (struct gf_w8_bytwo_data *) ((gf_internal_t *) (gf->scratch))->private;
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
-
- switch (val) {
- case 2:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= ta;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta;
- d64++;
- s64++;
- }
- }
- break;
- case 3:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 4:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= ta;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta;
- d64++;
- s64++;
- }
- }
- break;
- case 5:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta ^ prod;
- d64++;
- s64++;
- }
- }
- break;
- case 6:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta ^ prod;
- d64++;
- s64++;
- }
- }
- break;
- /*
- case 7:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta ^ prod;
- d64++;
- s64++;
- }
- }
- break;
- */
- case 8:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= ta;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = ta;
- d64++;
- s64++;
- }
- }
- break;
- /*
- case 9:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 10:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 11:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 12:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 13:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 14:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- case 15:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 ^= (ta ^ prod);
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- ta = *s64;
- prod = ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- prod ^= ta;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- *d64 = (ta ^ prod);
- d64++;
- s64++;
- }
- }
- break;
- */
- default:
- if (xor) {
- while (d64 < (uint64_t *) rd.d_top) {
- prod = *d64 ;
- ta = *s64;
- tb = val;
- while (1) {
- if (tb & 1) prod ^= ta;
- tb >>= 1;
- if (tb == 0) break;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- }
- *d64 = prod;
- d64++;
- s64++;
- }
- } else {
- while (d64 < (uint64_t *) rd.d_top) {
- prod = 0 ;
- ta = *s64;
- tb = val;
- while (1) {
- if (tb & 1) prod ^= ta;
- tb >>= 1;
- if (tb == 0) break;
- AB2(btd->prim_poly, btd->mask1, btd->mask2, ta, t1, t2);
- }
- *d64 = prod;
- d64++;
- s64++;
- }
- }
- break;
- }
- gf_do_final_region_alignment(&rd);
-}
-
- static
-int gf_w8_bytwo_init(gf_t *gf)
-{
- gf_internal_t *h;
- uint64_t ip, m1, m2;
- struct gf_w8_bytwo_data *btd;
-
- h = (gf_internal_t *) gf->scratch;
- btd = (struct gf_w8_bytwo_data *) (h->private);
- ip = h->prim_poly & 0xff;
- m1 = 0xfe;
- m2 = 0x80;
- btd->prim_poly = 0;
- btd->mask1 = 0;
- btd->mask2 = 0;
-
- while (ip != 0) {
- btd->prim_poly |= ip;
- btd->mask1 |= m1;
- btd->mask2 |= m2;
- ip <<= GF_FIELD_WIDTH;
- m1 <<= GF_FIELD_WIDTH;
- m2 <<= GF_FIELD_WIDTH;
- }
-
- if (h->mult_type == GF_MULT_BYTWO_p) {
- gf->multiply.w32 = gf_w8_bytwo_p_multiply;
-#ifdef INTEL_SSE2
- if (h->region_type & GF_REGION_NOSIMD)
- gf->multiply_region.w32 = gf_w8_bytwo_p_nosse_multiply_region;
- else
- gf->multiply_region.w32 = gf_w8_bytwo_p_sse_multiply_region;
-#else
- gf->multiply_region.w32 = gf_w8_bytwo_p_nosse_multiply_region;
- if(h->region_type & GF_REGION_SIMD)
- return 0;
-#endif
- } else {
- gf->multiply.w32 = gf_w8_bytwo_b_multiply;
-#ifdef INTEL_SSE2
- if (h->region_type & GF_REGION_NOSIMD)
- gf->multiply_region.w32 = gf_w8_bytwo_b_nosse_multiply_region;
- else
- gf->multiply_region.w32 = gf_w8_bytwo_b_sse_multiply_region;
-#else
- gf->multiply_region.w32 = gf_w8_bytwo_b_nosse_multiply_region;
- if(h->region_type & GF_REGION_SIMD)
- return 0;
-#endif
- }
- return 1;
-}
-
-
-/* ------------------------------------------------------------
- General procedures.
- You don't need to error check here on in init, because it's done
- for you in gf_error_check().
- */
-
-int gf_w8_scratch_size(int mult_type, int region_type, int divide_type, int arg1, int arg2)
-{
- switch(mult_type)
- {
- case GF_MULT_DEFAULT:
-#if defined(INTEL_SSSE3) || defined(ARM_NEON)
- return sizeof(gf_internal_t) + sizeof(struct gf_w8_default_data) + 64;
-#endif
- return sizeof(gf_internal_t) + sizeof(struct gf_w8_single_table_data) + 64;
- case GF_MULT_TABLE:
- if (region_type == GF_REGION_CAUCHY) {
- return sizeof(gf_internal_t) + sizeof(struct gf_w8_single_table_data) + 64;
- }
-
- if (region_type == GF_REGION_DEFAULT) {
- return sizeof(gf_internal_t) + sizeof(struct gf_w8_single_table_data) + 64;
- }
- if (region_type & GF_REGION_DOUBLE_TABLE) {
- if (region_type == GF_REGION_DOUBLE_TABLE) {
- return sizeof(gf_internal_t) + sizeof(struct gf_w8_double_table_data) + 64;
- } else if (region_type == (GF_REGION_DOUBLE_TABLE | GF_REGION_LAZY)) {
- return sizeof(gf_internal_t) + sizeof(struct gf_w8_double_table_lazy_data) + 64;
- } else {
- return 0;
- }
- }
- return 0;
- break;
- case GF_MULT_BYTWO_p:
- case GF_MULT_BYTWO_b:
- return sizeof(gf_internal_t) + sizeof(struct gf_w8_bytwo_data);
- break;
- case GF_MULT_SPLIT_TABLE:
- if ((arg1 == 4 && arg2 == 8) || (arg1 == 8 && arg2 == 4)) {
- return sizeof(gf_internal_t) + sizeof(struct gf_w8_half_table_data) + 64;
- }
- break;
- case GF_MULT_LOG_TABLE:
- return sizeof(gf_internal_t) + sizeof(struct gf_w8_logtable_data) + 64;
- break;
- case GF_MULT_LOG_ZERO:
- return sizeof(gf_internal_t) + sizeof(struct gf_w8_logzero_small_table_data) + 64;
- break;
- case GF_MULT_LOG_ZERO_EXT:
- return sizeof(gf_internal_t) + sizeof(struct gf_w8_logzero_table_data) + 64;
- break;
- case GF_MULT_CARRY_FREE:
- return sizeof(gf_internal_t);
- break;
- case GF_MULT_SHIFT:
- return sizeof(gf_internal_t);
- break;
- case GF_MULT_COMPOSITE:
- return sizeof(gf_internal_t) + sizeof(struct gf_w8_composite_data) + 64;
- default:
- return 0;
- }
- return 0;
-}
-
-int gf_w8_init(gf_t *gf)
-{
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
-
- /* Allen: set default primitive polynomial / irreducible polynomial if needed */
-
- if (h->prim_poly == 0) {
- if (h->mult_type == GF_MULT_COMPOSITE) {
- h->prim_poly = gf_composite_get_default_poly(h->base_gf);
- if (h->prim_poly == 0) return 0; /* JSP: This shouldn't happen, but just in case. */
- } else {
- h->prim_poly = 0x11d;
- }
- }
- if (h->mult_type != GF_MULT_COMPOSITE) {
- h->prim_poly |= 0x100;
- }
-
- gf->multiply.w32 = NULL;
- gf->divide.w32 = NULL;
- gf->inverse.w32 = NULL;
- gf->multiply_region.w32 = NULL;
- gf->extract_word.w32 = gf_w8_extract_word;
-
- switch(h->mult_type) {
- case GF_MULT_DEFAULT:
- case GF_MULT_TABLE: if (gf_w8_table_init(gf) == 0) return 0; break;
- case GF_MULT_BYTWO_p:
- case GF_MULT_BYTWO_b: if (gf_w8_bytwo_init(gf) == 0) return 0; break;
- case GF_MULT_LOG_ZERO:
- case GF_MULT_LOG_ZERO_EXT:
- case GF_MULT_LOG_TABLE: if (gf_w8_log_init(gf) == 0) return 0; break;
- case GF_MULT_CARRY_FREE: if (gf_w8_cfm_init(gf) == 0) return 0; break;
- case GF_MULT_SHIFT: if (gf_w8_shift_init(gf) == 0) return 0; break;
- case GF_MULT_SPLIT_TABLE: if (gf_w8_split_init(gf) == 0) return 0; break;
- case GF_MULT_COMPOSITE: if (gf_w8_composite_init(gf) == 0) return 0; break;
- default: return 0;
- }
-
- if (h->divide_type == GF_DIVIDE_EUCLID) {
- gf->divide.w32 = gf_w8_divide_from_inverse;
- gf->inverse.w32 = gf_w8_euclid;
- } else if (h->divide_type == GF_DIVIDE_MATRIX) {
- gf->divide.w32 = gf_w8_divide_from_inverse;
- gf->inverse.w32 = gf_w8_matrix;
- }
-
- if (gf->divide.w32 == NULL) {
- gf->divide.w32 = gf_w8_divide_from_inverse;
- if (gf->inverse.w32 == NULL) gf->inverse.w32 = gf_w8_euclid;
- }
-
- if (gf->inverse.w32 == NULL) gf->inverse.w32 = gf_w8_inverse_from_divide;
-
- if (h->mult_type == GF_MULT_COMPOSITE && (h->region_type & GF_REGION_ALTMAP)) {
- gf->extract_word.w32 = gf_w8_composite_extract_word;
- }
-
- if (h->region_type == GF_REGION_CAUCHY) {
- gf->multiply_region.w32 = gf_wgen_cauchy_region;
- gf->extract_word.w32 = gf_wgen_extract_word;
- }
-
- if (gf->multiply_region.w32 == NULL) {
- gf->multiply_region.w32 = gf_w8_multiply_region_from_single;
- }
-
- return 1;
-}
-
-
-/* Inline setup functions */
-
-uint8_t *gf_w8_get_mult_table(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_w8_default_data *ftd;
- struct gf_w8_single_table_data *std;
-
- h = (gf_internal_t *) gf->scratch;
- if (gf->multiply.w32 == gf_w8_default_multiply) {
- ftd = (struct gf_w8_default_data *) h->private;
- return (uint8_t *) ftd->multtable;
- } else if (gf->multiply.w32 == gf_w8_table_multiply) {
- std = (struct gf_w8_single_table_data *) h->private;
- return (uint8_t *) std->multtable;
- }
- return NULL;
-}
-
-uint8_t *gf_w8_get_div_table(gf_t *gf)
-{
- struct gf_w8_default_data *ftd;
- struct gf_w8_single_table_data *std;
-
- if (gf->multiply.w32 == gf_w8_default_multiply) {
- ftd = (struct gf_w8_default_data *) ((gf_internal_t *) gf->scratch)->private;
- return (uint8_t *) ftd->divtable;
- } else if (gf->multiply.w32 == gf_w8_table_multiply) {
- std = (struct gf_w8_single_table_data *) ((gf_internal_t *) gf->scratch)->private;
- return (uint8_t *) std->divtable;
- }
- return NULL;
-}
diff --git a/src/c/gf-complete/src/gf_wgen.c b/src/c/gf-complete/src/gf_wgen.c
deleted file mode 100644
index c6a830e..0000000
--- a/src/c/gf-complete/src/gf_wgen.c
+++ /dev/null
@@ -1,1019 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_wgen.c
- *
- * Routines for Galois fields for general w < 32. For specific w,
- like 4, 8, 16, 32, 64 and 128, see the other files.
- */
-
-#include "gf_int.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-struct gf_wgen_table_w8_data {
- uint8_t *mult;
- uint8_t *div;
- uint8_t base;
-};
-
-struct gf_wgen_table_w16_data {
- uint16_t *mult;
- uint16_t *div;
- uint16_t base;
-};
-
-struct gf_wgen_log_w8_data {
- uint8_t *log;
- uint8_t *anti;
- uint8_t *danti;
- uint8_t base;
-};
-
-struct gf_wgen_log_w16_data {
- uint16_t *log;
- uint16_t *anti;
- uint16_t *danti;
- uint16_t base;
-};
-
-struct gf_wgen_log_w32_data {
- uint32_t *log;
- uint32_t *anti;
- uint32_t *danti;
- uint32_t base;
-};
-
-struct gf_wgen_group_data {
- uint32_t *reduce;
- uint32_t *shift;
- uint32_t mask;
- uint64_t rmask;
- int tshift;
- uint32_t memory;
-};
-
-static
-inline
-gf_val_32_t gf_wgen_inverse_from_divide (gf_t *gf, gf_val_32_t a)
-{
- return gf->divide.w32(gf, 1, a);
-}
-
-static
-inline
-gf_val_32_t gf_wgen_divide_from_inverse (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- b = gf->inverse.w32(gf, b);
- return gf->multiply.w32(gf, a, b);
-}
-
-static
-inline
-gf_val_32_t gf_wgen_euclid (gf_t *gf, gf_val_32_t b)
-{
-
- gf_val_32_t e_i, e_im1, e_ip1;
- gf_val_32_t d_i, d_im1, d_ip1;
- gf_val_32_t y_i, y_im1, y_ip1;
- gf_val_32_t c_i;
-
- if (b == 0) return -1;
- e_im1 = ((gf_internal_t *) (gf->scratch))->prim_poly;
- e_i = b;
- d_im1 = ((gf_internal_t *) (gf->scratch))->w;
- for (d_i = d_im1; ((1 << d_i) & e_i) == 0; d_i--) ;
- y_i = 1;
- y_im1 = 0;
-
- while (e_i != 1) {
-
- e_ip1 = e_im1;
- d_ip1 = d_im1;
- c_i = 0;
-
- while (d_ip1 >= d_i) {
- c_i ^= (1 << (d_ip1 - d_i));
- e_ip1 ^= (e_i << (d_ip1 - d_i));
- if (e_ip1 == 0) return 0;
- while ((e_ip1 & (1 << d_ip1)) == 0) d_ip1--;
- }
-
- y_ip1 = y_im1 ^ gf->multiply.w32(gf, c_i, y_i);
- y_im1 = y_i;
- y_i = y_ip1;
-
- e_im1 = e_i;
- d_im1 = d_i;
- e_i = e_ip1;
- d_i = d_ip1;
- }
-
- return y_i;
-}
-
-gf_val_32_t gf_wgen_extract_word(gf_t *gf, void *start, int bytes, int index)
-{
- uint8_t *ptr;
- uint32_t rv;
- int rs;
- int byte, bit, i;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- rs = bytes / h->w;
- byte = index/8;
- bit = index%8;
-
- ptr = (uint8_t *) start;
- ptr += bytes;
- ptr -= rs;
- ptr += byte;
-
- rv = 0;
- for (i = 0; i < h->w; i++) {
- rv <<= 1;
- if ((*ptr) & (1 << bit)) rv |= 1;
- ptr -= rs;
- }
-
- return rv;
-}
-
-static
-inline
-gf_val_32_t gf_wgen_matrix (gf_t *gf, gf_val_32_t b)
-{
- return gf_bitmatrix_inverse(b, ((gf_internal_t *) (gf->scratch))->w,
- ((gf_internal_t *) (gf->scratch))->prim_poly);
-}
-
-static
-inline
-uint32_t
-gf_wgen_shift_multiply (gf_t *gf, uint32_t a32, uint32_t b32)
-{
- uint64_t product, i, pp, a, b, one;
- gf_internal_t *h;
-
- a = a32;
- b = b32;
- h = (gf_internal_t *) gf->scratch;
- one = 1;
- pp = h->prim_poly | (one << h->w);
-
- product = 0;
-
- for (i = 0; i < h->w; i++) {
- if (a & (one << i)) product ^= (b << i);
- }
- for (i = h->w*2-1; i >= h->w; i--) {
- if (product & (one << i)) product ^= (pp << (i-h->w));
- }
- return product;
-}
-
-static
-int gf_wgen_shift_init(gf_t *gf)
-{
- gf->multiply.w32 = gf_wgen_shift_multiply;
- gf->inverse.w32 = gf_wgen_euclid;
- return 1;
-}
-
-static
-gf_val_32_t
-gf_wgen_bytwo_b_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- uint32_t prod, pp, bmask;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- prod = 0;
- bmask = (1 << (h->w-1));
-
- while (1) {
- if (a & 1) prod ^= b;
- a >>= 1;
- if (a == 0) return prod;
- if (b & bmask) {
- b = ((b << 1) ^ pp);
- } else {
- b <<= 1;
- }
- }
-}
-
-static
-int gf_wgen_bytwo_b_init(gf_t *gf)
-{
- gf->multiply.w32 = gf_wgen_bytwo_b_multiply;
- gf->inverse.w32 = gf_wgen_euclid;
- return 1;
-}
-
-static
-inline
-gf_val_32_t
-gf_wgen_bytwo_p_multiply (gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- uint32_t prod, pp, pmask, amask;
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- prod = 0;
- pmask = (1 << ((h->w)-1)); /*Ben: Had an operator precedence warning here*/
- amask = pmask;
-
- while (amask != 0) {
- if (prod & pmask) {
- prod = ((prod << 1) ^ pp);
- } else {
- prod <<= 1;
- }
- if (a & amask) prod ^= b;
- amask >>= 1;
- }
- return prod;
-}
-
-
-static
-int gf_wgen_bytwo_p_init(gf_t *gf)
-{
- gf->multiply.w32 = gf_wgen_bytwo_p_multiply;
- gf->inverse.w32 = gf_wgen_euclid;
- return 1;
-}
-
-static
-void
-gf_wgen_group_set_shift_tables(uint32_t *shift, uint32_t val, gf_internal_t *h)
-{
- int i;
- uint32_t j;
- int g_s;
-
- if (h->mult_type == GF_MULT_DEFAULT) {
- g_s = 2;
- } else {
- g_s = h->arg1;
- }
-
- shift[0] = 0;
-
- for (i = 1; i < (1 << g_s); i <<= 1) {
- for (j = 0; j < i; j++) shift[i|j] = shift[j]^val;
- if (val & (1 << (h->w-1))) {
- val <<= 1;
- val ^= h->prim_poly;
- } else {
- val <<= 1;
- }
- }
-}
-
-static
-inline
-gf_val_32_t
-gf_wgen_group_s_equals_r_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- int leftover, rs;
- uint32_t p, l, ind, a32;
- int bits_left;
- int g_s;
- int w;
-
- struct gf_wgen_group_data *gd;
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- g_s = h->arg1;
- w = h->w;
-
- gd = (struct gf_wgen_group_data *) h->private;
- gf_wgen_group_set_shift_tables(gd->shift, b, h);
-
- leftover = w % g_s;
- if (leftover == 0) leftover = g_s;
-
- rs = w - leftover;
- a32 = a;
- ind = a32 >> rs;
- a32 <<= leftover;
- a32 &= gd->mask;
- p = gd->shift[ind];
-
- bits_left = rs;
- rs = w - g_s;
-
- while (bits_left > 0) {
- bits_left -= g_s;
- ind = a32 >> rs;
- a32 <<= g_s;
- a32 &= gd->mask;
- l = p >> rs;
- p = (gd->shift[ind] ^ gd->reduce[l] ^ (p << g_s)) & gd->mask;
- }
- return p;
-}
-
-char *bits(uint32_t v)
-{
- char *rv;
- int i, j;
-
- rv = malloc(30);
- j = 0;
- for (i = 27; i >= 0; i--) {
- rv[j] = '0' + ((v & (1 << i)) ? 1 : 0);
- j++;
- }
- rv[j] = '\0';
- return rv;
-}
-char *bits_56(uint64_t v)
-{
- char *rv;
- int i, j;
- uint64_t one;
-
- one = 1;
-
- rv = malloc(60);
- j = 0;
- for (i = 55; i >= 0; i--) {
- rv[j] = '0' + ((v & (one << i)) ? 1 : 0);
- j++;
- }
- rv[j] = '\0';
- return rv;
-}
-
-static
-inline
-gf_val_32_t
-gf_wgen_group_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- int i;
- int leftover;
- uint64_t p, l, r;
- uint32_t a32, ind;
- int g_s, g_r;
- struct gf_wgen_group_data *gd;
- int w;
-
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- if (h->mult_type == GF_MULT_DEFAULT) {
- g_s = 2;
- g_r = 8;
- } else {
- g_s = h->arg1;
- g_r = h->arg2;
- }
- w = h->w;
- gd = (struct gf_wgen_group_data *) h->private;
- gf_wgen_group_set_shift_tables(gd->shift, b, h);
-
- leftover = w % g_s;
- if (leftover == 0) leftover = g_s;
-
- a32 = a;
- ind = a32 >> (w - leftover);
- p = gd->shift[ind];
- p <<= g_s;
- a32 <<= leftover;
- a32 &= gd->mask;
-
- i = (w - leftover);
- while (i > g_s) {
- ind = a32 >> (w-g_s);
- p ^= gd->shift[ind];
- a32 <<= g_s;
- a32 &= gd->mask;
- p <<= g_s;
- i -= g_s;
- }
-
- ind = a32 >> (h->w-g_s);
- p ^= gd->shift[ind];
-
- for (i = gd->tshift ; i >= 0; i -= g_r) {
- l = p & (gd->rmask << i);
- r = gd->reduce[l >> (i+w)];
- r <<= (i);
- p ^= r;
- }
- return p & gd->mask;
-}
-
-static
-int gf_wgen_group_init(gf_t *gf)
-{
- uint32_t i, j, p, index;
- struct gf_wgen_group_data *gd;
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- int g_s, g_r;
-
- if (h->mult_type == GF_MULT_DEFAULT) {
- g_s = 2;
- g_r = 8;
- } else {
- g_s = h->arg1;
- g_r = h->arg2;
- }
- gd = (struct gf_wgen_group_data *) h->private;
- gd->shift = &(gd->memory);
- gd->reduce = gd->shift + (1 << g_s);
- gd->mask = (h->w != 31) ? ((1 << h->w)-1) : 0x7fffffff;
-
- gd->rmask = (1 << g_r) - 1;
- gd->rmask <<= h->w;
-
- gd->tshift = h->w % g_s;
- if (gd->tshift == 0) gd->tshift = g_s;
- gd->tshift = (h->w - gd->tshift);
- gd->tshift = ((gd->tshift-1)/g_r) * g_r;
-
- gd->reduce[0] = 0;
- for (i = 0; i < (1 << g_r); i++) {
- p = 0;
- index = 0;
- for (j = 0; j < g_r; j++) {
- if (i & (1 << j)) {
- p ^= (h->prim_poly << j);
- index ^= (h->prim_poly >> (h->w-j));
- }
- }
- gd->reduce[index] = (p & gd->mask);
- }
-
- if (g_s == g_r) {
- gf->multiply.w32 = gf_wgen_group_s_equals_r_multiply;
- } else {
- gf->multiply.w32 = gf_wgen_group_multiply;
- }
- gf->divide.w32 = NULL;
- gf->divide.w32 = NULL;
- return 1;
-}
-
-
-static
-gf_val_32_t
-gf_wgen_table_8_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- gf_internal_t *h;
- struct gf_wgen_table_w8_data *std;
-
- h = (gf_internal_t *) gf->scratch;
- std = (struct gf_wgen_table_w8_data *) h->private;
-
- return (std->mult[(a<<h->w)+b]);
-}
-
-static
-gf_val_32_t
-gf_wgen_table_8_divide(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- gf_internal_t *h;
- struct gf_wgen_table_w8_data *std;
-
- h = (gf_internal_t *) gf->scratch;
- std = (struct gf_wgen_table_w8_data *) h->private;
-
- return (std->div[(a<<h->w)+b]);
-}
-
-static
-int gf_wgen_table_8_init(gf_t *gf)
-{
- gf_internal_t *h;
- int w;
- struct gf_wgen_table_w8_data *std;
- uint32_t a, b, p;
-
- h = (gf_internal_t *) gf->scratch;
- w = h->w;
- std = (struct gf_wgen_table_w8_data *) h->private;
-
- std->mult = &(std->base);
- std->div = std->mult + ((1<<h->w)*(1<<h->w));
-
- for (a = 0; a < (1 << w); a++) {
- std->mult[a] = 0;
- std->mult[a<<w] = 0;
- std->div[a] = 0;
- std->div[a<<w] = 0;
- }
-
- for (a = 1; a < (1 << w); a++) {
- for (b = 1; b < (1 << w); b++) {
- p = gf_wgen_shift_multiply(gf, a, b);
- std->mult[(a<<w)|b] = p;
- std->div[(p<<w)|a] = b;
- }
- }
-
- gf->multiply.w32 = gf_wgen_table_8_multiply;
- gf->divide.w32 = gf_wgen_table_8_divide;
- return 1;
-}
-
-static
-gf_val_32_t
-gf_wgen_table_16_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- gf_internal_t *h;
- struct gf_wgen_table_w16_data *std;
-
- h = (gf_internal_t *) gf->scratch;
- std = (struct gf_wgen_table_w16_data *) h->private;
-
- return (std->mult[(a<<h->w)+b]);
-}
-
-static
-gf_val_32_t
-gf_wgen_table_16_divide(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- gf_internal_t *h;
- struct gf_wgen_table_w16_data *std;
-
- h = (gf_internal_t *) gf->scratch;
- std = (struct gf_wgen_table_w16_data *) h->private;
-
- return (std->div[(a<<h->w)+b]);
-}
-
-static
-int gf_wgen_table_16_init(gf_t *gf)
-{
- gf_internal_t *h;
- int w;
- struct gf_wgen_table_w16_data *std;
- uint32_t a, b, p;
-
- h = (gf_internal_t *) gf->scratch;
- w = h->w;
- std = (struct gf_wgen_table_w16_data *) h->private;
-
- std->mult = &(std->base);
- std->div = std->mult + ((1<<h->w)*(1<<h->w));
-
- for (a = 0; a < (1 << w); a++) {
- std->mult[a] = 0;
- std->mult[a<<w] = 0;
- std->div[a] = 0;
- std->div[a<<w] = 0;
- }
-
- for (a = 1; a < (1 << w); a++) {
- for (b = 1; b < (1 << w); b++) {
- p = gf_wgen_shift_multiply(gf, a, b);
- std->mult[(a<<w)|b] = p;
- std->div[(p<<w)|a] = b;
- }
- }
-
- gf->multiply.w32 = gf_wgen_table_16_multiply;
- gf->divide.w32 = gf_wgen_table_16_divide;
- return 1;
-}
-
-static
-int gf_wgen_table_init(gf_t *gf)
-{
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- if (h->w <= 8) return gf_wgen_table_8_init(gf);
- if (h->w <= 14) return gf_wgen_table_16_init(gf);
-
- /* Returning zero to make the compiler happy, but this won't get
- executed, because it is tested in _scratch_space. */
-
- return 0;
-}
-
-static
-gf_val_32_t
-gf_wgen_log_8_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- gf_internal_t *h;
- struct gf_wgen_log_w8_data *std;
-
- h = (gf_internal_t *) gf->scratch;
- std = (struct gf_wgen_log_w8_data *) h->private;
-
- if (a == 0 || b == 0) return 0;
- return (std->anti[std->log[a]+std->log[b]]);
-}
-
-static
-gf_val_32_t
-gf_wgen_log_8_divide(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- gf_internal_t *h;
- struct gf_wgen_log_w8_data *std;
- int index;
-
- h = (gf_internal_t *) gf->scratch;
- std = (struct gf_wgen_log_w8_data *) h->private;
-
- if (a == 0 || b == 0) return 0;
- index = std->log[a];
- index -= std->log[b];
-
- return (std->danti[index]);
-}
-
-static
-int gf_wgen_log_8_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_wgen_log_w8_data *std;
- int w;
- uint32_t a, i;
- int check = 0;
-
- h = (gf_internal_t *) gf->scratch;
- w = h->w;
- std = (struct gf_wgen_log_w8_data *) h->private;
-
- std->log = &(std->base);
- std->anti = std->log + (1<<h->w);
- std->danti = std->anti + (1<<h->w)-1;
-
- for (i = 0; i < (1 << w); i++)
- std->log[i] = 0;
-
- a = 1;
- for(i=0; i < (1<<w)-1; i++)
- {
- if (std->log[a] != 0) check = 1;
- std->log[a] = i;
- std->anti[i] = a;
- std->danti[i] = a;
- a <<= 1;
- if(a & (1<<w))
- a ^= h->prim_poly;
- //a &= ((1 << w)-1);
- }
-
- if (check != 0) {
- _gf_errno = GF_E_LOGPOLY;
- return 0;
- }
-
- gf->multiply.w32 = gf_wgen_log_8_multiply;
- gf->divide.w32 = gf_wgen_log_8_divide;
- return 1;
-}
-
-static
-gf_val_32_t
-gf_wgen_log_16_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- gf_internal_t *h;
- struct gf_wgen_log_w16_data *std;
-
- h = (gf_internal_t *) gf->scratch;
- std = (struct gf_wgen_log_w16_data *) h->private;
-
- if (a == 0 || b == 0) return 0;
- return (std->anti[std->log[a]+std->log[b]]);
-}
-
-static
-gf_val_32_t
-gf_wgen_log_16_divide(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- gf_internal_t *h;
- struct gf_wgen_log_w16_data *std;
- int index;
-
- h = (gf_internal_t *) gf->scratch;
- std = (struct gf_wgen_log_w16_data *) h->private;
-
- if (a == 0 || b == 0) return 0;
- index = std->log[a];
- index -= std->log[b];
-
- return (std->danti[index]);
-}
-
-static
-int gf_wgen_log_16_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_wgen_log_w16_data *std;
- int w;
- uint32_t a, i;
- int check = 0;
-
- h = (gf_internal_t *) gf->scratch;
- w = h->w;
- std = (struct gf_wgen_log_w16_data *) h->private;
-
- std->log = &(std->base);
- std->anti = std->log + (1<<h->w);
- std->danti = std->anti + (1<<h->w)-1;
-
- for (i = 0; i < (1 << w); i++)
- std->log[i] = 0;
-
- a = 1;
- for(i=0; i < (1<<w)-1; i++)
- {
- if (std->log[a] != 0) check = 1;
- std->log[a] = i;
- std->anti[i] = a;
- std->danti[i] = a;
- a <<= 1;
- if(a & (1<<w))
- a ^= h->prim_poly;
- //a &= ((1 << w)-1);
- }
-
- if (check) {
- if (h->mult_type != GF_MULT_LOG_TABLE) return gf_wgen_shift_init(gf);
- _gf_errno = GF_E_LOGPOLY;
- return 0;
- }
-
- gf->multiply.w32 = gf_wgen_log_16_multiply;
- gf->divide.w32 = gf_wgen_log_16_divide;
- return 1;
-}
-
-static
-gf_val_32_t
-gf_wgen_log_32_multiply(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- gf_internal_t *h;
- struct gf_wgen_log_w32_data *std;
-
- h = (gf_internal_t *) gf->scratch;
- std = (struct gf_wgen_log_w32_data *) h->private;
-
- if (a == 0 || b == 0) return 0;
- return (std->anti[std->log[a]+std->log[b]]);
-}
-
-static
-gf_val_32_t
-gf_wgen_log_32_divide(gf_t *gf, gf_val_32_t a, gf_val_32_t b)
-{
- gf_internal_t *h;
- struct gf_wgen_log_w32_data *std;
- int index;
-
- h = (gf_internal_t *) gf->scratch;
- std = (struct gf_wgen_log_w32_data *) h->private;
-
- if (a == 0 || b == 0) return 0;
- index = std->log[a];
- index -= std->log[b];
-
- return (std->danti[index]);
-}
-
-static
-int gf_wgen_log_32_init(gf_t *gf)
-{
- gf_internal_t *h;
- struct gf_wgen_log_w32_data *std;
- int w;
- uint32_t a, i;
- int check = 0;
-
- h = (gf_internal_t *) gf->scratch;
- w = h->w;
- std = (struct gf_wgen_log_w32_data *) h->private;
-
- std->log = &(std->base);
- std->anti = std->log + (1<<h->w);
- std->danti = std->anti + (1<<h->w)-1;
-
- for (i = 0; i < (1 << w); i++)
- std->log[i] = 0;
-
- a = 1;
- for(i=0; i < (1<<w)-1; i++)
- {
- if (std->log[a] != 0) check = 1;
- std->log[a] = i;
- std->anti[i] = a;
- std->danti[i] = a;
- a <<= 1;
- if(a & (1<<w))
- a ^= h->prim_poly;
- //a &= ((1 << w)-1);
- }
-
- if (check != 0) {
- _gf_errno = GF_E_LOGPOLY;
- return 0;
- }
-
- gf->multiply.w32 = gf_wgen_log_32_multiply;
- gf->divide.w32 = gf_wgen_log_32_divide;
- return 1;
-}
-
-static
-int gf_wgen_log_init(gf_t *gf)
-{
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- if (h->w <= 8) return gf_wgen_log_8_init(gf);
- if (h->w <= 16) return gf_wgen_log_16_init(gf);
- if (h->w <= 32) return gf_wgen_log_32_init(gf);
-
- /* Returning zero to make the compiler happy, but this won't get
- executed, because it is tested in _scratch_space. */
-
- return 0;
-}
-
-int gf_wgen_scratch_size(int w, int mult_type, int region_type, int divide_type, int arg1, int arg2)
-{
-
- switch(mult_type)
- {
- case GF_MULT_DEFAULT:
- if (w <= 8) {
- return sizeof(gf_internal_t) + sizeof(struct gf_wgen_table_w8_data) +
- sizeof(uint8_t)*(1 << w)*(1<<w)*2 + 64;
- } else if (w <= 16) {
- return sizeof(gf_internal_t) + sizeof(struct gf_wgen_log_w16_data) +
- sizeof(uint16_t)*(1 << w)*3;
- } else {
- return sizeof(gf_internal_t) + sizeof(struct gf_wgen_group_data) +
- sizeof(uint32_t) * (1 << 2) +
- sizeof(uint32_t) * (1 << 8) + 64;
- }
- case GF_MULT_SHIFT:
- case GF_MULT_BYTWO_b:
- case GF_MULT_BYTWO_p:
- return sizeof(gf_internal_t);
- break;
- case GF_MULT_GROUP:
- return sizeof(gf_internal_t) + sizeof(struct gf_wgen_group_data) +
- sizeof(uint32_t) * (1 << arg1) +
- sizeof(uint32_t) * (1 << arg2) + 64;
- break;
-
- case GF_MULT_TABLE:
- if (w <= 8) {
- return sizeof(gf_internal_t) + sizeof(struct gf_wgen_table_w8_data) +
- sizeof(uint8_t)*(1 << w)*(1<<w)*2 + 64;
- } else if (w < 15) {
- return sizeof(gf_internal_t) + sizeof(struct gf_wgen_table_w16_data) +
- sizeof(uint16_t)*(1 << w)*(1<<w)*2 + 64;
- }
- return 0;
- case GF_MULT_LOG_TABLE:
- if (w <= 8) {
- return sizeof(gf_internal_t) + sizeof(struct gf_wgen_log_w8_data) +
- sizeof(uint8_t)*(1 << w)*3;
- } else if (w <= 16) {
- return sizeof(gf_internal_t) + sizeof(struct gf_wgen_log_w16_data) +
- sizeof(uint16_t)*(1 << w)*3;
- } else if (w <= 27) {
- return sizeof(gf_internal_t) + sizeof(struct gf_wgen_log_w32_data) +
- sizeof(uint32_t)*(1 << w)*3;
- } else
- return 0;
- default:
- return 0;
- }
-}
-
-void
-gf_wgen_cauchy_region(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- gf_internal_t *h;
- gf_region_data rd;
- int written;
- int rs, i, j;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, -1);
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) gf->scratch;
- rs = bytes / (h->w);
-
- written = (xor) ? 0xffffffff : 0;
- for (i = 0; i < h->w; i++) {
- for (j = 0; j < h->w; j++) {
- if (val & (1 << j)) {
- gf_multby_one(src, ((uint8_t *)dest) + j*rs, rs, (written & (1 << j)));
- written |= (1 << j);
- }
- }
- src = (uint8_t *)src + rs;
- val = gf->multiply.w32(gf, val, 2);
- }
-}
-
-int gf_wgen_init(gf_t *gf)
-{
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
- if (h->prim_poly == 0) {
- switch (h->w) {
- case 1: h->prim_poly = 1; break;
- case 2: h->prim_poly = 7; break;
- case 3: h->prim_poly = 013; break;
- case 4: h->prim_poly = 023; break;
- case 5: h->prim_poly = 045; break;
- case 6: h->prim_poly = 0103; break;
- case 7: h->prim_poly = 0211; break;
- case 8: h->prim_poly = 0435; break;
- case 9: h->prim_poly = 01021; break;
- case 10: h->prim_poly = 02011; break;
- case 11: h->prim_poly = 04005; break;
- case 12: h->prim_poly = 010123; break;
- case 13: h->prim_poly = 020033; break;
- case 14: h->prim_poly = 042103; break;
- case 15: h->prim_poly = 0100003; break;
- case 16: h->prim_poly = 0210013; break;
- case 17: h->prim_poly = 0400011; break;
- case 18: h->prim_poly = 01000201; break;
- case 19: h->prim_poly = 02000047; break;
- case 20: h->prim_poly = 04000011; break;
- case 21: h->prim_poly = 010000005; break;
- case 22: h->prim_poly = 020000003; break;
- case 23: h->prim_poly = 040000041; break;
- case 24: h->prim_poly = 0100000207; break;
- case 25: h->prim_poly = 0200000011; break;
- case 26: h->prim_poly = 0400000107; break;
- case 27: h->prim_poly = 01000000047; break;
- case 28: h->prim_poly = 02000000011; break;
- case 29: h->prim_poly = 04000000005; break;
- case 30: h->prim_poly = 010040000007; break;
- case 31: h->prim_poly = 020000000011; break;
- case 32: h->prim_poly = 00020000007; break;
- default: fprintf(stderr, "gf_wgen_init: w not defined yet\n"); exit(1);
- }
- } else {
- if (h->w == 32) {
- h->prim_poly &= 0xffffffff;
- } else {
- h->prim_poly |= (1 << h->w);
- if (h->prim_poly & ~((1ULL<<(h->w+1))-1)) return 0;
- }
- }
-
- gf->multiply.w32 = NULL;
- gf->divide.w32 = NULL;
- gf->inverse.w32 = NULL;
- gf->multiply_region.w32 = gf_wgen_cauchy_region;
- gf->extract_word.w32 = gf_wgen_extract_word;
-
- switch(h->mult_type) {
- case GF_MULT_DEFAULT:
- if (h->w <= 8) {
- if (gf_wgen_table_init(gf) == 0) return 0;
- } else if (h->w <= 16) {
- if (gf_wgen_log_init(gf) == 0) return 0;
- } else {
- if (gf_wgen_bytwo_p_init(gf) == 0) return 0;
- }
- break;
- case GF_MULT_SHIFT: if (gf_wgen_shift_init(gf) == 0) return 0; break;
- case GF_MULT_BYTWO_b: if (gf_wgen_bytwo_b_init(gf) == 0) return 0; break;
- case GF_MULT_BYTWO_p: if (gf_wgen_bytwo_p_init(gf) == 0) return 0; break;
- case GF_MULT_GROUP: if (gf_wgen_group_init(gf) == 0) return 0; break;
- case GF_MULT_TABLE: if (gf_wgen_table_init(gf) == 0) return 0; break;
- case GF_MULT_LOG_TABLE: if (gf_wgen_log_init(gf) == 0) return 0; break;
- default: return 0;
- }
- if (h->divide_type == GF_DIVIDE_EUCLID) {
- gf->divide.w32 = gf_wgen_divide_from_inverse;
- gf->inverse.w32 = gf_wgen_euclid;
- } else if (h->divide_type == GF_DIVIDE_MATRIX) {
- gf->divide.w32 = gf_wgen_divide_from_inverse;
- gf->inverse.w32 = gf_wgen_matrix;
- }
-
- if (gf->inverse.w32== NULL && gf->divide.w32 == NULL) gf->inverse.w32 = gf_wgen_euclid;
-
- if (gf->inverse.w32 != NULL && gf->divide.w32 == NULL) {
- gf->divide.w32 = gf_wgen_divide_from_inverse;
- }
- if (gf->inverse.w32 == NULL && gf->divide.w32 != NULL) {
- gf->inverse.w32 = gf_wgen_inverse_from_divide;
- }
- return 1;
-}
diff --git a/src/c/gf-complete/src/neon/gf_w16_neon.c b/src/c/gf-complete/src/neon/gf_w16_neon.c
deleted file mode 100644
index 95bfd80..0000000
--- a/src/c/gf-complete/src/neon/gf_w16_neon.c
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * Copyright (c) 2014: Janne Grunau <j@jannau.net>
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- *
- *
- * gf_w16_neon.c
- *
- * Neon routines for 16-bit Galois fields
- *
- */
-
-#include "gf_int.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "gf_w16.h"
-
-#ifdef ARCH_AARCH64
-static
-inline
-void
-neon_w16_split_4_multiply_region(gf_t *gf, uint16_t *src, uint16_t *dst,
- uint16_t *d_end, uint8_t *tbl,
- gf_val_32_t val, int xor)
-{
- unsigned i;
- uint8_t *high = tbl + 4 * 16;
- uint16x8_t va0, va1, r0, r1;
- uint8x16_t loset, rl, rh;
- uint8x16x2_t va;
-
- uint8x16_t tbl_h[4], tbl_l[4];
- for (i = 0; i < 4; i++) {
- tbl_l[i] = vld1q_u8(tbl + i*16);
- tbl_h[i] = vld1q_u8(high + i*16);
- }
-
- loset = vdupq_n_u8(0xf);
-
- while (dst < d_end) {
- va0 = vld1q_u16(src);
- va1 = vld1q_u16(src + 8);
-
- va = vtrnq_u8(vreinterpretq_u8_u16(va0), vreinterpretq_u8_u16(va1));
-
- rl = vqtbl1q_u8(tbl_l[0], vandq_u8(va.val[0], loset));
- rh = vqtbl1q_u8(tbl_h[0], vandq_u8(va.val[0], loset));
- rl = veorq_u8(rl, vqtbl1q_u8(tbl_l[2], vandq_u8(va.val[1], loset)));
- rh = veorq_u8(rh, vqtbl1q_u8(tbl_h[2], vandq_u8(va.val[1], loset)));
-
- va.val[0] = vshrq_n_u8(va.val[0], 4);
- va.val[1] = vshrq_n_u8(va.val[1], 4);
-
- rl = veorq_u8(rl, vqtbl1q_u8(tbl_l[1], va.val[0]));
- rh = veorq_u8(rh, vqtbl1q_u8(tbl_h[1], va.val[0]));
- rl = veorq_u8(rl, vqtbl1q_u8(tbl_l[3], va.val[1]));
- rh = veorq_u8(rh, vqtbl1q_u8(tbl_h[3], va.val[1]));
-
- va = vtrnq_u8(rl, rh);
- r0 = vreinterpretq_u16_u8(va.val[0]);
- r1 = vreinterpretq_u16_u8(va.val[1]);
-
- if (xor) {
- va0 = vld1q_u16(dst);
- va1 = vld1q_u16(dst + 8);
- r0 = veorq_u16(r0, va0);
- r1 = veorq_u16(r1, va1);
- }
- vst1q_u16(dst, r0);
- vst1q_u16(dst + 8, r1);
-
- src += 16;
- dst += 16;
- }
-}
-
-static
-inline
-void
-neon_w16_split_4_altmap_multiply_region(gf_t *gf, uint8_t *src,
- uint8_t *dst, uint8_t *d_end,
- uint8_t *tbl, gf_val_32_t val,
- int xor)
-{
- unsigned i;
- uint8_t *high = tbl + 4 * 16;
- uint8x16_t vh, vl, rh, rl;
- uint8x16_t loset;
-
- uint8x16_t tbl_h[4], tbl_l[4];
- for (i = 0; i < 4; i++) {
- tbl_l[i] = vld1q_u8(tbl + i*16);
- tbl_h[i] = vld1q_u8(high + i*16);
- }
-
- loset = vdupq_n_u8(0xf);
-
- while (dst < d_end) {
- vh = vld1q_u8(src);
- vl = vld1q_u8(src + 16);
-
- rl = vqtbl1q_u8(tbl_l[0], vandq_u8(vl, loset));
- rh = vqtbl1q_u8(tbl_h[0], vandq_u8(vl, loset));
- rl = veorq_u8(rl, vqtbl1q_u8(tbl_l[2], vandq_u8(vh, loset)));
- rh = veorq_u8(rh, vqtbl1q_u8(tbl_h[2], vandq_u8(vh, loset)));
-
- vl = vshrq_n_u8(vl, 4);
- vh = vshrq_n_u8(vh, 4);
-
- rl = veorq_u8(rl, vqtbl1q_u8(tbl_l[1], vl));
- rh = veorq_u8(rh, vqtbl1q_u8(tbl_h[1], vl));
- rl = veorq_u8(rl, vqtbl1q_u8(tbl_l[3], vh));
- rh = veorq_u8(rh, vqtbl1q_u8(tbl_h[3], vh));
-
- if (xor) {
- vh = vld1q_u8(dst);
- vl = vld1q_u8(dst + 16);
- rh = veorq_u8(rh, vh);
- rl = veorq_u8(rl, vl);
- }
- vst1q_u8(dst, rh);
- vst1q_u8(dst + 16, rl);
-
- src += 32;
- dst += 32;
- }
-}
-
-#else /* ARCH_AARCH64 */
-
-static
-inline
-void
-neon_w16_split_4_multiply_region(gf_t *gf, uint16_t *src, uint16_t *dst,
- uint16_t *d_end, uint8_t *tbl,
- gf_val_32_t val, int xor)
-{
- unsigned i;
- uint8_t *high = tbl + 4 * 16;
- uint16x8_t va, r;
- uint8x8_t loset, vb, vc, rl, rh;
-
- uint8x8x2_t tbl_h[4], tbl_l[4];
- for (i = 0; i < 4; i++) {
- tbl_l[i].val[0] = vld1_u8(tbl + i*16);
- tbl_l[i].val[1] = vld1_u8(tbl + i*16 + 8);
- tbl_h[i].val[0] = vld1_u8(high + i*16);
- tbl_h[i].val[1] = vld1_u8(high + i*16 + 8);
- }
-
- loset = vdup_n_u8(0xf);
-
- while (dst < d_end) {
- va = vld1q_u16(src);
-
- vb = vmovn_u16(va);
- vc = vshrn_n_u16(va, 8);
-
- rl = vtbl2_u8(tbl_l[0], vand_u8(vb, loset));
- rh = vtbl2_u8(tbl_h[0], vand_u8(vb, loset));
- vb = vshr_n_u8(vb, 4);
- rl = veor_u8(rl, vtbl2_u8(tbl_l[2], vand_u8(vc, loset)));
- rh = veor_u8(rh, vtbl2_u8(tbl_h[2], vand_u8(vc, loset)));
- vc = vshr_n_u8(vc, 4);
- rl = veor_u8(rl, vtbl2_u8(tbl_l[1], vb));
- rh = veor_u8(rh, vtbl2_u8(tbl_h[1], vb));
- rl = veor_u8(rl, vtbl2_u8(tbl_l[3], vc));
- rh = veor_u8(rh, vtbl2_u8(tbl_h[3], vc));
-
- r = vmovl_u8(rl);
- r = vorrq_u16(r, vshll_n_u8(rh, 8));
-
- if (xor) {
- va = vld1q_u16(dst);
- r = veorq_u16(r, va);
- }
- vst1q_u16(dst, r);
-
- src += 8;
- dst += 8;
- }
-}
-
-static
-inline
-void
-neon_w16_split_4_altmap_multiply_region(gf_t *gf, uint8_t *src,
- uint8_t *dst, uint8_t *d_end,
- uint8_t *tbl, gf_val_32_t val,
- int xor)
-{
- unsigned i;
- uint8_t *high = tbl + 4 * 16;
- uint8x8_t vh0, vh1, vl0, vl1, r0, r1, r2, r3;
- uint8x8_t loset;
-
- uint8x8x2_t tbl_h[4], tbl_l[4];
- for (i = 0; i < 4; i++) {
- tbl_l[i].val[0] = vld1_u8(tbl + i*16);
- tbl_l[i].val[1] = vld1_u8(tbl + i*16 + 8);
- tbl_h[i].val[0] = vld1_u8(high + i*16);
- tbl_h[i].val[1] = vld1_u8(high + i*16 + 8);
- }
-
- loset = vdup_n_u8(0xf);
-
- while (dst < d_end) {
- vh0 = vld1_u8(src);
- vh1 = vld1_u8(src + 8);
- vl0 = vld1_u8(src + 16);
- vl1 = vld1_u8(src + 24);
-
- r0 = vtbl2_u8(tbl_l[0], vand_u8(vh0, loset));
- r1 = vtbl2_u8(tbl_h[0], vand_u8(vh1, loset));
- r2 = vtbl2_u8(tbl_l[2], vand_u8(vl0, loset));
- r3 = vtbl2_u8(tbl_h[2], vand_u8(vl1, loset));
-
- vh0 = vshr_n_u8(vh0, 4);
- vh1 = vshr_n_u8(vh1, 4);
- vl0 = vshr_n_u8(vl0, 4);
- vl1 = vshr_n_u8(vl1, 4);
-
- r0 = veor_u8(r0, vtbl2_u8(tbl_l[1], vh0));
- r1 = veor_u8(r1, vtbl2_u8(tbl_h[1], vh1));
- r2 = veor_u8(r2, vtbl2_u8(tbl_l[3], vl0));
- r3 = veor_u8(r3, vtbl2_u8(tbl_h[3], vl1));
-
- if (xor) {
- vh0 = vld1_u8(dst);
- vh1 = vld1_u8(dst + 8);
- vl0 = vld1_u8(dst + 16);
- vl1 = vld1_u8(dst + 24);
- r0 = veor_u8(r0, vh0);
- r1 = veor_u8(r1, vh1);
- r2 = veor_u8(r2, vl0);
- r3 = veor_u8(r3, vl1);
- }
- vst1_u8(dst, r0);
- vst1_u8(dst + 8, r1);
- vst1_u8(dst + 16, r2);
- vst1_u8(dst + 24, r3);
-
- src += 32;
- dst += 32;
- }
-}
-#endif /* ARCH_AARCH64 */
-
-static
-inline
-void
-neon_w16_split_4_16_lazy_multiply_region(gf_t *gf, void *src, void *dest,
- gf_val_32_t val, int bytes, int xor,
- int altmap)
-{
- gf_region_data rd;
- unsigned i, j;
- uint64_t c, prod;
- uint8_t tbl[2 * 4 * 16];
- uint8_t *high = tbl + 4 * 16;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- for (i = 0; i < 4; i++) {
- for (j = 0; j < 16; j++) {
- c = (j << (i*4));
- prod = gf->multiply.w32(gf, c, val);
- tbl[i*16 + j] = prod & 0xff;
- high[i*16 + j] = prod >> 8;
- }
- }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 32);
- gf_do_initial_region_alignment(&rd);
-
- if (altmap) {
- uint8_t *s8 = rd.s_start;
- uint8_t *d8 = rd.d_start;
- uint8_t *end8 = rd.d_top;
- if (xor)
- neon_w16_split_4_altmap_multiply_region(gf, s8, d8, end8, tbl, val, 1);
- else
- neon_w16_split_4_altmap_multiply_region(gf, s8, d8, end8, tbl, val, 0);
- } else {
- uint16_t *s16 = rd.s_start;
- uint16_t *d16 = rd.d_start;
- uint16_t *end16 = rd.d_top;
- if (xor)
- neon_w16_split_4_multiply_region(gf, s16, d16, end16, tbl, val, 1);
- else
- neon_w16_split_4_multiply_region(gf, s16, d16, end16, tbl, val, 0);
- }
-
- gf_do_final_region_alignment(&rd);
-}
-
-static
-void
-gf_w16_split_4_16_lazy_multiply_region_neon(gf_t *gf, void *src, void *dest,
- gf_val_32_t val, int bytes, int xor)
-{
- neon_w16_split_4_16_lazy_multiply_region(gf, src, dest, val, bytes, xor, 0);
-}
-
-static
-void
-gf_w16_split_4_16_lazy_altmap_multiply_region_neon(gf_t *gf, void *src,
- void *dest,
- gf_val_32_t val, int bytes,
- int xor)
-{
- neon_w16_split_4_16_lazy_multiply_region(gf, src, dest, val, bytes, xor, 1);
-}
-
-
-void gf_w16_neon_split_init(gf_t *gf)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
-
- if (h->region_type & GF_REGION_ALTMAP)
- gf->multiply_region.w32 = gf_w16_split_4_16_lazy_altmap_multiply_region_neon;
- else
- gf->multiply_region.w32 = gf_w16_split_4_16_lazy_multiply_region_neon;
-}
diff --git a/src/c/gf-complete/src/neon/gf_w32_neon.c b/src/c/gf-complete/src/neon/gf_w32_neon.c
deleted file mode 100644
index 8231eb3..0000000
--- a/src/c/gf-complete/src/neon/gf_w32_neon.c
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * Copyright (c) 2014: Janne Grunau <j@jannau.net>
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- *
- * gf_w32_neon.c
- *
- * Neon routines for 32-bit Galois fields
- *
- */
-
-
-#include "gf_int.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "gf_w32.h"
-
-#ifndef ARCH_AARCH64
-#define vqtbl1q_u8(tbl, v) vcombine_u8(vtbl2_u8(tbl, vget_low_u8(v)), \
- vtbl2_u8(tbl, vget_high_u8(v)))
-#endif
-
-static
-void
-neon_w32_split_4_32_multiply_region(gf_t *gf, uint32_t *src, uint32_t *dst,
- uint32_t *d_end, uint8_t btable[8][4][16],
- uint32_t val, int xor, int altmap)
-{
- int i, j;
-#ifdef ARCH_AARCH64
- uint8x16_t tables[8][4];
-#else
- uint8x8x2_t tables[8][4];
-#endif
- uint32x4_t v0, v1, v2, v3, s0, s1, s2, s3;
- uint8x16_t p0, p1, p2, p3, si, mask1;
- uint16x8x2_t r0, r1;
- uint8x16x2_t q0, q1;
-
- for (i = 0; i < 8; i++) {
- for (j = 0; j < 4; j++) {
-#ifdef ARCH_AARCH64
- tables[i][j] = vld1q_u8(btable[i][j]);
-#else
- tables[i][j].val[0] = vld1_u8(btable[i][j]);
- tables[i][j].val[1] = vld1_u8(btable[i][j] + 8);
-#endif
- }
- }
-
- mask1 = vdupq_n_u8(0xf);
-
- while (dst < d_end) {
-
- v0 = vld1q_u32(src); src += 4;
- v1 = vld1q_u32(src); src += 4;
- v2 = vld1q_u32(src); src += 4;
- v3 = vld1q_u32(src); src += 4;
-
- if (altmap) {
- q0.val[0] = vreinterpretq_u8_u32(v0);
- q0.val[1] = vreinterpretq_u8_u32(v1);
- q1.val[0] = vreinterpretq_u8_u32(v2);
- q1.val[1] = vreinterpretq_u8_u32(v3);
- } else {
- r0 = vtrnq_u16(vreinterpretq_u16_u32(v0), vreinterpretq_u16_u32(v2));
- r1 = vtrnq_u16(vreinterpretq_u16_u32(v1), vreinterpretq_u16_u32(v3));
-
- q0 = vtrnq_u8(vreinterpretq_u8_u16(r0.val[0]),
- vreinterpretq_u8_u16(r1.val[0]));
- q1 = vtrnq_u8(vreinterpretq_u8_u16(r0.val[1]),
- vreinterpretq_u8_u16(r1.val[1]));
- }
-
- si = vandq_u8(q0.val[0], mask1);
- p0 = vqtbl1q_u8(tables[0][0], si);
- p1 = vqtbl1q_u8(tables[0][1], si);
- p2 = vqtbl1q_u8(tables[0][2], si);
- p3 = vqtbl1q_u8(tables[0][3], si);
-
- si = vshrq_n_u8(q0.val[0], 4);
- p0 = veorq_u8(p0, vqtbl1q_u8(tables[1][0], si));
- p1 = veorq_u8(p1, vqtbl1q_u8(tables[1][1], si));
- p2 = veorq_u8(p2, vqtbl1q_u8(tables[1][2], si));
- p3 = veorq_u8(p3, vqtbl1q_u8(tables[1][3], si));
-
- si = vandq_u8(q0.val[1], mask1);
- p0 = veorq_u8(p0, vqtbl1q_u8(tables[2][0], si));
- p1 = veorq_u8(p1, vqtbl1q_u8(tables[2][1], si));
- p2 = veorq_u8(p2, vqtbl1q_u8(tables[2][2], si));
- p3 = veorq_u8(p3, vqtbl1q_u8(tables[2][3], si));
-
- si = vshrq_n_u8(q0.val[1], 4);
- p0 = veorq_u8(p0, vqtbl1q_u8(tables[3][0], si));
- p1 = veorq_u8(p1, vqtbl1q_u8(tables[3][1], si));
- p2 = veorq_u8(p2, vqtbl1q_u8(tables[3][2], si));
- p3 = veorq_u8(p3, vqtbl1q_u8(tables[3][3], si));
-
- si = vandq_u8(q1.val[0], mask1);
- p0 = veorq_u8(p0, vqtbl1q_u8(tables[4][0], si));
- p1 = veorq_u8(p1, vqtbl1q_u8(tables[4][1], si));
- p2 = veorq_u8(p2, vqtbl1q_u8(tables[4][2], si));
- p3 = veorq_u8(p3, vqtbl1q_u8(tables[4][3], si));
-
- si = vshrq_n_u8(q1.val[0], 4);
- p0 = veorq_u8(p0, vqtbl1q_u8(tables[5][0], si));
- p1 = veorq_u8(p1, vqtbl1q_u8(tables[5][1], si));
- p2 = veorq_u8(p2, vqtbl1q_u8(tables[5][2], si));
- p3 = veorq_u8(p3, vqtbl1q_u8(tables[5][3], si));
-
- si = vandq_u8(q1.val[1], mask1);
- p0 = veorq_u8(p0, vqtbl1q_u8(tables[6][0], si));
- p1 = veorq_u8(p1, vqtbl1q_u8(tables[6][1], si));
- p2 = veorq_u8(p2, vqtbl1q_u8(tables[6][2], si));
- p3 = veorq_u8(p3, vqtbl1q_u8(tables[6][3], si));
-
- si = vshrq_n_u8(q1.val[1], 4);
- p0 = veorq_u8(p0, vqtbl1q_u8(tables[7][0], si));
- p1 = veorq_u8(p1, vqtbl1q_u8(tables[7][1], si));
- p2 = veorq_u8(p2, vqtbl1q_u8(tables[7][2], si));
- p3 = veorq_u8(p3, vqtbl1q_u8(tables[7][3], si));
-
- if (altmap) {
- s0 = vreinterpretq_u32_u8(p0);
- s1 = vreinterpretq_u32_u8(p1);
- s2 = vreinterpretq_u32_u8(p2);
- s3 = vreinterpretq_u32_u8(p3);
- } else {
- q0 = vtrnq_u8(p0, p1);
- q1 = vtrnq_u8(p2, p3);
-
- r0 = vtrnq_u16(vreinterpretq_u16_u8(q0.val[0]),
- vreinterpretq_u16_u8(q1.val[0]));
- r1 = vtrnq_u16(vreinterpretq_u16_u8(q0.val[1]),
- vreinterpretq_u16_u8(q1.val[1]));
-
- s0 = vreinterpretq_u32_u16(r0.val[0]);
- s1 = vreinterpretq_u32_u16(r1.val[0]);
- s2 = vreinterpretq_u32_u16(r0.val[1]);
- s3 = vreinterpretq_u32_u16(r1.val[1]);
- }
-
- if (xor) {
- v0 = vld1q_u32(dst);
- v1 = vld1q_u32(dst + 4);
- v2 = vld1q_u32(dst + 8);
- v3 = vld1q_u32(dst + 12);
- s0 = veorq_u32(s0, v0);
- s1 = veorq_u32(s1, v1);
- s2 = veorq_u32(s2, v2);
- s3 = veorq_u32(s3, v3);
- }
-
- vst1q_u32(dst, s0);
- vst1q_u32(dst + 4, s1);
- vst1q_u32(dst + 8, s2);
- vst1q_u32(dst + 12, s3);
-
- dst += 16;
- }
-}
-
-static
-inline
-void
-neon_w32_split_4_32_lazy_multiply_region(gf_t *gf, void *src, void *dest, uint32_t val, int bytes, int xor, int altmap)
-{
- gf_internal_t *h;
- int i, j, k;
- uint32_t pp, v, *s32, *d32, *top, tmp_table[16];
- uint8_t btable[8][4][16];
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 64);
- gf_do_initial_region_alignment(&rd);
-
- s32 = (uint32_t *) rd.s_start;
- d32 = (uint32_t *) rd.d_start;
- top = (uint32_t *) rd.d_top;
-
- v = val;
- for (i = 0; i < 8; i++) {
- tmp_table[0] = 0;
- for (j = 1; j < 16; j <<= 1) {
- for (k = 0; k < j; k++) {
- tmp_table[k^j] = (v ^ tmp_table[k]);
- }
- v = (v & GF_FIRST_BIT) ? ((v << 1) ^ pp) : (v << 1);
- }
- for (j = 0; j < 4; j++) {
- for (k = 0; k < 16; k++) {
- btable[i][j][k] = (uint8_t) tmp_table[k];
- tmp_table[k] >>= 8;
- }
- }
- }
-
- if (xor)
- neon_w32_split_4_32_multiply_region(gf, s32, d32, top, btable, val, 1, altmap);
- else
- neon_w32_split_4_32_multiply_region(gf, s32, d32, top, btable, val, 0, altmap);
-
- gf_do_final_region_alignment(&rd);
-}
-
-static
-void
-gf_w32_split_4_32_lazy_multiply_region_neon(gf_t *gf, void *src, void *dest,
- gf_val_32_t val, int bytes, int xor)
-{
- neon_w32_split_4_32_lazy_multiply_region(gf, src, dest, val, bytes, xor, 0);
-}
-
-static
-void
-gf_w32_split_4_32_lazy_altmap_multiply_region_neon(gf_t *gf, void *src,
- void *dest, gf_val_32_t val,
- int bytes, int xor)
-{
- neon_w32_split_4_32_lazy_multiply_region(gf, src, dest, val, bytes, xor, 1);
-}
-
-void gf_w32_neon_split_init(gf_t *gf)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
-
- if (h->region_type & GF_REGION_ALTMAP)
- gf->multiply_region.w32 = gf_w32_split_4_32_lazy_altmap_multiply_region_neon;
- else
- gf->multiply_region.w32 = gf_w32_split_4_32_lazy_multiply_region_neon;
-
-}
diff --git a/src/c/gf-complete/src/neon/gf_w4_neon.c b/src/c/gf-complete/src/neon/gf_w4_neon.c
deleted file mode 100644
index 3a21432..0000000
--- a/src/c/gf-complete/src/neon/gf_w4_neon.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * Copyright (c) 2014: Janne Grunau <j@jannau.net>
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- *
- * gf_w4_neon.c
- *
- * Neon routines for 4-bit Galois fields
- *
- */
-
-#include "gf_int.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "gf_w4.h"
-
-static
-gf_val_32_t
-gf_w4_neon_clm_multiply (gf_t *gf, gf_val_32_t a4, gf_val_32_t b4)
-{
- gf_val_32_t rv = 0;
- poly8x8_t result, prim_poly;
- poly8x8_t a, b, w;
- uint8x8_t v;
- gf_internal_t * h = gf->scratch;
-
- a = vdup_n_p8 (a4);
- b = vdup_n_p8 (b4);
-
- prim_poly = vdup_n_p8 ((uint32_t)(h->prim_poly & 0x1fULL));
-
- /* Do the initial multiply */
- result = vmul_p8 (a, b);
- v = vshr_n_u8 (vreinterpret_u8_p8(result), 4);
- w = vmul_p8 (prim_poly, vreinterpret_p8_u8(v));
- result = vreinterpret_p8_u8 (veor_u8 (vreinterpret_u8_p8(result), vreinterpret_u8_p8(w)));
-
- /* Extracts 32 bit value from result. */
- rv = (gf_val_32_t)vget_lane_u8 (vreinterpret_u8_p8 (result), 0);
-
- return rv;
-}
-
-static inline void
-neon_clm_multiply_region_from_single (gf_t *gf, uint8_t *s8, uint8_t *d8,
- gf_val_32_t val, uint8_t *d_end, int xor)
-{
- gf_internal_t * h = gf->scratch;
- poly8x8_t prim_poly;
- poly8x8_t a, w, even, odd;
- uint8x8_t b, c, v, mask;
-
- a = vdup_n_p8 (val);
- mask = vdup_n_u8 (0xf);
- prim_poly = vdup_n_p8 ((uint8_t)(h->prim_poly & 0x1fULL));
-
- while (d8 < d_end) {
- b = vld1_u8 (s8);
-
- even = vreinterpret_p8_u8 (vand_u8 (b, mask));
- odd = vreinterpret_p8_u8 (vshr_n_u8 (b, 4));
-
- if (xor)
- c = vld1_u8 (d8);
-
- even = vmul_p8 (a, even);
- odd = vmul_p8 (a, odd);
-
- v = vshr_n_u8 (vreinterpret_u8_p8(even), 4);
- w = vmul_p8 (prim_poly, vreinterpret_p8_u8(v));
- even = vreinterpret_p8_u8 (veor_u8 (vreinterpret_u8_p8(even), vreinterpret_u8_p8(w)));
-
- v = vshr_n_u8 (vreinterpret_u8_p8(odd), 4);
- w = vmul_p8 (prim_poly, vreinterpret_p8_u8(v));
- odd = vreinterpret_p8_u8 (veor_u8 (vreinterpret_u8_p8(odd), vreinterpret_u8_p8(w)));
-
- v = veor_u8 (vreinterpret_u8_p8 (even), vshl_n_u8 (vreinterpret_u8_p8 (odd), 4));
-
- if (xor)
- v = veor_u8 (c, v);
-
- vst1_u8 (d8, v);
-
- d8 += 8;
- s8 += 8;
- }
-}
-
-
-static void
-gf_w4_neon_clm_multiply_region_from_single (gf_t *gf, void *src, void *dest,
- gf_val_32_t val, int bytes, int xor)
-{
- gf_region_data rd;
- uint8_t *s8;
- uint8_t *d8;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- s8 = (uint8_t *) rd.s_start;
- d8 = (uint8_t *) rd.d_start;
-
- if (xor)
- neon_clm_multiply_region_from_single (gf, s8, d8, val, rd.d_top, 1);
- else
- neon_clm_multiply_region_from_single (gf, s8, d8, val, rd.d_top, 0);
-
- gf_do_final_region_alignment(&rd);
-}
-
-#ifndef ARCH_AARCH64
-#define vqtbl1q_u8(tbl, v) vcombine_u8(vtbl2_u8(tbl, vget_low_u8(v)), \
- vtbl2_u8(tbl, vget_high_u8(v)))
-#endif
-
-static
-inline
-void
-w4_single_table_multiply_region_neon(gf_t *gf, uint8_t *src, uint8_t *dst,
- uint8_t * d_end, gf_val_32_t val, int xor)
-{
- struct gf_single_table_data *std;
- uint8_t *base;
- uint8x16_t r, va, vh, vl, loset;
-
-#ifdef ARCH_AARCH64
- uint8x16_t th, tl;
-#else
- uint8x8x2_t th, tl;
-#endif
-
- std = (struct gf_single_table_data *) ((gf_internal_t *) (gf->scratch))->private;
- base = (uint8_t *) std->mult;
- base += (val << GF_FIELD_WIDTH);
-
-#ifdef ARCH_AARCH64
- tl = vld1q_u8 (base);
- th = vshlq_n_u8 (tl, 4);
-#else
- tl.val[0] = vld1_u8 (base);
- tl.val[1] = vld1_u8 (base + 8);
- th.val[0] = vshl_n_u8 (tl.val[0], 4);
- th.val[1] = vshl_n_u8 (tl.val[1], 4);
-#endif
-
- loset = vdupq_n_u8(0xf);
-
- while (dst < d_end) {
- va = vld1q_u8 (src);
-
- vh = vshrq_n_u8 (va, 4);
- vl = vandq_u8 (va, loset);
-
- if (xor)
- va = vld1q_u8 (dst);
-
- vh = vqtbl1q_u8 (th, vh);
- vl = vqtbl1q_u8 (tl, vl);
-
- r = veorq_u8 (vh, vl);
-
- if (xor)
- r = veorq_u8 (va, r);
-
- vst1q_u8 (dst, r);
-
- dst += 16;
- src += 16;
- }
-}
-
-static
-void
-gf_w4_single_table_multiply_region_neon(gf_t *gf, void *src, void *dest,
- gf_val_32_t val, int bytes, int xor)
-{
- gf_region_data rd;
- uint8_t *sptr, *dptr, *top;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- sptr = rd.s_start;
- dptr = rd.d_start;
- top = rd.d_top;
-
- if (xor)
- w4_single_table_multiply_region_neon(gf, sptr, dptr, top, val, 1);
- else
- w4_single_table_multiply_region_neon(gf, sptr, dptr, top, val, 0);
-
- gf_do_final_region_alignment(&rd);
-
-}
-
-
-int gf_w4_neon_cfm_init(gf_t *gf)
-{
- // single clm multiplication probably pointless
- gf->multiply.w32 = gf_w4_neon_clm_multiply;
- gf->multiply_region.w32 = gf_w4_neon_clm_multiply_region_from_single;
-
- return 1;
-}
-
-void gf_w4_neon_single_table_init(gf_t *gf)
-{
- gf->multiply_region.w32 = gf_w4_single_table_multiply_region_neon;
-}
diff --git a/src/c/gf-complete/src/neon/gf_w64_neon.c b/src/c/gf-complete/src/neon/gf_w64_neon.c
deleted file mode 100644
index 0eca9c7..0000000
--- a/src/c/gf-complete/src/neon/gf_w64_neon.c
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * Copyright (c) 2014: Janne Grunau <j@jannau.net>
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- *
- * gf_w64_neon.c
- *
- * Neon routines for 64-bit Galois fields
- *
- */
-
-#include "gf_int.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "gf_w64.h"
-
-
-#ifndef ARCH_AARCH64
-#define vqtbl1q_u8(tbl, v) vcombine_u8(vtbl2_u8(tbl, vget_low_u8(v)), \
- vtbl2_u8(tbl, vget_high_u8(v)))
-#endif
-
-static
-inline
-void
-neon_w64_split_4_lazy_altmap_multiply_region(gf_t *gf, uint64_t *src,
- uint64_t *dst, uint64_t *d_end,
- uint64_t val, int xor)
-{
- unsigned i, j, k;
- uint8_t btable[16];
-#ifdef ARCH_AARCH64
- uint8x16_t tables[16][8];
-#else
- uint8x8x2_t tables[16][8];
-#endif
- uint8x16_t p[8], mask1, si;
-
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- struct gf_split_4_64_lazy_data *ld = (struct gf_split_4_64_lazy_data *) h->private;
-
- for (i = 0; i < 16; i++) {
- for (j = 0; j < 8; j++) {
- for (k = 0; k < 16; k++) {
- btable[k] = (uint8_t) ld->tables[i][k];
- ld->tables[i][k] >>= 8;
- }
-#ifdef ARCH_AARCH64
- tables[i][j] = vld1q_u8(btable);
-#else
- tables[i][j].val[0] = vld1_u8(btable);
- tables[i][j].val[1] = vld1_u8(btable + 8);
-#endif
- }
- }
-
- mask1 = vdupq_n_u8(0xf);
-
- while (dst < d_end) {
-
- if (xor) {
- for (i = 0; i < 8; i++)
- p[i] = vld1q_u8((uint8_t *) (dst + i * 2));
- } else {
- for (i = 0; i < 8; i++)
- p[i] = vdupq_n_u8(0);
- }
-
- i = 0;
- for (k = 0; k < 8; k++) {
- uint8x16_t v0 = vld1q_u8((uint8_t *) src);
- src += 2;
-
- si = vandq_u8(v0, mask1);
- for (j = 0; j < 8; j++) {
- p[j] = veorq_u8(p[j], vqtbl1q_u8(tables[i][j], si));
- }
- i++;
- si = vshrq_n_u8(v0, 4);
- for (j = 0; j < 8; j++) {
- p[j] = veorq_u8(p[j], vqtbl1q_u8(tables[i][j], si));
- }
- i++;
-
- }
- for (i = 0; i < 8; i++) {
- vst1q_u8((uint8_t *) dst, p[i]);
- dst += 2;
- }
- }
-}
-
-static
-inline
-void
-neon_w64_split_4_lazy_multiply_region(gf_t *gf, uint64_t *src, uint64_t *dst,
- uint64_t *d_end, uint64_t val, int xor)
-{
- unsigned i, j, k;
- uint8_t btable[16];
-#ifdef ARCH_AARCH64
- uint8x16_t tables[16][8];
-#else
- uint8x8x2_t tables[16][8];
-#endif
- uint8x16_t p[8], mask1, si;
- uint64x2_t st[8];
- uint32x4x2_t s32[4];
- uint16x8x2_t s16[4];
- uint8x16x2_t s8[4];
-
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
- struct gf_split_4_64_lazy_data *ld = (struct gf_split_4_64_lazy_data *) h->private;
-
- for (i = 0; i < 16; i++) {
- for (j = 0; j < 8; j++) {
- for (k = 0; k < 16; k++) {
- btable[k] = (uint8_t) ld->tables[i][k];
- ld->tables[i][k] >>= 8;
- }
-#ifdef ARCH_AARCH64
- tables[i][j] = vld1q_u8(btable);
-#else
- tables[i][j].val[0] = vld1_u8(btable);
- tables[i][j].val[1] = vld1_u8(btable + 8);
-#endif
- }
- }
-
- mask1 = vdupq_n_u8(0xf);
-
- while (dst < d_end) {
-
- for (k = 0; k < 8; k++) {
- st[k] = vld1q_u64(src);
- src += 2;
- p[k] = vdupq_n_u8(0);
- }
-
- s32[0] = vuzpq_u32(vreinterpretq_u32_u64(st[0]),
- vreinterpretq_u32_u64(st[1]));
- s32[1] = vuzpq_u32(vreinterpretq_u32_u64(st[2]),
- vreinterpretq_u32_u64(st[3]));
- s32[2] = vuzpq_u32(vreinterpretq_u32_u64(st[4]),
- vreinterpretq_u32_u64(st[5]));
- s32[3] = vuzpq_u32(vreinterpretq_u32_u64(st[6]),
- vreinterpretq_u32_u64(st[7]));
-
- s16[0] = vuzpq_u16(vreinterpretq_u16_u32(s32[0].val[0]),
- vreinterpretq_u16_u32(s32[1].val[0]));
- s16[1] = vuzpq_u16(vreinterpretq_u16_u32(s32[2].val[0]),
- vreinterpretq_u16_u32(s32[3].val[0]));
- s16[2] = vuzpq_u16(vreinterpretq_u16_u32(s32[0].val[1]),
- vreinterpretq_u16_u32(s32[1].val[1]));
- s16[3] = vuzpq_u16(vreinterpretq_u16_u32(s32[2].val[1]),
- vreinterpretq_u16_u32(s32[3].val[1]));
-
- s8[0] = vuzpq_u8(vreinterpretq_u8_u16(s16[0].val[0]),
- vreinterpretq_u8_u16(s16[1].val[0]));
- s8[1] = vuzpq_u8(vreinterpretq_u8_u16(s16[0].val[1]),
- vreinterpretq_u8_u16(s16[1].val[1]));
- s8[2] = vuzpq_u8(vreinterpretq_u8_u16(s16[2].val[0]),
- vreinterpretq_u8_u16(s16[3].val[0]));
- s8[3] = vuzpq_u8(vreinterpretq_u8_u16(s16[2].val[1]),
- vreinterpretq_u8_u16(s16[3].val[1]));
-
- i = 0;
- for (k = 0; k < 8; k++) {
- si = vandq_u8(s8[k >> 1].val[k & 1], mask1);
- for (j = 0; j < 8; j++) {
- p[j] = veorq_u8(p[j], vqtbl1q_u8(tables[i][j], si));
- }
- i++;
- si = vshrq_n_u8(s8[k >> 1].val[k & 1], 4);
- for (j = 0; j < 8; j++) {
- p[j] = veorq_u8(p[j], vqtbl1q_u8(tables[i][j], si));
- }
- i++;
- }
-
- s8[0] = vzipq_u8(p[0], p[1]);
- s8[1] = vzipq_u8(p[2], p[3]);
- s8[2] = vzipq_u8(p[4], p[5]);
- s8[3] = vzipq_u8(p[6], p[7]);
-
- s16[0] = vzipq_u16(vreinterpretq_u16_u8(s8[0].val[0]),
- vreinterpretq_u16_u8(s8[1].val[0]));
- s16[1] = vzipq_u16(vreinterpretq_u16_u8(s8[2].val[0]),
- vreinterpretq_u16_u8(s8[3].val[0]));
- s16[2] = vzipq_u16(vreinterpretq_u16_u8(s8[0].val[1]),
- vreinterpretq_u16_u8(s8[1].val[1]));
- s16[3] = vzipq_u16(vreinterpretq_u16_u8(s8[2].val[1]),
- vreinterpretq_u16_u8(s8[3].val[1]));
-
- s32[0] = vzipq_u32(vreinterpretq_u32_u16(s16[0].val[0]),
- vreinterpretq_u32_u16(s16[1].val[0]));
- s32[1] = vzipq_u32(vreinterpretq_u32_u16(s16[0].val[1]),
- vreinterpretq_u32_u16(s16[1].val[1]));
- s32[2] = vzipq_u32(vreinterpretq_u32_u16(s16[2].val[0]),
- vreinterpretq_u32_u16(s16[3].val[0]));
- s32[3] = vzipq_u32(vreinterpretq_u32_u16(s16[2].val[1]),
- vreinterpretq_u32_u16(s16[3].val[1]));
-
- for (k = 0; k < 8; k ++) {
- st[k] = vreinterpretq_u64_u32(s32[k >> 1].val[k & 1]);
- }
-
- if (xor) {
- for (i = 0; i < 8; i++) {
- uint64x2_t t1 = vld1q_u64(dst);
- vst1q_u64(dst, veorq_u64(st[i], t1));
- dst += 2;
- }
- } else {
- for (i = 0; i < 8; i++) {
- vst1q_u64(dst, st[i]);
- dst += 2;
- }
- }
-
- }
-}
-
-static
-void
-gf_w64_neon_split_4_lazy_multiply_region(gf_t *gf, void *src, void *dest,
- uint64_t val, int bytes, int xor,
- int altmap)
-{
- gf_internal_t *h;
- int i, j, k;
- uint64_t pp, v, *s64, *d64, *top;
- struct gf_split_4_64_lazy_data *ld;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 128);
- gf_do_initial_region_alignment(&rd);
-
- s64 = (uint64_t *) rd.s_start;
- d64 = (uint64_t *) rd.d_start;
- top = (uint64_t *) rd.d_top;
-
- h = (gf_internal_t *) gf->scratch;
- pp = h->prim_poly;
- ld = (struct gf_split_4_64_lazy_data *) h->private;
-
- v = val;
- for (i = 0; i < 16; i++) {
- ld->tables[i][0] = 0;
- for (j = 1; j < 16; j <<= 1) {
- for (k = 0; k < j; k++) {
- ld->tables[i][k^j] = (v ^ ld->tables[i][k]);
- }
- v = (v & GF_FIRST_BIT) ? ((v << 1) ^ pp) : (v << 1);
- }
- }
-
- if (altmap) {
- if (xor)
- neon_w64_split_4_lazy_altmap_multiply_region(gf, s64, d64, top, val, 1);
- else
- neon_w64_split_4_lazy_altmap_multiply_region(gf, s64, d64, top, val, 0);
- } else {
- if (xor)
- neon_w64_split_4_lazy_multiply_region(gf, s64, d64, top, val, 1);
- else
- neon_w64_split_4_lazy_multiply_region(gf, s64, d64, top, val, 0);
- }
-
- gf_do_final_region_alignment(&rd);
-}
-
-static
-void
-gf_w64_split_4_64_lazy_multiply_region_neon(gf_t *gf, void *src, void *dest,
- uint64_t val, int bytes, int xor)
-{
- gf_w64_neon_split_4_lazy_multiply_region(gf, src, dest, val, bytes, xor, 0);
-}
-
-static
-void
-gf_w64_split_4_64_lazy_altmap_multiply_region_neon(gf_t *gf, void *src,
- void *dest, uint64_t val,
- int bytes, int xor)
-{
- gf_w64_neon_split_4_lazy_multiply_region(gf, src, dest, val, bytes, xor, 1);
-}
-
-void gf_w64_neon_split_init(gf_t *gf)
-{
- gf_internal_t *h = (gf_internal_t *) gf->scratch;
-
- if (h->region_type & GF_REGION_ALTMAP)
- gf->multiply_region.w64 = gf_w64_split_4_64_lazy_altmap_multiply_region_neon;
- else
- gf->multiply_region.w64 = gf_w64_split_4_64_lazy_multiply_region_neon;
-
-}
diff --git a/src/c/gf-complete/src/neon/gf_w8_neon.c b/src/c/gf-complete/src/neon/gf_w8_neon.c
deleted file mode 100644
index 930a916..0000000
--- a/src/c/gf-complete/src/neon/gf_w8_neon.c
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * Copyright (c) 2014: Janne Grunau <j@jannau.net>
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- *
- * gf_w8_neon.c
- *
- * Neon optimized routines for 8-bit Galois fields
- *
- */
-
-#include "gf_int.h"
-#include "gf_w8.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-/* ARM NEON reducing macro for the carry free multiplication
- * vmull_p8 is the carryless multiply operation. Here vshrn_n_u16 shifts
- * the result to the right by 1 byte. This allows us to multiply
- * the prim_poly by the leading bits of the result. We then xor the result
- * of that operation back with the result. */
-#define NEON_CFM_REDUCE(v, w, result, prim_poly, initial) \
- do { \
- if (initial) \
- v = vshrn_n_u16 (vreinterpretq_u16_p16(result), 8); \
- else \
- v = veor_u8 (v, vshrn_n_u16 (vreinterpretq_u16_p16(result), 8)); \
- w = vmull_p8 (prim_poly, vreinterpret_p8_u8(v)); \
- result = vreinterpretq_p16_u16 (veorq_u16 (vreinterpretq_u16_p16(result), vreinterpretq_u16_p16(w))); \
- } while (0)
-
-static
-inline
-gf_val_32_t
-gf_w8_neon_clm_multiply_x (gf_t *gf, gf_val_32_t a8, gf_val_32_t b8, int x)
-{
- gf_val_32_t rv = 0;
- poly8x8_t a, b;
- uint8x8_t v;
- poly16x8_t result;
- poly8x8_t prim_poly;
- poly16x8_t w;
- gf_internal_t * h = gf->scratch;
-
- a = vdup_n_p8 (a8);
- b = vdup_n_p8 (b8);
-
- prim_poly = vdup_n_p8 ((uint32_t)(h->prim_poly & 0x1ffULL));
-
- /* Do the initial multiply */
- result = vmull_p8 (a, b);
-
- /* Ben: Do prim_poly reduction twice. We are guaranteed that we will only
- have to do the reduction at most twice, because (w-2)/z == 2. Where
- z is equal to the number of zeros after the leading 1 */
- NEON_CFM_REDUCE (v, w, result, prim_poly, 1);
- NEON_CFM_REDUCE (v, w, result, prim_poly, 0);
- if (x >= 3) {
- NEON_CFM_REDUCE (v, w, result, prim_poly, 0);
- }
- if (x >= 4) {
- NEON_CFM_REDUCE (v, w, result, prim_poly, 0);
- }
- /* Extracts 32 bit value from result. */
- rv = (gf_val_32_t)vget_lane_u8 (vmovn_u16 (vreinterpretq_u16_p16 (result)), 0);
-
- return rv;
-}
-
-#define CLM_MULTIPLY(x) \
-static gf_val_32_t gf_w8_neon_clm_multiply_ ## x (gf_t *gf, gf_val_32_t a8, gf_val_32_t b8) \
-{\
- return gf_w8_neon_clm_multiply_x (gf, a8, b8, x);\
-}
-
-CLM_MULTIPLY(2)
-CLM_MULTIPLY(3)
-CLM_MULTIPLY(4)
-
-static inline void
-neon_clm_multiply_region_from_single_x(gf_t *gf, uint8_t *s8, uint8_t *d8,
- gf_val_32_t val, uint8_t *d_end,
- int xor, int x)
-{
- gf_internal_t * h = gf->scratch;
- poly8x8_t a, b;
- uint8x8_t c, v;
- poly16x8_t result;
- poly8x8_t prim_poly;
- poly16x8_t w;
-
- a = vdup_n_p8 (val);
- prim_poly = vdup_n_p8 ((uint8_t)(h->prim_poly & 0xffULL));
-
- while (d8 < d_end) {
- b = vld1_p8 ((poly8_t *) s8);
-
- if (xor)
- c = vld1_u8 (d8);
-
- result = vmull_p8 (a, b);
-
- NEON_CFM_REDUCE(v, w, result, prim_poly, 1);
- NEON_CFM_REDUCE (v, w, result, prim_poly, 0);
- if (x >= 3) {
- NEON_CFM_REDUCE (v, w, result, prim_poly, 0);
- }
- if (x >= 4) {
- NEON_CFM_REDUCE (v, w, result, prim_poly, 0);
- }
- v = vmovn_u16 (vreinterpretq_u16_p16 (result));
- if (xor)
- v = veor_u8 (c, v);
-
- vst1_u8 (d8, v);
-
- d8 += 8;
- s8 += 8;
- }
-}
-
-#define CLM_MULT_REGION(x) \
-static void \
-gf_w8_neon_clm_multiply_region_from_single_ ## x (gf_t *gf, void *src, \
- void *dest, \
- gf_val_32_t val, int bytes, \
- int xor) \
-{ \
- gf_region_data rd; \
- uint8_t *s8; \
- uint8_t *d8; \
- \
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; } \
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; } \
- \
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16); \
- gf_do_initial_region_alignment(&rd); \
- s8 = (uint8_t *) rd.s_start; \
- d8 = (uint8_t *) rd.d_start; \
- \
- if (xor) \
- neon_clm_multiply_region_from_single_x (gf, s8, d8, val, rd.d_top, 1, x); \
- else \
- neon_clm_multiply_region_from_single_x (gf, s8, d8, val, rd.d_top, 0, x);\
- gf_do_final_region_alignment(&rd); \
-}
-
-CLM_MULT_REGION(2)
-CLM_MULT_REGION(3)
-CLM_MULT_REGION(4)
-
-
-int gf_w8_neon_cfm_init(gf_t *gf)
-{
- gf_internal_t *h;
-
- h = (gf_internal_t *) gf->scratch;
-
- if ((0xe0 & h->prim_poly) == 0){
- gf->multiply.w32 = gf_w8_neon_clm_multiply_2;
- gf->multiply_region.w32 = gf_w8_neon_clm_multiply_region_from_single_2;
- }else if ((0xc0 & h->prim_poly) == 0){
- gf->multiply.w32 = gf_w8_neon_clm_multiply_3;
- gf->multiply_region.w32 = gf_w8_neon_clm_multiply_region_from_single_3;
- }else if ((0x80 & h->prim_poly) == 0){
- gf->multiply.w32 = gf_w8_neon_clm_multiply_4;
- gf->multiply_region.w32 = gf_w8_neon_clm_multiply_region_from_single_4;
- }else{
- return 0;
- }
- return 1;
-}
-
-#ifndef ARCH_AARCH64
-#define vqtbl1q_u8(tbl, v) vcombine_u8(vtbl2_u8(tbl, vget_low_u8(v)), \
- vtbl2_u8(tbl, vget_high_u8(v)))
-#endif
-
-static
-void
-gf_w8_split_multiply_region_neon(gf_t *gf, void *src, void *dest, gf_val_32_t val, int bytes, int xor)
-{
- uint8_t *bh, *bl, *sptr, *dptr;
- uint8x16_t r, va, vh, vl, loset;
-#ifdef ARCH_AARCH64
- uint8x16_t mth, mtl;
-#else
- uint8x8x2_t mth, mtl;
-#endif
- struct gf_w8_half_table_data *htd;
- gf_region_data rd;
-
- if (val == 0) { gf_multby_zero(dest, bytes, xor); return; }
- if (val == 1) { gf_multby_one(src, dest, bytes, xor); return; }
-
- htd = (struct gf_w8_half_table_data *) ((gf_internal_t *) (gf->scratch))->private;
-
- gf_set_region_data(&rd, gf, src, dest, bytes, val, xor, 16);
- gf_do_initial_region_alignment(&rd);
-
- bh = (uint8_t *) htd->high;
- bh += (val << 4);
- bl = (uint8_t *) htd->low;
- bl += (val << 4);
-
- sptr = rd.s_start;
- dptr = rd.d_start;
-
-#ifdef ARCH_AARCH64
- mth = vld1q_u8 (bh);
- mtl = vld1q_u8 (bl);
-#else
- mth.val[0] = vld1_u8 (bh);
- mtl.val[0] = vld1_u8 (bl);
- mth.val[1] = vld1_u8 (bh + 8);
- mtl.val[1] = vld1_u8 (bl + 8);
-#endif
-
- loset = vdupq_n_u8(0xf);
-
- if (xor) {
- while (sptr < (uint8_t *) rd.s_top) {
- va = vld1q_u8 (sptr);
-
- vh = vshrq_n_u8 (va, 4);
- vl = vandq_u8 (va, loset);
- va = vld1q_u8 (dptr);
-
- vh = vqtbl1q_u8 (mth, vh);
- vl = vqtbl1q_u8 (mtl, vl);
-
- r = veorq_u8 (vh, vl);
-
- vst1q_u8 (dptr, veorq_u8 (va, r));
-
- dptr += 16;
- sptr += 16;
- }
- } else {
- while (sptr < (uint8_t *) rd.s_top) {
- va = vld1q_u8 (sptr);
-
- vh = vshrq_n_u8 (va, 4);
- vl = vandq_u8 (va, loset);
-#ifdef ARCH_AARCH64
- vh = vqtbl1q_u8 (mth, vh);
- vl = vqtbl1q_u8 (mtl, vl);
-#else
- vh = vcombine_u8 (vtbl2_u8 (mth, vget_low_u8 (vh)),
- vtbl2_u8 (mth, vget_high_u8 (vh)));
- vl = vcombine_u8 (vtbl2_u8 (mtl, vget_low_u8 (vl)),
- vtbl2_u8 (mtl, vget_high_u8 (vl)));
-#endif
-
- r = veorq_u8 (vh, vl);
-
- vst1q_u8(dptr, r);
-
- dptr += 16;
- sptr += 16;
- }
- }
-
- gf_do_final_region_alignment(&rd);
-}
-
-
-void gf_w8_neon_split_init(gf_t *gf)
-{
- gf->multiply_region.w32 = gf_w8_split_multiply_region_neon;
-}
diff --git a/src/c/gf-complete/test-driver b/src/c/gf-complete/test-driver
deleted file mode 100755
index d306056..0000000
--- a/src/c/gf-complete/test-driver
+++ /dev/null
@@ -1,139 +0,0 @@
-#! /bin/sh
-# test-driver - basic testsuite driver script.
-
-scriptversion=2013-07-13.22; # UTC
-
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
-#
-# This program 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 2, 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 file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-# Make unconditional expansion of undefined variables an error. This
-# helps a lot in preventing typo-related bugs.
-set -u
-
-usage_error ()
-{
- echo "$0: $*" >&2
- print_usage >&2
- exit 2
-}
-
-print_usage ()
-{
- cat <<END
-Usage:
- test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
- [--expect-failure={yes|no}] [--color-tests={yes|no}]
- [--enable-hard-errors={yes|no}] [--]
- TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
-The '--test-name', '--log-file' and '--trs-file' options are mandatory.
-END
-}
-
-test_name= # Used for reporting.
-log_file= # Where to save the output of the test script.
-trs_file= # Where to save the metadata of the test run.
-expect_failure=no
-color_tests=no
-enable_hard_errors=yes
-while test $# -gt 0; do
- case $1 in
- --help) print_usage; exit $?;;
- --version) echo "test-driver $scriptversion"; exit $?;;
- --test-name) test_name=$2; shift;;
- --log-file) log_file=$2; shift;;
- --trs-file) trs_file=$2; shift;;
- --color-tests) color_tests=$2; shift;;
- --expect-failure) expect_failure=$2; shift;;
- --enable-hard-errors) enable_hard_errors=$2; shift;;
- --) shift; break;;
- -*) usage_error "invalid option: '$1'";;
- *) break;;
- esac
- shift
-done
-
-missing_opts=
-test x"$test_name" = x && missing_opts="$missing_opts --test-name"
-test x"$log_file" = x && missing_opts="$missing_opts --log-file"
-test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
-if test x"$missing_opts" != x; then
- usage_error "the following mandatory options are missing:$missing_opts"
-fi
-
-if test $# -eq 0; then
- usage_error "missing argument"
-fi
-
-if test $color_tests = yes; then
- # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
- red='' # Red.
- grn='' # Green.
- lgn='' # Light green.
- blu='' # Blue.
- mgn='' # Magenta.
- std='' # No color.
-else
- red= grn= lgn= blu= mgn= std=
-fi
-
-do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
-trap "st=129; $do_exit" 1
-trap "st=130; $do_exit" 2
-trap "st=141; $do_exit" 13
-trap "st=143; $do_exit" 15
-
-# Test script is run here.
-"$@" >$log_file 2>&1
-estatus=$?
-if test $enable_hard_errors = no && test $estatus -eq 99; then
- estatus=1
-fi
-
-case $estatus:$expect_failure in
- 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
- 0:*) col=$grn res=PASS recheck=no gcopy=no;;
- 77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
- 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
- *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
- *:*) col=$red res=FAIL recheck=yes gcopy=yes;;
-esac
-
-# Report outcome to console.
-echo "${col}${res}${std}: $test_name"
-
-# Register the test result, and other relevant metadata.
-echo ":test-result: $res" > $trs_file
-echo ":global-test-result: $res" >> $trs_file
-echo ":recheck: $recheck" >> $trs_file
-echo ":copy-in-global-log: $gcopy" >> $trs_file
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# 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:
diff --git a/src/c/gf-complete/test/Makefile.am b/src/c/gf-complete/test/Makefile.am
deleted file mode 100644
index a1fbf91..0000000
--- a/src/c/gf-complete/test/Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
-# GF-Complete 'test' AM file
-
-AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include
-AM_CFLAGS = -O3 $(SIMD_FLAGS) -fPIC
-
-bin_PROGRAMS = gf_unit
-
-gf_unit_SOURCES = gf_unit.c
-#gf_unit_LDFLAGS = -lgf_complete
-gf_unit_LDADD = ../src/libgf_complete.la
diff --git a/src/c/gf-complete/test/Makefile.in b/src/c/gf-complete/test/Makefile.in
deleted file mode 100644
index c27ad30..0000000
--- a/src/c/gf-complete/test/Makefile.in
+++ /dev/null
@@ -1,601 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# GF-Complete 'test' AM file
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = gf_unit$(EXEEXT)
-subdir = test
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_ext.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_gf_unit_OBJECTS = gf_unit.$(OBJEXT)
-gf_unit_OBJECTS = $(am_gf_unit_OBJECTS)
-gf_unit_DEPENDENCIES = ../src/libgf_complete.la
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
-depcomp =
-am__depfiles_maybe =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(gf_unit_SOURCES)
-DIST_SOURCES = $(gf_unit_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIMD_FLAGS = @SIMD_FLAGS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__leading_dot = @am__leading_dot@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include
-AM_CFLAGS = -O3 $(SIMD_FLAGS) -fPIC
-gf_unit_SOURCES = gf_unit.c
-#gf_unit_LDFLAGS = -lgf_complete
-gf_unit_LDADD = ../src/libgf_complete.la
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps test/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign --ignore-deps test/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-gf_unit$(EXEEXT): $(gf_unit_OBJECTS) $(gf_unit_DEPENDENCIES) $(EXTRA_gf_unit_DEPENDENCIES)
- @rm -f gf_unit$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_unit_OBJECTS) $(gf_unit_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-.c.o:
- $(AM_V_CC)$(COMPILE) -c -o $@ $<
-
-.c.obj:
- $(AM_V_CC)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
- $(AM_V_CC)$(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-am uninstall uninstall-am uninstall-binPROGRAMS
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/gf-complete/test/gf_unit.c b/src/c/gf-complete/test/gf_unit.c
deleted file mode 100644
index a378e76..0000000
--- a/src/c/gf-complete/test/gf_unit.c
+++ /dev/null
@@ -1,458 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_unit.c
- *
- * Performs unit testing for gf arithmetic
- */
-
-#include "config.h"
-
-#ifdef HAVE_POSIX_MEMALIGN
-#ifndef _XOPEN_SOURCE
-#define _XOPEN_SOURCE 600
-#endif
-#endif
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-#include <signal.h>
-
-#include "gf_complete.h"
-#include "gf_int.h"
-#include "gf_method.h"
-#include "gf_rand.h"
-#include "gf_general.h"
-
-#define REGION_SIZE (16384)
-#define RMASK (0x00000000ffffffffLL)
-#define LMASK (0xffffffff00000000LL)
-
-void problem(char *s)
-{
- fprintf(stderr, "Unit test failed.\n");
- fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-char *BM = "Bad Method: ";
-
-void usage(char *s)
-{
- fprintf(stderr, "usage: gf_unit w tests seed [method] - does unit testing in GF(2^w)\n");
- fprintf(stderr, "\n");
- fprintf(stderr, "Legal w are: 1 - 32, 64 and 128\n");
- fprintf(stderr, " 128 is hex only (i.e. '128' will be an error - do '128h')\n");
- fprintf(stderr, "\n");
- fprintf(stderr, "Tests may be any combination of:\n");
- fprintf(stderr, " A: All\n");
- fprintf(stderr, " S: Single operations (multiplication/division)\n");
- fprintf(stderr, " R: Region operations\n");
- fprintf(stderr, " V: Verbose Output\n");
- fprintf(stderr, "\n");
- fprintf(stderr, "Use -1 for time(0) as a seed.\n");
- fprintf(stderr, "\n");
- if (s == BM) {
- fprintf(stderr, "%s", BM);
- gf_error();
- } else if (s != NULL) {
- fprintf(stderr, "%s\n", s);
- }
- exit(1);
-}
-
-void SigHandler(int v)
-{
- fprintf(stderr, "Problem: SegFault!\n");
- fflush(stdout);
- exit(2);
-}
-
-int main(int argc, char **argv)
-{
- signal(SIGSEGV, SigHandler);
-
- int w, i, verbose, single, region, top;
- int s_start, d_start, bytes, xor, alignment_test;
- gf_t gf, gf_def;
- time_t t0;
- gf_internal_t *h;
- gf_general_t *a, *b, *c, *d;
- uint8_t a8, b8, c8, *mult4 = NULL, *mult8 = NULL;
- uint16_t a16, b16, c16, *log16 = NULL, *alog16 = NULL;
- char as[50], bs[50], cs[50], ds[50];
- uint32_t mask = 0;
- char *ra, *rb, *rc, *rd, *target;
- int align;
-#ifndef HAVE_POSIX_MEMALIGN
- char *malloc_ra, *malloc_rb, *malloc_rc, *malloc_rd;
-#endif
-
-
- if (argc < 4) usage(NULL);
-
- if (sscanf(argv[1], "%d", &w) == 0){
- usage("Bad w\n");
- }
-
- if (sscanf(argv[3], "%ld", &t0) == 0) usage("Bad seed\n");
- if (t0 == -1) t0 = time(0);
- MOA_Seed(t0);
-
- if (w > 32 && w != 64 && w != 128) usage("Bad w");
-
- if (create_gf_from_argv(&gf, w, argc, argv, 4) == 0) {
- usage(BM);
- }
-
- printf("Args: ");
- for (i = 1; i < argc; i++) {
- printf ("%s ", argv[i]);
- }
- printf("/ size (bytes): %d\n", gf_size(&gf));
-
- for (i = 0; i < strlen(argv[2]); i++) {
- if (strchr("ASRV", argv[2][i]) == NULL) usage("Bad test\n");
- }
-
- h = (gf_internal_t *) gf.scratch;
- a = (gf_general_t *) malloc(sizeof(gf_general_t));
- b = (gf_general_t *) malloc(sizeof(gf_general_t));
- c = (gf_general_t *) malloc(sizeof(gf_general_t));
- d = (gf_general_t *) malloc(sizeof(gf_general_t));
-
-#if HAVE_POSIX_MEMALIGN
- if (posix_memalign((void **) &ra, 16, sizeof(char)*REGION_SIZE))
- ra = NULL;
- if (posix_memalign((void **) &rb, 16, sizeof(char)*REGION_SIZE))
- rb = NULL;
- if (posix_memalign((void **) &rc, 16, sizeof(char)*REGION_SIZE))
- rc = NULL;
- if (posix_memalign((void **) &rd, 16, sizeof(char)*REGION_SIZE))
- rd = NULL;
-#else
- //15 bytes extra to make sure it's 16byte aligned
- malloc_ra = (char *) malloc(sizeof(char)*REGION_SIZE+15);
- malloc_rb = (char *) malloc(sizeof(char)*REGION_SIZE+15);
- malloc_rc = (char *) malloc(sizeof(char)*REGION_SIZE+15);
- malloc_rd = (char *) malloc(sizeof(char)*REGION_SIZE+15);
- ra = (uint8_t *) (((uintptr_t) malloc_ra + 15) & ~((uintptr_t) 0xf));
- rb = (uint8_t *) (((uintptr_t) malloc_rb + 15) & ~((uintptr_t) 0xf));
- rc = (uint8_t *) (((uintptr_t) malloc_rc + 15) & ~((uintptr_t) 0xf));
- rd = (uint8_t *) (((uintptr_t) malloc_rd + 15) & ~((uintptr_t) 0xf));
-#endif
-
- if (w <= 32) {
- mask = 0;
- for (i = 0; i < w; i++) mask |= (1 << i);
- }
-
- verbose = (strchr(argv[2], 'V') != NULL);
- single = (strchr(argv[2], 'S') != NULL || strchr(argv[2], 'A') != NULL);
- region = (strchr(argv[2], 'R') != NULL || strchr(argv[2], 'A') != NULL);
-
- if (!gf_init_hard(&gf_def, w, GF_MULT_DEFAULT, GF_REGION_DEFAULT, GF_DIVIDE_DEFAULT,
- (h->mult_type != GF_MULT_COMPOSITE) ? h->prim_poly : 0, 0, 0, NULL, NULL))
- problem("No default for this value of w");
-
- if (w == 4) {
- mult4 = gf_w4_get_mult_table(&gf);
- } else if (w == 8) {
- mult8 = gf_w8_get_mult_table(&gf);
- } else if (w == 16) {
- log16 = gf_w16_get_log_table(&gf);
- alog16 = gf_w16_get_mult_alog_table(&gf);
- }
-
- if (verbose) printf("Seed: %ld\n", t0);
-
- if (single) {
-
- if (gf.multiply.w32 == NULL) problem("No multiplication operation defined.");
- if (verbose) { printf("Testing single multiplications/divisions.\n"); fflush(stdout); }
- if (w <= 10) {
- top = (1 << w)*(1 << w);
- } else {
- top = 1024*1024;
- }
- for (i = 0; i < top; i++) {
- if (w <= 10) {
- a->w32 = i % (1 << w);
- b->w32 = (i >> w);
-
- //Allen: the following conditions were being run 10 times each. That didn't seem like nearly enough to
- //me for these special cases, so I converted to doing this mod stuff to easily make the number of times
- //run both larger and proportional to the total size of the run.
- } else {
- switch (i % 32)
- {
- case 0:
- gf_general_set_zero(a, w);
- gf_general_set_random(b, w, 1);
- break;
- case 1:
- gf_general_set_random(a, w, 1);
- gf_general_set_zero(b, w);
- break;
- case 2:
- gf_general_set_one(a, w);
- gf_general_set_random(b, w, 1);
- break;
- case 3:
- gf_general_set_random(a, w, 1);
- gf_general_set_one(b, w);
- break;
- default:
- gf_general_set_random(a, w, 1);
- gf_general_set_random(b, w, 1);
- }
- }
-
- //Allen: the following special cases for w=64 are based on the code below for w=128.
- //These w=64 cases are based on Dr. Plank's suggestion because some of the methods for w=64
- //involve splitting it in two. I think they're less likely to give errors than the 128-bit case
- //though, because the 128 bit case is always split in two.
- //As with w=128, I'm arbitrarily deciding to do this sort of thing with a quarter of the cases
- if (w == 64) {
- switch (i % 32)
- {
- case 0: if (!gf_general_is_one(a, w)) a->w64 &= RMASK; break;
- case 1: if (!gf_general_is_one(a, w)) a->w64 &= LMASK; break;
- case 2: if (!gf_general_is_one(a, w)) a->w64 &= RMASK; if (!gf_general_is_one(b, w)) b->w64 &= RMASK; break;
- case 3: if (!gf_general_is_one(a, w)) a->w64 &= RMASK; if (!gf_general_is_one(b, w)) b->w64 &= LMASK; break;
- case 4: if (!gf_general_is_one(a, w)) a->w64 &= LMASK; if (!gf_general_is_one(b, w)) b->w64 &= RMASK; break;
- case 5: if (!gf_general_is_one(a, w)) a->w64 &= LMASK; if (!gf_general_is_one(b, w)) b->w64 &= LMASK; break;
- case 6: if (!gf_general_is_one(b, w)) b->w64 &= RMASK; break;
- case 7: if (!gf_general_is_one(b, w)) b->w64 &= LMASK; break;
- }
- }
-
- //Allen: for w=128, we have important special cases where one half or the other of the number is all
- //zeros. The probability of hitting such a number randomly is 1^-64, so if we don't force these cases
- //we'll probably never hit them. This could be implemented more efficiently by changing the set-random
- //function for w=128, but I think this is easier to follow.
- //I'm arbitrarily deciding to do this sort of thing with a quarter of the cases
- if (w == 128) {
- switch (i % 32)
- {
- case 0: if (!gf_general_is_one(a, w)) a->w128[0] = 0; break;
- case 1: if (!gf_general_is_one(a, w)) a->w128[1] = 0; break;
- case 2: if (!gf_general_is_one(a, w)) a->w128[0] = 0; if (!gf_general_is_one(b, w)) b->w128[0] = 0; break;
- case 3: if (!gf_general_is_one(a, w)) a->w128[0] = 0; if (!gf_general_is_one(b, w)) b->w128[1] = 0; break;
- case 4: if (!gf_general_is_one(a, w)) a->w128[1] = 0; if (!gf_general_is_one(b, w)) b->w128[0] = 0; break;
- case 5: if (!gf_general_is_one(a, w)) a->w128[1] = 0; if (!gf_general_is_one(b, w)) b->w128[1] = 0; break;
- case 6: if (!gf_general_is_one(b, w)) b->w128[0] = 0; break;
- case 7: if (!gf_general_is_one(b, w)) b->w128[1] = 0; break;
- }
- }
-
- gf_general_multiply(&gf, a, b, c);
-
- /* If w is 4, 8 or 16, then there are inline multiplication/division methods.
- Test them here. */
-
- if (w == 4 && mult4 != NULL) {
- a8 = a->w32;
- b8 = b->w32;
- c8 = GF_W4_INLINE_MULTDIV(mult4, a8, b8);
- if (c8 != c->w32) {
- printf("Error in inline multiplication. %d * %d. Inline = %d. Default = %d.\n",
- a8, b8, c8, c->w32);
- exit(1);
- }
- }
-
- if (w == 8 && mult8 != NULL) {
- a8 = a->w32;
- b8 = b->w32;
- c8 = GF_W8_INLINE_MULTDIV(mult8, a8, b8);
- if (c8 != c->w32) {
- printf("Error in inline multiplication. %d * %d. Inline = %d. Default = %d.\n",
- a8, b8, c8, c->w32);
- exit(1);
- }
- }
-
- if (w == 16 && log16 != NULL) {
- a16 = a->w32;
- b16 = b->w32;
- c16 = GF_W16_INLINE_MULT(log16, alog16, a16, b16);
- if (c16 != c->w32) {
- printf("Error in inline multiplication. %d * %d. Inline = %d. Default = %d.\n",
- a16, b16, c16, c->w32);
- printf("%d %d\n", log16[a16], log16[b16]);
- top = log16[a16] + log16[b16];
- printf("%d %d\n", top, alog16[top]);
- exit(1);
- }
- }
-
- /* If this is not composite, then first test against the default: */
-
- if (h->mult_type != GF_MULT_COMPOSITE) {
- gf_general_multiply(&gf_def, a, b, d);
-
- if (!gf_general_are_equal(c, d, w)) {
- gf_general_val_to_s(a, w, as, 1);
- gf_general_val_to_s(b, w, bs, 1);
- gf_general_val_to_s(c, w, cs, 1);
- gf_general_val_to_s(d, w, ds, 1);
- printf("Error in single multiplication (all numbers in hex):\n\n");
- printf(" gf.multiply(gf, %s, %s) = %s\n", as, bs, cs);
- printf(" The default gf multiplier returned %s\n", ds);
- exit(1);
- }
- }
-
- /* Now, we also need to double-check by other means, in case the default is wanky,
- and when we're performing composite operations. Start with 0 and 1, where we know
- what the result should be. */
-
- if (gf_general_is_zero(a, w) || gf_general_is_zero(b, w) ||
- gf_general_is_one(a, w) || gf_general_is_one(b, w)) {
- if (((gf_general_is_zero(a, w) || gf_general_is_zero(b, w)) && !gf_general_is_zero(c, w)) ||
- (gf_general_is_one(a, w) && !gf_general_are_equal(b, c, w)) ||
- (gf_general_is_one(b, w) && !gf_general_are_equal(a, c, w))) {
- gf_general_val_to_s(a, w, as, 1);
- gf_general_val_to_s(b, w, bs, 1);
- gf_general_val_to_s(c, w, cs, 1);
- printf("Error in single multiplication (all numbers in hex):\n\n");
- printf(" gf.multiply(gf, %s, %s) = %s, which is clearly wrong.\n", as, bs, cs);
- exit(1);
- }
- }
-
- /* Dumb check to make sure that it's not returning numbers that are too big: */
-
- if (w < 32 && (c->w32 & mask) != c->w32) {
- gf_general_val_to_s(a, w, as, 1);
- gf_general_val_to_s(b, w, bs, 1);
- gf_general_val_to_s(c, w, cs, 1);
- printf("Error in single multiplication (all numbers in hex):\n\n");
- printf(" gf.multiply.w32(gf, %s, %s) = %s, which is too big.\n", as, bs, cs);
- exit(1);
- }
-
- /* Finally, let's check to see that multiplication and division work together */
-
- if (!gf_general_is_zero(a, w)) {
- gf_general_divide(&gf, c, a, d);
- if (!gf_general_are_equal(b, d, w)) {
- gf_general_val_to_s(a, w, as, 1);
- gf_general_val_to_s(b, w, bs, 1);
- gf_general_val_to_s(c, w, cs, 1);
- gf_general_val_to_s(d, w, ds, 1);
- printf("Error in single multiplication/division (all numbers in hex):\n\n");
- printf(" gf.multiply(gf, %s, %s) = %s, but gf.divide(gf, %s, %s) = %s\n", as, bs, cs, cs, as, ds);
- exit(1);
- }
- }
-
- }
- }
-
- if (region) {
- if (verbose) { printf("Testing region multiplications\n"); fflush(stdout); }
- for (i = 0; i < 1024; i++) {
- //Allen: changing to a switch thing as with the single ops to make things proportional
- switch (i % 32)
- {
- case 0:
- gf_general_set_zero(a, w);
- break;
- case 1:
- gf_general_set_one(a, w);
- break;
- case 2:
- gf_general_set_two(a, w);
- break;
- default:
- gf_general_set_random(a, w, 1);
- }
- MOA_Fill_Random_Region(ra, REGION_SIZE);
- MOA_Fill_Random_Region(rb, REGION_SIZE);
- xor = (i/32)%2;
- align = w/8;
- if (align == 0) align = 1;
- if (align > 16) align = 16;
-
- /* JSP - Cauchy test. When w < 32 & it doesn't equal 4, 8 or 16, the default is
- equal to GF_REGION_CAUCHY, even if GF_REGION_CAUCHY is not set. We are testing
- three alignments here:
-
- 1. Anything goes -- no alignment guaranteed.
- 2. Perfect alignment. Here src and dest must be aligned wrt each other,
- and bytes must be a multiple of 16*w.
- 3. Imperfect alignment. Here we'll have src and dest be aligned wrt each
- other, but bytes is simply a multiple of w. That means some XOR's will
- be aligned, and some won't.
- */
-
- if ((h->region_type & GF_REGION_CAUCHY) || (w < 32 && w != 4 && w != 8 && w != 16)) {
- alignment_test = (i%3);
-
- s_start = MOA_Random_W(5, 1);
- if (alignment_test == 0) {
- d_start = MOA_Random_W(5, 1);
- } else {
- d_start = s_start;
- }
-
- bytes = (d_start > s_start) ? REGION_SIZE - d_start : REGION_SIZE - s_start;
- bytes -= MOA_Random_W(5, 1);
- if (alignment_test == 1) {
- bytes -= (bytes % (w*16));
- } else {
- bytes -= (bytes % w);
- }
-
- target = rb;
-
- /* JSP - Otherwise, we're testing a non-cauchy test, and alignment
- must be more strict. We have to make sure that the regions are
- aligned wrt each other on 16-byte pointers. */
-
- } else {
- s_start = MOA_Random_W(5, 1) * align;
- d_start = s_start;
- bytes = REGION_SIZE - s_start - MOA_Random_W(5, 1);
- bytes -= (bytes % align);
-
- if (h->mult_type == GF_MULT_COMPOSITE && (h->region_type & GF_REGION_ALTMAP)) {
- target = rb ;
- } else {
- target = (i/64)%2 ? rb : ra;
- }
- }
-
- memcpy(rc, ra, REGION_SIZE);
- memcpy(rd, target, REGION_SIZE);
- gf_general_do_region_multiply(&gf, a, ra+s_start, target+d_start, bytes, xor);
- gf_general_do_region_check(&gf, a, rc+s_start, rd+d_start, target+d_start, bytes, xor);
- }
- }
-
- free(a);
- free(b);
- free(c);
- free(d);
-#ifdef HAVE_POSIX_MEMALIGN
- free(ra);
- free(rb);
- free(rc);
- free(rd);
-#else
- free(malloc_ra);
- free(malloc_rb);
- free(malloc_rc);
- free(malloc_rd);
-#endif
-
- return 0;
-}
diff --git a/src/c/gf-complete/tools/Makefile.am b/src/c/gf-complete/tools/Makefile.am
deleted file mode 100644
index eb27d4a..0000000
--- a/src/c/gf-complete/tools/Makefile.am
+++ /dev/null
@@ -1,51 +0,0 @@
-# GF-Complete 'tools' AM file
-
-AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include
-AM_CFLAGS = -O3 $(SIMD_FLAGS) -fPIC
-
-bin_PROGRAMS = gf_mult gf_div gf_add gf_time gf_methods gf_poly gf_inline_time
-
-gf_mult_SOURCES = gf_mult.c
-#gf_mult_LDFLAGS = -lgf_complete
-gf_mult_LDADD = ../src/libgf_complete.la
-
-gf_div_SOURCES = gf_div.c
-#gf_div_LDFLAGS = -lgf_complete
-gf_div_LDADD = ../src/libgf_complete.la
-
-gf_add_SOURCES = gf_add.c
-#gf_add_LDFLAGS = -lgf_complete
-gf_add_LDADD = ../src/libgf_complete.la
-
-gf_time_SOURCES = gf_time.c
-#gf_time_LDFLAGS = -lgf_complete
-gf_time_LDADD = ../src/libgf_complete.la
-
-gf_methods_SOURCES = gf_methods.c
-#gf_methods_LDFLAGS = -lgf_complete
-gf_methods_LDADD = ../src/libgf_complete.la
-
-gf_poly_SOURCES = gf_poly.c
-#gf_poly_LDFLAGS = -lgf_complete
-gf_poly_LDADD = ../src/libgf_complete.la
-
-gf_inline_time_SOURCES = gf_inline_time.c
-#gf_inline_time_LDFLAGS = -lgf_complete
-gf_inline_time_LDADD = ../src/libgf_complete.la
-
-# gf_unit tests as generated by gf_methods
-gf_unit_w%.sh: gf_methods
- ./$^ $(@:gf_unit_w%.sh=%) -A -U > $@ || rm $@
-
-TESTS = gf_unit_w128.sh \
- gf_unit_w64.sh \
- gf_unit_w32.sh \
- gf_unit_w16.sh \
- gf_unit_w8.sh \
- gf_unit_w4.sh
-
-TEST_EXTENSIONS = .sh
-SH_LOG_COMPILER = $(SHELL)
-AM_SH_LOG_FLAGS = -e
-
-CLEANFILES = $(TESTS)
diff --git a/src/c/gf-complete/tools/Makefile.in b/src/c/gf-complete/tools/Makefile.in
deleted file mode 100644
index 71a57da..0000000
--- a/src/c/gf-complete/tools/Makefile.in
+++ /dev/null
@@ -1,1045 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# GF-Complete 'tools' AM file
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = gf_mult$(EXEEXT) gf_div$(EXEEXT) gf_add$(EXEEXT) \
- gf_time$(EXEEXT) gf_methods$(EXEEXT) gf_poly$(EXEEXT) \
- gf_inline_time$(EXEEXT)
-subdir = tools
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/test-driver
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_ext.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_gf_add_OBJECTS = gf_add.$(OBJEXT)
-gf_add_OBJECTS = $(am_gf_add_OBJECTS)
-gf_add_DEPENDENCIES = ../src/libgf_complete.la
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-am_gf_div_OBJECTS = gf_div.$(OBJEXT)
-gf_div_OBJECTS = $(am_gf_div_OBJECTS)
-gf_div_DEPENDENCIES = ../src/libgf_complete.la
-am_gf_inline_time_OBJECTS = gf_inline_time.$(OBJEXT)
-gf_inline_time_OBJECTS = $(am_gf_inline_time_OBJECTS)
-gf_inline_time_DEPENDENCIES = ../src/libgf_complete.la
-am_gf_methods_OBJECTS = gf_methods.$(OBJEXT)
-gf_methods_OBJECTS = $(am_gf_methods_OBJECTS)
-gf_methods_DEPENDENCIES = ../src/libgf_complete.la
-am_gf_mult_OBJECTS = gf_mult.$(OBJEXT)
-gf_mult_OBJECTS = $(am_gf_mult_OBJECTS)
-gf_mult_DEPENDENCIES = ../src/libgf_complete.la
-am_gf_poly_OBJECTS = gf_poly.$(OBJEXT)
-gf_poly_OBJECTS = $(am_gf_poly_OBJECTS)
-gf_poly_DEPENDENCIES = ../src/libgf_complete.la
-am_gf_time_OBJECTS = gf_time.$(OBJEXT)
-gf_time_OBJECTS = $(am_gf_time_OBJECTS)
-gf_time_DEPENDENCIES = ../src/libgf_complete.la
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
-depcomp =
-am__depfiles_maybe =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(gf_add_SOURCES) $(gf_div_SOURCES) \
- $(gf_inline_time_SOURCES) $(gf_methods_SOURCES) \
- $(gf_mult_SOURCES) $(gf_poly_SOURCES) $(gf_time_SOURCES)
-DIST_SOURCES = $(gf_add_SOURCES) $(gf_div_SOURCES) \
- $(gf_inline_time_SOURCES) $(gf_methods_SOURCES) \
- $(gf_mult_SOURCES) $(gf_poly_SOURCES) $(gf_time_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__tty_colors_dummy = \
- mgn= red= grn= lgn= blu= brg= std=; \
- am__color_tests=no
-am__tty_colors = { \
- $(am__tty_colors_dummy); \
- if test "X$(AM_COLOR_TESTS)" = Xno; then \
- am__color_tests=no; \
- elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
- am__color_tests=yes; \
- elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
- am__color_tests=yes; \
- fi; \
- if test $$am__color_tests = yes; then \
- red=''; \
- grn=''; \
- lgn=''; \
- blu=''; \
- mgn=''; \
- brg=''; \
- std=''; \
- fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__recheck_rx = ^[ ]*:recheck:[ ]*
-am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
-am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
- recheck = 1; \
- while ((rc = (getline line < ($$0 ".trs"))) != 0) \
- { \
- if (rc < 0) \
- { \
- if ((getline line2 < ($$0 ".log")) < 0) \
- recheck = 0; \
- break; \
- } \
- else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
- { \
- recheck = 0; \
- break; \
- } \
- else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
- { \
- break; \
- } \
- }; \
- if (recheck) \
- print $$0; \
- close ($$0 ".trs"); \
- close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
- print "fatal: making $@: " msg | "cat >&2"; \
- exit 1; \
-} \
-function rst_section(header) \
-{ \
- print header; \
- len = length(header); \
- for (i = 1; i <= len; i = i + 1) \
- printf "="; \
- printf "\n\n"; \
-} \
-{ \
- copy_in_global_log = 1; \
- global_test_result = "RUN"; \
- while ((rc = (getline line < ($$0 ".trs"))) != 0) \
- { \
- if (rc < 0) \
- fatal("failed to read from " $$0 ".trs"); \
- if (line ~ /$(am__global_test_result_rx)/) \
- { \
- sub("$(am__global_test_result_rx)", "", line); \
- sub("[ ]*$$", "", line); \
- global_test_result = line; \
- } \
- else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
- copy_in_global_log = 0; \
- }; \
- if (copy_in_global_log) \
- { \
- rst_section(global_test_result ": " $$0); \
- while ((rc = (getline line < ($$0 ".log"))) != 0) \
- { \
- if (rc < 0) \
- fatal("failed to read from " $$0 ".log"); \
- print line; \
- }; \
- printf "\n"; \
- }; \
- close ($$0 ".trs"); \
- close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
- --color-tests "$$am__color_tests" \
- --enable-hard-errors "$$am__enable_hard_errors" \
- --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test. Creates the
-# directory for the log if needed. Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log. Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup); \
-$(am__vpath_adj_setup) $(am__vpath_adj) \
-$(am__tty_colors); \
-srcdir=$(srcdir); export srcdir; \
-case "$@" in \
- */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
- *) am__odir=.;; \
-esac; \
-test "x$$am__odir" = x"." || test -d "$$am__odir" \
- || $(MKDIR_P) "$$am__odir" || exit $$?; \
-if test -f "./$$f"; then dir=./; \
-elif test -f "$$f"; then dir=; \
-else dir="$(srcdir)/"; fi; \
-tst=$$dir$$f; log='$@'; \
-if test -n '$(DISABLE_HARD_ERRORS)'; then \
- am__enable_hard_errors=no; \
-else \
- am__enable_hard_errors=yes; \
-fi; \
-case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
- am__expect_failure=yes;; \
- *) \
- am__expect_failure=no;; \
-esac; \
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed). The result is saved in the shell variable
-# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
- bases='$(TEST_LOGS)'; \
- bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
- bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-AM_RECURSIVE_TARGETS = check recheck
-TEST_SUITE_LOG = test-suite.log
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
-TEST_LOGS = $(am__test_logs2:.sh.log=.log)
-SH_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
-SH_LOG_COMPILE = $(SH_LOG_COMPILER) $(AM_SH_LOG_FLAGS) $(SH_LOG_FLAGS)
-am__set_b = \
- case '$@' in \
- */*) \
- case '$*' in \
- */*) b='$*';; \
- *) b=`echo '$@' | sed 's/\.log$$//'`; \
- esac;; \
- *) \
- b='$*';; \
- esac
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIMD_FLAGS = @SIMD_FLAGS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__leading_dot = @am__leading_dot@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include
-AM_CFLAGS = -O3 $(SIMD_FLAGS) -fPIC
-gf_mult_SOURCES = gf_mult.c
-#gf_mult_LDFLAGS = -lgf_complete
-gf_mult_LDADD = ../src/libgf_complete.la
-gf_div_SOURCES = gf_div.c
-#gf_div_LDFLAGS = -lgf_complete
-gf_div_LDADD = ../src/libgf_complete.la
-gf_add_SOURCES = gf_add.c
-#gf_add_LDFLAGS = -lgf_complete
-gf_add_LDADD = ../src/libgf_complete.la
-gf_time_SOURCES = gf_time.c
-#gf_time_LDFLAGS = -lgf_complete
-gf_time_LDADD = ../src/libgf_complete.la
-gf_methods_SOURCES = gf_methods.c
-#gf_methods_LDFLAGS = -lgf_complete
-gf_methods_LDADD = ../src/libgf_complete.la
-gf_poly_SOURCES = gf_poly.c
-#gf_poly_LDFLAGS = -lgf_complete
-gf_poly_LDADD = ../src/libgf_complete.la
-gf_inline_time_SOURCES = gf_inline_time.c
-#gf_inline_time_LDFLAGS = -lgf_complete
-gf_inline_time_LDADD = ../src/libgf_complete.la
-TESTS = gf_unit_w128.sh \
- gf_unit_w64.sh \
- gf_unit_w32.sh \
- gf_unit_w16.sh \
- gf_unit_w8.sh \
- gf_unit_w4.sh
-
-TEST_EXTENSIONS = .sh
-SH_LOG_COMPILER = $(SHELL)
-AM_SH_LOG_FLAGS = -e
-CLEANFILES = $(TESTS)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .log .o .obj .sh .sh$(EXEEXT) .trs
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps tools/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign --ignore-deps tools/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-gf_add$(EXEEXT): $(gf_add_OBJECTS) $(gf_add_DEPENDENCIES) $(EXTRA_gf_add_DEPENDENCIES)
- @rm -f gf_add$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_add_OBJECTS) $(gf_add_LDADD) $(LIBS)
-
-gf_div$(EXEEXT): $(gf_div_OBJECTS) $(gf_div_DEPENDENCIES) $(EXTRA_gf_div_DEPENDENCIES)
- @rm -f gf_div$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_div_OBJECTS) $(gf_div_LDADD) $(LIBS)
-
-gf_inline_time$(EXEEXT): $(gf_inline_time_OBJECTS) $(gf_inline_time_DEPENDENCIES) $(EXTRA_gf_inline_time_DEPENDENCIES)
- @rm -f gf_inline_time$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_inline_time_OBJECTS) $(gf_inline_time_LDADD) $(LIBS)
-
-gf_methods$(EXEEXT): $(gf_methods_OBJECTS) $(gf_methods_DEPENDENCIES) $(EXTRA_gf_methods_DEPENDENCIES)
- @rm -f gf_methods$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_methods_OBJECTS) $(gf_methods_LDADD) $(LIBS)
-
-gf_mult$(EXEEXT): $(gf_mult_OBJECTS) $(gf_mult_DEPENDENCIES) $(EXTRA_gf_mult_DEPENDENCIES)
- @rm -f gf_mult$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_mult_OBJECTS) $(gf_mult_LDADD) $(LIBS)
-
-gf_poly$(EXEEXT): $(gf_poly_OBJECTS) $(gf_poly_DEPENDENCIES) $(EXTRA_gf_poly_DEPENDENCIES)
- @rm -f gf_poly$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_poly_OBJECTS) $(gf_poly_LDADD) $(LIBS)
-
-gf_time$(EXEEXT): $(gf_time_OBJECTS) $(gf_time_DEPENDENCIES) $(EXTRA_gf_time_DEPENDENCIES)
- @rm -f gf_time$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(gf_time_OBJECTS) $(gf_time_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-.c.o:
- $(AM_V_CC)$(COMPILE) -c -o $@ $<
-
-.c.obj:
- $(AM_V_CC)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
- $(AM_V_CC)$(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
- rm -f $< $@
- $(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
- @:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
- @$(am__set_TESTS_bases); \
- am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
- redo_bases=`for i in $$bases; do \
- am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
- done`; \
- if test -n "$$redo_bases"; then \
- redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
- redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
- if $(am__make_dryrun); then :; else \
- rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
- fi; \
- fi; \
- if test -n "$$am__remaking_logs"; then \
- echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
- "recursion detected" >&2; \
- else \
- am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
- fi; \
- if $(am__make_dryrun); then :; else \
- st=0; \
- errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
- for i in $$redo_bases; do \
- test -f $$i.trs && test -r $$i.trs \
- || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
- test -f $$i.log && test -r $$i.log \
- || { echo "$$errmsg $$i.log" >&2; st=1; }; \
- done; \
- test $$st -eq 0 || exit 1; \
- fi
- @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
- ws='[ ]'; \
- results=`for b in $$bases; do echo $$b.trs; done`; \
- test -n "$$results" || results=/dev/null; \
- all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
- pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
- fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
- skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
- xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
- xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
- error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
- if test `expr $$fail + $$xpass + $$error` -eq 0; then \
- success=true; \
- else \
- success=false; \
- fi; \
- br='==================='; br=$$br$$br$$br$$br; \
- result_count () \
- { \
- if test x"$$1" = x"--maybe-color"; then \
- maybe_colorize=yes; \
- elif test x"$$1" = x"--no-color"; then \
- maybe_colorize=no; \
- else \
- echo "$@: invalid 'result_count' usage" >&2; exit 4; \
- fi; \
- shift; \
- desc=$$1 count=$$2; \
- if test $$maybe_colorize = yes && test $$count -gt 0; then \
- color_start=$$3 color_end=$$std; \
- else \
- color_start= color_end=; \
- fi; \
- echo "$${color_start}# $$desc $$count$${color_end}"; \
- }; \
- create_testsuite_report () \
- { \
- result_count $$1 "TOTAL:" $$all "$$brg"; \
- result_count $$1 "PASS: " $$pass "$$grn"; \
- result_count $$1 "SKIP: " $$skip "$$blu"; \
- result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
- result_count $$1 "FAIL: " $$fail "$$red"; \
- result_count $$1 "XPASS:" $$xpass "$$red"; \
- result_count $$1 "ERROR:" $$error "$$mgn"; \
- }; \
- { \
- echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
- $(am__rst_title); \
- create_testsuite_report --no-color; \
- echo; \
- echo ".. contents:: :depth: 2"; \
- echo; \
- for b in $$bases; do echo $$b; done \
- | $(am__create_global_log); \
- } >$(TEST_SUITE_LOG).tmp || exit 1; \
- mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
- if $$success; then \
- col="$$grn"; \
- else \
- col="$$red"; \
- test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
- fi; \
- echo "$${col}$$br$${std}"; \
- echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
- echo "$${col}$$br$${std}"; \
- create_testsuite_report --maybe-color; \
- echo "$$col$$br$$std"; \
- if $$success; then :; else \
- echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
- if test -n "$(PACKAGE_BUGREPORT)"; then \
- echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
- fi; \
- echo "$$col$$br$$std"; \
- fi; \
- $$success || exit 1
-
-check-TESTS:
- @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
- @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
- @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
- @set +e; $(am__set_TESTS_bases); \
- log_list=`for i in $$bases; do echo $$i.log; done`; \
- trs_list=`for i in $$bases; do echo $$i.trs; done`; \
- log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
- exit $$?;
-recheck: all
- @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
- @set +e; $(am__set_TESTS_bases); \
- bases=`for i in $$bases; do echo $$i; done \
- | $(am__list_recheck_tests)` || exit 1; \
- log_list=`for i in $$bases; do echo $$i.log; done`; \
- log_list=`echo $$log_list`; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
- am__force_recheck=am--force-recheck \
- TEST_LOGS="$$log_list"; \
- exit $$?
-.sh.log:
- @p='$<'; \
- $(am__set_b); \
- $(am__check_pre) $(SH_LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_SH_LOG_DRIVER_FLAGS) $(SH_LOG_DRIVER_FLAGS) -- $(SH_LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-@am__EXEEXT_TRUE@.sh$(EXEEXT).log:
-@am__EXEEXT_TRUE@ @p='$<'; \
-@am__EXEEXT_TRUE@ $(am__set_b); \
-@am__EXEEXT_TRUE@ $(am__check_pre) $(SH_LOG_DRIVER) --test-name "$$f" \
-@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
-@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_SH_LOG_DRIVER_FLAGS) $(SH_LOG_DRIVER_FLAGS) -- $(SH_LOG_COMPILE) \
-@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile $(PROGRAMS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
- -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
- -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
- -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- recheck tags tags-am uninstall uninstall-am \
- uninstall-binPROGRAMS
-
-
-# gf_unit tests as generated by gf_methods
-gf_unit_w%.sh: gf_methods
- ./$^ $(@:gf_unit_w%.sh=%) -A -U > $@ || rm $@
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/gf-complete/tools/gf_add.c b/src/c/gf-complete/tools/gf_add.c
deleted file mode 100644
index e70b6e9..0000000
--- a/src/c/gf-complete/tools/gf_add.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_add.c
- *
- * Adds two numbers in gf_2^w
- */
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-
-void usage(char *s)
-{
- fprintf(stderr, "usage: gf_add a b w - does addition of a and b in GF(2^w)\n");
- fprintf(stderr, " If w has an h on the end, treat a, b and the sum as hexadecimal (no 0x required)\n");
- fprintf(stderr, "\n");
- fprintf(stderr, " legal w are: 1-32, 64 and 128\n");
- fprintf(stderr, " 128 is hex only (i.e. '128' will be an error - do '128h')\n");
-
- if (s != NULL) fprintf(stderr, "%s", s);
- exit(1);
-}
-
-int read_128(char *s, uint64_t *v)
-{
- int l, t;
- char save;
-
- l = strlen(s);
- if (l > 32) return 0;
-
- if (l > 16) {
- if (sscanf(s + (l-16), "%llx", (long long unsigned int *) &(v[1])) == 0) return 0;
- save = s[l-16];
- s[l-16] = '\0';
- t = sscanf(s, "%llx", (long long unsigned int *) &(v[0]));
- s[l-16] = save;
- return t;
- } else {
- v[0] = 0;
- return sscanf(s, "%llx", (long long unsigned int *)&(v[1]));
- }
- return 1;
-}
-
-void print_128(uint64_t *v)
-{
- if (v[0] > 0) {
- printf("%llx", (long long unsigned int) v[0]);
- printf("%016llx", (long long unsigned int) v[1]);
- } else {
- printf("%llx", (long long unsigned int) v[1]);
- }
- printf("\n");
-}
-
-
-int main(int argc, char **argv)
-{
- int hex, w;
- uint32_t a, b, c, top;
- uint64_t a64, b64, c64;
- uint64_t a128[2], b128[2], c128[2];
- char *format;
-
- if (argc != 4) usage(NULL);
- if (sscanf(argv[3], "%d", &w) == 0) usage("Bad w\n");
-
- if (w <= 0 || (w > 32 && w != 64 && w != 128)) usage("Bad w");
-
- hex = (strchr(argv[3], 'h') != NULL);
-
- if (!hex && w == 128) usage(NULL);
-
- if (w <= 32) {
- format = (hex) ? "%x" : "%u";
- if (sscanf(argv[1], format, &a) == 0) usage("Bad a\n");
- if (sscanf(argv[2], format, &b) == 0) usage("Bad b\n");
-
- if (w < 32) {
- top = (w == 31) ? 0x80000000 : (1 << w);
- if (w != 32 && a >= top) usage("a is too large\n");
- if (w != 32 && b >= top) usage("b is too large\n");
- }
-
- c = a ^ b;
- printf(format, c);
- printf("\n");
-
- } else if (w == 64) {
- format = (hex) ? "%llx" : "%llu";
- if (sscanf(argv[1], format, &a64) == 0) usage("Bad a\n");
- if (sscanf(argv[2], format, &b64) == 0) usage("Bad b\n");
- c64 = a64 ^ b64;
-
- printf(format, c64);
- printf("\n");
-
- } else if (w == 128) {
-
- if (read_128(argv[1], a128) == 0) usage("Bad a\n");
- if (read_128(argv[2], b128) == 0) usage("Bad b\n");
- c128[0] = a128[0] ^ b128[0];
- c128[1] = a128[1] ^ b128[1];
-
- print_128(c128);
- }
- exit(0);
-}
diff --git a/src/c/gf-complete/tools/gf_div.c b/src/c/gf-complete/tools/gf_div.c
deleted file mode 100644
index 570f27c..0000000
--- a/src/c/gf-complete/tools/gf_div.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_div.c
- *
- * Multiplies two numbers in gf_2^w
- */
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "gf_complete.h"
-#include "gf_method.h"
-#include "gf_general.h"
-
-void usage(int why)
-{
- fprintf(stderr, "usage: gf_div a b w [method] - does division of a and b in GF(2^w)\n");
- if (why == 'W') {
- fprintf(stderr, "Bad w.\n");
- fprintf(stderr, "Legal w are: 1 - 32, 64 and 128.\n");
- fprintf(stderr, "Append 'h' to w to treat a, b and the quotient as hexadecimal.\n");
- fprintf(stderr, "w=128 is hex only (i.e. '128' will be an error - do '128h')\n");
- }
- if (why == 'A') fprintf(stderr, "Bad a\n");
- if (why == 'B') fprintf(stderr, "Bad b\n");
- if (why == 'M') {
- fprintf(stderr, "Bad Method Specification: ");
- gf_error();
- }
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- int hex, w;
- gf_t gf;
- gf_general_t a, b, c;
- char output[50];
-
- if (argc < 4) usage(' ');
-
- if (sscanf(argv[3], "%d", &w) == 0) usage('W');
- if (w <= 0 || (w > 32 && w != 64 && w != 128)) usage('W');
-
- hex = (strchr(argv[3], 'h') != NULL);
- if (!hex && w == 128) usage('W');
-
- if (argc == 4) {
- if (gf_init_easy(&gf, w) == 0) usage('M');
- } else {
- if (create_gf_from_argv(&gf, w, argc, argv, 4) == 0) usage('M');
- }
-
- if (!gf_general_s_to_val(&a, w, argv[1], hex)) usage('A');
- if (!gf_general_s_to_val(&b, w, argv[2], hex)) usage('B');
-
- gf_general_divide(&gf, &a, &b, &c);
- gf_general_val_to_s(&c, w, output, hex);
-
- printf("%s\n", output);
- exit(0);
-}
diff --git a/src/c/gf-complete/tools/gf_inline_time.c b/src/c/gf-complete/tools/gf_inline_time.c
deleted file mode 100644
index 2eae014..0000000
--- a/src/c/gf-complete/tools/gf_inline_time.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_inline_time.c
- *
- * Times inline single multiplication when w = 4, 8 or 16
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-#include <sys/time.h>
-
-#include "gf_complete.h"
-#include "gf_rand.h"
-
-void
-timer_start (double *t)
-{
- struct timeval tv;
-
- gettimeofday (&tv, NULL);
- *t = (double)tv.tv_sec + (double)tv.tv_usec * 1e-6;
-}
-
-double
-timer_split (const double *t)
-{
- struct timeval tv;
- double cur_t;
-
- gettimeofday (&tv, NULL);
- cur_t = (double)tv.tv_sec + (double)tv.tv_usec * 1e-6;
- return (cur_t - *t);
-}
-
-void problem(char *s)
-{
- fprintf(stderr, "Timing test failed.\n");
- fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-void usage(char *s)
-{
- fprintf(stderr, "usage: gf_inline_time w seed #elts iterations - does timing of single multiplies\n");
- fprintf(stderr, "\n");
- fprintf(stderr, "Legal w are: 4, 8 or 16\n");
- fprintf(stderr, "\n");
- fprintf(stderr, "Use -1 for time(0) as a seed.\n");
- fprintf(stderr, "\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- int w, j, i, size, iterations;
- gf_t gf;
- double timer, elapsed, dnum, num;
- uint8_t *ra = NULL, *rb = NULL, *mult4, *mult8;
- uint16_t *ra16 = NULL, *rb16 = NULL, *log16, *alog16;
- time_t t0;
-
- if (argc != 5) usage(NULL);
- if (sscanf(argv[1], "%d", &w) == 0) usage("Bad w\n");
- if (w != 4 && w != 8 && w != 16) usage("Bad w\n");
- if (sscanf(argv[2], "%ld", &t0) == 0) usage("Bad seed\n");
- if (sscanf(argv[3], "%d", &size) == 0) usage("Bad #elts\n");
- if (sscanf(argv[4], "%d", &iterations) == 0) usage("Bad iterations\n");
- if (t0 == -1) t0 = time(0);
- MOA_Seed(t0);
-
- num = size;
-
- gf_init_easy(&gf, w);
-
- printf("Seed: %ld\n", t0);
-
- if (w == 4 || w == 8) {
- ra = (uint8_t *) malloc(size);
- rb = (uint8_t *) malloc(size);
-
- if (ra == NULL || rb == NULL) { perror("malloc"); exit(1); }
- } else if (w == 16) {
- ra16 = (uint16_t *) malloc(size*2);
- rb16 = (uint16_t *) malloc(size*2);
-
- if (ra16 == NULL || rb16 == NULL) { perror("malloc"); exit(1); }
- }
-
- if (w == 4) {
- mult4 = gf_w4_get_mult_table(&gf);
- if (mult4 == NULL) {
- printf("Couldn't get inline multiplication table.\n");
- exit(1);
- }
- elapsed = 0;
- dnum = 0;
- for (i = 0; i < iterations; i++) {
- for (j = 0; j < size; j++) {
- ra[j] = MOA_Random_W(w, 1);
- rb[j] = MOA_Random_W(w, 1);
- }
- timer_start(&timer);
- for (j = 0; j < size; j++) {
- ra[j] = GF_W4_INLINE_MULTDIV(mult4, ra[j], rb[j]);
- }
- dnum += num;
- elapsed += timer_split(&timer);
- }
- printf("Inline mult: %10.6lf s Mops: %10.3lf %10.3lf Mega-ops/s\n",
- elapsed, dnum/1024.0/1024.0, dnum/1024.0/1024.0/elapsed);
-
- } else if (w == 8) {
- mult8 = gf_w8_get_mult_table(&gf);
- if (mult8 == NULL) {
- printf("Couldn't get inline multiplication table.\n");
- exit(1);
- }
- elapsed = 0;
- dnum = 0;
- for (i = 0; i < iterations; i++) {
- for (j = 0; j < size; j++) {
- ra[j] = MOA_Random_W(w, 1);
- rb[j] = MOA_Random_W(w, 1);
- }
- timer_start(&timer);
- for (j = 0; j < size; j++) {
- ra[j] = GF_W8_INLINE_MULTDIV(mult8, ra[j], rb[j]);
- }
- dnum += num;
- elapsed += timer_split(&timer);
- }
- printf("Inline mult: %10.6lf s Mops: %10.3lf %10.3lf Mega-ops/s\n",
- elapsed, dnum/1024.0/1024.0, dnum/1024.0/1024.0/elapsed);
- } else if (w == 16) {
- log16 = gf_w16_get_log_table(&gf);
- alog16 = gf_w16_get_mult_alog_table(&gf);
- if (log16 == NULL) {
- printf("Couldn't get inline multiplication table.\n");
- exit(1);
- }
- elapsed = 0;
- dnum = 0;
- for (i = 0; i < iterations; i++) {
- for (j = 0; j < size; j++) {
- ra16[j] = MOA_Random_W(w, 1);
- rb16[j] = MOA_Random_W(w, 1);
- }
- timer_start(&timer);
- for (j = 0; j < size; j++) {
- ra16[j] = GF_W16_INLINE_MULT(log16, alog16, ra16[j], rb16[j]);
- }
- dnum += num;
- elapsed += timer_split(&timer);
- }
- printf("Inline mult: %10.6lf s Mops: %10.3lf %10.3lf Mega-ops/s\n",
- elapsed, dnum/1024.0/1024.0, dnum/1024.0/1024.0/elapsed);
- }
- free (ra);
- free (rb);
- free (ra16);
- free (rb16);
- return 0;
-}
diff --git a/src/c/gf-complete/tools/gf_methods.c b/src/c/gf-complete/tools/gf_methods.c
deleted file mode 100644
index f9ef50d..0000000
--- a/src/c/gf-complete/tools/gf_methods.c
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_methods.c
- *
- * Lists supported methods (incomplete w.r.t. GROUP and COMPOSITE)
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "gf_complete.h"
-#include "gf_method.h"
-#include "gf_int.h"
-
-#define BNMULTS (8)
-static char *BMULTS[BNMULTS] = { "CARRY_FREE", "GROUP48",
- "TABLE", "LOG", "SPLIT4", "SPLIT8", "SPLIT88", "COMPOSITE" };
-#define NMULTS (17)
-static char *MULTS[NMULTS] = { "SHIFT", "CARRY_FREE", "CARRY_FREE_GK", "GROUP44", "GROUP48", "BYTWO_p", "BYTWO_b",
- "TABLE", "LOG", "LOG_ZERO", "LOG_ZERO_EXT", "SPLIT2",
- "SPLIT4", "SPLIT8", "SPLIT16", "SPLIT88", "COMPOSITE" };
-
-/* Make sure CAUCHY is last */
-
-#define NREGIONS (7)
-static char *REGIONS[NREGIONS] = { "DOUBLE", "QUAD", "LAZY", "SIMD", "NOSIMD",
- "ALTMAP", "CAUCHY" };
-
-#define BNREGIONS (4)
-static char *BREGIONS[BNREGIONS] = { "DOUBLE", "QUAD", "ALTMAP", "CAUCHY" };
-
-#define NDIVS (2)
-static char *divides[NDIVS] = { "MATRIX", "EUCLID" };
-
-void usage(char *s)
-{
- fprintf(stderr, "usage: gf_methods w -BADC -LUMDRB\n");
- fprintf(stderr, "\n");
- fprintf(stderr, " w can be 1-32, 64, 128\n");
- fprintf(stderr, "\n");
- fprintf(stderr, " -B lists basic methods that are useful\n");
- fprintf(stderr, " -A does a nearly exhaustive listing\n");
- fprintf(stderr, " -D adds EUCLID and MATRIX division\n");
- fprintf(stderr, " -C adds CAUCHY when possible\n");
- fprintf(stderr, " Combinations are fine.\n");
- fprintf(stderr, "\n");
- fprintf(stderr, " -L Simply lists methods\n");
- fprintf(stderr, " -U Produces calls to gf_unit\n");
- fprintf(stderr, " -M Produces calls to time_tool.sh for single multiplications\n");
- fprintf(stderr, " -D Produces calls to time_tool.sh for single divisions\n");
- fprintf(stderr, " -R Produces calls to time_tool.sh for region multiplications\n");
- fprintf(stderr, " -B Produces calls to time_tool.sh for the fastest region multiplications\n");
- fprintf(stderr, " Cannot combine L, U, T.\n");
- if (s != NULL) {
- fprintf(stderr, "\n");
- fprintf(stderr, "%s\n", s);
- }
- exit(1);
-}
-
-int main(int argc, char *argv[])
-{
- int m, r, d, w, i, sa, j, k, reset, ok;
- int nregions;
- int nmults;
- char **regions;
- char **mults;
- int exhaustive = 0;
- int divide = 0;
- int cauchy = 0;
- int listing;
- char *gf_argv[50], *x;
- gf_t gf;
- char ls[10];
- char * w_str;
-
- if (argc != 4) usage(NULL);
- w = atoi(argv[1]);
- ok = (w >= 1 && w <= 32);
- if (w == 64) ok = 1;
- if (w == 128) ok = 1;
- if (!ok) usage("Bad w");
-
- if (argv[2][0] != '-' || argv[3][0] != '-' || strlen(argv[2]) == 1 || strlen(argv[3]) != 2) {
- usage(NULL);
- }
- for (i = 1; argv[2][i] != '\0'; i++) {
- switch(argv[2][i]) {
- case 'B': exhaustive = 0; break;
- case 'A': exhaustive = 1; break;
- case 'D': divide = 1; break;
- case 'C': cauchy = 1; break;
- default: usage("Bad -BADC");
- }
- }
-
- if (strchr("LUMDRB", argv[3][1]) == NULL) { usage("Bad -LUMDRB"); }
- listing = argv[3][1];
-
- if (listing == 'U') {
- w_str = "../test/gf_unit %d A -1";
- } else if (listing == 'L') {
- w_str = "w=%d:";
- } else {
- w_str = strdup("sh time_tool.sh X %d");
- x = strchr(w_str, 'X');
- *x = listing;
- }
-
- gf_argv[0] = "-";
- if (create_gf_from_argv(&gf, w, 1, gf_argv, 0) > 0) {
- printf(w_str, w);
- printf(" - \n");
- gf_free(&gf, 1);
- } else if (_gf_errno == GF_E_DEFAULT) {
- fprintf(stderr, "Unlabeled failed method: w=%d: -\n", 2);
- exit(1);
- }
-
- nregions = (exhaustive) ? NREGIONS : BNREGIONS;
- if (!cauchy) nregions--;
- regions = (exhaustive) ? REGIONS : BREGIONS;
- mults = (exhaustive) ? MULTS : BMULTS;
- nmults = (exhaustive) ? NMULTS : BNMULTS;
-
-
- for (m = 0; m < nmults; m++) {
- sa = 0;
- gf_argv[sa++] = "-m";
- if (strcmp(mults[m], "GROUP44") == 0) {
- gf_argv[sa++] = "GROUP";
- gf_argv[sa++] = "4";
- gf_argv[sa++] = "4";
- } else if (strcmp(mults[m], "GROUP48") == 0) {
- gf_argv[sa++] = "GROUP";
- gf_argv[sa++] = "4";
- gf_argv[sa++] = "8";
- } else if (strcmp(mults[m], "SPLIT2") == 0) {
- gf_argv[sa++] = "SPLIT";
- sprintf(ls, "%d", w);
- gf_argv[sa++] = ls;
- gf_argv[sa++] = "2";
- } else if (strcmp(mults[m], "SPLIT4") == 0) {
- gf_argv[sa++] = "SPLIT";
- sprintf(ls, "%d", w);
- gf_argv[sa++] = ls;
- gf_argv[sa++] = "4";
- } else if (strcmp(mults[m], "SPLIT8") == 0) {
- gf_argv[sa++] = "SPLIT";
- sprintf(ls, "%d", w);
- gf_argv[sa++] = ls;
- gf_argv[sa++] = "8";
- } else if (strcmp(mults[m], "SPLIT16") == 0) {
- gf_argv[sa++] = "SPLIT";
- sprintf(ls, "%d", w);
- gf_argv[sa++] = ls;
- gf_argv[sa++] = "16";
- } else if (strcmp(mults[m], "SPLIT88") == 0) {
- gf_argv[sa++] = "SPLIT";
- gf_argv[sa++] = "8";
- gf_argv[sa++] = "8";
- } else if (strcmp(mults[m], "COMPOSITE") == 0) {
- gf_argv[sa++] = "COMPOSITE";
- gf_argv[sa++] = "2";
- gf_argv[sa++] = "-";
- } else {
- gf_argv[sa++] = mults[m];
- }
- reset = sa;
-
-
- for (r = 0; r < (1 << nregions); r++) {
- sa = reset;
- for (k = 0; k < nregions; k++) {
- if (r & (1 << k)) {
- gf_argv[sa++] = "-r";
- gf_argv[sa++] = regions[k];
- }
- }
- gf_argv[sa++] = "-";
-
- /* printf("Hmmmm. %s", gf_argv[0]);
- for (j = 0; j < sa; j++) printf(" %s", gf_argv[j]);
- printf("\n"); */
-
- if (create_gf_from_argv(&gf, w, sa, gf_argv, 0) > 0) {
- printf(w_str, w);
- for (j = 0; j < sa; j++) printf(" %s", gf_argv[j]);
- printf("\n");
- gf_free(&gf, 1);
- } else if (_gf_errno == GF_E_DEFAULT) {
- fprintf(stderr, "Unlabeled failed method: w=%d:", w);
- for (j = 0; j < sa; j++) fprintf(stderr, " %s", gf_argv[j]);
- fprintf(stderr, "\n");
- exit(1);
- }
- sa--;
- if (divide) {
- for (d = 0; d < NDIVS; d++) {
- gf_argv[sa++] = "-d";
- gf_argv[sa++] = divides[d];
- /* printf("w=%d:", w);
- for (j = 0; j < sa; j++) printf(" %s", gf_argv[j]);
- printf("\n"); */
- gf_argv[sa++] = "-";
- if (create_gf_from_argv(&gf, w, sa, gf_argv, 0) > 0) {
- printf(w_str, w);
- for (j = 0; j < sa; j++) printf(" %s", gf_argv[j]);
- printf("\n");
- gf_free(&gf, 1);
- } else if (_gf_errno == GF_E_DEFAULT) {
- fprintf(stderr, "Unlabeled failed method: w=%d:", w);
- for (j = 0; j < sa; j++) fprintf(stderr, " %s", gf_argv[j]);
- fprintf(stderr, "\n");
- exit(1);
- }
- sa-=3;
- }
- }
- }
- }
- return 0;
-}
diff --git a/src/c/gf-complete/tools/gf_mult.c b/src/c/gf-complete/tools/gf_mult.c
deleted file mode 100644
index 0af3ddc..0000000
--- a/src/c/gf-complete/tools/gf_mult.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_mult.c
- *
- * Multiplies two numbers in gf_2^w
- */
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "gf_complete.h"
-#include "gf_method.h"
-#include "gf_general.h"
-
-void usage(int why)
-{
- fprintf(stderr, "usage: gf_mult a b w [method] - does multiplication of a and b in GF(2^w)\n");
- if (why == 'W') {
- fprintf(stderr, "Bad w.\n");
- fprintf(stderr, "Legal w are: 1 - 32, 64 and 128.\n");
- fprintf(stderr, "Append 'h' to w to treat a, b and the product as hexadecimal.\n");
- fprintf(stderr, "w=128 is hex only (i.e. '128' will be an error - do '128h')\n");
- }
- if (why == 'A') fprintf(stderr, "Bad a\n");
- if (why == 'B') fprintf(stderr, "Bad b\n");
- if (why == 'M') {
- fprintf(stderr, "Bad Method Specification: ");
- gf_error();
- }
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- int hex, w;
- gf_t gf;
- gf_general_t a, b, c;
- char output[50];
-
- if (argc < 4) usage(' ');
-
- if (sscanf(argv[3], "%d", &w) == 0) usage('W');
- if (w <= 0 || (w > 32 && w != 64 && w != 128)) usage('W');
-
- hex = (strchr(argv[3], 'h') != NULL);
- if (!hex && w == 128) usage('W');
-
- if (argc == 4) {
- if (gf_init_easy(&gf, w) == 0) usage('M');
- } else {
- if (create_gf_from_argv(&gf, w, argc, argv, 4) == 0) usage('M');
- }
-
- if (!gf_general_s_to_val(&a, w, argv[1], hex)) usage('A');
- if (!gf_general_s_to_val(&b, w, argv[2], hex)) usage('B');
-
- gf_general_multiply(&gf, &a, &b, &c);
- gf_general_val_to_s(&c, w, output, hex);
-
- printf("%s\n", output);
- exit(0);
-}
diff --git a/src/c/gf-complete/tools/gf_poly.c b/src/c/gf-complete/tools/gf_poly.c
deleted file mode 100644
index 1c078db..0000000
--- a/src/c/gf-complete/tools/gf_poly.c
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_poly.c - program to help find irreducible polynomials in composite fields,
- * using the Ben-Or algorithm.
- *
- * (This one was written by Jim)
- *
- * Please see the following paper for a description of the Ben-Or algorithm:
- *
- * author S. Gao and D. Panario
- * title Tests and Constructions of Irreducible Polynomials over Finite Fields
- * booktitle Foundations of Computational Mathematics
- * year 1997
- * publisher Springer Verlag
- * pages 346-361
- *
- * The basic technique is this. You have a polynomial f(x) whose coefficients are
- * in a base field GF(2^w). The polynomial is of degree n. You need to do the
- * following for all i from 1 to n/2:
- *
- * Construct x^(2^w)^i modulo f. That will be a polynomial of maximum degree n-1
- * with coefficients in GF(2^w). You construct that polynomial by starting with x
- * and doubling it w times, each time taking the result modulo f. Then you
- * multiply that by itself i times, again each time taking the result modulo f.
- *
- * When you're done, you need to "subtract" x -- since addition = subtraction =
- * XOR, that means XOR x.
- *
- * Now, find the GCD of that last polynomial and f, using Euclid's algorithm. If
- * the GCD is not one, then f is reducible. If it is not reducible for each of
- * those i, then it is irreducible.
- *
- * In this code, I am using a gf_general_t to represent elements of GF(2^w). This
- * is so that I can use base fields that are GF(2^64) or GF(2^128).
- *
- * I have two main procedures. The first is x_to_q_to_i_minus_x, which calculates
- * x^(2^w)^i - x, putting the result into a gf_general_t * called retval.
- *
- * The second is gcd_one, which takes a polynomial of degree n and a second one
- * of degree n-1, and uses Euclid's algorithm to decide if their GCD == 1.
- *
- * These can be made faster (e.g. calculate x^(2^w) once and store it).
- */
-
-#include "gf_complete.h"
-#include "gf_method.h"
-#include "gf_general.h"
-#include "gf_int.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-char *BM = "Bad Method: ";
-
-void usage(char *s)
-{
- fprintf(stderr, "usage: gf_poly w(base-field) method power:coef [ power:coef .. ]\n");
- fprintf(stderr, "\n");
- fprintf(stderr, " use - for the default method.\n");
- fprintf(stderr, " use 0x in front of the coefficient if it's in hex\n");
- fprintf(stderr, " \n");
- fprintf(stderr, " For example, to test whether x^2 + 2x + 1 is irreducible\n");
- fprintf(stderr, " in GF(2^16), the call is:\n");
- fprintf(stderr, " \n");
- fprintf(stderr, " gf_poly 16 - 2:1 1:2 0:1\n");
- fprintf(stderr, " \n");
- fprintf(stderr, " See the user's manual for more information.\n");
- if (s != NULL) {
- fprintf(stderr, "\n");
- if (s == BM) {
- fprintf(stderr, "%s", s);
- gf_error();
- } else {
- fprintf(stderr, "%s\n", s);
- }
- }
- exit(1);
-}
-
-int gcd_one(gf_t *gf, int w, int n, gf_general_t *poly, gf_general_t *prod)
-{
- gf_general_t *a, *b, zero, factor, p;
- int i, j, da, db;
-
- gf_general_set_zero(&zero, w);
-
- a = (gf_general_t *) malloc(sizeof(gf_general_t) * n+1);
- b = (gf_general_t *) malloc(sizeof(gf_general_t) * n);
- for (i = 0; i <= n; i++) gf_general_add(gf, &zero, poly+i, a+i);
- for (i = 0; i < n; i++) gf_general_add(gf, &zero, prod+i, b+i);
-
- da = n;
- while (1) {
- for (db = n-1; db >= 0 && gf_general_is_zero(b+db, w); db--) ;
- if (db < 0) return 0;
- if (db == 0) return 1;
- for (j = da; j >= db; j--) {
- if (!gf_general_is_zero(a+j, w)) {
- gf_general_divide(gf, a+j, b+db, &factor);
- for (i = 0; i <= db; i++) {
- gf_general_multiply(gf, b+i, &factor, &p);
- gf_general_add(gf, &p, a+(i+j-db), a+(i+j-db));
- }
- }
- }
- for (i = 0; i < n; i++) {
- gf_general_add(gf, a+i, &zero, &p);
- gf_general_add(gf, b+i, &zero, a+i);
- gf_general_add(gf, &p, &zero, b+i);
- }
- }
-
-}
-
-void x_to_q_to_i_minus_x(gf_t *gf, int w, int n, gf_general_t *poly, int logq, int i, gf_general_t *retval)
-{
- gf_general_t x;
- gf_general_t *x_to_q;
- gf_general_t *product;
- gf_general_t p, zero, factor;
- int j, k, lq;
-
- gf_general_set_zero(&zero, w);
- product = (gf_general_t *) malloc(sizeof(gf_general_t) * n*2);
- x_to_q = (gf_general_t *) malloc(sizeof(gf_general_t) * n);
- for (j = 0; j < n; j++) gf_general_set_zero(x_to_q+j, w);
- gf_general_set_one(x_to_q+1, w);
-
- for (lq = 0; lq < logq; lq++) {
- for (j = 0; j < n*2; j++) gf_general_set_zero(product+j, w);
- for (j = 0; j < n; j++) {
- for (k = 0; k < n; k++) {
- gf_general_multiply(gf, x_to_q+j, x_to_q+k, &p);
- gf_general_add(gf, product+(j+k), &p, product+(j+k));
- }
- }
- for (j = n*2-1; j >= n; j--) {
- if (!gf_general_is_zero(product+j, w)) {
- gf_general_add(gf, product+j, &zero, &factor);
- for (k = 0; k <= n; k++) {
- gf_general_multiply(gf, poly+k, &factor, &p);
- gf_general_add(gf, product+(j-n+k), &p, product+(j-n+k));
- }
- }
- }
- for (j = 0; j < n; j++) gf_general_add(gf, product+j, &zero, x_to_q+j);
- }
- for (j = 0; j < n; j++) gf_general_set_zero(retval+j, w);
- gf_general_set_one(retval, w);
-
- while (i > 0) {
- for (j = 0; j < n*2; j++) gf_general_set_zero(product+j, w);
- for (j = 0; j < n; j++) {
- for (k = 0; k < n; k++) {
- gf_general_multiply(gf, x_to_q+j, retval+k, &p);
- gf_general_add(gf, product+(j+k), &p, product+(j+k));
- }
- }
- for (j = n*2-1; j >= n; j--) {
- if (!gf_general_is_zero(product+j, w)) {
- gf_general_add(gf, product+j, &zero, &factor);
- for (k = 0; k <= n; k++) {
- gf_general_multiply(gf, poly+k, &factor, &p);
- gf_general_add(gf, product+(j-n+k), &p, product+(j-n+k));
- }
- }
- }
- for (j = 0; j < n; j++) gf_general_add(gf, product+j, &zero, retval+j);
- i--;
- }
-
- gf_general_set_one(&x, w);
- gf_general_add(gf, &x, retval+1, retval+1);
-
- free(product);
- free(x_to_q);
-}
-
-int main(int argc, char **argv)
-{
- int w, i, power, n, ap, success;
- gf_t gf;
- gf_general_t *poly, *prod;
- char *string, *ptr;
- char buf[100];
-
- if (argc < 4) usage(NULL);
-
- if (sscanf(argv[1], "%d", &w) != 1 || w <= 0) usage("Bad w.");
- ap = create_gf_from_argv(&gf, w, argc, argv, 2);
-
- if (ap == 0) usage(BM);
-
- if (ap == argc) usage("No powers/coefficients given.");
-
- n = -1;
- for (i = ap; i < argc; i++) {
- if (strchr(argv[i], ':') == NULL || sscanf(argv[i], "%d:", &power) != 1) {
- string = (char *) malloc(sizeof(char)*(strlen(argv[i]+100)));
- sprintf(string, "Argument '%s' not in proper format of power:coefficient\n", argv[i]);
- usage(string);
- }
- if (power < 0) {
- usage("Can't have negative powers\n");
- } else {
- n = power;
- }
- }
- // in case the for-loop header fails
- assert (n >= 0);
-
- poly = (gf_general_t *) malloc(sizeof(gf_general_t)*(n+1));
- for (i = 0; i <= n; i++) gf_general_set_zero(poly+i, w);
- prod = (gf_general_t *) malloc(sizeof(gf_general_t)*n);
-
- for (i = ap; i < argc; i++) {
- sscanf(argv[i], "%d:", &power);
- ptr = strchr(argv[i], ':');
- ptr++;
- if (strncmp(ptr, "0x", 2) == 0) {
- success = gf_general_s_to_val(poly+power, w, ptr+2, 1);
- } else {
- success = gf_general_s_to_val(poly+power, w, ptr, 0);
- }
- if (success == 0) {
- string = (char *) malloc(sizeof(char)*(strlen(argv[i]+100)));
- sprintf(string, "Argument '%s' not in proper format of power:coefficient\n", argv[i]);
- usage(string);
- }
- }
-
- printf("Poly:");
- for (power = n; power >= 0; power--) {
- if (!gf_general_is_zero(poly+power, w)) {
- printf("%s", (power == n) ? " " : " + ");
- if (!gf_general_is_one(poly+power, w)) {
- gf_general_val_to_s(poly+power, w, buf, 1);
- if (n > 0) {
- printf("(0x%s)", buf);
- } else {
- printf("0x%s", buf);
- }
- }
- if (power == 0) {
- if (gf_general_is_one(poly+power, w)) printf("1");
- } else if (power == 1) {
- printf("x");
- } else {
- printf("x^%d", power);
- }
- }
- }
- printf("\n");
-
- if (!gf_general_is_one(poly+n, w)) {
- printf("\n");
- printf("Can't do Ben-Or, because the polynomial is not monic.\n");
- exit(0);
- }
-
- for (i = 1; i <= n/2; i++) {
- x_to_q_to_i_minus_x(&gf, w, n, poly, w, i, prod);
- if (!gcd_one(&gf, w, n, poly, prod)) {
- printf("Reducible.\n");
- exit(0);
- }
- }
-
- printf("Irreducible.\n");
- exit(0);
-}
diff --git a/src/c/gf-complete/tools/gf_time.c b/src/c/gf-complete/tools/gf_time.c
deleted file mode 100644
index adf61c3..0000000
--- a/src/c/gf-complete/tools/gf_time.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
- * James S. Plank, Ethan L. Miller, Kevin M. Greenan,
- * Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
- *
- * gf_time.c
- *
- * Performs timing for gf arithmetic
- */
-
-#include "config.h"
-
-#ifdef HAVE_POSIX_MEMALIGN
-#ifndef _XOPEN_SOURCE
-#define _XOPEN_SOURCE 600
-#endif
-#endif
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <sys/time.h>
-
-#include "gf_complete.h"
-#include "gf_method.h"
-#include "gf_rand.h"
-#include "gf_general.h"
-
-void
-timer_start (double *t)
-{
- struct timeval tv;
-
- gettimeofday (&tv, NULL);
- *t = (double)tv.tv_sec + (double)tv.tv_usec * 1e-6;
-}
-
-double
-timer_split (const double *t)
-{
- struct timeval tv;
- double cur_t;
-
- gettimeofday (&tv, NULL);
- cur_t = (double)tv.tv_sec + (double)tv.tv_usec * 1e-6;
- return (cur_t - *t);
-}
-
-void problem(char *s)
-{
- fprintf(stderr, "Timing test failed.\n");
- fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-char *BM = "Bad Method: ";
-
-void usage(char *s)
-{
- fprintf(stderr, "usage: gf_time w tests seed size(bytes) iterations [method [params]] - does timing\n");
- fprintf(stderr, "\n");
- fprintf(stderr, "does unit testing in GF(2^w)\n");
- fprintf(stderr, "\n");
- fprintf(stderr, "Legal w are: 1 - 32, 64 and 128\n");
- fprintf(stderr, "\n");
- fprintf(stderr, "Tests may be any combination of:\n");
- fprintf(stderr, " A: All\n");
- fprintf(stderr, " S: All Single Operations\n");
- fprintf(stderr, " R: All Region Operations\n");
- fprintf(stderr, " M: Single: Multiplications\n");
- fprintf(stderr, " D: Single: Divisions\n");
- fprintf(stderr, " I: Single: Inverses\n");
- fprintf(stderr, " G: Region: Buffer-Constant Multiplication\n");
- fprintf(stderr, " 0: Region: Doing nothing, and bzero()\n");
- fprintf(stderr, " 1: Region: Memcpy() and XOR\n");
- fprintf(stderr, " 2: Region: Multiplying by two\n");
- fprintf(stderr, "\n");
- fprintf(stderr, "Use -1 for time(0) as a seed.\n");
- fprintf(stderr, "\n");
- if (s == BM) {
- fprintf(stderr, "%s", BM);
- gf_error();
- } else if (s != NULL) {
- fprintf(stderr, "%s\n", s);
- }
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- int w, it, i, size, iterations, xor;
- char tests[100];
- char test;
- char *single_tests = "MDI";
- char *region_tests = "G012";
- char *tstrings[256];
- void *tmethods[256];
- gf_t gf;
- double timer, elapsed, ds, di, dnum;
- int num;
- time_t t0;
- uint8_t *ra, *rb;
- gf_general_t a;
-#ifndef HAVE_POSIX_MEMALIGN
- uint8_t *malloc_ra, *malloc_rb;
-#endif
-
-
- if (argc < 6) usage(NULL);
-
- if (sscanf(argv[1], "%d", &w) == 0){
- usage("Bad w[-pp]\n");
- }
-
-
- if (sscanf(argv[3], "%ld", &t0) == 0) usage("Bad seed\n");
- if (sscanf(argv[4], "%d", &size) == 0) usage("Bad size\n");
- if (sscanf(argv[5], "%d", &iterations) == 0) usage("Bad iterations\n");
- if (t0 == -1) t0 = time(0);
- MOA_Seed(t0);
-
- ds = size;
- di = iterations;
-
- if ((w > 32 && w != 64 && w != 128) || w < 0) usage("Bad w");
- if ((size * 8) % w != 0) usage ("Bad size -- must be a multiple of w*8\n");
-
- if (!create_gf_from_argv(&gf, w, argc, argv, 6)) usage(BM);
-
- strcpy(tests, "");
- for (i = 0; argv[2][i] != '\0'; i++) {
- switch(argv[2][i]) {
- case 'A': strcat(tests, single_tests);
- strcat(tests, region_tests);
- break;
- case 'S': strcat(tests, single_tests); break;
- case 'R': strcat(tests, region_tests); break;
- case 'G': strcat(tests, "G"); break;
- case '0': strcat(tests, "0"); break;
- case '1': strcat(tests, "1"); break;
- case '2': strcat(tests, "2"); break;
- case 'M': strcat(tests, "M"); break;
- case 'D': strcat(tests, "D"); break;
- case 'I': strcat(tests, "I"); break;
- default: usage("Bad tests");
- }
- }
-
- tstrings['M'] = "Multiply";
- tstrings['D'] = "Divide";
- tstrings['I'] = "Inverse";
- tstrings['G'] = "Region-Random";
- tstrings['0'] = "Region-By-Zero";
- tstrings['1'] = "Region-By-One";
- tstrings['2'] = "Region-By-Two";
-
- tmethods['M'] = (void *) gf.multiply.w32;
- tmethods['D'] = (void *) gf.divide.w32;
- tmethods['I'] = (void *) gf.inverse.w32;
- tmethods['G'] = (void *) gf.multiply_region.w32;
- tmethods['0'] = (void *) gf.multiply_region.w32;
- tmethods['1'] = (void *) gf.multiply_region.w32;
- tmethods['2'] = (void *) gf.multiply_region.w32;
-
- printf("Seed: %ld\n", t0);
-
-#ifdef HAVE_POSIX_MEMALIGN
- if (posix_memalign((void **) &ra, 16, size))
- ra = NULL;
- if (posix_memalign((void **) &rb, 16, size))
- rb = NULL;
-#else
- malloc_ra = (uint8_t *) malloc(size + 15);
- malloc_rb = (uint8_t *) malloc(size + 15);
- ra = (uint8_t *) (((uintptr_t) malloc_ra + 15) & ~((uintptr_t) 0xf));
- rb = (uint8_t *) (((uintptr_t) malloc_rb + 15) & ~((uintptr_t) 0xf));
-#endif
-
- if (ra == NULL || rb == NULL) { perror("malloc"); exit(1); }
-
- for (i = 0; i < 3; i++) {
- test = single_tests[i];
- if (strchr(tests, test) != NULL) {
- if (tmethods[(int)test] == NULL) {
- printf("No %s method.\n", tstrings[(int)test]);
- } else {
- elapsed = 0;
- dnum = 0;
- for (it = 0; it < iterations; it++) {
- gf_general_set_up_single_timing_test(w, ra, rb, size);
- timer_start(&timer);
- num = gf_general_do_single_timing_test(&gf, ra, rb, size, test);
- dnum += num;
- elapsed += timer_split(&timer);
- }
- printf("%14s: %10.6lf s Mops: %10.3lf %10.3lf Mega-ops/s\n",
- tstrings[(int)test], elapsed,
- dnum/1024.0/1024.0, dnum/1024.0/1024.0/elapsed);
- }
- }
- }
-
- for (i = 0; i < 4; i++) {
- test = region_tests[i];
- if (strchr(tests, test) != NULL) {
- if (tmethods[(int)test] == NULL) {
- printf("No %s method.\n", tstrings[(int)test]);
- } else {
- if (test == '0') gf_general_set_zero(&a, w);
- if (test == '1') gf_general_set_one(&a, w);
- if (test == '2') gf_general_set_two(&a, w);
-
- for (xor = 0; xor < 2; xor++) {
- elapsed = 0;
- for (it = 0; it < iterations; it++) {
- if (test == 'G') gf_general_set_random(&a, w, 1);
- gf_general_set_up_single_timing_test(8, ra, rb, size);
- timer_start(&timer);
- gf_general_do_region_multiply(&gf, &a, ra, rb, size, xor);
- elapsed += timer_split(&timer);
- }
- printf("%14s: XOR: %d %10.6lf s MB: %10.3lf %10.3lf MB/s\n",
- tstrings[(int)test], xor, elapsed,
- ds*di/1024.0/1024.0, ds*di/1024.0/1024.0/elapsed);
- }
- }
- }
- }
- return 0;
-}
diff --git a/src/c/gf-complete/tools/time_tool.sh b/src/c/gf-complete/tools/time_tool.sh
deleted file mode 100644
index 228ad37..0000000
--- a/src/c/gf-complete/tools/time_tool.sh
+++ /dev/null
@@ -1,98 +0,0 @@
-# time_tool.sh - Shell script to test various timings.
-# This is a rough tester -- its job is to work quickly rather than precisely.
-# (Jim Plank)
-
-#!/bin/sh
-
-if [ $# -lt 3 ]; then
- echo 'usage sh time_tool.sh M|D|R|B w method' >&2
- exit 1
-fi
-
-op=$1
-w=$2
-
-shift ; shift
-
-method="$*"
-
-if [ $op != M -a $op != D -a $op != R -a $op != B ]; then
- echo 'usage sh time_tool.sh M|D|R|B w method' >&2
- echo 'You have to specify a test: ' >&2
- echo ' M=Multiplication' >&2
- echo ' D=Division' >&2
- echo ' R=Regions' >&2
- echo ' B=Best-Region' >&2
- exit 1
-fi
-
-# First, use a 16K buffer to test the performance of single multiplies.
-
-fac=`echo $w | awk '{ n = $1; while (n != 0 && n%2==0) n /= 2; print n }'`
-if [ $fac -eq 0 ]; then
- echo 'usage sh time_tool.sh M|D|R|B w method' >&2
- echo 'Bad w' >&2
- exit 1
-fi
-
-bsize=16384
-bsize=`echo $bsize $fac | awk '{ print $1 * $2 }'`
-
-if [ `./gf_time $w M -1 $bsize 1 $method 2>&1 | wc | awk '{ print $1 }'` -gt 2 ]; then
- echo 'usage sh time_tool.sh w method' >&2
- echo "Bad method"
- exit 1
-fi
-
-if [ $op = M -o $op = D ]; then
- iter=1
- c1=`./gf_time $w $op -1 $bsize $iter $method`
- t=`echo $c1 | awk '{ printf "%d\n", $4*100 }'`
- s=`echo $c1 | awk '{ print $8 }'`
- bs=$s
-
- while [ $t -lt 1 ]; do
- bs=$s
- iter=`echo $iter | awk '{ print $1*2 }'`
- c1=`./gf_time $w $op -1 $bsize $iter $method`
- t=`echo $c1 | awk '{ printf "%d\n", $4*100 }'`
- s=`echo $c1 | awk '{ print $8 }'`
- done
-
- echo $op $bs | awk '{ printf "%s speed (MB/s): %8.2lf W-Method: ", $1, $2 }'
- echo $w $method
- exit 0
-fi
-
-bsize=16384
-bsize=`echo $bsize $fac | awk '{ print $1 * $2 }'`
-
-best=0
-while [ $bsize -le 4194304 ]; do
- iter=1
- c1=`./gf_time $w G -1 $bsize $iter $method`
- t=`echo $c1 | awk '{ printf "%d\n", $6*500 }'`
- s=`echo $c1 | awk '{ print $10 }'`
- bs=$s
-
- while [ $t -lt 1 ]; do
- bs=$s
- iter=`echo $iter | awk '{ print $1*2 }'`
- c1=`./gf_time $w G -1 $bsize $iter $method`
- t=`echo $c1 | awk '{ printf "%d\n", $6*500 }'`
- s=`echo $c1 | awk '{ print $10 }'`
- done
- if [ $bsize -lt 1048576 ]; then
- str=`echo $bsize | awk '{ printf "%3dK\n", $1/1024 }'`
- else
- str=`echo $bsize | awk '{ printf "%3dM\n", $1/1024/1024 }'`
- fi
- if [ $op = R ]; then
- echo $str $bs | awk '{ printf "Region Buffer-Size: %4s (MB/s): %8.2lf W-Method: ", $1, $2 }'
- echo $w $method
- fi
- best=`echo $best $bs | awk '{ print ($1 > $2) ? $1 : $2 }'`
- bsize=`echo $bsize | awk '{ print $1 * 2 }'`
-done
-echo $best | awk '{ printf "Region Best (MB/s): %8.2lf W-Method: ", $1 }'
-echo $w $method
diff --git a/src/c/jerasure-2.0.tar.gz b/src/c/jerasure-2.0.tar.gz
new file mode 100644
index 0000000..499d88c
--- /dev/null
+++ b/src/c/jerasure-2.0.tar.gz
Binary files differ
diff --git a/src/c/jerasure/.gitattributes b/src/c/jerasure/.gitattributes
deleted file mode 100644
index f0b7445..0000000
--- a/src/c/jerasure/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-*.ac eol=lf
-*.am eol=lf
-*.sh eol=lf
diff --git a/src/c/jerasure/.gitignore b/src/c/jerasure/.gitignore
deleted file mode 100644
index 6c46716..0000000
--- a/src/c/jerasure/.gitignore
+++ /dev/null
@@ -1,28 +0,0 @@
-/INSTALL
-Makefile
-Makefile.in
-/aclocal.m4
-/autom4te.cache/
-/autoscan.log
-/build-aux/
-/config.log
-/config.status
-/configure
-/configure.scan
-.deps/
-/include/config.h
-/include/config.h.in
-/include/stamp-h1
-.libs/
-/libtool
-/m4/libtool.m4
-/m4/ltoptions.m4
-/m4/ltsugar.m4
-/m4/ltversion.m4
-/m4/lt~obsolete.m4
-*.l[ao]
-*.[ao]
-*~
-.dirstamp
-*.log
-*.trs
diff --git a/src/c/jerasure/AUTHORS b/src/c/jerasure/AUTHORS
deleted file mode 100644
index e69de29..0000000
--- a/src/c/jerasure/AUTHORS
+++ /dev/null
diff --git a/src/c/jerasure/COPYING b/src/c/jerasure/COPYING
deleted file mode 100644
index 351e15f..0000000
--- a/src/c/jerasure/COPYING
+++ /dev/null
@@ -1,36 +0,0 @@
-
-Copyright (c) 2013, James S. Plank and Kevin Greenan
-All rights reserved.
-
-Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure Coding Techniques
-
-Revision 2.0: Galois Field backend now links to GF-Complete
-
-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 the name of the University of Tennessee 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 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
-HOLDER 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.
diff --git a/src/c/jerasure/ChangeLog b/src/c/jerasure/ChangeLog
deleted file mode 100644
index e69de29..0000000
--- a/src/c/jerasure/ChangeLog
+++ /dev/null
diff --git a/src/c/jerasure/Examples/.gitignore b/src/c/jerasure/Examples/.gitignore
deleted file mode 100644
index b97ec5a..0000000
--- a/src/c/jerasure/Examples/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-/cauchy_[0-9][0-9]
-/decoder
-/encoder
-/jerasure_[0-9][0-9]
-/liberation_[0-9][0-9]
-/reed_sol_[0-9][0-9]
-/reed_sol_test_gf
-/reed_sol_time_gf
-/test_galois
diff --git a/src/c/jerasure/Examples/Makefile.am b/src/c/jerasure/Examples/Makefile.am
deleted file mode 100644
index bce5086..0000000
--- a/src/c/jerasure/Examples/Makefile.am
+++ /dev/null
@@ -1,67 +0,0 @@
-# Jerasure AM file
-
-AM_CPPFLAGS = -I$(top_srcdir)/include
-AM_CFLAGS = $(SIMD_FLAGS)
-
-bin_PROGRAMS = jerasure_01 \
- jerasure_02 \
- jerasure_03 \
- jerasure_04 \
- jerasure_05 \
- jerasure_06 \
- jerasure_07 \
- jerasure_08 \
- reed_sol_01 \
- reed_sol_02 \
- reed_sol_03 \
- reed_sol_04 \
- reed_sol_test_gf \
- reed_sol_time_gf \
- cauchy_01 \
- cauchy_02 \
- cauchy_03 \
- cauchy_04 \
- liberation_01 \
- encoder \
- decoder
-
-check_PROGRAMS =
-
-TESTS=test_all_gfs.sh encode_decode.sh $(check_PROGRAMS)
-
-dist_noinst_SCRIPTS = test_all_gfs.sh time_all_gfs_argv_init.sh
-
-test_galois_SOURCES = test_galois.c
-check_PROGRAMS += test_galois
-
-jerasure_01_SOURCES = jerasure_01.c
-jerasure_02_SOURCES = jerasure_02.c
-jerasure_03_SOURCES = jerasure_03.c
-jerasure_04_SOURCES = jerasure_04.c
-jerasure_05_SOURCES = jerasure_05.c
-jerasure_06_SOURCES = jerasure_06.c
-jerasure_07_SOURCES = jerasure_07.c
-jerasure_08_SOURCES = jerasure_08.c
-
-reed_sol_01_SOURCES = reed_sol_01.c
-reed_sol_02_SOURCES = reed_sol_02.c
-reed_sol_03_SOURCES = reed_sol_03.c
-reed_sol_04_SOURCES = reed_sol_04.c
-
-reed_sol_test_gf_SOURCES = reed_sol_test_gf.c
-reed_sol_time_gf_SOURCES = reed_sol_time_gf.c
-
-cauchy_01_SOURCES = cauchy_01.c
-cauchy_02_SOURCES = cauchy_02.c
-cauchy_03_SOURCES = cauchy_03.c
-cauchy_04_SOURCES = cauchy_04.c
-
-liberation_01_SOURCES = liberation_01.c
-
-decoder_SOURCES = decoder.c
-encoder_SOURCES = encoder.c
-
-LDADD = ../src/libJerasure.la
-decoder_LDADD = $(LDADD) ../src/libtiming.a
-encoder_LDADD = $(LDADD) ../src/libtiming.a
-reed_sol_time_gf_LDADD = $(LDADD) ../src/libtiming.a
diff --git a/src/c/jerasure/Examples/Makefile.in b/src/c/jerasure/Examples/Makefile.in
deleted file mode 100644
index 9a6383c..0000000
--- a/src/c/jerasure/Examples/Makefile.in
+++ /dev/null
@@ -1,1264 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# Jerasure AM file
-
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = jerasure_01$(EXEEXT) jerasure_02$(EXEEXT) \
- jerasure_03$(EXEEXT) jerasure_04$(EXEEXT) jerasure_05$(EXEEXT) \
- jerasure_06$(EXEEXT) jerasure_07$(EXEEXT) jerasure_08$(EXEEXT) \
- reed_sol_01$(EXEEXT) reed_sol_02$(EXEEXT) reed_sol_03$(EXEEXT) \
- reed_sol_04$(EXEEXT) reed_sol_test_gf$(EXEEXT) \
- reed_sol_time_gf$(EXEEXT) cauchy_01$(EXEEXT) \
- cauchy_02$(EXEEXT) cauchy_03$(EXEEXT) cauchy_04$(EXEEXT) \
- liberation_01$(EXEEXT) encoder$(EXEEXT) decoder$(EXEEXT)
-check_PROGRAMS = test_galois$(EXEEXT)
-subdir = Examples
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(dist_noinst_SCRIPTS) $(top_srcdir)/build-aux/depcomp \
- $(top_srcdir)/build-aux/test-driver
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_ext.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
- $(top_srcdir)/m4/ax_require_defined.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_cauchy_01_OBJECTS = cauchy_01.$(OBJEXT)
-cauchy_01_OBJECTS = $(am_cauchy_01_OBJECTS)
-cauchy_01_LDADD = $(LDADD)
-cauchy_01_DEPENDENCIES = ../src/libJerasure.la
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-am_cauchy_02_OBJECTS = cauchy_02.$(OBJEXT)
-cauchy_02_OBJECTS = $(am_cauchy_02_OBJECTS)
-cauchy_02_LDADD = $(LDADD)
-cauchy_02_DEPENDENCIES = ../src/libJerasure.la
-am_cauchy_03_OBJECTS = cauchy_03.$(OBJEXT)
-cauchy_03_OBJECTS = $(am_cauchy_03_OBJECTS)
-cauchy_03_LDADD = $(LDADD)
-cauchy_03_DEPENDENCIES = ../src/libJerasure.la
-am_cauchy_04_OBJECTS = cauchy_04.$(OBJEXT)
-cauchy_04_OBJECTS = $(am_cauchy_04_OBJECTS)
-cauchy_04_LDADD = $(LDADD)
-cauchy_04_DEPENDENCIES = ../src/libJerasure.la
-am_decoder_OBJECTS = decoder.$(OBJEXT)
-decoder_OBJECTS = $(am_decoder_OBJECTS)
-decoder_DEPENDENCIES = $(LDADD) ../src/libtiming.a
-am_encoder_OBJECTS = encoder.$(OBJEXT)
-encoder_OBJECTS = $(am_encoder_OBJECTS)
-encoder_DEPENDENCIES = $(LDADD) ../src/libtiming.a
-am_jerasure_01_OBJECTS = jerasure_01.$(OBJEXT)
-jerasure_01_OBJECTS = $(am_jerasure_01_OBJECTS)
-jerasure_01_LDADD = $(LDADD)
-jerasure_01_DEPENDENCIES = ../src/libJerasure.la
-am_jerasure_02_OBJECTS = jerasure_02.$(OBJEXT)
-jerasure_02_OBJECTS = $(am_jerasure_02_OBJECTS)
-jerasure_02_LDADD = $(LDADD)
-jerasure_02_DEPENDENCIES = ../src/libJerasure.la
-am_jerasure_03_OBJECTS = jerasure_03.$(OBJEXT)
-jerasure_03_OBJECTS = $(am_jerasure_03_OBJECTS)
-jerasure_03_LDADD = $(LDADD)
-jerasure_03_DEPENDENCIES = ../src/libJerasure.la
-am_jerasure_04_OBJECTS = jerasure_04.$(OBJEXT)
-jerasure_04_OBJECTS = $(am_jerasure_04_OBJECTS)
-jerasure_04_LDADD = $(LDADD)
-jerasure_04_DEPENDENCIES = ../src/libJerasure.la
-am_jerasure_05_OBJECTS = jerasure_05.$(OBJEXT)
-jerasure_05_OBJECTS = $(am_jerasure_05_OBJECTS)
-jerasure_05_LDADD = $(LDADD)
-jerasure_05_DEPENDENCIES = ../src/libJerasure.la
-am_jerasure_06_OBJECTS = jerasure_06.$(OBJEXT)
-jerasure_06_OBJECTS = $(am_jerasure_06_OBJECTS)
-jerasure_06_LDADD = $(LDADD)
-jerasure_06_DEPENDENCIES = ../src/libJerasure.la
-am_jerasure_07_OBJECTS = jerasure_07.$(OBJEXT)
-jerasure_07_OBJECTS = $(am_jerasure_07_OBJECTS)
-jerasure_07_LDADD = $(LDADD)
-jerasure_07_DEPENDENCIES = ../src/libJerasure.la
-am_jerasure_08_OBJECTS = jerasure_08.$(OBJEXT)
-jerasure_08_OBJECTS = $(am_jerasure_08_OBJECTS)
-jerasure_08_LDADD = $(LDADD)
-jerasure_08_DEPENDENCIES = ../src/libJerasure.la
-am_liberation_01_OBJECTS = liberation_01.$(OBJEXT)
-liberation_01_OBJECTS = $(am_liberation_01_OBJECTS)
-liberation_01_LDADD = $(LDADD)
-liberation_01_DEPENDENCIES = ../src/libJerasure.la
-am_reed_sol_01_OBJECTS = reed_sol_01.$(OBJEXT)
-reed_sol_01_OBJECTS = $(am_reed_sol_01_OBJECTS)
-reed_sol_01_LDADD = $(LDADD)
-reed_sol_01_DEPENDENCIES = ../src/libJerasure.la
-am_reed_sol_02_OBJECTS = reed_sol_02.$(OBJEXT)
-reed_sol_02_OBJECTS = $(am_reed_sol_02_OBJECTS)
-reed_sol_02_LDADD = $(LDADD)
-reed_sol_02_DEPENDENCIES = ../src/libJerasure.la
-am_reed_sol_03_OBJECTS = reed_sol_03.$(OBJEXT)
-reed_sol_03_OBJECTS = $(am_reed_sol_03_OBJECTS)
-reed_sol_03_LDADD = $(LDADD)
-reed_sol_03_DEPENDENCIES = ../src/libJerasure.la
-am_reed_sol_04_OBJECTS = reed_sol_04.$(OBJEXT)
-reed_sol_04_OBJECTS = $(am_reed_sol_04_OBJECTS)
-reed_sol_04_LDADD = $(LDADD)
-reed_sol_04_DEPENDENCIES = ../src/libJerasure.la
-am_reed_sol_test_gf_OBJECTS = reed_sol_test_gf.$(OBJEXT)
-reed_sol_test_gf_OBJECTS = $(am_reed_sol_test_gf_OBJECTS)
-reed_sol_test_gf_LDADD = $(LDADD)
-reed_sol_test_gf_DEPENDENCIES = ../src/libJerasure.la
-am_reed_sol_time_gf_OBJECTS = reed_sol_time_gf.$(OBJEXT)
-reed_sol_time_gf_OBJECTS = $(am_reed_sol_time_gf_OBJECTS)
-reed_sol_time_gf_DEPENDENCIES = $(LDADD) ../src/libtiming.a
-am_test_galois_OBJECTS = test_galois.$(OBJEXT)
-test_galois_OBJECTS = $(am_test_galois_OBJECTS)
-test_galois_LDADD = $(LDADD)
-test_galois_DEPENDENCIES = ../src/libJerasure.la
-SCRIPTS = $(dist_noinst_SCRIPTS)
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
-depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(cauchy_01_SOURCES) $(cauchy_02_SOURCES) \
- $(cauchy_03_SOURCES) $(cauchy_04_SOURCES) $(decoder_SOURCES) \
- $(encoder_SOURCES) $(jerasure_01_SOURCES) \
- $(jerasure_02_SOURCES) $(jerasure_03_SOURCES) \
- $(jerasure_04_SOURCES) $(jerasure_05_SOURCES) \
- $(jerasure_06_SOURCES) $(jerasure_07_SOURCES) \
- $(jerasure_08_SOURCES) $(liberation_01_SOURCES) \
- $(reed_sol_01_SOURCES) $(reed_sol_02_SOURCES) \
- $(reed_sol_03_SOURCES) $(reed_sol_04_SOURCES) \
- $(reed_sol_test_gf_SOURCES) $(reed_sol_time_gf_SOURCES) \
- $(test_galois_SOURCES)
-DIST_SOURCES = $(cauchy_01_SOURCES) $(cauchy_02_SOURCES) \
- $(cauchy_03_SOURCES) $(cauchy_04_SOURCES) $(decoder_SOURCES) \
- $(encoder_SOURCES) $(jerasure_01_SOURCES) \
- $(jerasure_02_SOURCES) $(jerasure_03_SOURCES) \
- $(jerasure_04_SOURCES) $(jerasure_05_SOURCES) \
- $(jerasure_06_SOURCES) $(jerasure_07_SOURCES) \
- $(jerasure_08_SOURCES) $(liberation_01_SOURCES) \
- $(reed_sol_01_SOURCES) $(reed_sol_02_SOURCES) \
- $(reed_sol_03_SOURCES) $(reed_sol_04_SOURCES) \
- $(reed_sol_test_gf_SOURCES) $(reed_sol_time_gf_SOURCES) \
- $(test_galois_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__tty_colors_dummy = \
- mgn= red= grn= lgn= blu= brg= std=; \
- am__color_tests=no
-am__tty_colors = { \
- $(am__tty_colors_dummy); \
- if test "X$(AM_COLOR_TESTS)" = Xno; then \
- am__color_tests=no; \
- elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
- am__color_tests=yes; \
- elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
- am__color_tests=yes; \
- fi; \
- if test $$am__color_tests = yes; then \
- red=''; \
- grn=''; \
- lgn=''; \
- blu=''; \
- mgn=''; \
- brg=''; \
- std=''; \
- fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__recheck_rx = ^[ ]*:recheck:[ ]*
-am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
-am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
- recheck = 1; \
- while ((rc = (getline line < ($$0 ".trs"))) != 0) \
- { \
- if (rc < 0) \
- { \
- if ((getline line2 < ($$0 ".log")) < 0) \
- recheck = 0; \
- break; \
- } \
- else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
- { \
- recheck = 0; \
- break; \
- } \
- else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
- { \
- break; \
- } \
- }; \
- if (recheck) \
- print $$0; \
- close ($$0 ".trs"); \
- close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
- print "fatal: making $@: " msg | "cat >&2"; \
- exit 1; \
-} \
-function rst_section(header) \
-{ \
- print header; \
- len = length(header); \
- for (i = 1; i <= len; i = i + 1) \
- printf "="; \
- printf "\n\n"; \
-} \
-{ \
- copy_in_global_log = 1; \
- global_test_result = "RUN"; \
- while ((rc = (getline line < ($$0 ".trs"))) != 0) \
- { \
- if (rc < 0) \
- fatal("failed to read from " $$0 ".trs"); \
- if (line ~ /$(am__global_test_result_rx)/) \
- { \
- sub("$(am__global_test_result_rx)", "", line); \
- sub("[ ]*$$", "", line); \
- global_test_result = line; \
- } \
- else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
- copy_in_global_log = 0; \
- }; \
- if (copy_in_global_log) \
- { \
- rst_section(global_test_result ": " $$0); \
- while ((rc = (getline line < ($$0 ".log"))) != 0) \
- { \
- if (rc < 0) \
- fatal("failed to read from " $$0 ".log"); \
- print line; \
- }; \
- printf "\n"; \
- }; \
- close ($$0 ".trs"); \
- close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
- --color-tests "$$am__color_tests" \
- --enable-hard-errors "$$am__enable_hard_errors" \
- --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test. Creates the
-# directory for the log if needed. Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log. Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup); \
-$(am__vpath_adj_setup) $(am__vpath_adj) \
-$(am__tty_colors); \
-srcdir=$(srcdir); export srcdir; \
-case "$@" in \
- */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
- *) am__odir=.;; \
-esac; \
-test "x$$am__odir" = x"." || test -d "$$am__odir" \
- || $(MKDIR_P) "$$am__odir" || exit $$?; \
-if test -f "./$$f"; then dir=./; \
-elif test -f "$$f"; then dir=; \
-else dir="$(srcdir)/"; fi; \
-tst=$$dir$$f; log='$@'; \
-if test -n '$(DISABLE_HARD_ERRORS)'; then \
- am__enable_hard_errors=no; \
-else \
- am__enable_hard_errors=yes; \
-fi; \
-case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
- am__expect_failure=yes;; \
- *) \
- am__expect_failure=no;; \
-esac; \
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed). The result is saved in the shell variable
-# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
- bases='$(TEST_LOGS)'; \
- bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
- bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-AM_RECURSIVE_TARGETS = check recheck
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
-LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
-am__set_b = \
- case '$@' in \
- */*) \
- case '$*' in \
- */*) b='$*';; \
- *) b=`echo '$@' | sed 's/\.log$$//'`; \
- esac;; \
- *) \
- b='$*';; \
- esac
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
- $(TEST_LOG_FLAGS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIMD_FLAGS = @SIMD_FLAGS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AM_CPPFLAGS = -I$(top_srcdir)/include
-AM_CFLAGS = $(SIMD_FLAGS)
-TESTS = test_all_gfs.sh encode_decode.sh $(check_PROGRAMS)
-dist_noinst_SCRIPTS = test_all_gfs.sh time_all_gfs_argv_init.sh
-test_galois_SOURCES = test_galois.c
-jerasure_01_SOURCES = jerasure_01.c
-jerasure_02_SOURCES = jerasure_02.c
-jerasure_03_SOURCES = jerasure_03.c
-jerasure_04_SOURCES = jerasure_04.c
-jerasure_05_SOURCES = jerasure_05.c
-jerasure_06_SOURCES = jerasure_06.c
-jerasure_07_SOURCES = jerasure_07.c
-jerasure_08_SOURCES = jerasure_08.c
-reed_sol_01_SOURCES = reed_sol_01.c
-reed_sol_02_SOURCES = reed_sol_02.c
-reed_sol_03_SOURCES = reed_sol_03.c
-reed_sol_04_SOURCES = reed_sol_04.c
-reed_sol_test_gf_SOURCES = reed_sol_test_gf.c
-reed_sol_time_gf_SOURCES = reed_sol_time_gf.c
-cauchy_01_SOURCES = cauchy_01.c
-cauchy_02_SOURCES = cauchy_02.c
-cauchy_03_SOURCES = cauchy_03.c
-cauchy_04_SOURCES = cauchy_04.c
-liberation_01_SOURCES = liberation_01.c
-decoder_SOURCES = decoder.c
-encoder_SOURCES = encoder.c
-LDADD = ../src/libJerasure.la
-decoder_LDADD = $(LDADD) ../src/libtiming.a
-encoder_LDADD = $(LDADD) ../src/libtiming.a
-reed_sol_time_gf_LDADD = $(LDADD) ../src/libtiming.a
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Examples/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu Examples/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-clean-checkPROGRAMS:
- @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-cauchy_01$(EXEEXT): $(cauchy_01_OBJECTS) $(cauchy_01_DEPENDENCIES) $(EXTRA_cauchy_01_DEPENDENCIES)
- @rm -f cauchy_01$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(cauchy_01_OBJECTS) $(cauchy_01_LDADD) $(LIBS)
-
-cauchy_02$(EXEEXT): $(cauchy_02_OBJECTS) $(cauchy_02_DEPENDENCIES) $(EXTRA_cauchy_02_DEPENDENCIES)
- @rm -f cauchy_02$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(cauchy_02_OBJECTS) $(cauchy_02_LDADD) $(LIBS)
-
-cauchy_03$(EXEEXT): $(cauchy_03_OBJECTS) $(cauchy_03_DEPENDENCIES) $(EXTRA_cauchy_03_DEPENDENCIES)
- @rm -f cauchy_03$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(cauchy_03_OBJECTS) $(cauchy_03_LDADD) $(LIBS)
-
-cauchy_04$(EXEEXT): $(cauchy_04_OBJECTS) $(cauchy_04_DEPENDENCIES) $(EXTRA_cauchy_04_DEPENDENCIES)
- @rm -f cauchy_04$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(cauchy_04_OBJECTS) $(cauchy_04_LDADD) $(LIBS)
-
-decoder$(EXEEXT): $(decoder_OBJECTS) $(decoder_DEPENDENCIES) $(EXTRA_decoder_DEPENDENCIES)
- @rm -f decoder$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(decoder_OBJECTS) $(decoder_LDADD) $(LIBS)
-
-encoder$(EXEEXT): $(encoder_OBJECTS) $(encoder_DEPENDENCIES) $(EXTRA_encoder_DEPENDENCIES)
- @rm -f encoder$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(encoder_OBJECTS) $(encoder_LDADD) $(LIBS)
-
-jerasure_01$(EXEEXT): $(jerasure_01_OBJECTS) $(jerasure_01_DEPENDENCIES) $(EXTRA_jerasure_01_DEPENDENCIES)
- @rm -f jerasure_01$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(jerasure_01_OBJECTS) $(jerasure_01_LDADD) $(LIBS)
-
-jerasure_02$(EXEEXT): $(jerasure_02_OBJECTS) $(jerasure_02_DEPENDENCIES) $(EXTRA_jerasure_02_DEPENDENCIES)
- @rm -f jerasure_02$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(jerasure_02_OBJECTS) $(jerasure_02_LDADD) $(LIBS)
-
-jerasure_03$(EXEEXT): $(jerasure_03_OBJECTS) $(jerasure_03_DEPENDENCIES) $(EXTRA_jerasure_03_DEPENDENCIES)
- @rm -f jerasure_03$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(jerasure_03_OBJECTS) $(jerasure_03_LDADD) $(LIBS)
-
-jerasure_04$(EXEEXT): $(jerasure_04_OBJECTS) $(jerasure_04_DEPENDENCIES) $(EXTRA_jerasure_04_DEPENDENCIES)
- @rm -f jerasure_04$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(jerasure_04_OBJECTS) $(jerasure_04_LDADD) $(LIBS)
-
-jerasure_05$(EXEEXT): $(jerasure_05_OBJECTS) $(jerasure_05_DEPENDENCIES) $(EXTRA_jerasure_05_DEPENDENCIES)
- @rm -f jerasure_05$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(jerasure_05_OBJECTS) $(jerasure_05_LDADD) $(LIBS)
-
-jerasure_06$(EXEEXT): $(jerasure_06_OBJECTS) $(jerasure_06_DEPENDENCIES) $(EXTRA_jerasure_06_DEPENDENCIES)
- @rm -f jerasure_06$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(jerasure_06_OBJECTS) $(jerasure_06_LDADD) $(LIBS)
-
-jerasure_07$(EXEEXT): $(jerasure_07_OBJECTS) $(jerasure_07_DEPENDENCIES) $(EXTRA_jerasure_07_DEPENDENCIES)
- @rm -f jerasure_07$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(jerasure_07_OBJECTS) $(jerasure_07_LDADD) $(LIBS)
-
-jerasure_08$(EXEEXT): $(jerasure_08_OBJECTS) $(jerasure_08_DEPENDENCIES) $(EXTRA_jerasure_08_DEPENDENCIES)
- @rm -f jerasure_08$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(jerasure_08_OBJECTS) $(jerasure_08_LDADD) $(LIBS)
-
-liberation_01$(EXEEXT): $(liberation_01_OBJECTS) $(liberation_01_DEPENDENCIES) $(EXTRA_liberation_01_DEPENDENCIES)
- @rm -f liberation_01$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(liberation_01_OBJECTS) $(liberation_01_LDADD) $(LIBS)
-
-reed_sol_01$(EXEEXT): $(reed_sol_01_OBJECTS) $(reed_sol_01_DEPENDENCIES) $(EXTRA_reed_sol_01_DEPENDENCIES)
- @rm -f reed_sol_01$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(reed_sol_01_OBJECTS) $(reed_sol_01_LDADD) $(LIBS)
-
-reed_sol_02$(EXEEXT): $(reed_sol_02_OBJECTS) $(reed_sol_02_DEPENDENCIES) $(EXTRA_reed_sol_02_DEPENDENCIES)
- @rm -f reed_sol_02$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(reed_sol_02_OBJECTS) $(reed_sol_02_LDADD) $(LIBS)
-
-reed_sol_03$(EXEEXT): $(reed_sol_03_OBJECTS) $(reed_sol_03_DEPENDENCIES) $(EXTRA_reed_sol_03_DEPENDENCIES)
- @rm -f reed_sol_03$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(reed_sol_03_OBJECTS) $(reed_sol_03_LDADD) $(LIBS)
-
-reed_sol_04$(EXEEXT): $(reed_sol_04_OBJECTS) $(reed_sol_04_DEPENDENCIES) $(EXTRA_reed_sol_04_DEPENDENCIES)
- @rm -f reed_sol_04$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(reed_sol_04_OBJECTS) $(reed_sol_04_LDADD) $(LIBS)
-
-reed_sol_test_gf$(EXEEXT): $(reed_sol_test_gf_OBJECTS) $(reed_sol_test_gf_DEPENDENCIES) $(EXTRA_reed_sol_test_gf_DEPENDENCIES)
- @rm -f reed_sol_test_gf$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(reed_sol_test_gf_OBJECTS) $(reed_sol_test_gf_LDADD) $(LIBS)
-
-reed_sol_time_gf$(EXEEXT): $(reed_sol_time_gf_OBJECTS) $(reed_sol_time_gf_DEPENDENCIES) $(EXTRA_reed_sol_time_gf_DEPENDENCIES)
- @rm -f reed_sol_time_gf$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(reed_sol_time_gf_OBJECTS) $(reed_sol_time_gf_LDADD) $(LIBS)
-
-test_galois$(EXEEXT): $(test_galois_OBJECTS) $(test_galois_DEPENDENCIES) $(EXTRA_test_galois_DEPENDENCIES)
- @rm -f test_galois$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(test_galois_OBJECTS) $(test_galois_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cauchy_01.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cauchy_02.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cauchy_03.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cauchy_04.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decoder.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/encoder.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jerasure_01.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jerasure_02.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jerasure_03.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jerasure_04.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jerasure_05.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jerasure_06.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jerasure_07.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jerasure_08.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liberation_01.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reed_sol_01.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reed_sol_02.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reed_sol_03.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reed_sol_04.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reed_sol_test_gf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reed_sol_time_gf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_galois.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
- rm -f $< $@
- $(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
- @:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
- @$(am__set_TESTS_bases); \
- am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
- redo_bases=`for i in $$bases; do \
- am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
- done`; \
- if test -n "$$redo_bases"; then \
- redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
- redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
- if $(am__make_dryrun); then :; else \
- rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
- fi; \
- fi; \
- if test -n "$$am__remaking_logs"; then \
- echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
- "recursion detected" >&2; \
- else \
- am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
- fi; \
- if $(am__make_dryrun); then :; else \
- st=0; \
- errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
- for i in $$redo_bases; do \
- test -f $$i.trs && test -r $$i.trs \
- || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
- test -f $$i.log && test -r $$i.log \
- || { echo "$$errmsg $$i.log" >&2; st=1; }; \
- done; \
- test $$st -eq 0 || exit 1; \
- fi
- @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
- ws='[ ]'; \
- results=`for b in $$bases; do echo $$b.trs; done`; \
- test -n "$$results" || results=/dev/null; \
- all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
- pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
- fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
- skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
- xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
- xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
- error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
- if test `expr $$fail + $$xpass + $$error` -eq 0; then \
- success=true; \
- else \
- success=false; \
- fi; \
- br='==================='; br=$$br$$br$$br$$br; \
- result_count () \
- { \
- if test x"$$1" = x"--maybe-color"; then \
- maybe_colorize=yes; \
- elif test x"$$1" = x"--no-color"; then \
- maybe_colorize=no; \
- else \
- echo "$@: invalid 'result_count' usage" >&2; exit 4; \
- fi; \
- shift; \
- desc=$$1 count=$$2; \
- if test $$maybe_colorize = yes && test $$count -gt 0; then \
- color_start=$$3 color_end=$$std; \
- else \
- color_start= color_end=; \
- fi; \
- echo "$${color_start}# $$desc $$count$${color_end}"; \
- }; \
- create_testsuite_report () \
- { \
- result_count $$1 "TOTAL:" $$all "$$brg"; \
- result_count $$1 "PASS: " $$pass "$$grn"; \
- result_count $$1 "SKIP: " $$skip "$$blu"; \
- result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
- result_count $$1 "FAIL: " $$fail "$$red"; \
- result_count $$1 "XPASS:" $$xpass "$$red"; \
- result_count $$1 "ERROR:" $$error "$$mgn"; \
- }; \
- { \
- echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
- $(am__rst_title); \
- create_testsuite_report --no-color; \
- echo; \
- echo ".. contents:: :depth: 2"; \
- echo; \
- for b in $$bases; do echo $$b; done \
- | $(am__create_global_log); \
- } >$(TEST_SUITE_LOG).tmp || exit 1; \
- mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
- if $$success; then \
- col="$$grn"; \
- else \
- col="$$red"; \
- test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
- fi; \
- echo "$${col}$$br$${std}"; \
- echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
- echo "$${col}$$br$${std}"; \
- create_testsuite_report --maybe-color; \
- echo "$$col$$br$$std"; \
- if $$success; then :; else \
- echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
- if test -n "$(PACKAGE_BUGREPORT)"; then \
- echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
- fi; \
- echo "$$col$$br$$std"; \
- fi; \
- $$success || exit 1
-
-check-TESTS:
- @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
- @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
- @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
- @set +e; $(am__set_TESTS_bases); \
- log_list=`for i in $$bases; do echo $$i.log; done`; \
- trs_list=`for i in $$bases; do echo $$i.trs; done`; \
- log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
- exit $$?;
-recheck: all $(check_PROGRAMS)
- @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
- @set +e; $(am__set_TESTS_bases); \
- bases=`for i in $$bases; do echo $$i; done \
- | $(am__list_recheck_tests)` || exit 1; \
- log_list=`for i in $$bases; do echo $$i.log; done`; \
- log_list=`echo $$log_list`; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
- am__force_recheck=am--force-recheck \
- TEST_LOGS="$$log_list"; \
- exit $$?
-test_all_gfs.sh.log: test_all_gfs.sh
- @p='test_all_gfs.sh'; \
- b='test_all_gfs.sh'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-encode_decode.sh.log: encode_decode.sh
- @p='encode_decode.sh'; \
- b='encode_decode.sh'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-test_galois.log: test_galois$(EXEEXT)
- @p='test_galois$(EXEEXT)'; \
- b='test_galois'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-.test.log:
- @p='$<'; \
- $(am__set_b); \
- $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-@am__EXEEXT_TRUE@.test$(EXEEXT).log:
-@am__EXEEXT_TRUE@ @p='$<'; \
-@am__EXEEXT_TRUE@ $(am__set_b); \
-@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
-@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile $(PROGRAMS) $(SCRIPTS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
- -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
- -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
- -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
- clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
- clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
- clean-libtool cscopelist-am ctags ctags-am distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-binPROGRAMS install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- recheck tags tags-am uninstall uninstall-am \
- uninstall-binPROGRAMS
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/jerasure/Examples/cauchy_01.c b/src/c/jerasure/Examples/cauchy_01.c
deleted file mode 100644
index efeff5d..0000000
--- a/src/c/jerasure/Examples/cauchy_01.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include "cauchy.h"
-#include "jerasure.h"
-#include "reed_sol.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: cauchy_01 n w - Converts the value n to a bitmatrix using GF(2^w).\n");
- fprintf(stderr, " \n");
- fprintf(stderr, " It prints the bitmatrix, and reports on the numberof ones.\n");
- fprintf(stderr, " Use 0x to input n in hexadecimal.\n");
- fprintf(stderr, " W must be <= 32.\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "This demonstrates: cauchy_n_ones()\n");
- fprintf(stderr, " jerasure_matrix_to_bitmatrix()\n");
- fprintf(stderr, " jerasure_print_bitmatrix()\n");
- if (s != NULL) fprintf(stderr, "\n%s\n", s);
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- int n;
- int i, no, w;
- int *bitmatrix;
-
- if (argc != 3) usage(NULL);
- if (sscanf(argv[1], "0x%x", &n) == 0) {
- if (sscanf(argv[1], "%d", &n) == 0) usage("Bad n");
- }
- if (sscanf(argv[2], "%d", &w) == 0 || w <= 0 || w > 32) usage("Bad w");
- if (w == 31) {
- if (n & 0x80000000L) usage("Bad n/w combination (n not between 0 and 2^w-1)\n");
- } else if (w < 31) {
- if (n >= (1 << w)) usage("Bad n/w combination (n not between 0 and 2^w-1)\n");
- }
-
- bitmatrix = jerasure_matrix_to_bitmatrix(1, 1, w, &n);
- printf("<HTML><title>cauchy_01 %u %d</title>\n", w, n);
- printf("<HTML><h3>cauchy_01 %u %d</h3>\n", w, n);
- printf("<pre>\n");
- if (w == 32) {
- printf("Converted the value 0x%x to the following bitmatrix:\n\n", n);
- } else {
- printf("Converted the value %d (0x%x) to the following bitmatrix:\n\n", n, n);
- }
- jerasure_print_bitmatrix(bitmatrix, w, w, w);
- printf("\n");
-
- no = 0;
- for (i = 0; i < w*w; i++) no += bitmatrix[i];
- if (no != cauchy_n_ones(n, w)) {
- fprintf(stderr, "Jerasure error: # ones in the bitmatrix (%d) doesn't match cauchy_n_ones() (%d).\n",
- no, cauchy_n_ones(n, w));
- exit(1);
- }
-
- printf("# Ones: %d\n", cauchy_n_ones(n, w));
-
- return 0;
-}
diff --git a/src/c/jerasure/Examples/cauchy_02.c b/src/c/jerasure/Examples/cauchy_02.c
deleted file mode 100644
index 50cd210..0000000
--- a/src/c/jerasure/Examples/cauchy_02.c
+++ /dev/null
@@ -1,272 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <gf_rand.h>
-#include "jerasure.h"
-#include "cauchy.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: cauchy_02 k m w seed - CRS coding example using Bloemer's original matrix.\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "k+m must be <= 2^w\n");
- fprintf(stderr, "This sets up a generator matrix (G^T) in GF(2^w) whose last m rows are\n");
- fprintf(stderr, "created from a Cauchy matrix, using the original definition from [Bloemer95].\n");
- fprintf(stderr, "It converts this matrix to a bitmatrix, and then it encodes w packets from\n");
- fprintf(stderr, "each of k disks (simulated) onto w packets on each of m disks. Packets are \n");
- fprintf(stderr, "simply longs. Then, it deletes m random disks, and decodes. \n");
- fprintf(stderr, "\n");
- fprintf(stderr, "The encoding and decoding are done twice, first, with jerasure_bitmatrix_encode()\n");
- fprintf(stderr, "and jerasure_bitmatrix_decode(), and second using 'smart' scheduling with\n");
- fprintf(stderr, "jerasure_schedule_encode() and jerasure_schedule_decode_lazy().\n");
-
- fprintf(stderr, "\n");
- fprintf(stderr, "This demonstrates: cauchy_original_coding_matrix()\n");
- fprintf(stderr, " jerasure_bitmatrix_encode()\n");
- fprintf(stderr, " jerasure_bitmatrix_decode()\n");
- fprintf(stderr, " cauchy_n_ones()\n");
- fprintf(stderr, " jerasure_smart_bitmatrix_to_schedule()\n");
- fprintf(stderr, " jerasure_schedule_encode()\n");
- fprintf(stderr, " jerasure_schedule_decode_lazy()\n");
- fprintf(stderr, " jerasure_print_matrix()\n");
- fprintf(stderr, " jerasure_print_bitmatrix()\n");
- fprintf(stderr, " jerasure_get_stats()\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-static void print_array(char **ptrs, int ndevices, int size, int packetsize, char *label)
-{
- int i, j, x;
- unsigned char *up;
-
- printf("<center><table border=3 cellpadding=3><tr><td></td>\n");
-
- for (i = 0; i < ndevices; i++) printf("<td align=center>%s%x</td>\n", label, i);
- printf("</tr>\n");
- printf("<td align=right><pre>");
- for (j = 0; j < size/packetsize; j++) printf("Packet %d\n", j);
- printf("</pre></td>\n");
- for (i = 0; i < ndevices; i++) {
- printf("<td><pre>");
- up = (unsigned char *) ptrs[i];
- for (j = 0; j < size/packetsize; j++) {
- for (x = 0; x < packetsize; x++) {
- if (x > 0 && x%4 == 0) printf(" ");
- printf("%02x", up[j*packetsize+x]);
- }
- printf("\n");
- }
- printf("</td>\n");
- }
- printf("</tr></table></center>\n");
-}
-
-int main(int argc, char **argv)
-{
- int k, w, i, m;
- int *matrix, *bitmatrix, **schedule;
- char **data, **coding, **dcopy, **ccopy;
- int no;
- int *erasures, *erased;
- double mstats[3], sstats[3];
- uint32_t seed;
-
- if (argc != 5) usage(NULL);
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &m) == 0 || m <= 0) usage("Bad m");
- if (sscanf(argv[3], "%d", &w) == 0 || w <= 0 || w > 32) usage("Bad w");
- if (sscanf(argv[4], "%d", &seed) == 0) usage("Bad seed");
- if (w < 30 && (k+m) > (1 << w)) usage("k + m is too big");
-
- matrix = cauchy_original_coding_matrix(k, m, w);
- if (matrix == NULL) {
- usage("couldn't make coding matrix");
- }
-
- /* Print out header information to the output file. */
- printf("<HTML>\n");
- printf("<TITLE>Jerasure Example Output: cauchy_02 %d %d %d %d</TITLE>\n", k, m, w, seed);
- printf("<h2>Jerasure Example Output: cauchy_02 %d %d %d %d</h3>\n", k, m, w, seed);
-
- printf("<hr>\n");
- printf("Parameters:\n");
- printf("<UL><LI> Number of data disks <i>(k)</i>: %d\n", k);
- printf("<LI> Number of coding disks <i>(m)</i>: %d\n", m);
- printf("<LI> Word size of the Galois Field: <i>(w)</i>: %d\n", w);
- printf("<LI> Seed for the random number generator: %d\n", seed);
- printf("<LI> Number of bytes stored per disk: %ld\n", sizeof(long)*w);
- printf("<LI> Number of packets stored per disk: %d\n", w);
- printf("<LI> Number of bytes per packet: %ld\n", sizeof(long));
- printf("</UL>\n");
-
- /* Print out the matrix and the bitmatrix */
- printf("<hr>\n");
- printf("Here is the matrix, which was created with <b>cauchy_original_coding_matrix()</b>.\n");
- printf("This is not the best matrix to use, but we include it to show an example\n");
- printf("of <b>cauchy_original_coding_matrix()</b>. For the best matrix and encoding/decoding\n");
- printf("methodology, see <b>cauchy_04.</b><p><pre>\n");
-
- jerasure_print_matrix(matrix, m, k, w);
- printf("</pre>\n");
-
- bitmatrix = jerasure_matrix_to_bitmatrix(k, m, w, matrix);
-
- no = 0;
- for (i = 0; i < k*m; i++) {
- no += cauchy_n_ones(matrix[i], w);
- }
-
- printf("The bitmatrix, which has %d one%s:<p><pre>\n", no, (no == 1) ? "" : "s");
- jerasure_print_bitmatrix(bitmatrix, m*w, k*w, w);
- printf("</pre>\n");
- printf("<hr>\n");
- MOA_Seed(seed);
-
- data = talloc(char *, k);
- dcopy = talloc(char *, k);
- for (i = 0; i < k; i++) {
- data[i] = talloc(char, sizeof(long)*w);
- dcopy[i] = talloc(char, sizeof(long)*w);
- MOA_Fill_Random_Region(data[i], sizeof(long)*w);
- memcpy(dcopy[i], data[i], sizeof(long)*w);
- }
-
- printf("Here are the packets on the data disks:<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
-
- coding = talloc(char *, m);
- ccopy = talloc(char *, m);
- for (i = 0; i < m; i++) {
- coding[i] = talloc(char, sizeof(long)*w);
- ccopy[i] = talloc(char, sizeof(long)*w);
- }
-
- jerasure_bitmatrix_encode(k, m, w, bitmatrix, data, coding, w*sizeof(long), sizeof(long));
- jerasure_get_stats(mstats);
-
- schedule = jerasure_smart_bitmatrix_to_schedule(k, m, w, bitmatrix);
- jerasure_schedule_encode(k, m, w, schedule, data, ccopy, w*sizeof(long), sizeof(long));
- jerasure_get_stats(sstats);
-
- printf("<p>Encoding with jerasure_bitmatrix_encode() - Bytes XOR'd: %.0lf.<br>\n", mstats[0]);
- printf("Encoding with jerasure_schedule_encode() - Bytes XOR'd: %.0lf.<br>\n", sstats[0]);
-
- for (i = 0; i < m; i++) {
- if (memcmp(coding[i], ccopy[i], sizeof(long)*w) != 0) {
- printf("Problem: the two encodings don't match on disk C%x\n", i);
- exit(0);
- }
- }
-
- printf("Here are the packets on the coding disks.<br>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- erasures = talloc(int, (m+1));
- erased = talloc(int, (k+m));
- for (i = 0; i < m+k; i++) erased[i] = 0;
- for (i = 0; i < m; ) {
- erasures[i] = MOA_Random_W(31, 1)%(k+m);
- if (erased[erasures[i]] == 0) {
- erased[erasures[i]] = 1;
- bzero((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], sizeof(long)*w);
- i++;
- }
- }
- erasures[i] = -1;
- printf("Erasures on the following devices:");
- for (i = 0; erasures[i] != -1; i++) {
- printf(" %c%x", ((erasures[i] < k) ? 'D' : 'C'), (erasures[i] < k ? erasures[i] : erasures[i]-k));
- }
- printf("<br>\nHere is the state of the system:\n<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- jerasure_bitmatrix_decode(k, m, w, bitmatrix, 0, erasures, data, coding, w*sizeof(long), sizeof(long));
- jerasure_get_stats(mstats);
-
- printf("<p>Decoded with jerasure_bitmatrix_decode - Bytes XOR'd: %.0lf.<br>\n", mstats[0]);
-
- for (i = 0; i < k; i++) if (memcmp(data[i], dcopy[i], sizeof(long)*w) != 0) {
- printf("ERROR: D%x after decoding does not match its state before decoding!<br>\n", i);
- }
- for (i = 0; i < m; i++) if (memcmp(coding[i], ccopy[i], sizeof(long)*w) != 0) {
- printf("ERROR: C%x after decoding does not match its state before decoding!<br>\n", i);
- }
-
- for (i = 0; erasures[i] != -1; i++) {
- bzero((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], sizeof(long)*w);
- }
-
- jerasure_schedule_decode_lazy(k, m, w, bitmatrix, erasures, data, coding, w*sizeof(long), sizeof(long), 1);
- jerasure_get_stats(sstats);
-
- printf("jerasure_schedule_decode_lazy - Bytes XOR'd: %.0lf.<br>\n", sstats[0]);
-
- for (i = 0; i < k; i++) if (memcmp(data[i], dcopy[i], sizeof(long)*w) != 0) {
- printf("ERROR: D%x after decoding does not match its state before decoding!<br>\n", i);
- }
- for (i = 0; i < m; i++) if (memcmp(coding[i], ccopy[i], sizeof(long)*w) != 0) {
- printf("ERROR: C%x after decoding does not match its state before decoding!<br>\n", i);
- }
-
- printf("Here is the state of the system:\n<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- return 0;
-}
diff --git a/src/c/jerasure/Examples/cauchy_03.c b/src/c/jerasure/Examples/cauchy_03.c
deleted file mode 100644
index becb3fb..0000000
--- a/src/c/jerasure/Examples/cauchy_03.c
+++ /dev/null
@@ -1,290 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <gf_rand.h>
-#include "jerasure.h"
-#include "cauchy.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: cauchy_03 k m w seed - CRS coding example improving the matrix.\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "k+m must be <= 2^w\n");
- fprintf(stderr, "This sets up a generator matrix (G^T) in GF(2^w) whose last m rows are\n");
- fprintf(stderr, "created from a Cauchy matrix, using the original definition from [Bloemer95].\n");
- fprintf(stderr, "This is done with cauchy_xy_coding_matrix().\n");
- fprintf(stderr, "\n");
- fprintf(stderr, "It then it improves the matrix, which yields a different bitmatrix that is\n");
- fprintf(stderr, "MDS like the original bitmatrix, but it will yield a bitmatrix with fewer ones.\n");
- fprintf(stderr, "Then, it encodes w packets from each of k disks (simulated) onto w packets on\n");
- fprintf(stderr, "on each of m disks. Packets are longs. Then, it deletes m random disks, and decodes.\n");
- fprintf(stderr, "\n");
- fprintf(stderr, "The encoding and decoding are done twice, first, with jerasure_bitmatrix_encode()\n");
- fprintf(stderr, "and jerasure_bitmatrix_decode(), and second using 'smart' scheduling with\n");
- fprintf(stderr, "jerasure_schedule_encode() and jerasure_schedule_decode_lazy().\n");
-
- fprintf(stderr, "\n");
- fprintf(stderr, "This demonstrates: cauchy_xy_coding_matrix()\n");
- fprintf(stderr, " cauchy_improve_coding_matrix()\n");
- fprintf(stderr, " jerasure_bitmatrix_encode()\n");
- fprintf(stderr, " jerasure_bitmatrix_decode()\n");
- fprintf(stderr, " cauchy_n_ones()\n");
- fprintf(stderr, " jerasure_smart_bitmatrix_to_schedule()\n");
- fprintf(stderr, " jerasure_schedule_encode()\n");
- fprintf(stderr, " jerasure_schedule_decode_lazy()\n");
- fprintf(stderr, " jerasure_print_matrix()\n");
- fprintf(stderr, " jerasure_print_bitmatrix()\n");
- fprintf(stderr, " jerasure_get_stats()\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-static void print_array(char **ptrs, int ndevices, int size, int packetsize, char *label)
-{
- int i, j, x;
- unsigned char *up;
-
- printf("<center><table border=3 cellpadding=3><tr><td></td>\n");
-
- for (i = 0; i < ndevices; i++) printf("<td align=center>%s%x</td>\n", label, i);
- printf("</tr>\n");
- printf("<td align=right><pre>");
- for (j = 0; j < size/packetsize; j++) printf("Packet %d\n", j);
- printf("</pre></td>\n");
- for (i = 0; i < ndevices; i++) {
- printf("<td><pre>");
- up = (unsigned char *) ptrs[i];
- for (j = 0; j < size/packetsize; j++) {
- for (x = 0; x < packetsize; x++) {
- if (x > 0 && x%4 == 0) printf(" ");
- printf("%02x", up[j*packetsize+x]);
- }
- printf("\n");
- }
- printf("</td>\n");
- }
- printf("</tr></table></center>\n");
-}
-
-int main(int argc, char **argv)
-{
- int k, w, i, m;
- int *matrix, *bitmatrix, **schedule;
- char **data, **coding, **dcopy, **ccopy;
- int no;
- int *erasures, *erased;
- double mstats[3], sstats[3];
- uint32_t seed;
- int *X, *Y;
-
- if (argc != 5) usage(NULL);
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &m) == 0 || m <= 0) usage("Bad m");
- if (sscanf(argv[3], "%d", &w) == 0 || w <= 0 || w > 32) usage("Bad w");
- if (sscanf(argv[4], "%d", &seed) == 0) usage("Bad seed");
- if (w < 30 && (k+m) > (1 << w)) usage("k + m is too big");
-
- X = talloc(int, m);
- Y = talloc(int, k);
- for (i = 0; i < m; i++) X[i] = i;
- for (i = 0; i < k; i++) Y[i] = m+i;
-
- matrix = cauchy_xy_coding_matrix(k, m, w, X, Y);
- if (matrix == NULL) {
- usage("couldn't make coding matrix");
- }
-
- /* Print out header information to the output file. */
- printf("<HTML>\n");
- printf("<TITLE>Jerasure Example Output: cauchy_03 %d %d %d %d</TITLE>\n", k, m, w, seed);
- printf("<h2>Jerasure Example Output: cauchy_03 %d %d %d %d</h3>\n", k, m, w, seed);
-
- printf("<hr>\n");
- printf("Parameters:\n");
- printf("<UL><LI> Number of data disks <i>(k)</i>: %d\n", k);
- printf("<LI> Number of coding disks <i>(m)</i>: %d\n", m);
- printf("<LI> Word size of the Galois Field: <i>(w)</i>: %d\n", w);
- printf("<LI> Seed for the random number generator: %d\n", seed);
- printf("<LI> Number of bytes stored per disk: %ld\n", sizeof(long)*w);
- printf("<LI> Number of packets stored per disk: %d\n", w);
- printf("<LI> Number of bytes per packet: %ld\n", sizeof(long));
- printf("</UL>\n");
-
- /* Print out the matrix and the bitmatrix */
- printf("<hr>\n");
- printf("Here is the matrix, which was created with <b>cauchy_xy_coding_matrix()</b>.\n");
-
- printf("<pre>\n");
- jerasure_print_matrix(matrix, m, k, w);
- printf("</pre>\n");
-
- cauchy_improve_coding_matrix(k, m, w, matrix);
-
- printf("<hr>\n");
- printf("Here is the matrix improved with <b>cauchy_improve_coding_matrix()</b>.\n");
-
- printf("<pre>\n");
- jerasure_print_matrix(matrix, m, k, w);
- printf("</pre>\n");
-
- bitmatrix = jerasure_matrix_to_bitmatrix(k, m, w, matrix);
-
- no = 0;
- for (i = 0; i < k*m; i++) {
- no += cauchy_n_ones(matrix[i], w);
- }
-
- printf("The bitmatrix, which has %d one%s:<p><pre>\n", no, (no == 1) ? "" : "s");
- jerasure_print_bitmatrix(bitmatrix, m*w, k*w, w);
- printf("</pre>\n");
- printf("<hr>\n");
-
- MOA_Seed(seed);
-
- data = talloc(char *, k);
- dcopy = talloc(char *, k);
- for (i = 0; i < k; i++) {
- data[i] = talloc(char, sizeof(long)*w);
- dcopy[i] = talloc(char, sizeof(long)*w);
- MOA_Fill_Random_Region(data[i], sizeof(long)*w);
- memcpy(dcopy[i], data[i], sizeof(long)*w);
- }
-
- printf("Here are the packets on the data disks:<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
-
- coding = talloc(char *, m);
- ccopy = talloc(char *, m);
- for (i = 0; i < m; i++) {
- coding[i] = talloc(char, sizeof(long)*w);
- ccopy[i] = talloc(char, sizeof(long)*w);
- }
-
- jerasure_bitmatrix_encode(k, m, w, bitmatrix, data, coding, w*sizeof(long), sizeof(long));
- jerasure_get_stats(mstats);
-
- schedule = jerasure_smart_bitmatrix_to_schedule(k, m, w, bitmatrix);
- jerasure_schedule_encode(k, m, w, schedule, data, ccopy, w*sizeof(long), sizeof(long));
- jerasure_get_stats(sstats);
-
- printf("<p>Encoding with jerasure_bitmatrix_encode() - Bytes XOR'd: %.0lf.<br>\n", mstats[0]);
- printf("Encoding with jerasure_schedule_encode() - Bytes XOR'd: %.0lf.<br>\n", sstats[0]);
-
- for (i = 0; i < m; i++) {
- if (memcmp(coding[i], ccopy[i], sizeof(long)*w) != 0) {
- printf("Problem: the two encodings don't match on disk C%x\n", i);
- exit(0);
- }
- }
-
- printf("Here are the packets on the coding disks.<br>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- erasures = talloc(int, (m+1));
- erased = talloc(int, (k+m));
- for (i = 0; i < m+k; i++) erased[i] = 0;
- for (i = 0; i < m; ) {
- erasures[i] = MOA_Random_W(31, 1)%(k+m);
- if (erased[erasures[i]] == 0) {
- erased[erasures[i]] = 1;
- bzero((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], sizeof(long)*w);
- i++;
- }
- }
- erasures[i] = -1;
- printf("Erasures on the following devices:");
- for (i = 0; erasures[i] != -1; i++) {
- printf(" %c%x", ((erasures[i] < k) ? 'D' : 'C'), (erasures[i] < k ? erasures[i] : erasures[i]-k));
- }
- printf("<br>\nHere is the state of the system:\n<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- jerasure_bitmatrix_decode(k, m, w, bitmatrix, 0, erasures, data, coding, w*sizeof(long), sizeof(long));
- jerasure_get_stats(mstats);
-
- printf("<p>Decoded with jerasure_bitmatrix_decode - Bytes XOR'd: %.0lf.<br>\n", mstats[0]);
-
- for (i = 0; i < k; i++) if (memcmp(data[i], dcopy[i], sizeof(long)*w) != 0) {
- printf("ERROR: D%x after decoding does not match its state before decoding!<br>\n", i);
- }
- for (i = 0; i < m; i++) if (memcmp(coding[i], ccopy[i], sizeof(long)*w) != 0) {
- printf("ERROR: C%x after decoding does not match its state before decoding!<br>\n", i);
- }
-
- for (i = 0; erasures[i] != -1; i++) {
- bzero((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], sizeof(long)*w);
- }
-
- jerasure_schedule_decode_lazy(k, m, w, bitmatrix, erasures, data, coding, w*sizeof(long), sizeof(long), 1);
- jerasure_get_stats(sstats);
-
- printf("jerasure_schedule_decode_lazy - Bytes XOR'd: %.0lf.<br>\n", sstats[0]);
-
- for (i = 0; i < k; i++) if (memcmp(data[i], dcopy[i], sizeof(long)*w) != 0) {
- printf("ERROR: D%x after decoding does not match its state before decoding!<br>\n", i);
- }
- for (i = 0; i < m; i++) if (memcmp(coding[i], ccopy[i], sizeof(long)*w) != 0) {
- printf("ERROR: C%x after decoding does not match its state before decoding!<br>\n", i);
- }
-
- printf("Here is the state of the system:\n<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- return 0;
-}
diff --git a/src/c/jerasure/Examples/cauchy_04.c b/src/c/jerasure/Examples/cauchy_04.c
deleted file mode 100644
index dd6bd62..0000000
--- a/src/c/jerasure/Examples/cauchy_04.c
+++ /dev/null
@@ -1,272 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <gf_rand.h>
-#include "jerasure.h"
-#include "cauchy.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: cauchy_04 k m w seed - CRS coding example improving the matrix.\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "k+m must be <= 2^w\n");
- fprintf(stderr, "This sets up a generator matrix (G^T) in GF(2^w) whose last m rows are\n");
- fprintf(stderr, "a 'good' matrix, created with cauchy_good_general_coding_matrix().\n");
- fprintf(stderr, "It converts this matrix to a bitmatrix.\n");
- fprintf(stderr, "\n");
- fprintf(stderr, "Then, it encodes w packets from each of k disks (simulated) onto w packets on\n");
- fprintf(stderr, "on each of m disks. Packets are longs. Then, it deletes m random disks, and decodes.\n");
- fprintf(stderr, "\n");
- fprintf(stderr, "The encoding and decoding are done twice, first, with jerasure_bitmatrix_encode()\n");
- fprintf(stderr, "and jerasure_bitmatrix_decode(), and second using 'smart' scheduling with\n");
- fprintf(stderr, "jerasure_schedule_encode() and jerasure_schedule_decode_lazy().\n");
-
- fprintf(stderr, "\n");
- fprintf(stderr, "This demonstrates: cauchy_good_general_coding_matrix()\n");
- fprintf(stderr, " jerasure_bitmatrix_encode()\n");
- fprintf(stderr, " jerasure_bitmatrix_decode()\n");
- fprintf(stderr, " cauchy_n_ones()\n");
- fprintf(stderr, " jerasure_smart_bitmatrix_to_schedule()\n");
- fprintf(stderr, " jerasure_schedule_encode()\n");
- fprintf(stderr, " jerasure_schedule_decode_lazy()\n");
- fprintf(stderr, " jerasure_print_matrix()\n");
- fprintf(stderr, " jerasure_print_bitmatrix()\n");
- fprintf(stderr, " jerasure_get_stats()\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-static void print_array(char **ptrs, int ndevices, int size, int packetsize, char *label)
-{
- int i, j, x;
- unsigned char *up;
-
- printf("<center><table border=3 cellpadding=3><tr><td></td>\n");
-
- for (i = 0; i < ndevices; i++) printf("<td align=center>%s%x</td>\n", label, i);
- printf("</tr>\n");
- printf("<td align=right><pre>");
- for (j = 0; j < size/packetsize; j++) printf("Packet %d\n", j);
- printf("</pre></td>\n");
- for (i = 0; i < ndevices; i++) {
- printf("<td><pre>");
- up = (unsigned char *) ptrs[i];
- for (j = 0; j < size/packetsize; j++) {
- for (x = 0; x < packetsize; x++) {
- if (x > 0 && x%4 == 0) printf(" ");
- printf("%02x", up[j*packetsize+x]);
- }
- printf("\n");
- }
- printf("</td>\n");
- }
- printf("</tr></table></center>\n");
-}
-
-int main(int argc, char **argv)
-{
- int k, w, i, m;
- int *matrix, *bitmatrix, **schedule;
- char **data, **coding, **dcopy, **ccopy;
- int no;
- int *erasures, *erased;
- double mstats[3], sstats[3];
- uint32_t seed;
-
- if (argc != 5) usage(NULL);
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &m) == 0 || m <= 0) usage("Bad m");
- if (sscanf(argv[3], "%d", &w) == 0 || w <= 0 || w > 32) usage("Bad w");
- if (sscanf(argv[4], "%d", &seed) == 0) usage("Bad seed");
- if (w < 30 && (k+m) > (1 << w)) usage("k + m is too big");
-
- matrix = cauchy_good_general_coding_matrix(k, m, w);
- if (matrix == NULL) {
- usage("couldn't make coding matrix");
- }
-
- /* Print out header information to the output file. */
- printf("<HTML>\n");
- printf("<TITLE>Jerasure Example Output: cauchy_04 %d %d %d %d</TITLE>\n", k, m, w, seed);
- printf("<h2>Jerasure Example Output: cauchy_04 %d %d %d %d</h3>\n", k, m, w, seed);
-
- printf("<hr>\n");
- printf("Parameters:\n");
- printf("<UL><LI> Number of data disks <i>(k)</i>: %d\n", k);
- printf("<LI> Number of coding disks <i>(m)</i>: %d\n", m);
- printf("<LI> Word size of the Galois Field: <i>(w)</i>: %d\n", w);
- printf("<LI> Seed for the random number generator: %d\n", seed);
- printf("<LI> Number of bytes stored per disk: %ld\n", sizeof(long)*w);
- printf("<LI> Number of packets stored per disk: %d\n", w);
- printf("<LI> Number of bytes per packet: %ld\n", sizeof(long));
- printf("</UL>\n");
-
- /* Print out the matrix and the bitmatrix */
- printf("<hr>\n");
- printf("Here is the matrix, which was created with <b>cauchy_good_general_coding_matrix()</b>.\n");
-
- printf("<pre>\n");
- jerasure_print_matrix(matrix, m, k, w);
- printf("</pre>\n");
-
- bitmatrix = jerasure_matrix_to_bitmatrix(k, m, w, matrix);
-
- no = 0;
- for (i = 0; i < k*m; i++) {
- no += cauchy_n_ones(matrix[i], w);
- }
-
- printf("The bitmatrix, which has %d one%s:<p><pre>\n", no, (no == 1) ? "" : "s");
- jerasure_print_bitmatrix(bitmatrix, m*w, k*w, w);
- printf("</pre>\n");
- printf("<hr>\n");
-
- MOA_Seed(seed);
-
- data = talloc(char *, k);
- dcopy = talloc(char *, k);
- for (i = 0; i < k; i++) {
- data[i] = talloc(char, sizeof(long)*w);
- dcopy[i] = talloc(char, sizeof(long)*w);
- MOA_Fill_Random_Region(data[i], sizeof(long)*w);
- memcpy(dcopy[i], data[i], sizeof(long)*w);
- }
-
- printf("Here are the packets on the data disks:<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
-
- coding = talloc(char *, m);
- ccopy = talloc(char *, m);
- for (i = 0; i < m; i++) {
- coding[i] = talloc(char, sizeof(long)*w);
- ccopy[i] = talloc(char, sizeof(long)*w);
- }
-
- jerasure_bitmatrix_encode(k, m, w, bitmatrix, data, coding, w*sizeof(long), sizeof(long));
- jerasure_get_stats(mstats);
-
- schedule = jerasure_smart_bitmatrix_to_schedule(k, m, w, bitmatrix);
- jerasure_schedule_encode(k, m, w, schedule, data, ccopy, w*sizeof(long), sizeof(long));
- jerasure_get_stats(sstats);
-
- printf("<p>Encoding with jerasure_bitmatrix_encode() - Bytes XOR'd: %.0lf.<br>\n", mstats[0]);
- printf("Encoding with jerasure_schedule_encode() - Bytes XOR'd: %.0lf.<br>\n", sstats[0]);
-
- for (i = 0; i < m; i++) {
- if (memcmp(coding[i], ccopy[i], sizeof(long)*w) != 0) {
- printf("Problem: the two encodings don't match on disk C%x\n", i);
- exit(0);
- }
- }
-
- printf("Here are the packets on the coding disks.<br>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- erasures = talloc(int, (m+1));
- erased = talloc(int, (k+m));
- for (i = 0; i < m+k; i++) erased[i] = 0;
- for (i = 0; i < m; ) {
- erasures[i] = MOA_Random_W(31, 1)%(k+m);
- if (erased[erasures[i]] == 0) {
- erased[erasures[i]] = 1;
- bzero((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], sizeof(long)*w);
- i++;
- }
- }
- erasures[i] = -1;
- printf("Erasures on the following devices:");
- for (i = 0; erasures[i] != -1; i++) {
- printf(" %c%x", ((erasures[i] < k) ? 'D' : 'C'), (erasures[i] < k ? erasures[i] : erasures[i]-k));
- }
- printf("<br>\nHere is the state of the system:\n<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- jerasure_bitmatrix_decode(k, m, w, bitmatrix, 0, erasures, data, coding, w*sizeof(long), sizeof(long));
- jerasure_get_stats(mstats);
-
- printf("<p>Decoded with jerasure_bitmatrix_decode - Bytes XOR'd: %.0lf.<br>\n", mstats[0]);
-
- for (i = 0; i < k; i++) if (memcmp(data[i], dcopy[i], sizeof(long)*w) != 0) {
- printf("ERROR: D%x after decoding does not match its state before decoding!<br>\n", i);
- }
- for (i = 0; i < m; i++) if (memcmp(coding[i], ccopy[i], sizeof(long)*w) != 0) {
- printf("ERROR: C%x after decoding does not match its state before decoding!<br>\n", i);
- }
-
- for (i = 0; erasures[i] != -1; i++) {
- bzero((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], sizeof(long)*w);
- }
-
- jerasure_schedule_decode_lazy(k, m, w, bitmatrix, erasures, data, coding, w*sizeof(long), sizeof(long), 1);
- jerasure_get_stats(sstats);
-
- printf("jerasure_schedule_decode_lazy - Bytes XOR'd: %.0lf.<br>\n", sstats[0]);
-
- for (i = 0; i < k; i++) if (memcmp(data[i], dcopy[i], sizeof(long)*w) != 0) {
- printf("ERROR: D%x after decoding does not match its state before decoding!<br>\n", i);
- }
- for (i = 0; i < m; i++) if (memcmp(coding[i], ccopy[i], sizeof(long)*w) != 0) {
- printf("ERROR: C%x after decoding does not match its state before decoding!<br>\n", i);
- }
-
- printf("Here is the state of the system:\n<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- return 0;
-}
diff --git a/src/c/jerasure/Examples/decoder.c b/src/c/jerasure/Examples/decoder.c
deleted file mode 100644
index e18879c..0000000
--- a/src/c/jerasure/Examples/decoder.c
+++ /dev/null
@@ -1,397 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-/*
-This program takes as input an inputfile, k, m, a coding
-technique, w, and packetsize. It is the companion program
-of encoder.c, which creates k+m files. This program assumes
-that up to m erasures have occurred in the k+m files. It
-reads in the k+m files or marks the file as erased. It then
-recreates the original file and creates a new file with the
-suffix "decoded" with the decoded contents of the file.
-
-This program does not error check command line arguments because
-it is assumed that encoder.c has been called previously with the
-same arguments, and encoder.c does error check.
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <assert.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <sys/stat.h>
-#include <signal.h>
-#include <unistd.h>
-#include "jerasure.h"
-#include "reed_sol.h"
-#include "galois.h"
-#include "cauchy.h"
-#include "liberation.h"
-#include "timing.h"
-
-#define N 10
-
-enum Coding_Technique {Reed_Sol_Van, Reed_Sol_R6_Op, Cauchy_Orig, Cauchy_Good, Liberation, Blaum_Roth, Liber8tion, RDP, EVENODD, No_Coding};
-
-char *Methods[N] = {"reed_sol_van", "reed_sol_r6_op", "cauchy_orig", "cauchy_good", "liberation", "blaum_roth", "liber8tion", "rdp", "evenodd", "no_coding"};
-
-/* Global variables for signal handler */
-enum Coding_Technique method;
-int readins, n;
-
-/* Function prototype */
-void ctrl_bs_handler(int dummy);
-
-int main (int argc, char **argv) {
- FILE *fp; // File pointer
-
- /* Jerasure arguments */
- char **data;
- char **coding;
- int *erasures;
- int *erased;
- int *matrix;
- int *bitmatrix;
-
- /* Parameters */
- int k, m, w, packetsize, buffersize;
- int tech;
- char *c_tech;
-
- int i, j; // loop control variable, s
- int blocksize = 0; // size of individual files
- int origsize; // size of file before padding
- int total; // used to write data, not padding to file
- struct stat status; // used to find size of individual files
- int numerased; // number of erased files
-
- /* Used to recreate file names */
- char *temp;
- char *cs1, *cs2, *extension;
- char *fname;
- int md;
- char *curdir;
-
- /* Used to time decoding */
- struct timing t1, t2, t3, t4;
- double tsec;
- double totalsec;
-
-
- signal(SIGQUIT, ctrl_bs_handler);
-
- matrix = NULL;
- bitmatrix = NULL;
- totalsec = 0.0;
-
- /* Start timing */
- timing_set(&t1);
-
- /* Error checking parameters */
- if (argc != 2) {
- fprintf(stderr, "usage: inputfile\n");
- exit(0);
- }
- curdir = (char *)malloc(sizeof(char)*1000);
- assert(curdir == getcwd(curdir, 1000));
-
- /* Begin recreation of file names */
- cs1 = (char*)malloc(sizeof(char)*strlen(argv[1]));
- cs2 = strrchr(argv[1], '/');
- if (cs2 != NULL) {
- cs2++;
- strcpy(cs1, cs2);
- }
- else {
- strcpy(cs1, argv[1]);
- }
- cs2 = strchr(cs1, '.');
- if (cs2 != NULL) {
- extension = strdup(cs2);
- *cs2 = '\0';
- } else {
- extension = strdup("");
- }
- fname = (char *)malloc(sizeof(char*)*(100+strlen(argv[1])+20));
-
- /* Read in parameters from metadata file */
- sprintf(fname, "%s/Coding/%s_meta.txt", curdir, cs1);
-
- fp = fopen(fname, "rb");
- if (fp == NULL) {
- fprintf(stderr, "Error: no metadata file %s\n", fname);
- exit(1);
- }
- temp = (char *)malloc(sizeof(char)*(strlen(argv[1])+20));
- if (fscanf(fp, "%s", temp) != 1) {
- fprintf(stderr, "Metadata file - bad format\n");
- exit(0);
- }
-
- if (fscanf(fp, "%d", &origsize) != 1) {
- fprintf(stderr, "Original size is not valid\n");
- exit(0);
- }
- if (fscanf(fp, "%d %d %d %d %d", &k, &m, &w, &packetsize, &buffersize) != 5) {
- fprintf(stderr, "Parameters are not correct\n");
- exit(0);
- }
- c_tech = (char *)malloc(sizeof(char)*(strlen(argv[1])+20));
- if (fscanf(fp, "%s", c_tech) != 1) {
- fprintf(stderr, "Metadata file - bad format\n");
- exit(0);
- }
- if (fscanf(fp, "%d", &tech) != 1) {
- fprintf(stderr, "Metadata file - bad format\n");
- exit(0);
- }
- method = tech;
- if (fscanf(fp, "%d", &readins) != 1) {
- fprintf(stderr, "Metadata file - bad format\n");
- exit(0);
- }
- fclose(fp);
-
- /* Allocate memory */
- erased = (int *)malloc(sizeof(int)*(k+m));
- for (i = 0; i < k+m; i++)
- erased[i] = 0;
- erasures = (int *)malloc(sizeof(int)*(k+m));
-
- data = (char **)malloc(sizeof(char *)*k);
- coding = (char **)malloc(sizeof(char *)*m);
- if (buffersize != origsize) {
- for (i = 0; i < k; i++) {
- data[i] = (char *)malloc(sizeof(char)*(buffersize/k));
- }
- for (i = 0; i < m; i++) {
- coding[i] = (char *)malloc(sizeof(char)*(buffersize/k));
- }
- blocksize = buffersize/k;
- }
-
- sprintf(temp, "%d", k);
- md = strlen(temp);
- timing_set(&t3);
-
- /* Create coding matrix or bitmatrix */
- switch(tech) {
- case No_Coding:
- break;
- case Reed_Sol_Van:
- matrix = reed_sol_vandermonde_coding_matrix(k, m, w);
- break;
- case Reed_Sol_R6_Op:
- matrix = reed_sol_r6_coding_matrix(k, w);
- break;
- case Cauchy_Orig:
- matrix = cauchy_original_coding_matrix(k, m, w);
- bitmatrix = jerasure_matrix_to_bitmatrix(k, m, w, matrix);
- break;
- case Cauchy_Good:
- matrix = cauchy_good_general_coding_matrix(k, m, w);
- bitmatrix = jerasure_matrix_to_bitmatrix(k, m, w, matrix);
- break;
- case Liberation:
- bitmatrix = liberation_coding_bitmatrix(k, w);
- break;
- case Blaum_Roth:
- bitmatrix = blaum_roth_coding_bitmatrix(k, w);
- break;
- case Liber8tion:
- bitmatrix = liber8tion_coding_bitmatrix(k);
- }
- timing_set(&t4);
- totalsec += timing_delta(&t3, &t4);
-
- /* Begin decoding process */
- total = 0;
- n = 1;
- while (n <= readins) {
- numerased = 0;
- /* Open files, check for erasures, read in data/coding */
- for (i = 1; i <= k; i++) {
- sprintf(fname, "%s/Coding/%s_k%0*d%s", curdir, cs1, md, i, extension);
- fp = fopen(fname, "rb");
- if (fp == NULL) {
- erased[i-1] = 1;
- erasures[numerased] = i-1;
- numerased++;
- //printf("%s failed\n", fname);
- }
- else {
- if (buffersize == origsize) {
- stat(fname, &status);
- blocksize = status.st_size;
- data[i-1] = (char *)malloc(sizeof(char)*blocksize);
- assert(blocksize == fread(data[i-1], sizeof(char), blocksize, fp));
- }
- else {
- fseek(fp, blocksize*(n-1), SEEK_SET);
- assert(buffersize/k == fread(data[i-1], sizeof(char), buffersize/k, fp));
- }
- fclose(fp);
- }
- }
- for (i = 1; i <= m; i++) {
- sprintf(fname, "%s/Coding/%s_m%0*d%s", curdir, cs1, md, i, extension);
- fp = fopen(fname, "rb");
- if (fp == NULL) {
- erased[k+(i-1)] = 1;
- erasures[numerased] = k+i-1;
- numerased++;
- //printf("%s failed\n", fname);
- }
- else {
- if (buffersize == origsize) {
- stat(fname, &status);
- blocksize = status.st_size;
- coding[i-1] = (char *)malloc(sizeof(char)*blocksize);
- assert(blocksize == fread(coding[i-1], sizeof(char), blocksize, fp));
- }
- else {
- fseek(fp, blocksize*(n-1), SEEK_SET);
- assert(blocksize == fread(coding[i-1], sizeof(char), blocksize, fp));
- }
- fclose(fp);
- }
- }
- /* Finish allocating data/coding if needed */
- if (n == 1) {
- for (i = 0; i < numerased; i++) {
- if (erasures[i] < k) {
- data[erasures[i]] = (char *)malloc(sizeof(char)*blocksize);
- }
- else {
- coding[erasures[i]-k] = (char *)malloc(sizeof(char)*blocksize);
- }
- }
- }
-
- erasures[numerased] = -1;
- timing_set(&t3);
-
- /* Choose proper decoding method */
- if (tech == Reed_Sol_Van || tech == Reed_Sol_R6_Op) {
- i = jerasure_matrix_decode(k, m, w, matrix, 1, erasures, data, coding, blocksize);
- }
- else if (tech == Cauchy_Orig || tech == Cauchy_Good || tech == Liberation || tech == Blaum_Roth || tech == Liber8tion) {
- i = jerasure_schedule_decode_lazy(k, m, w, bitmatrix, erasures, data, coding, blocksize, packetsize, 1);
- }
- else {
- fprintf(stderr, "Not a valid coding technique.\n");
- exit(0);
- }
- timing_set(&t4);
-
- /* Exit if decoding was unsuccessful */
- if (i == -1) {
- fprintf(stderr, "Unsuccessful!\n");
- exit(0);
- }
-
- /* Create decoded file */
- sprintf(fname, "%s/Coding/%s_decoded%s", curdir, cs1, extension);
- if (n == 1) {
- fp = fopen(fname, "wb");
- }
- else {
- fp = fopen(fname, "ab");
- }
- for (i = 0; i < k; i++) {
- if (total+blocksize <= origsize) {
- fwrite(data[i], sizeof(char), blocksize, fp);
- total+= blocksize;
- }
- else {
- for (j = 0; j < blocksize; j++) {
- if (total < origsize) {
- fprintf(fp, "%c", data[i][j]);
- total++;
- }
- else {
- break;
- }
-
- }
- }
- }
- n++;
- fclose(fp);
- totalsec += timing_delta(&t3, &t4);
- }
-
- /* Free allocated memory */
- free(cs1);
- free(extension);
- free(fname);
- free(data);
- free(coding);
- free(erasures);
- free(erased);
-
- /* Stop timing and print time */
- timing_set(&t2);
- tsec = timing_delta(&t1, &t2);
- printf("Decoding (MB/sec): %0.10f\n", (((double) origsize)/1024.0/1024.0)/totalsec);
- printf("De_Total (MB/sec): %0.10f\n\n", (((double) origsize)/1024.0/1024.0)/tsec);
-
- return 0;
-}
-
-void ctrl_bs_handler(int dummy) {
- time_t mytime;
- mytime = time(0);
- fprintf(stderr, "\n%s\n", ctime(&mytime));
- fprintf(stderr, "You just typed ctrl-\\ in decoder.c\n");
- fprintf(stderr, "Total number of read ins = %d\n", readins);
- fprintf(stderr, "Current read in: %d\n", n);
- fprintf(stderr, "Method: %s\n\n", Methods[method]);
- signal(SIGQUIT, ctrl_bs_handler);
-}
diff --git a/src/c/jerasure/Examples/encode_decode.sh b/src/c/jerasure/Examples/encode_decode.sh
deleted file mode 100755
index 7f2fded..0000000
--- a/src/c/jerasure/Examples/encode_decode.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash -e
-#
-# Copyright (C) 2014 Red Hat <contact@redhat.com>
-#
-# Author: Loic Dachary <loic@dachary.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Library Public License as published by
-# the Free Software Foundation; either version 2, 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 Library Public License for more details.
-#
-trap "rm -fr T Coding" EXIT
-
-dd if=/dev/urandom of=T bs=4096 count=1
-./encoder T 3 2 reed_sol_van 8 0 0
-./decoder T
diff --git a/src/c/jerasure/Examples/encoder.c b/src/c/jerasure/Examples/encoder.c
deleted file mode 100644
index 1868adf..0000000
--- a/src/c/jerasure/Examples/encoder.c
+++ /dev/null
@@ -1,627 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-/*
-
-This program takes as input an inputfile, k, m, a coding
-technique, w, and packetsize. It creates k+m files from
-the original file so that k of these files are parts of
-the original file and m of the files are encoded based on
-the given coding technique. The format of the created files
-is the file name with "_k#" or "_m#" and then the extension.
-(For example, inputfile test.txt would yield file "test_k1.txt".)
-*/
-
-#include <assert.h>
-#include <time.h>
-#include <sys/time.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <signal.h>
-#include <gf_rand.h>
-#include <unistd.h>
-#include "jerasure.h"
-#include "reed_sol.h"
-#include "cauchy.h"
-#include "liberation.h"
-#include "timing.h"
-
-#define N 10
-
-enum Coding_Technique {Reed_Sol_Van, Reed_Sol_R6_Op, Cauchy_Orig, Cauchy_Good, Liberation, Blaum_Roth, Liber8tion, RDP, EVENODD, No_Coding};
-
-char *Methods[N] = {"reed_sol_van", "reed_sol_r6_op", "cauchy_orig", "cauchy_good", "liberation", "blaum_roth", "liber8tion", "no_coding"};
-
-/* Global variables for signal handler */
-int readins, n;
-enum Coding_Technique method;
-
-/* Function prototypes */
-int is_prime(int w);
-void ctrl_bs_handler(int dummy);
-
-int jfread(void *ptr, int size, int nmembers, FILE *stream)
-{
- if (stream != NULL) return fread(ptr, size, nmembers, stream);
-
- MOA_Fill_Random_Region(ptr, size);
- return size;
-}
-
-
-int main (int argc, char **argv) {
- FILE *fp, *fp2; // file pointers
- char *block; // padding file
- int size, newsize; // size of file and temp size
- struct stat status; // finding file size
-
-
- enum Coding_Technique tech; // coding technique (parameter)
- int k, m, w, packetsize; // parameters
- int buffersize; // paramter
- int i; // loop control variables
- int blocksize; // size of k+m files
- int total;
- int extra;
-
- /* Jerasure Arguments */
- char **data;
- char **coding;
- int *matrix;
- int *bitmatrix;
- int **schedule;
-
- /* Creation of file name variables */
- char temp[5];
- char *s1, *s2, *extension;
- char *fname;
- int md;
- char *curdir;
-
- /* Timing variables */
- struct timing t1, t2, t3, t4;
- double tsec;
- double totalsec;
- struct timing start;
-
- /* Find buffersize */
- int up, down;
-
-
- signal(SIGQUIT, ctrl_bs_handler);
-
- /* Start timing */
- timing_set(&t1);
- totalsec = 0.0;
- matrix = NULL;
- bitmatrix = NULL;
- schedule = NULL;
-
- /* Error check Arguments*/
- if (argc != 8) {
- fprintf(stderr, "usage: inputfile k m coding_technique w packetsize buffersize\n");
- fprintf(stderr, "\nChoose one of the following coding techniques: \nreed_sol_van, \nreed_sol_r6_op, \ncauchy_orig, \ncauchy_good, \nliberation, \nblaum_roth, \nliber8tion");
- fprintf(stderr, "\n\nPacketsize is ignored for the reed_sol's");
- fprintf(stderr, "\nBuffersize of 0 means the buffersize is chosen automatically.\n");
- fprintf(stderr, "\nIf you just want to test speed, use an inputfile of \"-number\" where number is the size of the fake file you want to test.\n\n");
- exit(0);
- }
- /* Conversion of parameters and error checking */
- if (sscanf(argv[2], "%d", &k) == 0 || k <= 0) {
- fprintf(stderr, "Invalid value for k\n");
- exit(0);
- }
- if (sscanf(argv[3], "%d", &m) == 0 || m < 0) {
- fprintf(stderr, "Invalid value for m\n");
- exit(0);
- }
- if (sscanf(argv[5],"%d", &w) == 0 || w <= 0) {
- fprintf(stderr, "Invalid value for w.\n");
- exit(0);
- }
- if (argc == 6) {
- packetsize = 0;
- }
- else {
- if (sscanf(argv[6], "%d", &packetsize) == 0 || packetsize < 0) {
- fprintf(stderr, "Invalid value for packetsize.\n");
- exit(0);
- }
- }
- if (argc != 8) {
- buffersize = 0;
- }
- else {
- if (sscanf(argv[7], "%d", &buffersize) == 0 || buffersize < 0) {
- fprintf(stderr, "Invalid value for buffersize\n");
- exit(0);
- }
-
- }
-
- /* Determine proper buffersize by finding the closest valid buffersize to the input value */
- if (buffersize != 0) {
- if (packetsize != 0 && buffersize%(sizeof(long)*w*k*packetsize) != 0) {
- up = buffersize;
- down = buffersize;
- while (up%(sizeof(long)*w*k*packetsize) != 0 && (down%(sizeof(long)*w*k*packetsize) != 0)) {
- up++;
- if (down == 0) {
- down--;
- }
- }
- if (up%(sizeof(long)*w*k*packetsize) == 0) {
- buffersize = up;
- }
- else {
- if (down != 0) {
- buffersize = down;
- }
- }
- }
- else if (packetsize == 0 && buffersize%(sizeof(long)*w*k) != 0) {
- up = buffersize;
- down = buffersize;
- while (up%(sizeof(long)*w*k) != 0 && down%(sizeof(long)*w*k) != 0) {
- up++;
- down--;
- }
- if (up%(sizeof(long)*w*k) == 0) {
- buffersize = up;
- }
- else {
- buffersize = down;
- }
- }
- }
-
- /* Setting of coding technique and error checking */
-
- if (strcmp(argv[4], "no_coding") == 0) {
- tech = No_Coding;
- }
- else if (strcmp(argv[4], "reed_sol_van") == 0) {
- tech = Reed_Sol_Van;
- if (w != 8 && w != 16 && w != 32) {
- fprintf(stderr, "w must be one of {8, 16, 32}\n");
- exit(0);
- }
- }
- else if (strcmp(argv[4], "reed_sol_r6_op") == 0) {
- if (m != 2) {
- fprintf(stderr, "m must be equal to 2\n");
- exit(0);
- }
- if (w != 8 && w != 16 && w != 32) {
- fprintf(stderr, "w must be one of {8, 16, 32}\n");
- exit(0);
- }
- tech = Reed_Sol_R6_Op;
- }
- else if (strcmp(argv[4], "cauchy_orig") == 0) {
- tech = Cauchy_Orig;
- if (packetsize == 0) {
- fprintf(stderr, "Must include packetsize.\n");
- exit(0);
- }
- }
- else if (strcmp(argv[4], "cauchy_good") == 0) {
- tech = Cauchy_Good;
- if (packetsize == 0) {
- fprintf(stderr, "Must include packetsize.\n");
- exit(0);
- }
- }
- else if (strcmp(argv[4], "liberation") == 0) {
- if (k > w) {
- fprintf(stderr, "k must be less than or equal to w\n");
- exit(0);
- }
- if (w <= 2 || !(w%2) || !is_prime(w)) {
- fprintf(stderr, "w must be greater than two and w must be prime\n");
- exit(0);
- }
- if (packetsize == 0) {
- fprintf(stderr, "Must include packetsize.\n");
- exit(0);
- }
- if ((packetsize%(sizeof(long))) != 0) {
- fprintf(stderr, "packetsize must be a multiple of sizeof(long)\n");
- exit(0);
- }
- tech = Liberation;
- }
- else if (strcmp(argv[4], "blaum_roth") == 0) {
- if (k > w) {
- fprintf(stderr, "k must be less than or equal to w\n");
- exit(0);
- }
- if (w <= 2 || !((w+1)%2) || !is_prime(w+1)) {
- fprintf(stderr, "w must be greater than two and w+1 must be prime\n");
- exit(0);
- }
- if (packetsize == 0) {
- fprintf(stderr, "Must include packetsize.\n");
- exit(0);
- }
- if ((packetsize%(sizeof(long))) != 0) {
- fprintf(stderr, "packetsize must be a multiple of sizeof(long)\n");
- exit(0);
- }
- tech = Blaum_Roth;
- }
- else if (strcmp(argv[4], "liber8tion") == 0) {
- if (packetsize == 0) {
- fprintf(stderr, "Must include packetsize\n");
- exit(0);
- }
- if (w != 8) {
- fprintf(stderr, "w must equal 8\n");
- exit(0);
- }
- if (m != 2) {
- fprintf(stderr, "m must equal 2\n");
- exit(0);
- }
- if (k > w) {
- fprintf(stderr, "k must be less than or equal to w\n");
- exit(0);
- }
- tech = Liber8tion;
- }
- else {
- fprintf(stderr, "Not a valid coding technique. Choose one of the following: reed_sol_van, reed_sol_r6_op, cauchy_orig, cauchy_good, liberation, blaum_roth, liber8tion, no_coding\n");
- exit(0);
- }
-
- /* Set global variable method for signal handler */
- method = tech;
-
- /* Get current working directory for construction of file names */
- curdir = (char*)malloc(sizeof(char)*1000);
- assert(curdir == getcwd(curdir, 1000));
-
- if (argv[1][0] != '-') {
-
- /* Open file and error check */
- fp = fopen(argv[1], "rb");
- if (fp == NULL) {
- fprintf(stderr, "Unable to open file.\n");
- exit(0);
- }
-
- /* Create Coding directory */
- i = mkdir("Coding", S_IRWXU);
- if (i == -1 && errno != EEXIST) {
- fprintf(stderr, "Unable to create Coding directory.\n");
- exit(0);
- }
-
- /* Determine original size of file */
- stat(argv[1], &status);
- size = status.st_size;
- } else {
- if (sscanf(argv[1]+1, "%d", &size) != 1 || size <= 0) {
- fprintf(stderr, "Files starting with '-' should be sizes for randomly created input\n");
- exit(1);
- }
- fp = NULL;
- MOA_Seed(time(0));
- }
-
- newsize = size;
-
- /* Find new size by determining next closest multiple */
- if (packetsize != 0) {
- if (size%(k*w*packetsize*sizeof(long)) != 0) {
- while (newsize%(k*w*packetsize*sizeof(long)) != 0)
- newsize++;
- }
- }
- else {
- if (size%(k*w*sizeof(long)) != 0) {
- while (newsize%(k*w*sizeof(long)) != 0)
- newsize++;
- }
- }
-
- if (buffersize != 0) {
- while (newsize%buffersize != 0) {
- newsize++;
- }
- }
-
-
- /* Determine size of k+m files */
- blocksize = newsize/k;
-
- /* Allow for buffersize and determine number of read-ins */
- if (size > buffersize && buffersize != 0) {
- if (newsize%buffersize != 0) {
- readins = newsize/buffersize;
- }
- else {
- readins = newsize/buffersize;
- }
- block = (char *)malloc(sizeof(char)*buffersize);
- blocksize = buffersize/k;
- }
- else {
- readins = 1;
- buffersize = size;
- block = (char *)malloc(sizeof(char)*newsize);
- }
-
- /* Break inputfile name into the filename and extension */
- s1 = (char*)malloc(sizeof(char)*(strlen(argv[1])+20));
- s2 = strrchr(argv[1], '/');
- if (s2 != NULL) {
- s2++;
- strcpy(s1, s2);
- }
- else {
- strcpy(s1, argv[1]);
- }
- s2 = strchr(s1, '.');
- if (s2 != NULL) {
- extension = strdup(s2);
- *s2 = '\0';
- } else {
- extension = strdup("");
- }
-
- /* Allocate for full file name */
- fname = (char*)malloc(sizeof(char)*(strlen(argv[1])+strlen(curdir)+20));
- sprintf(temp, "%d", k);
- md = strlen(temp);
-
- /* Allocate data and coding */
- data = (char **)malloc(sizeof(char*)*k);
- coding = (char **)malloc(sizeof(char*)*m);
- for (i = 0; i < m; i++) {
- coding[i] = (char *)malloc(sizeof(char)*blocksize);
- if (coding[i] == NULL) { perror("malloc"); exit(1); }
- }
-
-
-
- /* Create coding matrix or bitmatrix and schedule */
- timing_set(&t3);
- switch(tech) {
- case No_Coding:
- break;
- case Reed_Sol_Van:
- matrix = reed_sol_vandermonde_coding_matrix(k, m, w);
- break;
- case Reed_Sol_R6_Op:
- break;
- case Cauchy_Orig:
- matrix = cauchy_original_coding_matrix(k, m, w);
- bitmatrix = jerasure_matrix_to_bitmatrix(k, m, w, matrix);
- schedule = jerasure_smart_bitmatrix_to_schedule(k, m, w, bitmatrix);
- break;
- case Cauchy_Good:
- matrix = cauchy_good_general_coding_matrix(k, m, w);
- bitmatrix = jerasure_matrix_to_bitmatrix(k, m, w, matrix);
- schedule = jerasure_smart_bitmatrix_to_schedule(k, m, w, bitmatrix);
- break;
- case Liberation:
- bitmatrix = liberation_coding_bitmatrix(k, w);
- schedule = jerasure_smart_bitmatrix_to_schedule(k, m, w, bitmatrix);
- break;
- case Blaum_Roth:
- bitmatrix = blaum_roth_coding_bitmatrix(k, w);
- schedule = jerasure_smart_bitmatrix_to_schedule(k, m, w, bitmatrix);
- break;
- case Liber8tion:
- bitmatrix = liber8tion_coding_bitmatrix(k);
- schedule = jerasure_smart_bitmatrix_to_schedule(k, m, w, bitmatrix);
- break;
- case RDP:
- case EVENODD:
- assert(0);
- }
- timing_set(&start);
- timing_set(&t4);
- totalsec += timing_delta(&t3, &t4);
-
-
-
- /* Read in data until finished */
- n = 1;
- total = 0;
-
- while (n <= readins) {
- /* Check if padding is needed, if so, add appropriate
- number of zeros */
- if (total < size && total+buffersize <= size) {
- total += jfread(block, sizeof(char), buffersize, fp);
- }
- else if (total < size && total+buffersize > size) {
- extra = jfread(block, sizeof(char), buffersize, fp);
- for (i = extra; i < buffersize; i++) {
- block[i] = '0';
- }
- }
- else if (total == size) {
- for (i = 0; i < buffersize; i++) {
- block[i] = '0';
- }
- }
-
- /* Set pointers to point to file data */
- for (i = 0; i < k; i++) {
- data[i] = block+(i*blocksize);
- }
-
- timing_set(&t3);
- /* Encode according to coding method */
- switch(tech) {
- case No_Coding:
- break;
- case Reed_Sol_Van:
- jerasure_matrix_encode(k, m, w, matrix, data, coding, blocksize);
- break;
- case Reed_Sol_R6_Op:
- reed_sol_r6_encode(k, w, data, coding, blocksize);
- break;
- case Cauchy_Orig:
- jerasure_schedule_encode(k, m, w, schedule, data, coding, blocksize, packetsize);
- break;
- case Cauchy_Good:
- jerasure_schedule_encode(k, m, w, schedule, data, coding, blocksize, packetsize);
- break;
- case Liberation:
- jerasure_schedule_encode(k, m, w, schedule, data, coding, blocksize, packetsize);
- break;
- case Blaum_Roth:
- jerasure_schedule_encode(k, m, w, schedule, data, coding, blocksize, packetsize);
- break;
- case Liber8tion:
- jerasure_schedule_encode(k, m, w, schedule, data, coding, blocksize, packetsize);
- break;
- case RDP:
- case EVENODD:
- assert(0);
- }
- timing_set(&t4);
-
- /* Write data and encoded data to k+m files */
- for (i = 1; i <= k; i++) {
- if (fp == NULL) {
- bzero(data[i-1], blocksize);
- } else {
- sprintf(fname, "%s/Coding/%s_k%0*d%s", curdir, s1, md, i, extension);
- if (n == 1) {
- fp2 = fopen(fname, "wb");
- }
- else {
- fp2 = fopen(fname, "ab");
- }
- fwrite(data[i-1], sizeof(char), blocksize, fp2);
- fclose(fp2);
- }
-
- }
- for (i = 1; i <= m; i++) {
- if (fp == NULL) {
- bzero(data[i-1], blocksize);
- } else {
- sprintf(fname, "%s/Coding/%s_m%0*d%s", curdir, s1, md, i, extension);
- if (n == 1) {
- fp2 = fopen(fname, "wb");
- }
- else {
- fp2 = fopen(fname, "ab");
- }
- fwrite(coding[i-1], sizeof(char), blocksize, fp2);
- fclose(fp2);
- }
- }
- n++;
- /* Calculate encoding time */
- totalsec += timing_delta(&t3, &t4);
- }
-
- /* Create metadata file */
- if (fp != NULL) {
- sprintf(fname, "%s/Coding/%s_meta.txt", curdir, s1);
- fp2 = fopen(fname, "wb");
- fprintf(fp2, "%s\n", argv[1]);
- fprintf(fp2, "%d\n", size);
- fprintf(fp2, "%d %d %d %d %d\n", k, m, w, packetsize, buffersize);
- fprintf(fp2, "%s\n", argv[4]);
- fprintf(fp2, "%d\n", tech);
- fprintf(fp2, "%d\n", readins);
- fclose(fp2);
- }
-
-
- /* Free allocated memory */
- free(s1);
- free(fname);
- free(block);
- free(curdir);
-
- /* Calculate rate in MB/sec and print */
- timing_set(&t2);
- tsec = timing_delta(&t1, &t2);
- printf("Encoding (MB/sec): %0.10f\n", (((double) size)/1024.0/1024.0)/totalsec);
- printf("En_Total (MB/sec): %0.10f\n", (((double) size)/1024.0/1024.0)/tsec);
-
- return 0;
-}
-
-/* is_prime returns 1 if number if prime, 0 if not prime */
-int is_prime(int w) {
- int prime55[] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,
- 73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,
- 181,191,193,197,199,211,223,227,229,233,239,241,251,257};
- int i;
- for (i = 0; i < 55; i++) {
- if (w%prime55[i] == 0) {
- if (w == prime55[i]) return 1;
- else { return 0; }
- }
- }
- assert(0);
-}
-
-/* Handles ctrl-\ event */
-void ctrl_bs_handler(int dummy) {
- time_t mytime;
- mytime = time(0);
- fprintf(stderr, "\n%s\n", ctime(&mytime));
- fprintf(stderr, "You just typed ctrl-\\ in encoder.c.\n");
- fprintf(stderr, "Total number of read ins = %d\n", readins);
- fprintf(stderr, "Current read in: %d\n", n);
- fprintf(stderr, "Method: %s\n\n", Methods[method]);
- signal(SIGQUIT, ctrl_bs_handler);
-}
diff --git a/src/c/jerasure/Examples/jerasure_01.c b/src/c/jerasure/Examples/jerasure_01.c
deleted file mode 100644
index 31bce57..0000000
--- a/src/c/jerasure/Examples/jerasure_01.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "jerasure.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: jerasure_01 r c w - creates and prints out a matrix in GF(2^w).\n\n");
- fprintf(stderr, " Element i,j is equal to 2^(i*c+j)\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "This demonstrates jerasure_print_matrix().\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- int r, c, w, i, n;
- int *matrix;
-
- if (argc != 4) usage(NULL);
- if (sscanf(argv[1], "%d", &r) == 0 || r <= 0) usage("Bad r");
- if (sscanf(argv[2], "%d", &c) == 0 || c <= 0) usage("Bad c");
- if (sscanf(argv[3], "%d", &w) == 0 || w <= 0) usage("Bad w");
-
- matrix = talloc(int, r*c);
-
- n = 1;
- for (i = 0; i < r*c; i++) {
- matrix[i] = n;
- n = galois_single_multiply(n, 2, w);
- }
-
- printf("<HTML><TITLE>jerasure_01");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</TITLE>\n");
- printf("<h3>jerasure_01");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</h3>\n");
- printf("<pre>\n");
-
- jerasure_print_matrix(matrix, r, c, w);
- return 0;
-}
diff --git a/src/c/jerasure/Examples/jerasure_02.c b/src/c/jerasure/Examples/jerasure_02.c
deleted file mode 100644
index b17038f..0000000
--- a/src/c/jerasure/Examples/jerasure_02.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "jerasure.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: jerasure_02 r c w - Converts the matrix of jerasure_01 to a bit matrix.\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "This demonstrates jerasure_print_bitmatrix() and jerasure_matrix_to_bitmatrix().\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- int r, c, w, i, n;
- int *matrix;
- int *bitmatrix;
-
- if (argc != 4) usage(NULL);
- if (sscanf(argv[1], "%d", &r) == 0 || r <= 0) usage("Bad r");
- if (sscanf(argv[2], "%d", &c) == 0 || c <= 0) usage("Bad c");
- if (sscanf(argv[3], "%d", &w) == 0 || w <= 0) usage("Bad w");
-
- matrix = talloc(int, r*c);
-
- n = 1;
- for (i = 0; i < r*c; i++) {
- matrix[i] = n;
- n = galois_single_multiply(n, 2, w);
- }
-
- bitmatrix = jerasure_matrix_to_bitmatrix(c, r, w, matrix);
-
- printf("<HTML><TITLE>jerasure_02");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</TITLE>\n");
- printf("<h3>jerasure_02");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</h3>\n");
- printf("<pre>\n");
-
- jerasure_print_bitmatrix(bitmatrix, r*w, c*w, w);
- return 0;
-}
diff --git a/src/c/jerasure/Examples/jerasure_03.c b/src/c/jerasure/Examples/jerasure_03.c
deleted file mode 100644
index 709e565..0000000
--- a/src/c/jerasure/Examples/jerasure_03.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "jerasure.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: jerasure_03 k w - Creates a kxk Cauchy matrix in GF(2^w). \n\n");
- fprintf(stderr, " k must be < 2^w. Element i,j is 1/(i+(2^w-j-1)). (If that is\n");
- fprintf(stderr, " If that is 1/0, then it sets it to zero). \n");
- fprintf(stderr, " It then tests whether that matrix is invertible.\n");
- fprintf(stderr, " If it is invertible, then it prints out the inverse.\n");
- fprintf(stderr, " Finally, it prints the product of the matrix and its inverse.\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "This demonstrates: jerasure_print_matrix()\n");
- fprintf(stderr, " jerasure_invertible_matrix()\n");
- fprintf(stderr, " jerasure_invert_matrix()\n");
- fprintf(stderr, " jerasure_matrix_multiply().\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- unsigned int k, w, i, j, n;
- int *matrix;
- int *matrix_copy;
- int *inverse;
- int *identity;
-
- if (argc != 3) usage(NULL);
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &w) == 0 || w <= 0 || w > 31) usage("Bad w");
- if (k >= (1 << w)) usage("K too big");
-
- matrix = talloc(int, k*k);
- matrix_copy = talloc(int, k*k);
- inverse = talloc(int, k*k);
-
- for (i = 0; i < k; i++) {
- for (j = 0; j < k; j++) {
- n = i ^ ((1 << w)-1-j);
- matrix[i*k+j] = (n == 0) ? 0 : galois_single_divide(1, n, w);
- }
- }
-
- printf("<HTML><TITLE>jerasure_03");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</TITLE>\n");
- printf("<h3>jerasure_03");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</h3>\n");
- printf("<pre>\n");
-
- printf("The Cauchy Matrix:\n");
- jerasure_print_matrix(matrix, k, k, w);
- memcpy(matrix_copy, matrix, sizeof(int)*k*k);
- i = jerasure_invertible_matrix(matrix_copy, k, w);
- printf("\nInvertible: %s\n", (i == 1) ? "Yes" : "No");
- if (i == 1) {
- printf("\nInverse:\n");
- memcpy(matrix_copy, matrix, sizeof(int)*k*k);
- i = jerasure_invert_matrix(matrix_copy, inverse, k, w);
- jerasure_print_matrix(inverse, k, k, w);
- identity = jerasure_matrix_multiply(inverse, matrix, k, k, k, k, w);
- printf("\nInverse times matrix (should be identity):\n");
- jerasure_print_matrix(identity, k, k, w);
- }
- return 0;
-}
diff --git a/src/c/jerasure/Examples/jerasure_04.c b/src/c/jerasure/Examples/jerasure_04.c
deleted file mode 100644
index 7542133..0000000
--- a/src/c/jerasure/Examples/jerasure_04.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "jerasure.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: jerasure_04 k w - Performs the analogous bit-matrix operations to jerasure_03.\n\n");
- fprintf(stderr, " It converts the matrix to a kw*kw bit matrix and does the same operations.\n");
- fprintf(stderr, " k must be < 2^w.\n");
- fprintf(stderr, "This demonstrates: jerasure_print_bitmatrix()\n");
- fprintf(stderr, " jerasure_matrix_to_bitmatrix()\n");
- fprintf(stderr, " jerasure_invertible_bitmatrix()\n");
- fprintf(stderr, " jerasure_invert_bitmatrix()\n");
- fprintf(stderr, " jerasure_matrix_multiply().\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- unsigned int k, w, i, j, n;
- int *matrix;
- int *bitmatrix;
- int *bitmatrix_copy;
- int *inverse;
- int *identity;
-
- if (argc != 3) usage(NULL);
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &w) == 0 || w <= 0 || w > 31) usage("Bad w");
- if (k >= (1 << w)) usage("K too big");
-
- matrix = talloc(int, k*k);
- bitmatrix_copy = talloc(int, k*w*k*w);
- inverse = talloc(int, k*w*k*w);
-
- for (i = 0; i < k; i++) {
- for (j = 0; j < k; j++) {
- n = i ^ ((1 << w)-1-j);
- matrix[i*k+j] = (n == 0) ? 0 : galois_single_divide(1, n, w);
- }
- }
- bitmatrix = jerasure_matrix_to_bitmatrix(k, k, w, matrix);
-
- printf("<HTML><TITLE>jerasure_04");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</TITLE>\n");
- printf("<h3>jerasure_04");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</h3>\n");
- printf("<pre>\n");
-
- printf("The Cauchy Bit-Matrix:\n");
- jerasure_print_bitmatrix(bitmatrix, k*w, k*w, w);
- memcpy(bitmatrix_copy, bitmatrix, sizeof(int)*k*w*k*w);
- i = jerasure_invertible_bitmatrix(bitmatrix_copy, k*w);
- printf("\nInvertible: %s\n", (i == 1) ? "Yes" : "No");
- if (i == 1) {
- printf("\nInverse:\n");
- memcpy(bitmatrix_copy, bitmatrix, sizeof(int)*k*w*k*w);
- i = jerasure_invert_bitmatrix(bitmatrix_copy, inverse, k*w);
- jerasure_print_bitmatrix(inverse, k*w, k*w, w);
- identity = jerasure_matrix_multiply(inverse, bitmatrix, k*w, k*w, k*w, k*w, 2);
- printf("\nInverse times matrix (should be identity):\n");
- jerasure_print_bitmatrix(identity, k*w, k*w, w);
- }
- return 0;
-}
diff --git a/src/c/jerasure/Examples/jerasure_05.c b/src/c/jerasure/Examples/jerasure_05.c
deleted file mode 100644
index d427597..0000000
--- a/src/c/jerasure/Examples/jerasure_05.c
+++ /dev/null
@@ -1,217 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <gf_rand.h>
-#include "jerasure.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: jerasure_05 k m w size seed - Does a simple Reed-Solomon coding example in GF(2^w).\n");
- fprintf(stderr, " \n");
- fprintf(stderr, " k+m must be <= 2^w. w can be 8, 16 or 32.\n");
- fprintf(stderr, " It sets up a Cauchy generator matrix and encodes\n");
- fprintf(stderr, " k devices of size bytes with it. Then it decodes.\n");
- fprintf(stderr, " After that, it decodes device 0 by using jerasure_make_decoding_matrix()\n");
- fprintf(stderr, " and jerasure_matrix_dotprod().\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "This demonstrates: jerasure_matrix_encode()\n");
- fprintf(stderr, " jerasure_matrix_decode()\n");
- fprintf(stderr, " jerasure_print_matrix()\n");
- fprintf(stderr, " jerasure_make_decoding_matrix()\n");
- fprintf(stderr, " jerasure_matrix_dotprod()\n");
- if (s != NULL) fprintf(stderr, "\n%s\n\n", s);
- exit(1);
-}
-
-static void print_data_and_coding(int k, int m, int w, int size,
- char **data, char **coding)
-{
- int i, j, x;
- int n, sp;
-
- if(k > m) n = k;
- else n = m;
- sp = size * 2 + size/(w/8) + 8;
-
- printf("%-*sCoding\n", sp, "Data");
- for(i = 0; i < n; i++) {
- if(i < k) {
- printf("D%-2d:", i);
- for(j=0;j< size; j+=(w/8)) {
- printf(" ");
- for(x=0;x < w/8;x++){
- printf("%02x", (unsigned char)data[i][j+x]);
- }
- }
- printf(" ");
- }
- else printf("%*s", sp, "");
- if(i < m) {
- printf("C%-2d:", i);
- for(j=0;j< size; j+=(w/8)) {
- printf(" ");
- for(x=0;x < w/8;x++){
- printf("%02x", (unsigned char)coding[i][j+x]);
- }
- }
- }
- printf("\n");
- }
- printf("\n");
-}
-
-int main(int argc, char **argv)
-{
- int k, m, w, size;
- int i, j;
- int *matrix;
- char **data, **coding;
- int *erasures, *erased;
- int *decoding_matrix, *dm_ids;
- uint32_t seed;
-
- if (argc != 6) usage(NULL);
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &m) == 0 || m <= 0) usage("Bad m");
- if (sscanf(argv[3], "%d", &w) == 0 || (w != 8 && w != 16 && w != 32)) usage("Bad w");
- if (w < 32 && k + m > (1 << w)) usage("k + m must be <= 2 ^ w");
- if (sscanf(argv[4], "%d", &size) == 0 || size % sizeof(long) != 0)
- usage("size must be multiple of sizeof(long)");
- if (sscanf(argv[5], "%d", &seed) == 0) usage("Bad seed");
-
- matrix = talloc(int, m*k);
- for (i = 0; i < m; i++) {
- for (j = 0; j < k; j++) {
- matrix[i*k+j] = galois_single_divide(1, i ^ (m + j), w);
- }
- }
-
- printf("<HTML><TITLE>jerasure_05");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</TITLE>\n");
- printf("<h3>jerasure_05");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</h3>\n");
- printf("<pre>\n");
-
- printf("The Coding Matrix (the last m rows of the Generator Matrix G^T):\n\n");
- jerasure_print_matrix(matrix, m, k, w);
- printf("\n");
-
- MOA_Seed(seed);
- data = talloc(char *, k);
- for (i = 0; i < k; i++) {
- data[i] = talloc(char, size);
- MOA_Fill_Random_Region(data[i], size);
- }
-
- coding = talloc(char *, m);
- for (i = 0; i < m; i++) {
- coding[i] = talloc(char, size);
- }
-
- jerasure_matrix_encode(k, m, w, matrix, data, coding, size);
-
- printf("Encoding Complete:\n\n");
- print_data_and_coding(k, m, w, size, data, coding);
-
- erasures = talloc(int, (m+1));
- erased = talloc(int, (k+m));
- for (i = 0; i < m+k; i++) erased[i] = 0;
- for (i = 0; i < m; ) {
- erasures[i] = (MOA_Random_W(w, 1))%(k+m);
- if (erased[erasures[i]] == 0) {
- erased[erasures[i]] = 1;
-
- bzero((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], size);
- i++;
- }
- }
- erasures[i] = -1;
-
- printf("Erased %d random devices:\n\n", m);
- print_data_and_coding(k, m, w, size, data, coding);
-
- i = jerasure_matrix_decode(k, m, w, matrix, 0, erasures, data, coding, size);
-
- printf("State of the system after decoding:\n\n");
- print_data_and_coding(k, m, w, size, data, coding);
-
- decoding_matrix = talloc(int, k*k);
- dm_ids = talloc(int, k);
-
- for (i = 0; i < m; i++) erased[i] = 1;
- for (; i < k+m; i++) erased[i] = 0;
-
- jerasure_make_decoding_matrix(k, m, w, matrix, erased, decoding_matrix, dm_ids);
-
- printf("Suppose we erase the first %d devices. Here is the decoding matrix:\n\n", m);
- jerasure_print_matrix(decoding_matrix, k, k, w);
- printf("\n");
- printf("And dm_ids:\n\n");
- jerasure_print_matrix(dm_ids, 1, k, w);
-
- bzero(data[0], size);
- jerasure_matrix_dotprod(k, w, decoding_matrix, dm_ids, 0, data, coding, size);
-
- printf("\nAfter calling jerasure_matrix_dotprod, we calculate the value of device #0 to be:\n\n");
- printf("D0 :");
- for(i=0;i< size; i+=(w/8)) {
- printf(" ");
- for(j=0;j < w/8;j++){
- printf("%02x", (unsigned char)data[0][i+j]);
- }
- }
- printf("\n\n");
-
- return 0;
-}
diff --git a/src/c/jerasure/Examples/jerasure_06.c b/src/c/jerasure/Examples/jerasure_06.c
deleted file mode 100644
index dfe1be3..0000000
--- a/src/c/jerasure/Examples/jerasure_06.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <gf_rand.h>
-#include "jerasure.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: jerasure_06 k m w packetsize seed\n");
- fprintf(stderr, "Does a simple Cauchy Reed-Solomon coding example in GF(2^w).\n");
- fprintf(stderr, " \n");
- fprintf(stderr, " k+m must be < 2^w. Packetsize must be a multiple of sizeof(long)\n");
- fprintf(stderr, " It sets up a Cauchy generator matrix and encodes k devices of w*packetsize bytes.\n");
- fprintf(stderr, " After that, it decodes device 0 by using jerasure_make_decoding_bitmatrix()\n");
- fprintf(stderr, " and jerasure_bitmatrix_dotprod().\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "This demonstrates: jerasure_bitmatrix_encode()\n");
- fprintf(stderr, " jerasure_bitmatrix_decode()\n");
- fprintf(stderr, " jerasure_print_bitmatrix()\n");
- fprintf(stderr, " jerasure_make_decoding_bitmatrix()\n");
- fprintf(stderr, " jerasure_bitmatrix_dotprod()\n");
- if (s != NULL) fprintf(stderr, "\n%s\n\n", s);
- exit(1);
-}
-
-static void print_array(char **ptrs, int ndevices, int size, int packetsize, char *label)
-{
- int i, j, x;
- unsigned char *up;
-
- printf("<center><table border=3 cellpadding=3><tr><td></td>\n");
-
- for (i = 0; i < ndevices; i++) printf("<td align=center>%s%x</td>\n", label, i);
- printf("</tr>\n");
- printf("<td align=right><pre>");
- for (j = 0; j < size/packetsize; j++) printf("Packet %d\n", j);
- printf("</pre></td>\n");
- for (i = 0; i < ndevices; i++) {
- printf("<td><pre>");
- up = (unsigned char *) ptrs[i];
- for (j = 0; j < size/packetsize; j++) {
- for (x = 0; x < packetsize; x++) {
- if (x > 0 && x%4 == 0) printf(" ");
- printf("%02x", up[j*packetsize+x]);
- }
- printf("\n");
- }
- printf("</td>\n");
- }
- printf("</tr></table></center>\n");
-}
-
-int main(int argc, char **argv)
-{
- int k, w, i, j, m, psize, x;
- int *matrix, *bitmatrix;
- char **data, **coding;
- int *erasures, *erased;
- int *decoding_matrix, *dm_ids;
- uint32_t seed;
-
- if (argc != 6) usage(NULL);
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &m) == 0 || m <= 0) usage("Bad m");
- if (sscanf(argv[3], "%d", &w) == 0 || w <= 0 || w > 32) usage("Bad w");
- if (w < 30 && (k+m) > (1 << w)) usage("k + m is too big");
- if (sscanf(argv[4], "%d", &psize) == 0 || psize <= 0) usage("Bad packetsize");
- if(psize%sizeof(long) != 0) usage("Packetsize must be multiple of sizeof(long)");
- if (sscanf(argv[5], "%d", &seed) == 0) usage("Bad seed");
-
- MOA_Seed(seed);
- matrix = talloc(int, m*k);
- for (i = 0; i < m; i++) {
- for (j = 0; j < k; j++) {
- matrix[i*k+j] = galois_single_divide(1, i ^ (m + j), w);
- }
- }
- bitmatrix = jerasure_matrix_to_bitmatrix(k, m, w, matrix);
-
- printf("<HTML><TITLE>jerasure_06");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</TITLE>\n");
- printf("<h3>jerasure_06");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</h3>\n");
-
- printf("<hr>\n");
- printf("Last (m * w) rows of the Generator Matrix: (G^T):\n<pre>\n");
- jerasure_print_bitmatrix(bitmatrix, w*m, w*k, w);
- printf("</pre><hr>\n");
-
- data = talloc(char *, k);
- for (i = 0; i < k; i++) {
- data[i] = talloc(char, psize*w);
- MOA_Fill_Random_Region(data[i], psize*w);
- }
-
- coding = talloc(char *, m);
- for (i = 0; i < m; i++) {
- coding[i] = talloc(char, psize*w);
- }
-
- jerasure_bitmatrix_encode(k, m, w, bitmatrix, data, coding, w*psize, psize);
-
- printf("Encoding Complete - Here is the state of the system\n\n");
- printf("<p>\n");
- print_array(data, k, psize*w, psize, "D");
- printf("<p>\n");
- print_array(coding, m, psize*w, psize, "C");
- printf("<hr>\n");
-
- erasures = talloc(int, (m+1));
- erased = talloc(int, (k+m));
- for (i = 0; i < m+k; i++) erased[i] = 0;
- for (i = 0; i < m; ) {
- erasures[i] = MOA_Random_W(w, 1)%(k+m);
- if (erased[erasures[i]] == 0) {
- erased[erasures[i]] = 1;
- bzero((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], psize*w);
- i++;
- }
- }
- erasures[i] = -1;
-
- printf("Erased %d random devices:", m);
- for (i = 0; erasures[i] != -1; i++) {
- printf(" %c%x", ((erasures[i] < k) ? 'D' : 'C'), (erasures[i] < k ? erasures[i] : erasures[i]-k));
- }
- printf(". Here is the state of the system:\n");
-
- printf("<p>\n");
- print_array(data, k, psize*w, psize, "D");
- printf("<p>\n");
- print_array(coding, m, psize*w, psize, "C");
- printf("<hr>\n");
-
- i = jerasure_bitmatrix_decode(k, m, w, bitmatrix, 0, erasures, data, coding,
- w*psize, psize);
-
- printf("Here is the state of the system after decoding:\n\n");
- printf("<p>\n");
- print_array(data, k, psize*w, psize, "D");
- printf("<p>\n");
- print_array(coding, m, psize*w, psize, "C");
- printf("<hr>\n");
-
- decoding_matrix = talloc(int, k*k*w*w);
- dm_ids = talloc(int, k);
-
- x = (m < k) ? m : k;
-
- for (i = 0; i < x; i++) erased[i] = 1;
- for (; i < k+m; i++) erased[i] = 0;
-
- jerasure_make_decoding_bitmatrix(k, m, w, bitmatrix, erased, decoding_matrix, dm_ids);
-
- printf("Suppose we erase the first %d devices. Here is the decoding matrix:\n<pre>\n", x);
- jerasure_print_bitmatrix(decoding_matrix, k*w, k*w, w);
- printf("</pre>\n");
- printf("And dm_ids:\n<pre>\n");
- jerasure_print_matrix(dm_ids, 1, k, w);
- printf("</pre><hr>\n");
-
- for (i = 0; i < x; i++) bzero(data[i], w*psize);
-
- printf("Here is the state of the system after the erasures:\n\n");
- printf("<p>\n");
- print_array(data, k, psize*w, psize, "D");
- printf("<p>\n");
- print_array(coding, m, psize*w, psize, "C");
- printf("<hr>\n");
-
- for (i = 0; i < x; i++) {
- jerasure_bitmatrix_dotprod(k, w, decoding_matrix+i*(k*w*w), dm_ids, i, data, coding, w*psize, psize);
- }
-
- printf("Here is the state of the system after calling <b>jerasure_bitmatrix_dotprod()</b> %d time%s with the decoding matrix:\n\n", x, (x == 1) ? "" : "s");
- printf("<p>\n");
- print_array(data, k, psize*w, psize, "D");
- printf("<p>\n");
- print_array(coding, m, psize*w, psize, "C");
- printf("<hr>\n");
- return 0;
-}
diff --git a/src/c/jerasure/Examples/jerasure_07.c b/src/c/jerasure/Examples/jerasure_07.c
deleted file mode 100644
index d50327c..0000000
--- a/src/c/jerasure/Examples/jerasure_07.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdint.h>
-#include <gf_rand.h>
-#include "jerasure.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: jerasure_07 k m w seed - Scheduled Cauchy Reed-Solomon coding example in GF(2^w).\n");
- fprintf(stderr, " \n");
- fprintf(stderr, " k+m must be <= 2^w. It sets up a Cauchy generator matrix and encodes\n");
- fprintf(stderr, " k sets of w*%ld bytes. It uses bit-matrix scheduling, both smart and dumb.\n", sizeof(long));
- fprintf(stderr, " It decodes using bit-matrix scheduling, then shows an example of\n");
- fprintf(stderr, " using jerasure_do_scheduled_operations().\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "This demonstrates: jerasure_dumb_bitmatrix_to_schedule()\n");
- fprintf(stderr, " jerasure_smart_bitmatrix_to_schedule()\n");
- fprintf(stderr, " jerasure_schedule_encode()\n");
- fprintf(stderr, " jerasure_schedule_decode_lazy()\n");
- fprintf(stderr, " jerasure_do_scheduled_operations()\n");
- fprintf(stderr, " jerasure_get_stats()\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-static void print_array(char **ptrs, int ndevices, int size, int packetsize, char *label)
-{
- int i, j, x;
- unsigned char *up;
-
- printf("<center><table border=3 cellpadding=3><tr><td></td>\n");
-
- for (i = 0; i < ndevices; i++) printf("<td align=center>%s%x</td>\n", label, i);
- printf("</tr>\n");
- printf("<td align=right><pre>");
- for (j = 0; j < size/packetsize; j++) printf("Packet %d\n", j);
- printf("</pre></td>\n");
- for (i = 0; i < ndevices; i++) {
- printf("<td><pre>");
- up = (unsigned char *) ptrs[i];
- for (j = 0; j < size/packetsize; j++) {
- for (x = 0; x < packetsize; x++) {
- if (x > 0 && x%4 == 0) printf(" ");
- printf("%02x", up[j*packetsize+x]);
- }
- printf("\n");
- }
- printf("</td>\n");
- }
- printf("</tr></table></center>\n");
-}
-
-int main(int argc, char **argv)
-{
- int k, w, i, j, m;
- int *matrix, *bitmatrix;
- char **data, **coding, **ptrs;
- int **smart, **dumb;
- int *erasures, *erased;
- double stats[3];
- uint32_t seed;
-
- if (argc != 5) usage("Wrong number of arguments");
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &m) == 0 || m <= 0) usage("Bad m");
- if (sscanf(argv[3], "%d", &w) == 0 || w <= 0 || w > 32) usage("Bad w");
- if (sscanf(argv[4], "%d", &seed) == 0) usage("Bad seed");
- if (w < 30 && (k+m) > (1 << w)) usage("k + m is too big");
-
- matrix = talloc(int, m*k);
- for (i = 0; i < m; i++) {
- for (j = 0; j < k; j++) {
- matrix[i*k+j] = galois_single_divide(1, i ^ (m + j), w);
- }
- }
- bitmatrix = jerasure_matrix_to_bitmatrix(k, m, w, matrix);
-
- printf("<HTML><TITLE>jerasure_07");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</TITLE>\n");
- printf("<h3>jerasure_07");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</h3>\n");
- printf("<hr>\n");
-
- printf("Last m*w rows of the generator matrix (G^T):\n<pre>\n");
- jerasure_print_bitmatrix(bitmatrix, w*m, w*k, w);
- printf("</pre><hr>\n");
-
- dumb = jerasure_dumb_bitmatrix_to_schedule(k, m, w, bitmatrix);
- smart = jerasure_smart_bitmatrix_to_schedule(k, m, w, bitmatrix);
-
- MOA_Seed(seed);
- data = talloc(char *, k);
- for (i = 0; i < k; i++) {
- data[i] = talloc(char, sizeof(long)*w);
- MOA_Fill_Random_Region(data[i], sizeof(long)*w);
- }
-
- coding = talloc(char *, m);
- for (i = 0; i < m; i++) {
- coding[i] = talloc(char, sizeof(long)*w);
- }
-
- jerasure_schedule_encode(k, m, w, dumb, data, coding, w*sizeof(long), sizeof(long));
- jerasure_get_stats(stats);
- printf("Dumb Encoding Complete: - %.0lf XOR'd bytes. State of the system:\n\n", stats[0]);
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- jerasure_schedule_encode(k, m, w, smart, data, coding, w*sizeof(long), sizeof(long));
- jerasure_get_stats(stats);
- printf("Smart Encoding Complete: - %.0lf XOR'd bytes\n\n", stats[0]);
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- erasures = talloc(int, (m+1));
- erased = talloc(int, (k+m));
- for (i = 0; i < m+k; i++) erased[i] = 0;
- for (i = 0; i < m; ) {
- erasures[i] = MOA_Random_W(w, 1)%(k+m);
- if (erased[erasures[i]] == 0) {
- erased[erasures[i]] = 1;
- bzero((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], sizeof(long)*w);
- i++;
- }
- }
- erasures[i] = -1;
-
- printf("Erased %d random devices:\n\n", m);
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- jerasure_schedule_decode_lazy(k, m, w, bitmatrix, erasures, data, coding, w*sizeof(long), sizeof(long), 1);
- jerasure_get_stats(stats);
-
- printf("State of the system after decoding: %.0lf XOR'd bytes\n\n", stats[0]);
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- ptrs = talloc(char *, (k+m));
- for (i = 0; i < k; i++) ptrs[i] = data[i];
- for (i = 0; i < m; i++) ptrs[k+i] = coding[i];
-
- for (j = 0; j < m; j++) bzero(coding[j], sizeof(long)*w);
- printf("State of the system after erasing the coding devices:\n");
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- jerasure_do_scheduled_operations(ptrs, smart, sizeof(long));
- printf("And using <b>jerasure_do_scheduled_operations()</b>: %.0lf XOR'd bytes\n\n", stats[0]);
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- return 0;
-}
diff --git a/src/c/jerasure/Examples/jerasure_08.c b/src/c/jerasure/Examples/jerasure_08.c
deleted file mode 100644
index 1b6ff67..0000000
--- a/src/c/jerasure/Examples/jerasure_08.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <gf_rand.h>
-#include "jerasure.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: jerasure_08 k w seed - Example schedule cache usage with RAID-6\n");
- fprintf(stderr, " \n");
- fprintf(stderr, " m=2. k+m must be <= 2^w. It sets up a RAID-6 generator matrix and encodes\n");
- fprintf(stderr, " k sets of w*%ld bytes. It creates a schedule cache for decoding.\n", sizeof(long));
- fprintf(stderr, " It demonstrates using the schedule cache for both encoding and decoding.\n");
- fprintf(stderr, " Then it demonstrates using jerasure_do_parity() to re-encode the first.\n");
- fprintf(stderr, " coding device\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "This demonstrates: jerasure_generate_schedule_cache()\n");
- fprintf(stderr, " jerasure_smart_bitmatrix_to_schedule()\n");
- fprintf(stderr, " jerasure_schedule_encode()\n");
- fprintf(stderr, " jerasure_schedule_decode_cache()\n");
- fprintf(stderr, " jerasure_free_schedule()\n");
- fprintf(stderr, " jerasure_free_schedule_cache()\n");
- fprintf(stderr, " jerasure_get_stats()\n");
- fprintf(stderr, " jerasure_do_parity()\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-static void print_array(char **ptrs, int ndevices, int size, int packetsize, char *label)
-{
- int i, j, x;
- unsigned char *up;
-
- printf("<center><table border=3 cellpadding=3><tr><td></td>\n");
-
- for (i = 0; i < ndevices; i++) printf("<td align=center>%s%x</td>\n", label, i);
- printf("</tr>\n");
- printf("<td align=right><pre>");
- for (j = 0; j < size/packetsize; j++) printf("Packet %d\n", j);
- printf("</pre></td>\n");
- for (i = 0; i < ndevices; i++) {
- printf("<td><pre>");
- up = (unsigned char *) ptrs[i];
- for (j = 0; j < size/packetsize; j++) {
- for (x = 0; x < packetsize; x++) {
- if (x > 0 && x%4 == 0) printf(" ");
- printf("%02x", up[j*packetsize+x]);
- }
- printf("\n");
- }
- printf("</td>\n");
- }
- printf("</tr></table></center>\n");
-}
-
-int main(int argc, char **argv)
-{
- int k, w, i, j, m;
- int *matrix, *bitmatrix;
- char **data, **coding;
- int **smart, ***cache;
- int *erasures, *erased;
- double stats[3];
- uint32_t seed;
-
- if (argc != 4) usage("Wrong number of arguments");
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &w) == 0 || w <= 0 || w > 32) usage("Bad m");
- if (sscanf(argv[3], "%d", &seed) == 0) usage("Bad seed");
- m = 2;
- if (w < 30 && (k+m) > (1 << w)) usage("k + m is too big");
-
- MOA_Seed(seed);
-
- matrix = talloc(int, m*k);
- for (j = 0; j < k; j++) matrix[j] = 1;
- i = 1;
- for (j = 0; j < k; j++) {
- matrix[k+j] = i;
- i = galois_single_multiply(i, 2, w);
- }
- bitmatrix = jerasure_matrix_to_bitmatrix(k, m, w, matrix);
-
- smart = jerasure_smart_bitmatrix_to_schedule(k, m, w, bitmatrix);
- cache = jerasure_generate_schedule_cache(k, m, w, bitmatrix, 1);
-
- data = talloc(char *, k);
- for (i = 0; i < k; i++) {
- data[i] = talloc(char, sizeof(long)*w);
- MOA_Fill_Random_Region(data[i], sizeof(long)*w);
- }
-
- coding = talloc(char *, m);
- for (i = 0; i < m; i++) {
- coding[i] = talloc(char, sizeof(long)*w);
- }
-
- jerasure_schedule_encode(k, m, w, smart, data, coding, w*sizeof(long), sizeof(long));
- jerasure_get_stats(stats);
-
- printf("<HTML><TITLE>jerasure_08");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</TITLE>\n");
- printf("<h3>jerasure_08");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</h3>\n");
- printf("<hr>\n");
-
- printf("Encoding Complete: - %.0lf XOR'd bytes. Here is the state of the system:\n<p>\n", stats[0]);
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- erasures = talloc(int, (m+1));
- erasures[0] = k;
- erasures[1] = k+1;
- erasures[2] = -1;
- for (j = 0; j < m; j++) bzero(coding[j], sizeof(long)*w);
-
- jerasure_schedule_decode_cache(k, m, w, cache, erasures, data, coding, w*sizeof(long), sizeof(long));
- jerasure_get_stats(stats);
- printf("Encoding Using the Schedule Cache: - %.0lf XOR'd bytes\n\n", stats[0]);
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- erased = talloc(int, (k+m));
- for (i = 0; i < m+k; i++) erased[i] = 0;
- for (i = 0; i < m; ) {
- erasures[i] = MOA_Random_W(w, 1)%(k+m);
- if (erased[erasures[i]] == 0) {
- erased[erasures[i]] = 1;
- bzero((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], sizeof(long)*w);
- i++;
- }
- }
- erasures[i] = -1;
-
- printf("Erased %d random devices:\n\n", m);
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- jerasure_schedule_decode_cache(k, m, w, cache, erasures, data, coding, w*sizeof(long), sizeof(long));
- jerasure_get_stats(stats);
-
- printf("State of the system after decoding: %.0lf XOR'd bytes\n\n", stats[0]);
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- bzero(coding[0], sizeof(long)*w);
- printf("Erased the first coding device:\n\n");
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- jerasure_do_parity(k, data, coding[0], sizeof(long)*w);
- printf("State of the system after using\n");
- printf("<b>jerasure_do_parity()</b> to re-encode it:\n\n");
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- jerasure_free_schedule(smart);
- jerasure_free_schedule_cache(k, m, cache);
-
- printf("Smart schedule and cache freed.\n\n");
-
- return 0;
-}
diff --git a/src/c/jerasure/Examples/liberation_01.c b/src/c/jerasure/Examples/liberation_01.c
deleted file mode 100644
index 86a03fe..0000000
--- a/src/c/jerasure/Examples/liberation_01.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdlib.h>
-#include <gf_rand.h>
-#include "jerasure.h"
-#include "liberation.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: liberation_01 k w seed - Liberation RAID-6 coding/decoding example in GF(2^w).\n");
- fprintf(stderr, " \n");
- fprintf(stderr, " w must be prime and k <= w. It sets up a Liberation bit-matrix\n");
- fprintf(stderr, " then it encodes k devices of w*%ld bytes using dumb bit-matrix scheduling.\n", sizeof(long));
- fprintf(stderr, " It decodes using smart bit-matrix scheduling.\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "This demonstrates: liberation_coding_bitmatrix()\n");
- fprintf(stderr, " jerasure_smart_bitmatrix_to_schedule()\n");
- fprintf(stderr, " jerasure_dumb_bitmatrix_to_schedule()\n");
- fprintf(stderr, " jerasure_schedule_encode()\n");
- fprintf(stderr, " jerasure_schedule_decode_lazy()\n");
- fprintf(stderr, " jerasure_print_bitmatrix()\n");
- fprintf(stderr, " jerasure_get_stats()\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-static void print_array(char **ptrs, int ndevices, int size, int packetsize, char *label)
-{
- int i, j, x;
- unsigned char *up;
-
- printf("<center><table border=3 cellpadding=3><tr><td></td>\n");
-
- for (i = 0; i < ndevices; i++) printf("<td align=center>%s%x</td>\n", label, i);
- printf("</tr>\n");
- printf("<td align=right><pre>");
- for (j = 0; j < size/packetsize; j++) printf("Packet %d\n", j);
- printf("</pre></td>\n");
- for (i = 0; i < ndevices; i++) {
- printf("<td><pre>");
- up = (unsigned char *) ptrs[i];
- for (j = 0; j < size/packetsize; j++) {
- for (x = 0; x < packetsize; x++) {
- if (x > 0 && x%4 == 0) printf(" ");
- printf("%02x", up[j*packetsize+x]);
- }
- printf("\n");
- }
- printf("</td>\n");
- }
- printf("</tr></table></center>\n");
-}
-
-int main(int argc, char **argv)
-{
- int k, w, i, m;
- int *bitmatrix;
- char **data, **coding;
- int **dumb;
- int *erasures, *erased;
- double stats[3];
- uint32_t seed;
-
- if (argc != 4) usage("Wrong number of arguments");
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &w) == 0 || w <= 0 || w > 32) usage("Bad w");
- if (sscanf(argv[3], "%u", &seed) == 0) usage("Bad seed");
- m = 2;
- if (w < k) usage("k is too big");
- for (i = 2; i*i <= w; i++) if (w%i == 0) usage("w isn't prime");
-
- bitmatrix = liberation_coding_bitmatrix(k, w);
- if (bitmatrix == NULL) {
- usage("couldn't make coding matrix");
- }
-
- printf("<HTML><TITLE>liberation_01");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</TITLE>\n");
- printf("<h3>liberation_01");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</h3>\n");
- printf("<hr>\n");
-
- printf("Coding Bit-Matrix:\n<pre>\n");
- jerasure_print_bitmatrix(bitmatrix, w*m, w*k, w);
- printf("</pre><hr>\n");
-
- dumb = jerasure_dumb_bitmatrix_to_schedule(k, m, w, bitmatrix);
-
- MOA_Seed(seed);
- data = talloc(char *, k);
- for (i = 0; i < k; i++) {
- data[i] = talloc(char, sizeof(long)*w);
- MOA_Fill_Random_Region(data[i], sizeof(long)*w);
- }
-
- coding = talloc(char *, m);
- for (i = 0; i < m; i++) {
- coding[i] = talloc(char, sizeof(long)*w);
- }
-
- jerasure_schedule_encode(k, m, w, dumb, data, coding, w*sizeof(long), sizeof(long));
- jerasure_get_stats(stats);
- printf("Smart Encoding Complete: - %.0lf XOR'd bytes. State of the system:\n\n", stats[0]);
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- erasures = talloc(int, (m+1));
- erased = talloc(int, (k+m));
- for (i = 0; i < m+k; i++) erased[i] = 0;
- for (i = 0; i < m; ) {
- erasures[i] = MOA_Random_W(30,1)%(k+m);
- if (erased[erasures[i]] == 0) {
- erased[erasures[i]] = 1;
- bzero((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], sizeof(long)*w);
- i++;
- }
- }
- erasures[i] = -1;
-
- printf("Erased %d random devices:\n\n", m);
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- jerasure_schedule_decode_lazy(k, m, w, bitmatrix, erasures, data, coding, w*sizeof(long), sizeof(long), 1);
- jerasure_get_stats(stats);
-
- printf("State of the system after decoding: %.0lf XOR'd bytes\n\n", stats[0]);
- printf("<p>\n");
- print_array(data, k, sizeof(long)*w, sizeof(long), "D");
- printf("<p>\n");
- print_array(coding, m, sizeof(long)*w, sizeof(long), "C");
- printf("<hr>\n");
-
- return 0;
-}
diff --git a/src/c/jerasure/Examples/reed_sol_01.c b/src/c/jerasure/Examples/reed_sol_01.c
deleted file mode 100644
index d50dda0..0000000
--- a/src/c/jerasure/Examples/reed_sol_01.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <gf_rand.h>
-#include "jerasure.h"
-#include "reed_sol.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: reed_sol_01 k m w seed - Does a simple Reed-Solomon coding example in GF(2^w).\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "w must be 8, 16 or 32. k+m must be <= 2^w. It sets up a classic\n");
- fprintf(stderr, "Vandermonde-based generator matrix and encodes k devices of\n");
- fprintf(stderr, "%ld bytes each with it. Then it decodes.\n", sizeof(long));
- fprintf(stderr, " \n");
- fprintf(stderr, "This demonstrates: jerasure_matrix_encode()\n");
- fprintf(stderr, " jerasure_matrix_decode()\n");
- fprintf(stderr, " jerasure_print_matrix()\n");
- fprintf(stderr, " reed_sol_vandermonde_coding_matrix()\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-static void print_data_and_coding(int k, int m, int w, int size,
- char **data, char **coding)
-{
- int i, j, x;
- int n, sp;
-
- if(k > m) n = k;
- else n = m;
- sp = size * 2 + size/(w/8) + 8;
-
- printf("%-*sCoding\n", sp, "Data");
- for(i = 0; i < n; i++) {
- if(i < k) {
- printf("D%-2d:", i);
- for(j=0;j< size; j+=(w/8)) {
- printf(" ");
- for(x=0;x < w/8;x++){
- printf("%02x", (unsigned char)data[i][j+x]);
- }
- }
- printf(" ");
- }
- else printf("%*s", sp, "");
- if(i < m) {
- printf("C%-2d:", i);
- for(j=0;j< size; j+=(w/8)) {
- printf(" ");
- for(x=0;x < w/8;x++){
- printf("%02x", (unsigned char)coding[i][j+x]);
- }
- }
- }
- printf("\n");
- }
- printf("\n");
-}
-
-int main(int argc, char **argv)
-{
- long l;
- int k, w, i, j, m;
- int *matrix;
- char **data, **coding, **dcopy, **ccopy;
- unsigned char uc;
- int *erasures, *erased;
- uint32_t seed;
-
- if (argc != 5) usage(NULL);
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &m) == 0 || m <= 0) usage("Bad m");
- if (sscanf(argv[3], "%d", &w) == 0 || (w != 8 && w != 16 && w != 32)) usage("Bad w");
- if (sscanf(argv[4], "%u", &seed) == 0) usage("Bad seed");
- if (w <= 16 && k + m > (1 << w)) usage("k + m is too big");
-
- matrix = reed_sol_vandermonde_coding_matrix(k, m, w);
-
- printf("<HTML><TITLE>reed_sol_01 %d %d %d %d</title>\n", k, m, w, seed);
- printf("<h3>reed_sol_01 %d %d %d %d</h3>\n", k, m, w, seed);
- printf("<pre>\n");
- printf("Last m rows of the generator Matrix (G^T):\n\n");
- jerasure_print_matrix(matrix, m, k, w);
- printf("\n");
-
- MOA_Seed(seed);
- data = talloc(char *, k);
- dcopy = talloc(char *, k);
- for (i = 0; i < k; i++) {
- data[i] = talloc(char, sizeof(long));
- dcopy[i] = talloc(char, sizeof(long));
- for (j = 0; j < sizeof(long); j++) {
- uc = MOA_Random_W(8, 1);
- data[i][j] = (char) uc;
- }
- memcpy(dcopy[i], data[i], sizeof(long));
- }
-
- coding = talloc(char *, m);
- ccopy = talloc(char *, m);
- for (i = 0; i < m; i++) {
- coding[i] = talloc(char, sizeof(long));
- ccopy[i] = talloc(char, sizeof(long));
- }
-
- jerasure_matrix_encode(k, m, w, matrix, data, coding, sizeof(long));
-
- for (i = 0; i < m; i++) {
- memcpy(ccopy[i], coding[i], sizeof(long));
- }
-
- printf("Encoding Complete:\n\n");
- print_data_and_coding(k, m, w, sizeof(long), data, coding);
-
- erasures = talloc(int, (m+1));
- erased = talloc(int, (k+m));
- for (i = 0; i < m+k; i++) erased[i] = 0;
- l = 0;
- for (i = 0; i < m; ) {
- erasures[i] = MOA_Random_W(31, 0)%(k+m);
- if (erased[erasures[i]] == 0) {
- erased[erasures[i]] = 1;
- memcpy((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], &l, sizeof(long));
- i++;
- }
- }
- erasures[i] = -1;
-
- printf("Erased %d random devices:\n\n", m);
- print_data_and_coding(k, m, w, sizeof(long), data, coding);
-
- i = jerasure_matrix_decode(k, m, w, matrix, 1, erasures, data, coding, sizeof(long));
-
- printf("State of the system after decoding:\n\n");
- print_data_and_coding(k, m, w, sizeof(long), data, coding);
-
- for (i = 0; i < k; i++) if (memcmp(data[i], dcopy[i], sizeof(long)) != 0) {
- printf("ERROR: D%x after decoding does not match its state before decoding!<br>\n", i);
- }
- for (i = 0; i < m; i++) if (memcmp(coding[i], ccopy[i], sizeof(long)) != 0) {
- printf("ERROR: C%x after decoding does not match its state before decoding!<br>\n", i);
- }
-
- return 0;
-}
diff --git a/src/c/jerasure/Examples/reed_sol_02.c b/src/c/jerasure/Examples/reed_sol_02.c
deleted file mode 100644
index aca446b..0000000
--- a/src/c/jerasure/Examples/reed_sol_02.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "jerasure.h"
-#include "reed_sol.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: reed_sol_02 k m w - Vandermonde matrices in GF(2^w).\n");
- fprintf(stderr, " \n");
- fprintf(stderr, " k+m must be <= 2^w. This simply prints out the \n");
- fprintf(stderr, " Vandermonde matrix in GF(2^w), and then the generator\n");
- fprintf(stderr, " matrix that is constructed from it. See [Plank-Ding-05] for\n");
- fprintf(stderr, " information on how this construction proceeds\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "This demonstrates: reed_sol_extended_vandermonde_matrix()\n");
- fprintf(stderr, " reed_sol_big_vandermonde_coding_matrix()\n");
- fprintf(stderr, " reed_sol_vandermonde_coding_matrix()\n");
- fprintf(stderr, " jerasure_print_matrix()\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- int k, w, m;
- int *matrix;
-
- if (argc != 4) usage(NULL);
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &m) == 0 || m <= 0) usage("Bad m");
- if (sscanf(argv[3], "%d", &w) == 0 || w <= 0 || w > 32) usage("Bad w");
- if (w <= 30 && k + m > (1 << w)) usage("k + m is too big");
-
- matrix = reed_sol_extended_vandermonde_matrix(k+m, k, w);
-
- printf("<HTML><TITLE>reed_sol_02 %d %d %d</title>\n", k, m, w);
- printf("<h3>reed_sol_02 %d %d %d</h3>\n", k, m, w);
- printf("<pre>\n");
- printf("Extended Vandermonde Matrix:\n\n");
- jerasure_print_matrix(matrix, k+m, k, w);
- printf("\n");
-
- matrix = reed_sol_big_vandermonde_distribution_matrix(k+m, k, w);
- printf("Vandermonde Generator Matrix (G^T):\n\n");
- jerasure_print_matrix(matrix, k+m, k, w);
- printf("\n");
-
- matrix = reed_sol_vandermonde_coding_matrix(k, m, w);
- printf("Vandermonde Coding Matrix:\n\n");
- jerasure_print_matrix(matrix, m, k, w);
- printf("\n");
-
-
- return 0;
-}
diff --git a/src/c/jerasure/Examples/reed_sol_03.c b/src/c/jerasure/Examples/reed_sol_03.c
deleted file mode 100644
index 9e47ce3..0000000
--- a/src/c/jerasure/Examples/reed_sol_03.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <gf_rand.h>
-#include "jerasure.h"
-#include "reed_sol.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: reed_sol_03 k w seed - Does a simple RAID-6 coding example in GF(2^w).\n");
- fprintf(stderr, " \n");
- fprintf(stderr, " w must be 8, 16 or 32. k+2 must be <= 2^w. It sets up a classic\n");
- fprintf(stderr, " RAID-6 coding matrix based on Anvin's optimization and encodes\n");
- fprintf(stderr, " %ld-byte devices with it. Then it decodes.\n", sizeof(long));
- fprintf(stderr, " \n");
- fprintf(stderr, "This demonstrates: reed_sol_r6_encode()\n");
- fprintf(stderr, " reed_sol_r6_coding_matrix()\n");
- fprintf(stderr, " jerasure_matrix_decode()\n");
- fprintf(stderr, " jerasure_print_matrix()\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-
-static void print_data_and_coding(int k, int m, int w, int size,
- char **data, char **coding)
-{
- int i, j, x;
- int n, sp;
-
- if(k > m) n = k;
- else n = m;
- sp = size * 2 + size/(w/8) + 8;
-
- printf("%-*sCoding\n", sp, "Data");
- for(i = 0; i < n; i++) {
- if(i < k) {
- printf("D%-2d:", i);
- for(j=0;j< size; j+=(w/8)) {
- printf(" ");
- for(x=0;x < w/8;x++){
- printf("%02x", (unsigned char)data[i][j+x]);
- }
- }
- printf(" ");
- }
- else printf("%*s", sp, "");
- if(i < m) {
- printf("C%-2d:", i);
- for(j=0;j< size; j+=(w/8)) {
- printf(" ");
- for(x=0;x < w/8;x++){
- printf("%02x", (unsigned char)coding[i][j+x]);
- }
- }
- }
- printf("\n");
- }
- printf("\n");
-}
-
-int main(int argc, char **argv)
-{
- long l;
- unsigned char uc;
- int k, w, i, j, m;
- int *matrix;
- char **data, **coding, **dcopy, **ccopy;
- int *erasures, *erased;
- uint32_t seed;
-
- if (argc != 4) usage(NULL);
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &w) == 0 || (w != 8 && w != 16 && w != 32)) usage("Bad w");
- if (sscanf(argv[3], "%d", &seed) == 0) usage("Bad seed");
- m = 2;
- if (w <= 16 && k + m > (1 << w)) usage("k + m is too big");
-
- MOA_Seed(seed);
- matrix = reed_sol_r6_coding_matrix(k, w);
-
- printf("<HTML><TITLE>reed_sol_03 %d %d %d</title>\n", k, w, seed);
- printf("<h3>reed_sol_03 %d %d %d</h3>\n", k, w, seed);
- printf("<pre>\n");
-
- printf("Last 2 rows of the Generator Matrix:\n\n");
- jerasure_print_matrix(matrix, m, k, w);
- printf("\n");
-
- data = talloc(char *, k);
- dcopy = talloc(char *, k);
- for (i = 0; i < k; i++) {
- data[i] = talloc(char, sizeof(long));
- dcopy[i] = talloc(char, sizeof(long));
- for (j = 0; j < sizeof(long); j++) {
- uc = MOA_Random_W(8, 1) %256;
- data[i][j] = (char) uc;
- }
- memcpy(dcopy[i], data[i], sizeof(long));
- }
-
- coding = talloc(char *, m);
- ccopy = talloc(char *, m);
- for (i = 0; i < m; i++) {
- coding[i] = talloc(char, sizeof(long));
- ccopy[i] = talloc(char, sizeof(long));
- }
-
- reed_sol_r6_encode(k, w, data, coding, sizeof(long));
- for (i = 0; i < m; i++) {
- memcpy(ccopy[i], coding[i], sizeof(long));
- }
-
- printf("Encoding Complete:\n\n");
- print_data_and_coding(k, m, w, sizeof(long), data, coding);
-
- erasures = talloc(int, (m+1));
- erased = talloc(int, (k+m));
- for (i = 0; i < m+k; i++) erased[i] = 0;
- l = 0;
- for (i = 0; i < m; ) {
- erasures[i] = ((unsigned int) MOA_Random_W(w, 1))%(k+m);
- if (erased[erasures[i]] == 0) {
- erased[erasures[i]] = 1;
- memcpy((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], &l, sizeof(long));
- i++;
- }
- }
- erasures[i] = -1;
-
- printf("Erased %d random devices:\n\n", m);
- print_data_and_coding(k, m, w, sizeof(long), data, coding);
-
- i = jerasure_matrix_decode(k, m, w, matrix, 1, erasures, data, coding, sizeof(long));
-
- printf("State of the system after decoding:\n\n");
- print_data_and_coding(k, m, w, sizeof(long), data, coding);
-
- for (i = 0; i < k; i++) if (memcmp(data[i], dcopy[i], sizeof(long)) != 0) {
- printf("ERROR: D%x after decoding does not match its state before decoding!<br>\n", i);
- }
- for (i = 0; i < m; i++) if (memcmp(coding[i], ccopy[i], sizeof(long)) != 0) {
- printf("ERROR: C%x after decoding does not match its state before decoding!<br>\n", i);
- }
-
- return 0;
-}
diff --git a/src/c/jerasure/Examples/reed_sol_04.c b/src/c/jerasure/Examples/reed_sol_04.c
deleted file mode 100644
index b3300de..0000000
--- a/src/c/jerasure/Examples/reed_sol_04.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <gf_rand.h>
-#include "jerasure.h"
-#include "reed_sol.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: reed_sol_04 w seed - Shows reed_sol_galois_wXX_region_multby_2\n");
- fprintf(stderr, " \n");
- fprintf(stderr, " w must be 8, 16 or 32. Sets up an array of 4 random words in\n");
- fprintf(stderr, " GF(2^w) and multiplies them by two. \n");
- fprintf(stderr, " \n");
- fprintf(stderr, "This demonstrates: reed_sol_galois_w08_region_multby_2()\n");
- fprintf(stderr, " reed_sol_galois_w16_region_multby_2()\n");
- fprintf(stderr, " reed_sol_galois_w32_region_multby_2()\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- unsigned char *x, *y;
- unsigned short *xs, *ys;
- unsigned int *xi, *yi;
- uint32_t seed;
- int *a32, *copy;
- int i;
- int w;
-
- if (argc != 3) usage(NULL);
- if (sscanf(argv[1], "%d", &w) == 0 || (w != 8 && w != 16 && w != 32)) usage("Bad w");
- if (sscanf(argv[2], "%d", &seed) == 0) usage("Bad seed");
-
- printf("<HTML><TITLE>reed_sol_04 %d %d</title>\n", w, seed);
- printf("<h3>reed_sol_04 %d %d</h3>\n", w, seed);
- printf("<pre>\n");
-
- MOA_Seed(seed);
- a32 = talloc(int, 4);
- copy = talloc(int, 4);
- y = (unsigned char *) a32;
- for (i = 0; i < 4*sizeof(int); i++) y[i] = MOA_Random_W(8, 1);
- memcpy(copy, a32, sizeof(int)*4);
-
- if (w == 8) {
- x = (unsigned char *) copy;
- y = (unsigned char *) a32;
- reed_sol_galois_w08_region_multby_2((char *) a32, sizeof(int)*4);
- for (i = 0; i < 4*sizeof(int)/sizeof(char); i++) {
- printf("Char %2d: %3u *2 = %3u\n", i, x[i], y[i]);
- }
- } else if (w == 16) {
- xs = (unsigned short *) copy;
- ys = (unsigned short *) a32;
- reed_sol_galois_w16_region_multby_2((char *) a32, sizeof(int)*4);
- for (i = 0; i < 4*sizeof(int)/sizeof(short); i++) {
- printf("Short %2d: %5u *2 = %5u\n", i, xs[i], ys[i]);
- }
- } else if (w == 32) {
- xi = (unsigned int *) copy;
- yi = (unsigned int *) a32;
- reed_sol_galois_w16_region_multby_2((char *) a32, sizeof(int)*4);
- for (i = 0; i < 4*sizeof(int)/sizeof(int); i++) {
- printf("Int %2d: %10u *2 = %10u\n", i, xi[i], yi[i]);
- }
- }
-
- return 0;
-}
diff --git a/src/c/jerasure/Examples/reed_sol_test_gf.c b/src/c/jerasure/Examples/reed_sol_test_gf.c
deleted file mode 100644
index cfda96a..0000000
--- a/src/c/jerasure/Examples/reed_sol_test_gf.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <gf_complete.h>
-#include <gf_method.h>
-#include <gf_rand.h>
-#include <stdint.h>
-#include <sys/time.h>
-#include "jerasure.h"
-#include "reed_sol.h"
-
-#define BUFSIZE 4096
-
-static void *malloc16(int size) {
- void *mem = malloc(size+16+sizeof(void*));
- void **ptr = (void**)((long)(mem+16+sizeof(void*)) & ~(15));
- ptr[-1] = mem;
- return ptr;
-}
-
-#if 0
-// Unused for now.
-static void free16(void *ptr) {
- free(((void**)ptr)[-1]);
-}
-#endif
-
-#define talloc(type, num) (type *) malloc16(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: reed_sol_test_gf k m w seed (additional GF args) - Tests Reed-Solomon in GF(2^w).\n");
- fprintf(stderr, " \n");
- fprintf(stderr, " w must be 8, 16 or 32. k+m must be <= 2^w.\n");
- fprintf(stderr, " See the README for information on the additional GF args.\n");
- fprintf(stderr, " Set up a Vandermonde-based distribution matrix and encodes k devices of\n");
- fprintf(stderr, " %d bytes each with it. Then it decodes.\n", BUFSIZE);
- fprintf(stderr, " \n");
- fprintf(stderr, "This tests: jerasure_matrix_encode()\n");
- fprintf(stderr, " jerasure_matrix_decode()\n");
- fprintf(stderr, " jerasure_print_matrix()\n");
- fprintf(stderr, " galois_change_technique()\n");
- fprintf(stderr, " reed_sol_vandermonde_coding_matrix()\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-gf_t* get_gf(int w, int argc, char **argv, int starting)
-{
- gf_t *gf = (gf_t*)malloc(sizeof(gf_t));
- if (create_gf_from_argv(gf, w, argc, argv, starting) == 0) {
- free(gf);
- gf = NULL;
- }
- return gf;
-}
-
-int main(int argc, char **argv)
-{
- int k, w, i, m;
- int *matrix;
- char **data, **coding, **old_values;
- int *erasures, *erased;
- gf_t *gf = NULL;
- uint32_t seed;
-
- if (argc < 6) usage("Not enough command line arguments");
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &m) == 0 || m <= 0) usage("Bad m");
- if (sscanf(argv[3], "%d", &w) == 0 || (w != 8 && w != 16 && w != 32)) usage("Bad w");
- if (sscanf(argv[4], "%d", &seed) == 0) usage("Bad seed");
- if (w <= 16 && k + m > (1 << w)) usage("k + m is too big");
-
- MOA_Seed(seed);
-
- gf = get_gf(w, argc, argv, 5);
-
- if (gf == NULL) {
- usage("Invalid arguments given for GF!\n");
- }
-
- galois_change_technique(gf, w);
-
- matrix = reed_sol_vandermonde_coding_matrix(k, m, w);
-
- printf("<HTML><TITLE>reed_sol_test_gf");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</TITLE>\n");
- printf("<h3>reed_sol_test_gf");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</h3>\n");
- printf("<pre>\n");
-
- printf("Last m rows of the generator matrix (G^T):\n\n");
- jerasure_print_matrix(matrix, m, k, w);
- printf("\n");
-
- data = talloc(char *, k);
- for (i = 0; i < k; i++) {
- data[i] = talloc(char, BUFSIZE);
- MOA_Fill_Random_Region(data[i], BUFSIZE);
- }
-
- coding = talloc(char *, m);
- old_values = talloc(char *, m);
- for (i = 0; i < m; i++) {
- coding[i] = talloc(char, BUFSIZE);
- old_values[i] = talloc(char, BUFSIZE);
- }
-
- jerasure_matrix_encode(k, m, w, matrix, data, coding, BUFSIZE);
-
- erasures = talloc(int, (m+1));
- erased = talloc(int, (k+m));
- for (i = 0; i < m+k; i++) erased[i] = 0;
- for (i = 0; i < m; ) {
- erasures[i] = ((unsigned int)MOA_Random_W(w,1))%(k+m);
- if (erased[erasures[i]] == 0) {
- erased[erasures[i]] = 1;
- memcpy(old_values[i], (erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], BUFSIZE);
- bzero((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], BUFSIZE);
- i++;
- }
- }
- erasures[i] = -1;
-
- i = jerasure_matrix_decode(k, m, w, matrix, 1, erasures, data, coding, BUFSIZE);
-
- for (i = 0; i < m; i++) {
- if (erasures[i] < k) {
- if (memcmp(data[erasures[i]], old_values[i], BUFSIZE)) {
- fprintf(stderr, "Decoding failed for %d!\n", erasures[i]);
- exit(1);
- }
- } else {
- if (memcmp(coding[erasures[i]-k], old_values[i], BUFSIZE)) {
- fprintf(stderr, "Decoding failed for %d!\n", erasures[i]);
- exit(1);
- }
- }
- }
-
- printf("Encoding and decoding were both successful.\n");
- return 0;
-}
diff --git a/src/c/jerasure/Examples/reed_sol_time_gf.c b/src/c/jerasure/Examples/reed_sol_time_gf.c
deleted file mode 100644
index 0959aa7..0000000
--- a/src/c/jerasure/Examples/reed_sol_time_gf.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan.
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank.
- */
-
-#include <sys/time.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <gf_complete.h>
-#include <gf_rand.h>
-#include <gf_method.h>
-#include <stdint.h>
-#include "jerasure.h"
-#include "reed_sol.h"
-#include "timing.h"
-
-static void *malloc16(int size) {
- void *mem = malloc(size+16+sizeof(void*));
- void **ptr = (void**)((long)(mem+16+sizeof(void*)) & ~(15));
- ptr[-1] = mem;
- return ptr;
-}
-
-#if 0
-// Unused for now.
-static void free16(void *ptr) {
- free(((void**)ptr)[-1]);
-}
-#endif
-
-#define talloc(type, num) (type *) malloc16(sizeof(type)*(num))
-
-static void usage(char *s)
-{
- fprintf(stderr, "usage: reed_sol_time_gf k m w seed iterations bufsize (additional GF args) - Test and time Reed-Solomon in a particular GF(2^w).\n");
- fprintf(stderr, " \n");
- fprintf(stderr, " w must be 8, 16 or 32. k+m must be <= 2^w.\n");
- fprintf(stderr, " See the README for information on the additional GF args.\n");
- fprintf(stderr, " Set up a Vandermonde-based distribution matrix and encodes k devices of\n");
- fprintf(stderr, " bufsize bytes each with it. Then it decodes.\n");
- fprintf(stderr, " \n");
- fprintf(stderr, "This tests: jerasure_matrix_encode()\n");
- fprintf(stderr, " jerasure_matrix_decode()\n");
- fprintf(stderr, " jerasure_print_matrix()\n");
- fprintf(stderr, " galois_change_technique()\n");
- fprintf(stderr, " reed_sol_vandermonde_coding_matrix()\n");
- if (s != NULL) fprintf(stderr, "%s\n", s);
- exit(1);
-}
-
-gf_t* get_gf(int w, int argc, char **argv, int starting)
-{
- gf_t *gf = (gf_t*)malloc(sizeof(gf_t));
- if (create_gf_from_argv(gf, w, argc, argv, starting) == 0) {
- free(gf);
- gf = NULL;
- }
- return gf;
-}
-
-int main(int argc, char **argv)
-{
- int k, w, i, m, iterations, bufsize;
- int *matrix;
- char **data, **coding, **old_values;
- int *erasures, *erased;
- uint32_t seed;
- double t = 0, total_time = 0;
- gf_t *gf = NULL;
-
- if (argc < 8) usage(NULL);
- if (sscanf(argv[1], "%d", &k) == 0 || k <= 0) usage("Bad k");
- if (sscanf(argv[2], "%d", &m) == 0 || m <= 0) usage("Bad m");
- if (sscanf(argv[3], "%d", &w) == 0 || (w != 8 && w != 16 && w != 32)) usage("Bad w");
- if (sscanf(argv[4], "%d", &seed) == 0) usage("Bad seed");
- if (sscanf(argv[5], "%d", &iterations) == 0) usage("Bad iterations");
- if (sscanf(argv[6], "%d", &bufsize) == 0) usage("Bad bufsize");
- if (w <= 16 && k + m > (1 << w)) usage("k + m is too big");
-
- MOA_Seed(seed);
-
- gf = get_gf(w, argc, argv, 7);
-
- if (gf == NULL) {
- usage("Invalid arguments given for GF!\n");
- }
-
- galois_change_technique(gf, w);
-
- matrix = reed_sol_vandermonde_coding_matrix(k, m, w);
-
- printf("<HTML><TITLE>reed_sol_time_gf");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</TITLE>\n");
- printf("<h3>reed_sol_time_gf");
- for (i = 1; i < argc; i++) printf(" %s", argv[i]);
- printf("</h3>\n");
- printf("<pre>\n");
-
- printf("Last m rows of the generator matrix (G^T):\n\n");
- jerasure_print_matrix(matrix, m, k, w);
- printf("\n");
-
- data = talloc(char *, k);
- for (i = 0; i < k; i++) {
- data[i] = talloc(char, bufsize);
- MOA_Fill_Random_Region(data[i], bufsize);
- }
-
- coding = talloc(char *, m);
- old_values = talloc(char *, m);
- for (i = 0; i < m; i++) {
- coding[i] = talloc(char, bufsize);
- old_values[i] = talloc(char, bufsize);
- }
-
- for (i = 0; i < iterations; i++) {
- t = timing_now();
- jerasure_matrix_encode(k, m, w, matrix, data, coding, bufsize);
- total_time += timing_now() - t;
- }
-
- printf("Encode throughput for %d iterations: %.2f MB/s (%.2f sec)\n", iterations, (double)(k*iterations*bufsize/1024/1024) / total_time, total_time);
-
- erasures = talloc(int, (m+1));
- erased = talloc(int, (k+m));
- for (i = 0; i < m+k; i++) erased[i] = 0;
- for (i = 0; i < m; ) {
- erasures[i] = ((unsigned int)MOA_Random_W(w, 1))%(k+m);
- if (erased[erasures[i]] == 0) {
- erased[erasures[i]] = 1;
- memcpy(old_values[i], (erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], bufsize);
- bzero((erasures[i] < k) ? data[erasures[i]] : coding[erasures[i]-k], bufsize);
- i++;
- }
- }
- erasures[i] = -1;
-
- for (i = 0; i < iterations; i++) {
- t = timing_now();
- jerasure_matrix_decode(k, m, w, matrix, 1, erasures, data, coding, bufsize);
- total_time += timing_now() - t;
- }
-
- printf("Decode throughput for %d iterations: %.2f MB/s (%.2f sec)\n", iterations, (double)(k*iterations*bufsize/1024/1024) / total_time, total_time);
-
- for (i = 0; i < m; i++) {
- if (erasures[i] < k) {
- if (memcmp(data[erasures[i]], old_values[i], bufsize)) {
- fprintf(stderr, "Decoding failed for %d!\n", erasures[i]);
- exit(1);
- }
- } else {
- if (memcmp(coding[erasures[i]-k], old_values[i], bufsize)) {
- fprintf(stderr, "Decoding failed for %d!\n", erasures[i]);
- exit(1);
- }
- }
- }
-
- return 0;
-}
diff --git a/src/c/jerasure/Examples/test_all_gfs.sh b/src/c/jerasure/Examples/test_all_gfs.sh
deleted file mode 100755
index b78dd6b..0000000
--- a/src/c/jerasure/Examples/test_all_gfs.sh
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/bin/bash
-#
-# Copyright (c) 2013, James S. Plank and Kevin Greenan
-# All rights reserved.
-#
-# Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
-# Coding Techniques
-#
-# Revision 2.0: Galois Field backend now links to GF-Complete
-#
-# 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 the name of the University of Tennessee 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 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
-# HOLDER 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.
-#
-GF_METHODS=${GF_COMPLETE_DIR:-/usr/local/bin}/gf_methods
-k=12
-m=3
-seed=1370
-
-if ! test -x ${GF_METHODS} ; then
- ${GF_METHODS}
- exit 1
-fi
-
-# Test all w=8
-${GF_METHODS} 8 -B -L | awk -F: '{ if ($1 == "w=8") print $2; }' |
-while read method; do
- echo "Testing ${k} ${m} 8 $seed ${method}"
- $VALGRIND ./reed_sol_test_gf ${k} ${m} 8 $seed ${method} | tail -n 1
- if [[ $? != "0" ]]; then
- echo "Failed test for ${k} ${m} 8 $seed ${method}"
- exit 1
- fi
-done
-
-if [[ $? == "1" ]]; then
- exit 1
-fi
-
-
-# Test all w=16
-${GF_METHODS} 16 -B -L | awk -F: '{ if ($1 == "w=16") print $2; }' |
-while read method; do
- echo "Testing ${k} ${m} 16 $seed ${method}"
- $VALGRIND ./reed_sol_test_gf ${k} ${m} 16 $seed ${method} | tail -n 1
- if [[ $? != "0" ]]; then
- echo "Failed test for ${k} ${m} 16 $seed ${method}"
- exit 1
- fi
-done
-
-
-if [[ $? == "1" ]]; then
- exit 1
-fi
-
-# Test all w=32
-${GF_METHODS} 32 -B -L | awk -F: '{ if ($1 == "w=32") print $2; }' |
-while read method; do
- echo "Testing ${k} ${m} 32 $seed ${method}"
- $VALGRIND ./reed_sol_test_gf ${k} ${m} 32 $seed ${method} | tail -n 1
- if [[ $? != "0" ]]; then
- echo "Failed test for ${k} ${m} 32 $seed ${method}"
- exit 1
- fi
-done
-
-
-if [[ $? == "1" ]]; then
- exit 1
-fi
-
-echo "Passed all tests!"
diff --git a/src/c/jerasure/Examples/test_galois.c b/src/c/jerasure/Examples/test_galois.c
deleted file mode 100644
index ea5b4fa..0000000
--- a/src/c/jerasure/Examples/test_galois.c
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <assert.h>
-#include "galois.h"
-
-int main(int argc, char **argv)
-{
- assert(galois_init_default_field(4) == 0);
- assert(galois_uninit_field(4) == 0);
- assert(galois_init_default_field(4) == 0);
- assert(galois_uninit_field(4) == 0);
-
- assert(galois_init_default_field(8) == 0);
- assert(galois_uninit_field(8) == 0);
- assert(galois_init_default_field(8) == 0);
- assert(galois_uninit_field(8) == 0);
-
- return 0;
-}
-/*
- * Local Variables:
- * compile-command: "make test_galois &&
- * libtool --mode=execute valgrind --tool=memcheck --leak-check=full ./test_galois"
- * End:
- */
diff --git a/src/c/jerasure/Examples/time_all_gfs_argv_init.sh b/src/c/jerasure/Examples/time_all_gfs_argv_init.sh
deleted file mode 100755
index 0e02b9d..0000000
--- a/src/c/jerasure/Examples/time_all_gfs_argv_init.sh
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-#
-# Copyright (c) 2013, James S. Plank and Kevin Greenan
-# All rights reserved.
-#
-# Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
-# Coding Techniques
-#
-# Revision 2.0: Galois Field backend now links to GF-Complete
-#
-# 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 the name of the University of Tennessee 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 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
-# HOLDER 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.
-#
-GF_COMPLETE_DIR=/usr/local/bin
-GF_METHODS=${GF_COMPLETE_DIR}/gf_methods
-ITERATIONS=128
-BUFSIZE=65536
-k=12
-m=3
-seed=1370
-
-for w in 8 16 32 ; do
- ${GF_METHODS} $w -B -L | awk -F: '{ if ($1 == "w='$w'") print $2; }' |
- while read method; do
- echo "Testing ${k} ${m} ${w} ${seed} ${ITERATIONS} ${BUFSIZE} ${method}"
- ./reed_sol_time_gf ${k} ${m} ${w} ${seed} ${ITERATIONS} ${BUFSIZE} ${method} | tail -n 2
- if [[ $? != "0" ]]; then
- echo "Failed test for ${k} ${m} ${w} ${seed} ${ITERATIONS} ${BUFSIZE} ${method}"
- exit 1
- fi
- done
-
- if [[ $? == "1" ]]; then
- exit 1
- fi
-done
-
-echo "Passed all tests!"
diff --git a/src/c/jerasure/INSTALL b/src/c/jerasure/INSTALL
deleted file mode 100644
index 2099840..0000000
--- a/src/c/jerasure/INSTALL
+++ /dev/null
@@ -1,370 +0,0 @@
-Installation Instructions
-*************************
-
-Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
-Inc.
-
- 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 warranty of any kind.
-
-Basic Installation
-==================
-
- Briefly, the shell command `./configure && make && make install'
-should configure, build, and install this package. The following
-more-detailed instructions are generic; see the `README' file for
-instructions specific to this package. Some packages provide this
-`INSTALL' file but do not implement all of the features documented
-below. The lack of an optional feature in a given package is not
-necessarily a bug. More recommendations for GNU packages can be found
-in *note Makefile Conventions: (standards)Makefile Conventions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
- It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring. Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
- The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'. You need `configure.ac' if
-you want to change it or regenerate `configure' using a newer version
-of `autoconf'.
-
- The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system.
-
- Running `configure' might take a while. While running, it prints
- some messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Optionally, type `make check' to run any self-tests that come with
- the package, generally using the just-built uninstalled binaries.
-
- 4. Type `make install' to install the programs and any data files and
- documentation. When installing into a prefix owned by root, it is
- recommended that the package be configured and built as a regular
- user, and only the `make install' phase executed with root
- privileges.
-
- 5. Optionally, type `make installcheck' to repeat any self-tests, but
- this time using the binaries in their final installed location.
- This target does not install anything. Running this target as a
- regular user, particularly if the prior `make install' required
- root privileges, verifies that the installation completed
- correctly.
-
- 6. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
-
- 7. Often, you can also type `make uninstall' to remove the installed
- files again. In practice, not all packages have tested that
- uninstallation works correctly, even though it is required by the
- GNU Coding Standards.
-
- 8. Some packages, particularly those that use Automake, provide `make
- distcheck', which can by used by developers to test that all other
- targets like `make install' and `make uninstall' work correctly.
- This target is generally not run by end users.
-
-Compilers and Options
-=====================
-
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. Run `./configure --help'
-for details on some of the pertinent environment variables.
-
- You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment. Here
-is an example:
-
- ./configure CC=c99 CFLAGS=-g LIBS=-lposix
-
- *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
- You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you can use GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'. This
-is known as a "VPATH" build.
-
- With a non-GNU `make', it is safer to compile the package for one
-architecture at a time in the source code directory. After you have
-installed the package for one architecture, use `make distclean' before
-reconfiguring for another architecture.
-
- On MacOS X 10.5 and later systems, you can create libraries and
-executables that work on multiple system types--known as "fat" or
-"universal" binaries--by specifying multiple `-arch' options to the
-compiler but only a single `-arch' option to the preprocessor. Like
-this:
-
- ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
- CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
- CPP="gcc -E" CXXCPP="g++ -E"
-
- This is not guaranteed to produce working output in all cases, you
-may have to build one architecture at a time and combine the results
-using the `lipo' tool if you have problems.
-
-Installation Names
-==================
-
- By default, `make install' installs the package's commands under
-`/usr/local/bin', include files under `/usr/local/include', etc. You
-can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX', where PREFIX must be an
-absolute file name.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-pass the option `--exec-prefix=PREFIX' to `configure', the package uses
-PREFIX as the prefix for installing programs and libraries.
-Documentation and other data files still use the regular prefix.
-
- In addition, if you use an unusual directory layout you can give
-options like `--bindir=DIR' to specify different values for particular
-kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them. In general, the
-default for these options is expressed in terms of `${prefix}', so that
-specifying just `--prefix' will affect all of the other directory
-specifications that were not explicitly provided.
-
- The most portable way to affect installation locations is to pass the
-correct locations to `configure'; however, many packages provide one or
-both of the following shortcuts of passing variable assignments to the
-`make install' command line to change installation locations without
-having to reconfigure or recompile.
-
- The first method involves providing an override variable for each
-affected directory. For example, `make install
-prefix=/alternate/directory' will choose an alternate location for all
-directory configuration variables that were expressed in terms of
-`${prefix}'. Any directories that were specified during `configure',
-but not in terms of `${prefix}', must each be overridden at install
-time for the entire installation to be relocated. The approach of
-makefile variable overrides for each directory variable is required by
-the GNU Coding Standards, and ideally causes no recompilation.
-However, some platforms have known limitations with the semantics of
-shared libraries that end up requiring recompilation when using this
-method, particularly noticeable in packages that use GNU Libtool.
-
- The second method involves providing the `DESTDIR' variable. For
-example, `make install DESTDIR=/alternate/directory' will prepend
-`/alternate/directory' before all installation names. The approach of
-`DESTDIR' overrides is not required by the GNU Coding Standards, and
-does not work on platforms that have drive letters. On the other hand,
-it does better at avoiding recompilation issues, and works well even
-when some directory options were not specified in terms of `${prefix}'
-at `configure' time.
-
-Optional Features
-=================
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
- Some packages offer the ability to configure how verbose the
-execution of `make' will be. For these packages, running `./configure
---enable-silent-rules' sets the default to minimal output, which can be
-overridden with `make V=1'; while running `./configure
---disable-silent-rules' sets the default to verbose, which can be
-overridden with `make V=0'.
-
-Particular systems
-==================
-
- On HP-UX, the default C compiler is not ANSI C compatible. If GNU
-CC is not installed, it is recommended to use the following options in
-order to use an ANSI C compiler:
-
- ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
-
-and if that doesn't work, install pre-built binaries of GCC for HP-UX.
-
- HP-UX `make' updates targets which have the same time stamps as
-their prerequisites, which makes it generally unusable when shipped
-generated files such as `configure' are involved. Use GNU `make'
-instead.
-
- On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
-parse its `<wchar.h>' header file. The option `-nodtk' can be used as
-a workaround. If GNU CC is not installed, it is therefore recommended
-to try
-
- ./configure CC="cc"
-
-and if that doesn't work, try
-
- ./configure CC="cc -nodtk"
-
- On Solaris, don't put `/usr/ucb' early in your `PATH'. This
-directory contains several dysfunctional programs; working variants of
-these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
-in your `PATH', put it _after_ `/usr/bin'.
-
- On Haiku, software installed for all users goes in `/boot/common',
-not `/usr/local'. It is recommended to use the following options:
-
- ./configure --prefix=/boot/common
-
-Specifying the System Type
-==========================
-
- There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on. Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
-`--build=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
-
- CPU-COMPANY-SYSTEM
-
-where SYSTEM can have one of these forms:
-
- OS
- KERNEL-OS
-
- See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
-
- If you are _building_ compiler tools for cross-compiling, you should
-use the option `--target=TYPE' to select the type of system they will
-produce code for.
-
- If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
-
-Sharing Defaults
-================
-
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Defining Variables
-==================
-
- Variables not defined in a site shell script can be set in the
-environment passed to `configure'. However, some packages may run
-configure again during the build, and the customized values of these
-variables may be lost. In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'. For example:
-
- ./configure CC=/usr/local2/bin/gcc
-
-causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).
-
-Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-an Autoconf limitation. Until the limitation is lifted, you can use
-this workaround:
-
- CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
-
-`configure' Invocation
-======================
-
- `configure' recognizes the following options to control how it
-operates.
-
-`--help'
-`-h'
- Print a summary of all of the options to `configure', and exit.
-
-`--help=short'
-`--help=recursive'
- Print a summary of the options unique to this package's
- `configure', and exit. The `short' variant lists options used
- only in the top level, while the `recursive' variant lists options
- also present in any nested packages.
-
-`--version'
-`-V'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`--cache-file=FILE'
- Enable the cache: use and save the results of the tests in FILE,
- traditionally `config.cache'. FILE defaults to `/dev/null' to
- disable caching.
-
-`--config-cache'
-`-C'
- Alias for `--cache-file=config.cache'.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made. To
- suppress all normal output, redirect it to `/dev/null' (any error
- messages will still be shown).
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`--prefix=DIR'
- Use DIR as the installation prefix. *note Installation Names::
- for more details, including other options available for fine-tuning
- the installation locations.
-
-`--no-create'
-`-n'
- Run the configure checks, but stop before creating any output
- files.
-
-`configure' also accepts some other, not widely useful, options. Run
-`configure --help' for more details.
diff --git a/src/c/jerasure/License.txt b/src/c/jerasure/License.txt
deleted file mode 100644
index 351e15f..0000000
--- a/src/c/jerasure/License.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-
-Copyright (c) 2013, James S. Plank and Kevin Greenan
-All rights reserved.
-
-Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure Coding Techniques
-
-Revision 2.0: Galois Field backend now links to GF-Complete
-
-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 the name of the University of Tennessee 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 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
-HOLDER 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.
diff --git a/src/c/jerasure/Makefile.am b/src/c/jerasure/Makefile.am
deleted file mode 100644
index e79f464..0000000
--- a/src/c/jerasure/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-# Jerasure Automake file
-
-SUBDIRS = src Examples
-
-EXTRA_DIST = Manual.pdf PERF.txt
diff --git a/src/c/jerasure/Makefile.in b/src/c/jerasure/Makefile.in
deleted file mode 100644
index 00bfc3f..0000000
--- a/src/c/jerasure/Makefile.in
+++ /dev/null
@@ -1,810 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# Jerasure Automake file
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = .
-DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
- $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/configure $(am__configure_deps) \
- $(top_srcdir)/include/config.h.in COPYING build-aux/compile \
- build-aux/config.guess build-aux/config.sub build-aux/depcomp \
- build-aux/install-sh build-aux/missing build-aux/ltmain.sh \
- $(top_srcdir)/build-aux/compile \
- $(top_srcdir)/build-aux/config.guess \
- $(top_srcdir)/build-aux/config.sub \
- $(top_srcdir)/build-aux/install-sh \
- $(top_srcdir)/build-aux/ltmain.sh \
- $(top_srcdir)/build-aux/missing
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_ext.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
- $(top_srcdir)/m4/ax_require_defined.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
- ctags-recursive dvi-recursive html-recursive info-recursive \
- install-data-recursive install-dvi-recursive \
- install-exec-recursive install-html-recursive \
- install-info-recursive install-pdf-recursive \
- install-ps-recursive install-recursive installcheck-recursive \
- installdirs-recursive pdf-recursive ps-recursive \
- tags-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
- $(RECURSIVE_TARGETS) \
- $(RECURSIVE_CLEAN_TARGETS) \
- $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- cscope distdir dist dist-all distcheck
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-CSCOPE = cscope
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- if test -d "$(distdir)"; then \
- find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -rf "$(distdir)" \
- || { sleep 5 && rm -rf "$(distdir)"; }; \
- else :; fi
-am__post_remove_distdir = $(am__remove_distdir)
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-DIST_TARGETS = dist-gzip
-distuninstallcheck_listfiles = find . -type f -print
-am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
- | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIMD_FLAGS = @SIMD_FLAGS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = src Examples
-EXTRA_DIST = Manual.pdf PERF.txt
-all: all-recursive
-
-.SUFFIXES:
-am--refresh: Makefile
- @:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
- $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: $(am__configure_deps)
- $(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-include/config.h: include/stamp-h1
- @test -f $@ || rm -f include/stamp-h1
- @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) include/stamp-h1
-
-include/stamp-h1: $(top_srcdir)/include/config.h.in $(top_builddir)/config.status
- @rm -f include/stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status include/config.h
-$(top_srcdir)/include/config.h.in: $(am__configure_deps)
- ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
- rm -f include/stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f include/config.h include/stamp-h1
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
- -rm -f libtool config.lt
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-# (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
- @fail=; \
- if $(am__make_keepgoing); then \
- failcom='fail=yes'; \
- else \
- failcom='exit 1'; \
- fi; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscope: cscope.files
- test ! -s cscope.files \
- || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-clean-cscope:
- -rm -f cscope.files
-cscope.files: clean-cscope cscopelist
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
- -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-
-distdir: $(DISTFILES)
- $(am__remove_distdir)
- test -d "$(distdir)" || mkdir "$(distdir)"
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
- -test -n "$(am__skip_mode_fix)" \
- || find "$(distdir)" -type d ! -perm -755 \
- -exec chmod u+rwx,go+rx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r "$(distdir)"
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__post_remove_distdir)
-
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
- $(am__post_remove_distdir)
-
-dist-lzip: distdir
- tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
- $(am__post_remove_distdir)
-
-dist-xz: distdir
- tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
- $(am__post_remove_distdir)
-
-dist-tarZ: distdir
- @echo WARNING: "Support for shar distribution archives is" \
- "deprecated." >&2
- @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__post_remove_distdir)
-
-dist-shar: distdir
- @echo WARNING: "Support for distribution archives compressed with" \
- "legacy program 'compress' is deprecated." >&2
- @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
- $(am__post_remove_distdir)
-
-dist-zip: distdir
- -rm -f $(distdir).zip
- zip -rq $(distdir).zip $(distdir)
- $(am__post_remove_distdir)
-
-dist dist-all:
- $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
- $(am__post_remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- case '$(DIST_ARCHIVES)' in \
- *.tar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
- *.tar.bz2*) \
- bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
- *.tar.lz*) \
- lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
- *.tar.xz*) \
- xz -dc $(distdir).tar.xz | $(am__untar) ;;\
- *.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- *.shar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
- *.zip*) \
- unzip $(distdir).zip ;;\
- esac
- chmod -R a-w $(distdir)
- chmod u+w $(distdir)
- mkdir $(distdir)/_build $(distdir)/_inst
- chmod a-w $(distdir)
- test -d $(distdir)/_build || exit 0; \
- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && am__cwd=`pwd` \
- && $(am__cd) $(distdir)/_build \
- && ../configure \
- $(AM_DISTCHECK_CONFIGURE_FLAGS) \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- --srcdir=.. --prefix="$$dc_install_base" \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
- distuninstallcheck \
- && chmod -R a-w "$$dc_install_base" \
- && ({ \
- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
- } || { rm -rf "$$dc_destdir"; exit 1; }) \
- && rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
- && cd "$$am__cwd" \
- || exit 1
- $(am__post_remove_distdir)
- @(echo "$(distdir) archives ready for distribution: "; \
- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
- sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
- @test -n '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: trying to run $@ with an empty' \
- '$$(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- $(am__cd) '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
-check-am: all-am
-check: check-recursive
-all-am: Makefile
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr \
- distclean-libtool distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: $(am__recursive_targets) install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
- am--refresh check check-am clean clean-cscope clean-generic \
- clean-libtool cscope cscopelist-am ctags ctags-am dist \
- dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
- dist-xz dist-zip distcheck distclean distclean-generic \
- distclean-hdr distclean-libtool distclean-tags distcleancheck \
- distdir distuninstallcheck dvi dvi-am html html-am info \
- info-am install install-am install-data install-data-am \
- install-dvi install-dvi-am install-exec install-exec-am \
- install-html install-html-am install-info install-info-am \
- install-man install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
- uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/jerasure/Manual.pdf b/src/c/jerasure/Manual.pdf
deleted file mode 100644
index e596023..0000000
--- a/src/c/jerasure/Manual.pdf
+++ /dev/null
Binary files differ
diff --git a/src/c/jerasure/NEWS b/src/c/jerasure/NEWS
deleted file mode 100644
index e69de29..0000000
--- a/src/c/jerasure/NEWS
+++ /dev/null
diff --git a/src/c/jerasure/PERF.txt b/src/c/jerasure/PERF.txt
deleted file mode 100644
index 9f9fb74..0000000
--- a/src/c/jerasure/PERF.txt
+++ /dev/null
@@ -1,243 +0,0 @@
-This reflects time_all_gfs_argv_init.sh run on a MacBook Air with 4 GB of memory and a 1.7 GHz Intel Core i5
-
-#uname -a
-11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64
-
-<Arguments to reed_sol_time_gf> <Throughput MB/s>
-
-_12_3_8_128_65536_-m_SPLIT_8_4_-r_SSE_- 2813.34
-_12_3_8_128_65536_-m_COMPOSITE_2_-_-r_ALTMAP_- 2808.39
-_12_3_8_128_65536_- 2797.62
-_12_3_8_128_65536_-m_SPLIT_8_4_- 2793.14
-_12_3_8_128_65536_-m_SPLIT_8_4_-r_SSE_-d_EUCLID_- 2779.97
-_12_3_8_128_65536_-m_SPLIT_8_4_-d_EUCLID_- 2776.50
-_12_3_8_128_65536_-m_SPLIT_8_4_-d_MATRIX_- 2762.82
-_12_3_8_128_65536_-m_SPLIT_8_4_-r_SSE_-d_MATRIX_- 2711.49
-_12_3_16_128_65536_-m_COMPOSITE_2_-_-r_ALTMAP_- 2700.11
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_ALTMAP_- 2367.78
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_SSE_-r_ALTMAP_-d_MATRIX_- 2365.21
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_ALTMAP_-d_EUCLID_- 2364.95
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_SSE_-r_ALTMAP_- 2356.81
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_SSE_-r_ALTMAP_-d_EUCLID_- 2319.16
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_ALTMAP_-d_MATRIX_- 2307.02
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_SSE_-d_EUCLID_- 1879.46
-_12_3_16_128_65536_- 1877.06
-_12_3_16_128_65536_-m_SPLIT_16_4_-d_MATRIX_- 1868.61
-_12_3_16_128_65536_-m_SPLIT_16_4_- 1864.30
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_SSE_-d_MATRIX_- 1861.95
-_12_3_16_128_65536_-m_SPLIT_16_4_-d_EUCLID_- 1854.40
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_SSE_- 1850.96
-_12_3_32_128_65536_-m_COMPOSITE_2_-_-r_ALTMAP_- 1828.50
-_12_3_8_128_65536_-m_TABLE_-r_CAUCHY_- 1534.09
-_12_3_8_128_65536_-m_SPLIT_8_4_-r_CAUCHY_-d_MATRIX_- 1531.78
-_12_3_8_128_65536_-m_LOG_ZERO_EXT_-r_CAUCHY_-d_EUCLID_- 1526.97
-_12_3_8_128_65536_-m_TABLE_-r_CAUCHY_-d_EUCLID_- 1527.21
-_12_3_8_128_65536_-m_LOG_-r_CAUCHY_- 1524.65
-_12_3_8_128_65536_-m_SHIFT_-r_CAUCHY_-d_MATRIX_- 1525.47
-_12_3_8_128_65536_-m_BYTWO_b_-r_CAUCHY_-d_EUCLID_- 1525.53
-_12_3_8_128_65536_-m_LOG_ZERO_EXT_-r_CAUCHY_- 1522.80
-_12_3_8_128_65536_-m_LOG_ZERO_-r_CAUCHY_-d_EUCLID_- 1522.57
-_12_3_8_128_65536_-m_BYTWO_p_-r_CAUCHY_-d_EUCLID_- 1519.20
-_12_3_8_128_65536_-m_BYTWO_p_-r_CAUCHY_-d_MATRIX_- 1517.28
-_12_3_8_128_65536_-m_LOG_-r_CAUCHY_-d_MATRIX_- 1515.57
-_12_3_8_128_65536_-m_TABLE_-r_CAUCHY_-d_MATRIX_- 1516.30
-_12_3_8_128_65536_-m_LOG_ZERO_-r_CAUCHY_- 1516.35
-_12_3_8_128_65536_-m_LOG_ZERO_-r_CAUCHY_-d_MATRIX_- 1515.13
-_12_3_8_128_65536_-m_SHIFT_-r_CAUCHY_-d_EUCLID_- 1513.07
-_12_3_8_128_65536_-m_LOG_ZERO_EXT_-r_CAUCHY_-d_MATRIX_- 1512.42
-_12_3_8_128_65536_-m_LOG_-r_CAUCHY_-d_EUCLID_- 1510.87
-_12_3_8_128_65536_-m_BYTWO_p_-r_CAUCHY_- 1511.34
-_12_3_8_128_65536_-m_BYTWO_b_-r_CAUCHY_- 1508.70
-_12_3_8_128_65536_-m_SPLIT_8_4_-r_CAUCHY_- 1508.28
-_12_3_8_128_65536_-m_SHIFT_-r_CAUCHY_- 1504.25
-_12_3_8_128_65536_-m_SPLIT_8_4_-r_CAUCHY_-d_EUCLID_- 1499.62
-_12_3_8_128_65536_-m_BYTWO_b_-r_CAUCHY_-d_MATRIX_- 1488.90
-_12_3_32_128_65536_-m_SPLIT_32_4_-r_SSE_- 1337.74
-_12_3_32_128_65536_-m_SPLIT_32_4_-r_SSE_-d_EUCLID_- 1334.65
-_12_3_32_128_65536_-m_SPLIT_32_4_-r_SSE_-d_MATRIX_- 1326.72
-_12_3_32_128_65536_-m_SPLIT_32_4_-d_MATRIX_- 1325.45
-_12_3_32_128_65536_- 1325.80
-_12_3_32_128_65536_-m_SPLIT_32_4_-d_EUCLID_- 1325.00
-_12_3_32_128_65536_-m_SPLIT_32_4_- 1300.37
-_12_3_32_128_65536_-m_SPLIT_32_4_-r_ALTMAP_-d_MATRIX_- 1196.01
-_12_3_32_128_65536_-m_SPLIT_32_4_-r_ALTMAP_- 1196.97
-_12_3_32_128_65536_-m_SPLIT_32_4_-r_ALTMAP_-d_EUCLID_- 1193.25
-_12_3_32_128_65536_-m_SPLIT_32_4_-r_SSE_-r_ALTMAP_- 1191.37
-_12_3_32_128_65536_-m_SPLIT_32_4_-r_SSE_-r_ALTMAP_-d_EUCLID_- 1188.98
-_12_3_32_128_65536_-m_SPLIT_32_4_-r_SSE_-r_ALTMAP_-d_MATRIX_- 1187.58
-_12_3_8_128_65536_-m_TABLE_-r_DOUBLE_- 1015.70
-_12_3_8_128_65536_-m_TABLE_-r_DOUBLE_-d_EUCLID_- 999.25
-_12_3_8_128_65536_-m_TABLE_-r_DOUBLE_-d_MATRIX_- 996.35
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_CAUCHY_-d_EUCLID_- 971.19
-_12_3_16_128_65536_-m_LOG_-r_CAUCHY_-d_MATRIX_- 972.08
-_12_3_16_128_65536_-m_LOG_ZERO_-r_CAUCHY_- 967.87
-_12_3_16_128_65536_-m_LOG_ZERO_-r_CAUCHY_-d_EUCLID_- 965.51
-_12_3_16_128_65536_-m_SPLIT_16_8_-r_CAUCHY_-d_MATRIX_- 965.75
-_12_3_16_128_65536_-m_LOG_ZERO_-r_CAUCHY_-d_MATRIX_- 965.41
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_CAUCHY_- 966.20
-_12_3_16_128_65536_-m_SPLIT_16_8_-r_CAUCHY_-d_EUCLID_- 964.21
-_12_3_16_128_65536_-m_LOG_-r_CAUCHY_- 962.11
-_12_3_16_128_65536_-m_SPLIT_8_8_-r_CAUCHY_-d_MATRIX_- 959.53
-_12_3_16_128_65536_-m_LOG_-r_CAUCHY_-d_EUCLID_- 959.75
-_12_3_16_128_65536_-m_SPLIT_16_8_-r_CAUCHY_- 958.98
-_12_3_16_128_65536_-m_BYTWO_p_-r_CAUCHY_-d_MATRIX_- 957.03
-_12_3_16_128_65536_-m_BYTWO_b_-r_CAUCHY_-d_MATRIX_- 955.82
-_12_3_16_128_65536_-m_GROUP_4_4_-r_CAUCHY_-d_EUCLID_- 956.46
-_12_3_16_128_65536_-m_GROUP_4_4_-r_CAUCHY_- 955.41
-_12_3_16_128_65536_-m_GROUP_4_4_-r_CAUCHY_-d_MATRIX_- 955.45
-_12_3_16_128_65536_-m_SPLIT_8_8_-r_CAUCHY_-d_EUCLID_- 955.93
-_12_3_16_128_65536_-m_BYTWO_p_-r_CAUCHY_-d_EUCLID_- 952.43
-_12_3_16_128_65536_-m_BYTWO_b_-r_CAUCHY_-d_EUCLID_- 951.90
-_12_3_16_128_65536_-m_BYTWO_p_-r_CAUCHY_- 945.16
-_12_3_16_128_65536_-m_BYTWO_b_-r_CAUCHY_- 945.30
-_12_3_16_128_65536_-m_SHIFT_-r_CAUCHY_- 944.22
-_12_3_16_128_65536_-m_SHIFT_-r_CAUCHY_-d_MATRIX_- 939.66
-_12_3_16_128_65536_-m_SHIFT_-r_CAUCHY_-d_EUCLID_- 934.56
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_CAUCHY_-d_MATRIX_- 917.26
-_12_3_16_128_65536_-m_SPLIT_8_8_-r_CAUCHY_- 831.63
-_12_3_16_128_65536_-m_SPLIT_16_8_- 621.13
-_12_3_16_128_65536_-m_SPLIT_16_8_-d_MATRIX_- 619.98
-_12_3_16_128_65536_-m_SPLIT_8_8_- 614.67
-_12_3_16_128_65536_-m_SPLIT_16_8_-d_EUCLID_- 603.05
-_12_3_16_128_65536_-m_SPLIT_8_8_-d_MATRIX_- 553.45
-_12_3_16_128_65536_-m_SPLIT_8_8_-d_EUCLID_- 543.90
-_12_3_8_128_65536_-m_BYTWO_b_-d_EUCLID_- 522.34
-_12_3_8_128_65536_-m_BYTWO_b_-r_SSE_- 520.97
-_12_3_8_128_65536_-m_BYTWO_b_-r_SSE_-d_MATRIX_- 520.49
-_12_3_8_128_65536_-m_BYTWO_b_-d_MATRIX_- 518.74
-_12_3_8_128_65536_-m_BYTWO_b_-r_SSE_-d_EUCLID_- 518.95
-_12_3_8_128_65536_-m_BYTWO_b_- 519.19
-_12_3_16_128_65536_-m_LOG_-d_MATRIX_- 485.44
-_12_3_16_128_65536_-m_LOG_- 483.58
-_12_3_16_128_65536_-m_LOG_-d_EUCLID_- 480.18
-_12_3_16_128_65536_-m_LOG_ZERO_-d_EUCLID_- 441.75
-_12_3_16_128_65536_-m_LOG_ZERO_-d_MATRIX_- 427.39
-_12_3_16_128_65536_-m_LOG_ZERO_- 419.07
-_12_3_32_128_65536_-m_SPLIT_8_8_-d_EUCLID_- 415.80
-_12_3_32_128_65536_-m_SPLIT_8_8_- 415.31
-_12_3_32_128_65536_-m_SPLIT_32_8_-d_EUCLID_- 416.06
-_12_3_32_128_65536_-m_BYTWO_p_-r_CAUCHY_-d_EUCLID_- 415.84
-_12_3_8_128_65536_-m_BYTWO_p_-d_MATRIX_- 416.50
-_12_3_8_128_65536_-m_BYTWO_p_- 416.57
-_12_3_32_128_65536_-m_SPLIT_32_8_- 416.36
-_12_3_8_128_65536_-m_BYTWO_p_-r_SSE_- 414.77
-_12_3_8_128_65536_-m_BYTWO_p_-r_SSE_-d_EUCLID_- 414.64
-_12_3_32_128_65536_-m_BYTWO_b_-r_CAUCHY_-d_EUCLID_- 415.14
-_12_3_32_128_65536_-m_BYTWO_b_-r_CAUCHY_- 413.58
-_12_3_32_128_65536_-m_GROUP_4_8_-r_CAUCHY_-d_EUCLID_- 413.55
-_12_3_32_128_65536_-m_SPLIT_8_8_-r_CAUCHY_-d_EUCLID_- 413.76
-_12_3_32_128_65536_-m_SPLIT_32_8_-d_MATRIX_- 413.83
-_12_3_32_128_65536_-m_BYTWO_p_-r_CAUCHY_-d_MATRIX_- 412.09
-_12_3_32_128_65536_-m_SPLIT_32_16_-r_CAUCHY_- 413.06
-_12_3_32_128_65536_-m_GROUP_4_4_-r_CAUCHY_-d_EUCLID_- 413.62
-_12_3_32_128_65536_-m_SPLIT_8_8_-r_CAUCHY_-d_MATRIX_- 411.67
-_12_3_32_128_65536_-m_GROUP_4_4_-r_CAUCHY_- 412.35
-_12_3_32_128_65536_-m_SPLIT_32_4_-r_CAUCHY_-d_MATRIX_- 412.30
-_12_3_32_128_65536_-m_SPLIT_32_4_-r_CAUCHY_-d_EUCLID_- 411.08
-_12_3_32_128_65536_-m_BYTWO_p_-r_CAUCHY_- 411.89
-_12_3_32_128_65536_-m_SPLIT_8_8_-r_CAUCHY_- 412.23
-_12_3_8_128_65536_-m_BYTWO_p_-r_SSE_-d_MATRIX_- 413.10
-_12_3_32_128_65536_-m_SPLIT_32_4_-r_CAUCHY_- 411.24
-_12_3_32_128_65536_-m_SPLIT_32_16_-r_CAUCHY_-d_EUCLID_- 411.23
-_12_3_32_128_65536_-m_SPLIT_32_16_-r_CAUCHY_-d_MATRIX_- 411.49
-_12_3_32_128_65536_-m_GROUP_4_4_-r_CAUCHY_-d_MATRIX_- 410.80
-_12_3_32_128_65536_-m_SPLIT_32_8_-r_CAUCHY_-d_EUCLID_- 409.80
-_12_3_32_128_65536_-m_SPLIT_32_8_-r_CAUCHY_- 408.72
-_12_3_32_128_65536_-m_SPLIT_32_8_-r_CAUCHY_-d_MATRIX_- 409.51
-_12_3_32_128_65536_-m_GROUP_4_8_-r_CAUCHY_- 409.34
-_12_3_8_128_65536_-m_BYTWO_p_-d_EUCLID_- 405.75
-_12_3_32_128_65536_-m_BYTWO_b_-r_CAUCHY_-d_MATRIX_- 406.53
-_12_3_32_128_65536_-m_SPLIT_8_8_-d_MATRIX_- 405.91
-_12_3_32_128_65536_-m_SHIFT_-r_CAUCHY_- 403.98
-_12_3_32_128_65536_-m_SHIFT_-r_CAUCHY_-d_EUCLID_- 404.79
-_12_3_32_128_65536_-m_SHIFT_-r_CAUCHY_-d_MATRIX_- 401.29
-_12_3_8_128_65536_-m_TABLE_-r_DOUBLE_-r_LAZY_-d_EUCLID_- 384.38
-_12_3_8_128_65536_-m_TABLE_-r_DOUBLE_-r_LAZY_- 381.47
-_12_3_8_128_65536_-m_TABLE_-r_DOUBLE_-r_LAZY_-d_MATRIX_- 381.49
-_12_3_32_128_65536_-m_GROUP_4_8_-r_CAUCHY_-d_MATRIX_- 374.88
-_12_3_8_128_65536_-m_LOG_ZERO_-d_MATRIX_- 349.17
-_12_3_8_128_65536_-m_LOG_ZERO_- 349.34
-_12_3_8_128_65536_-m_LOG_ZERO_EXT_-d_MATRIX_- 349.43
-_12_3_8_128_65536_-m_LOG_ZERO_-d_EUCLID_- 349.61
-_12_3_8_128_65536_-m_LOG_ZERO_EXT_- 349.71
-_12_3_8_128_65536_-m_TABLE_-d_EUCLID_- 343.28
-_12_3_8_128_65536_-m_LOG_ZERO_EXT_-d_EUCLID_- 341.73
-_12_3_8_128_65536_-m_TABLE_-d_MATRIX_- 329.42
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_NOSSE_- 327.32
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_NOSSE_-d_EUCLID_- 318.34
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_NOSSE_-d_MATRIX_- 317.40
-_12_3_8_128_65536_-m_TABLE_- 316.84
-_12_3_32_128_65536_-m_COMPOSITE_2_-_- 301.69
-_12_3_8_128_65536_-m_LOG_-d_MATRIX_- 281.59
-_12_3_8_128_65536_-m_LOG_-d_EUCLID_- 281.28
-_12_3_8_128_65536_-m_LOG_- 279.75
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_NOSSE_-r_ALTMAP_- 275.37
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_NOSSE_-r_ALTMAP_-d_EUCLID_- 276.07
-_12_3_16_128_65536_-m_SPLIT_16_4_-r_NOSSE_-r_ALTMAP_-d_MATRIX_- 269.77
-_12_3_8_128_65536_-m_BYTWO_b_-r_NOSSE_-d_MATRIX_- 257.86
-_12_3_8_128_65536_-m_BYTWO_b_-r_NOSSE_-d_EUCLID_- 256.55
-_12_3_8_128_65536_-m_SPLIT_8_4_-r_NOSSE_-d_EUCLID_- 236.07
-_12_3_8_128_65536_-m_SPLIT_8_4_-r_NOSSE_-d_MATRIX_- 236.76
-_12_3_8_128_65536_-m_SPLIT_8_4_-r_NOSSE_- 236.71
-_12_3_16_128_65536_-m_BYTWO_b_-d_EUCLID_- 217.68
-_12_3_16_128_65536_-m_BYTWO_b_- 217.87
-_12_3_16_128_65536_-m_BYTWO_b_-r_SSE_- 217.10
-_12_3_16_128_65536_-m_BYTWO_b_-r_SSE_-d_MATRIX_- 216.91
-_12_3_16_128_65536_-m_BYTWO_b_-r_SSE_-d_EUCLID_- 217.27
-_12_3_16_128_65536_-m_BYTWO_b_-d_MATRIX_- 215.01
-_12_3_8_128_65536_-m_BYTWO_p_-r_NOSSE_- 206.00
-_12_3_8_128_65536_-m_BYTWO_p_-r_NOSSE_-d_MATRIX_- 205.66
-_12_3_8_128_65536_-m_BYTWO_p_-r_NOSSE_-d_EUCLID_- 204.44
-_12_3_32_128_65536_-m_SPLIT_32_4_-r_NOSSE_-d_MATRIX_- 199.64
-_12_3_32_128_65536_-m_SPLIT_32_4_-r_NOSSE_-d_EUCLID_- 198.20
-_12_3_16_128_65536_-m_COMPOSITE_2_-_- 182.98
-_12_3_16_128_65536_-m_BYTWO_p_-r_SSE_- 183.34
-_12_3_16_128_65536_-m_BYTWO_p_-r_SSE_-d_EUCLID_- 182.87
-_12_3_16_128_65536_-m_BYTWO_p_-d_EUCLID_- 183.57
-_12_3_16_128_65536_-m_BYTWO_p_-d_MATRIX_- 183.95
-_12_3_16_128_65536_-m_BYTWO_p_-r_SSE_-d_MATRIX_- 179.94
-_12_3_16_128_65536_-m_GROUP_4_4_- 166.90
-_12_3_32_128_65536_-m_SPLIT_32_16_- 167.55
-_12_3_32_128_65536_-m_SPLIT_32_16_-d_MATRIX_- 167.51
-_12_3_32_128_65536_-m_SPLIT_32_16_-d_EUCLID_- 167.70
-_12_3_16_128_65536_-m_GROUP_4_4_-d_EUCLID_- 166.56
-_12_3_16_128_65536_-m_GROUP_4_4_-d_MATRIX_- 167.07
-_12_3_16_128_65536_-m_BYTWO_b_-r_NOSSE_-d_EUCLID_- 110.64
-_12_3_16_128_65536_-m_BYTWO_b_-r_NOSSE_- 110.76
-_12_3_16_128_65536_-m_BYTWO_b_-r_NOSSE_-d_MATRIX_- 111.17
-_12_3_16_128_65536_-m_BYTWO_p_-r_NOSSE_- 100.39
-_12_3_16_128_65536_-m_BYTWO_p_-r_NOSSE_-d_EUCLID_- 100.27
-_12_3_16_128_65536_-m_BYTWO_p_-r_NOSSE_-d_MATRIX_- 100.18
-_12_3_32_128_65536_-m_BYTWO_b_-r_SSE_- 96.85
-_12_3_32_128_65536_-m_BYTWO_b_-d_MATRIX_- 97.76
-_12_3_32_128_65536_-m_BYTWO_b_-r_SSE_-d_EUCLID_- 97.69
-_12_3_32_128_65536_-m_BYTWO_b_-r_SSE_-d_MATRIX_- 97.48
-_12_3_32_128_65536_-m_BYTWO_b_-d_EUCLID_- 97.42
-_12_3_32_128_65536_-m_BYTWO_b_- 97.54
-_12_3_32_128_65536_-m_BYTWO_p_- 86.61
-_12_3_32_128_65536_-m_BYTWO_p_-d_MATRIX_- 86.81
-_12_3_32_128_65536_-m_BYTWO_p_-r_SSE_-d_MATRIX_- 86.31
-_12_3_32_128_65536_-m_BYTWO_p_-d_EUCLID_- 86.70
-_12_3_32_128_65536_-m_BYTWO_p_-r_SSE_- 86.69
-_12_3_32_128_65536_-m_BYTWO_p_-r_SSE_-d_EUCLID_- 86.80
-_12_3_8_128_65536_-m_COMPOSITE_2_-_- 76.58
-_12_3_32_128_65536_-m_GROUP_4_8_-d_EUCLID_- 57.06
-_12_3_32_128_65536_-m_GROUP_4_8_-d_MATRIX_- 57.08
-_12_3_32_128_65536_-m_GROUP_4_4_-d_EUCLID_- 56.59
-_12_3_32_128_65536_-m_GROUP_4_4_-d_MATRIX_- 56.91
-_12_3_32_128_65536_-m_GROUP_4_8_- 54.68
-_12_3_32_128_65536_-m_BYTWO_b_-r_NOSSE_-d_EUCLID_- 50.64
-_12_3_32_128_65536_-m_BYTWO_b_-r_NOSSE_-d_MATRIX_- 50.55
-_12_3_32_128_65536_-m_BYTWO_b_-r_NOSSE_- 50.75
-_12_3_32_128_65536_-m_BYTWO_p_-r_NOSSE_-d_EUCLID_- 49.50
-_12_3_32_128_65536_-m_BYTWO_p_-r_NOSSE_- 49.14
-_12_3_32_128_65536_-m_BYTWO_p_-r_NOSSE_-d_MATRIX_- 47.39
-_12_3_8_128_65536_-m_SHIFT_-d_EUCLID_- 14.08
-_12_3_8_128_65536_-m_SHIFT_-d_MATRIX_- 14.39
-_12_3_8_128_65536_-m_SHIFT_- 14.48
-_12_3_16_128_65536_-m_SHIFT_-d_EUCLID_- 12.75
-_12_3_16_128_65536_-m_SHIFT_-d_MATRIX_- 12.74
-_12_3_16_128_65536_-m_SHIFT_- 12.77
-_12_3_32_128_65536_-m_SHIFT_-d_MATRIX_- 12.51
-_12_3_32_128_65536_-m_SHIFT_-d_EUCLID_- 12.50
-_12_3_32_128_65536_-m_SHIFT_- 12.46
diff --git a/src/c/jerasure/README b/src/c/jerasure/README
deleted file mode 100644
index 699a60a..0000000
--- a/src/c/jerasure/README
+++ /dev/null
@@ -1,95 +0,0 @@
-This is revision 2.0 of Jerasure. This is pretty much Jerasure 1.2 without the
-original Galois Field backend. Version 2.0 links directly to GF-Complete, which
-is more flexible than the original, and *much* faster, because it leverages SIMD
-instructions.
-Authors: James S. Plank (University of Tennessee)
- Kevin M. Greenan (Box)
-
-------------------------------------------------------------
-
-The online home for jerasure is:
-
- - http://jerasure.org/jerasure/jerasure
-
-------------------------------------------------------------
-
-External Documentation:
-
-See the file Manual.pdf for the programmer's manual and tutorial.
-
-See http://jerasure.org/jerasure/gf-complete for GF-Complete.
-
-NOTE: You must have GF-Complete installed (or compiled) in order to use Jerasure 2.0.
-
-There are two directories of source code:
-
-The src directory contains the jerasure code.
-The Examples directory contains the example programs.
-
-------------------------------------------------------------
-
-If you do not have Autoconf 2.65 or later installed, you can simply build
-from the tarball distribution:
-
-http://www.kaymgee.com/Kevin_Greenan/Software_files/jerasure.tar.gz
-
-Installing if you are allowed to install GF-Complete on your machine:
-(You can skip the autoreconf step if you're using a tarball distribution.)
-
-1.) Install GF-Complete
-2.) autoreconf --force --install (*skip* if you are building from tarball)
-3.) ./configure
-4.) make
-5.) sudo make install
-
-This will install the library into your machine's lib directory,
-the headers into include, and the example programs into bin.
-
-The configuration process assumes shared objects are searched for in
-/usr/local/lib. If this is not the case on your system, you can specify a
-search path at configuration time. For example:
- ./configure LD_LIBRARY_PATH=/usr/local/lib
-
-------------------------------------------------------------
-
-Installing if you can compile GF-Complete, but you cannot install it:
-
-1.) Install GF-Complete. Let's suppose the full path to GF-Complete is
- in the environment variable GFP
-2A.) On Linux, set the environment variable LD_LIBRARY_PATH so that it
- includes $GFP/src/.libs
-2B.) On a mac, set the environment variable DYLD_LIBRARY_PATH so that it
- includes $GFP/src/.libs
-2.) ./configure LDFLAGS=-L$GFP/src/.libs/ CPPFLAGS=-I$GFP/include
-3.) make
-
-The examples will be in the directory Examples. The include files will
-be in the directory include, and the library will be called libJerasure.a
-in the directory src/.libs.
-
-------------------------------------------------------------
-
-As long as GF-Complete is installed, Jerasure 2.0 can be used just as previous
-versions. There is no need to define custom Galois Fields. Jerasure will
-determine the default field to use, if one is not specified.
-
-If you would like to explore a using a different Galois Field implementation,
-please see the manual.
-
-------------------------------------------------------------
-
-Testing GF-Complete
-
-If the GF-Complete tools are installed in /usr/local/bin
-
- make check
-
-If the GF-Complete tools are installed elsewhere
-
- make GF_COMPLETE_DIR=$(pwd)/../gf-complete/tools check
-
-To run some tests with valgrind
-
- make VALGRIND='valgrind --tool=memcheck --quiet' \
- GF_COMPLETE_DIR=$(pwd)/../gf-complete/tools \
- check
diff --git a/src/c/jerasure/aclocal.m4 b/src/c/jerasure/aclocal.m4
deleted file mode 100644
index 0519b0a..0000000
--- a/src/c/jerasure/aclocal.m4
+++ /dev/null
@@ -1,1159 +0,0 @@
-# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
-You have another version of autoconf. It may work, but is not guaranteed to.
-If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-# (This private macro should not be called outside this file.)
-AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.14'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.14.1], [],
- [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-
-# _AM_AUTOCONF_VERSION(VERSION)
-# -----------------------------
-# aclocal traces this macro to find the Autoconf version.
-# This is a private macro too. Using m4_define simplifies
-# the logic in aclocal, which can simply ignore this definition.
-m4_define([_AM_AUTOCONF_VERSION], [])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.14.1])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
-# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is '.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ([2.52])dnl
- m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])dnl
-AC_SUBST([$1_FALSE])dnl
-_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-m4_define([_AM_COND_VALUE_$1], [$2])dnl
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-
-# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
- [$1], [CXX], [depcc="$CXX" am_compiler_list=],
- [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
- [$1], [UPC], [depcc="$UPC" am_compiler_list=],
- [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
- [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_$1_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
- fi
- am__universal=false
- m4_case([$1], [CC],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac],
- [CXX],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac])
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_$1_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE([dependency-tracking], [dnl
-AS_HELP_STRING(
- [--enable-dependency-tracking],
- [do not reject slow dependency extractors])
-AS_HELP_STRING(
- [--disable-dependency-tracking],
- [speeds up one-time build])])
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
- am__nodep='_no'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
-AC_SUBST([am__nodep])dnl
-_AM_SUBST_NOTMAKE([am__nodep])dnl
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[{
- # Older Autoconf quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
- shift
- for mf
- do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named 'Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running 'make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "$am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
- done
-}
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each '.P' file that we will
-# need in order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This macro actually does too much. Some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
-m4_define([AC_PROG_CC],
-m4_defn([AC_PROG_CC])
-[_AM_PROG_CC_C_O
-])
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.65])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[AC_DIAGNOSE([obsolete],
- [$0: two- and three-arguments forms are deprecated.])
-m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(
- m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
- [ok:ok],,
- [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
- AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
-AM_MISSING_PROG([AUTOCONF], [autoconf])
-AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
-AM_MISSING_PROG([AUTOHEADER], [autoheader])
-AM_MISSING_PROG([MAKEINFO], [makeinfo])
-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES([CC])],
- [m4_define([AC_PROG_CC],
- m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES([CXX])],
- [m4_define([AC_PROG_CXX],
- m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
- [_AM_DEPENDENCIES([OBJC])],
- [m4_define([AC_PROG_OBJC],
- m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
- [_AM_DEPENDENCIES([OBJCXX])],
- [m4_define([AC_PROG_OBJCXX],
- m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
-])
-AC_REQUIRE([AM_SILENT_RULES])dnl
-dnl The testsuite driver may need to know about EXEEXT, so add the
-dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
-dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
-AC_CONFIG_COMMANDS_PRE(dnl
-[m4_provide_if([_AM_COMPILER_EXEEXT],
- [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
- fi
-fi])
-
-dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
-dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
-dnl mangled by Autoconf and run in a shell conditional statement.
-m4_define([_AC_COMPILER_EXEEXT],
-m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_arg=$1
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-AC_SUBST([install_sh])])
-
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it is modern enough.
-# If it is, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([missing])dnl
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- AC_MSG_WARN(['missing' script is too old or missing])
-fi
-])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# --------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_CC_C_O
-# ---------------
-# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
-# to automatically call this.
-AC_DEFUN([_AM_PROG_CC_C_O],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-AC_LANG_PUSH([C])dnl
-AC_CACHE_CHECK(
- [whether $CC understands -c and -o together],
- [am_cv_prog_cc_c_o],
- [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i])
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-AC_LANG_POP([C])])
-
-# For backward compatibility.
-AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_RUN_LOG(COMMAND)
-# -------------------
-# Run COMMAND, save the exit status in ac_status, and log it.
-# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
-AC_DEFUN([AM_RUN_LOG],
-[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
- ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- (exit $ac_status); }])
-
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[[\\\"\#\$\&\'\`$am_lf]]*)
- AC_MSG_ERROR([unsafe absolute working directory name]);;
-esac
-case $srcdir in
- *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
- AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
- alias in your environment])
- fi
- if test "$[2]" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT([yes])
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-AC_CONFIG_COMMANDS_PRE(
- [AC_MSG_CHECKING([that generated files are newer than configure])
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- AC_MSG_RESULT([done])])
-rm -f conftest.file
-])
-
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SILENT_RULES([DEFAULT])
-# --------------------------
-# Enable less verbose build rules; with the default set to DEFAULT
-# ("yes" being less verbose, "no" or empty being verbose).
-AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules], [dnl
-AS_HELP_STRING(
- [--enable-silent-rules],
- [less verbose build output (undo: "make V=1")])
-AS_HELP_STRING(
- [--disable-silent-rules],
- [verbose build output (undo: "make V=0")])dnl
-])
-case $enable_silent_rules in @%:@ (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
-esac
-dnl
-dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
-dnl do not support nested variable expansions.
-dnl See automake bug#9928 and bug#10237.
-am_make=${MAKE-make}
-AC_CACHE_CHECK([whether $am_make supports nested variables],
- [am_cv_make_support_nested_variables],
- [if AS_ECHO([['TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi])
-if test $am_cv_make_support_nested_variables = yes; then
- dnl Using '$V' instead of '$(V)' breaks IRIX make.
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AC_SUBST([AM_V])dnl
-AM_SUBST_NOTMAKE([AM_V])dnl
-AC_SUBST([AM_DEFAULT_V])dnl
-AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
-AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
-AM_BACKSLASH='\'
-AC_SUBST([AM_BACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
-])
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor 'install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in "make install-strip", and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Copyright (C) 2006-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
-# This macro is traced by Automake.
-AC_DEFUN([_AM_SUBST_NOTMAKE])
-
-# AM_SUBST_NOTMAKE(VARIABLE)
-# --------------------------
-# Public sister of _AM_SUBST_NOTMAKE.
-AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of 'v7', 'ustar', or 'pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-#
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AC_SUBST([AMTAR], ['$${TAR-tar}'])
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-
-m4_if([$1], [v7],
- [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-
- [m4_case([$1],
- [ustar],
- [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
- # There is notably a 21 bits limit for the UID and the GID. In fact,
- # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
- # and bug#13588).
- am_max_uid=2097151 # 2^21 - 1
- am_max_gid=$am_max_uid
- # The $UID and $GID variables are not portable, so we need to resort
- # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
- # below are definitely unexpected, so allow the users to see them
- # (that is, avoid stderr redirection).
- am_uid=`id -u || echo unknown`
- am_gid=`id -g || echo unknown`
- AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
- if test $am_uid -le $am_max_uid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi
- AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
- if test $am_gid -le $am_max_gid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi],
-
- [pax],
- [],
-
- [m4_fatal([Unknown tar format])])
-
- AC_MSG_CHECKING([how to create a $1 tar archive])
-
- # Go ahead even if we have the value already cached. We do so because we
- # need to set the values for the 'am__tar' and 'am__untar' variables.
- _am_tools=${am_cv_prog_tar_$1-$_am_tools}
-
- for _am_tool in $_am_tools; do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar; do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works.
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- AM_RUN_LOG([cat conftest.dir/file])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
- done
- rm -rf conftest.dir
-
- AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
- AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([m4/ax_check_compile_flag.m4])
-m4_include([m4/ax_ext.m4])
-m4_include([m4/ax_gcc_x86_avx_xgetbv.m4])
-m4_include([m4/ax_gcc_x86_cpuid.m4])
-m4_include([m4/ax_require_defined.m4])
-m4_include([m4/libtool.m4])
-m4_include([m4/ltoptions.m4])
-m4_include([m4/ltsugar.m4])
-m4_include([m4/ltversion.m4])
-m4_include([m4/lt~obsolete.m4])
diff --git a/src/c/jerasure/build-aux/compile b/src/c/jerasure/build-aux/compile
deleted file mode 100755
index 531136b..0000000
--- a/src/c/jerasure/build-aux/compile
+++ /dev/null
@@ -1,347 +0,0 @@
-#! /bin/sh
-# Wrapper for compilers which do not understand '-c -o'.
-
-scriptversion=2012-10-14.11; # UTC
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-# Written by Tom Tromey <tromey@cygnus.com>.
-#
-# This program 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 2, 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 file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-nl='
-'
-
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent tools from complaining about whitespace usage.
-IFS=" "" $nl"
-
-file_conv=
-
-# func_file_conv build_file lazy
-# Convert a $build file to $host form and store it in $file
-# Currently only supports Windows hosts. If the determined conversion
-# type is listed in (the comma separated) LAZY, no conversion will
-# take place.
-func_file_conv ()
-{
- file=$1
- case $file in
- / | /[!/]*) # absolute file, and not a UNC file
- if test -z "$file_conv"; then
- # lazily determine how to convert abs files
- case `uname -s` in
- MINGW*)
- file_conv=mingw
- ;;
- CYGWIN*)
- file_conv=cygwin
- ;;
- *)
- file_conv=wine
- ;;
- esac
- fi
- case $file_conv/,$2, in
- *,$file_conv,*)
- ;;
- mingw/*)
- file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
- ;;
- cygwin/*)
- file=`cygpath -m "$file" || echo "$file"`
- ;;
- wine/*)
- file=`winepath -w "$file" || echo "$file"`
- ;;
- esac
- ;;
- esac
-}
-
-# func_cl_dashL linkdir
-# Make cl look for libraries in LINKDIR
-func_cl_dashL ()
-{
- func_file_conv "$1"
- if test -z "$lib_path"; then
- lib_path=$file
- else
- lib_path="$lib_path;$file"
- fi
- linker_opts="$linker_opts -LIBPATH:$file"
-}
-
-# func_cl_dashl library
-# Do a library search-path lookup for cl
-func_cl_dashl ()
-{
- lib=$1
- found=no
- save_IFS=$IFS
- IFS=';'
- for dir in $lib_path $LIB
- do
- IFS=$save_IFS
- if $shared && test -f "$dir/$lib.dll.lib"; then
- found=yes
- lib=$dir/$lib.dll.lib
- break
- fi
- if test -f "$dir/$lib.lib"; then
- found=yes
- lib=$dir/$lib.lib
- break
- fi
- if test -f "$dir/lib$lib.a"; then
- found=yes
- lib=$dir/lib$lib.a
- break
- fi
- done
- IFS=$save_IFS
-
- if test "$found" != yes; then
- lib=$lib.lib
- fi
-}
-
-# func_cl_wrapper cl arg...
-# Adjust compile command to suit cl
-func_cl_wrapper ()
-{
- # Assume a capable shell
- lib_path=
- shared=:
- linker_opts=
- for arg
- do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- eat=1
- case $2 in
- *.o | *.[oO][bB][jJ])
- func_file_conv "$2"
- set x "$@" -Fo"$file"
- shift
- ;;
- *)
- func_file_conv "$2"
- set x "$@" -Fe"$file"
- shift
- ;;
- esac
- ;;
- -I)
- eat=1
- func_file_conv "$2" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -I*)
- func_file_conv "${1#-I}" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -l)
- eat=1
- func_cl_dashl "$2"
- set x "$@" "$lib"
- shift
- ;;
- -l*)
- func_cl_dashl "${1#-l}"
- set x "$@" "$lib"
- shift
- ;;
- -L)
- eat=1
- func_cl_dashL "$2"
- ;;
- -L*)
- func_cl_dashL "${1#-L}"
- ;;
- -static)
- shared=false
- ;;
- -Wl,*)
- arg=${1#-Wl,}
- save_ifs="$IFS"; IFS=','
- for flag in $arg; do
- IFS="$save_ifs"
- linker_opts="$linker_opts $flag"
- done
- IFS="$save_ifs"
- ;;
- -Xlinker)
- eat=1
- linker_opts="$linker_opts $2"
- ;;
- -*)
- set x "$@" "$1"
- shift
- ;;
- *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
- func_file_conv "$1"
- set x "$@" -Tp"$file"
- shift
- ;;
- *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
- func_file_conv "$1" mingw
- set x "$@" "$file"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
- done
- if test -n "$linker_opts"; then
- linker_opts="-link$linker_opts"
- fi
- exec "$@" $linker_opts
- exit 1
-}
-
-eat=
-
-case $1 in
- '')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: compile [--help] [--version] PROGRAM [ARGS]
-
-Wrapper for compilers which do not understand '-c -o'.
-Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
-arguments, and rename the output as expected.
-
-If you are trying to build a whole package this is not the
-right script to run: please start by reading the file 'INSTALL'.
-
-Report bugs to <bug-automake@gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "compile $scriptversion"
- exit $?
- ;;
- cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
- func_cl_wrapper "$@" # Doesn't return...
- ;;
-esac
-
-ofile=
-cfile=
-
-for arg
-do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- # So we strip '-o arg' only if arg is an object.
- eat=1
- case $2 in
- *.o | *.obj)
- ofile=$2
- ;;
- *)
- set x "$@" -o "$2"
- shift
- ;;
- esac
- ;;
- *.c)
- cfile=$1
- set x "$@" "$1"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
-done
-
-if test -z "$ofile" || test -z "$cfile"; then
- # If no '-o' option was seen then we might have been invoked from a
- # pattern rule where we don't need one. That is ok -- this is a
- # normal compilation that the losing compiler can handle. If no
- # '.c' file was seen then we are probably linking. That is also
- # ok.
- exec "$@"
-fi
-
-# Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
-
-# Create the lock directory.
-# Note: use '[/\\:.-]' here to ensure that we don't use the same name
-# that we are using for the .o file. Also, base the name on the expected
-# object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
-while true; do
- if mkdir "$lockdir" >/dev/null 2>&1; then
- break
- fi
- sleep 1
-done
-# FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir '$lockdir'; exit 1" 1 2 15
-
-# Run the compile.
-"$@"
-ret=$?
-
-if test -f "$cofile"; then
- test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
-elif test -f "${cofile}bj"; then
- test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
-fi
-
-rmdir "$lockdir"
-exit $ret
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# 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:
diff --git a/src/c/jerasure/build-aux/config.guess b/src/c/jerasure/build-aux/config.guess
deleted file mode 100755
index b79252d..0000000
--- a/src/c/jerasure/build-aux/config.guess
+++ /dev/null
@@ -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:
diff --git a/src/c/jerasure/build-aux/config.sub b/src/c/jerasure/build-aux/config.sub
deleted file mode 100755
index 9633db7..0000000
--- a/src/c/jerasure/build-aux/config.sub
+++ /dev/null
@@ -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:
diff --git a/src/c/jerasure/build-aux/depcomp b/src/c/jerasure/build-aux/depcomp
deleted file mode 100755
index 4ebd5b3..0000000
--- a/src/c/jerasure/build-aux/depcomp
+++ /dev/null
@@ -1,791 +0,0 @@
-#! /bin/sh
-# depcomp - compile a program generating dependencies as side-effects
-
-scriptversion=2013-05-30.07; # UTC
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-
-# This program 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 2, 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.
-
-# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
-
-case $1 in
- '')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: depcomp [--help] [--version] PROGRAM [ARGS]
-
-Run PROGRAMS ARGS to compile a file, generating dependencies
-as side-effects.
-
-Environment variables:
- depmode Dependency tracking mode.
- source Source file read by 'PROGRAMS ARGS'.
- object Object file output by 'PROGRAMS ARGS'.
- DEPDIR directory where to store dependencies.
- depfile Dependency file to output.
- tmpdepfile Temporary file to use when outputting dependencies.
- libtool Whether libtool is used (yes/no).
-
-Report bugs to <bug-automake@gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "depcomp $scriptversion"
- exit $?
- ;;
-esac
-
-# Get the directory component of the given path, and save it in the
-# global variables '$dir'. Note that this directory component will
-# be either empty or ending with a '/' character. This is deliberate.
-set_dir_from ()
-{
- case $1 in
- */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
- *) dir=;;
- esac
-}
-
-# Get the suffix-stripped basename of the given path, and save it the
-# global variable '$base'.
-set_base_from ()
-{
- base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
-}
-
-# If no dependency file was actually created by the compiler invocation,
-# we still have to create a dummy depfile, to avoid errors with the
-# Makefile "include basename.Plo" scheme.
-make_dummy_depfile ()
-{
- echo "#dummy" > "$depfile"
-}
-
-# Factor out some common post-processing of the generated depfile.
-# Requires the auxiliary global variable '$tmpdepfile' to be set.
-aix_post_process_depfile ()
-{
- # If the compiler actually managed to produce a dependency file,
- # post-process it.
- if test -f "$tmpdepfile"; then
- # Each line is of the form 'foo.o: dependency.h'.
- # Do two passes, one to just change these to
- # $object: dependency.h
- # and one to simply output
- # dependency.h:
- # which is needed to avoid the deleted-header problem.
- { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
- sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
- } > "$depfile"
- rm -f "$tmpdepfile"
- else
- make_dummy_depfile
- fi
-}
-
-# A tabulation character.
-tab=' '
-# A newline character.
-nl='
-'
-# Character ranges might be problematic outside the C locale.
-# These definitions help.
-upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
-lower=abcdefghijklmnopqrstuvwxyz
-digits=0123456789
-alpha=${upper}${lower}
-
-if test -z "$depmode" || test -z "$source" || test -z "$object"; then
- echo "depcomp: Variables source, object and depmode must be set" 1>&2
- exit 1
-fi
-
-# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
-depfile=${depfile-`echo "$object" |
- sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
-tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
-
-rm -f "$tmpdepfile"
-
-# Avoid interferences from the environment.
-gccflag= dashmflag=
-
-# Some modes work just like other modes, but use different flags. We
-# parameterize here, but still list the modes in the big case below,
-# to make depend.m4 easier to write. Note that we *cannot* use a case
-# here, because this file can only contain one case statement.
-if test "$depmode" = hp; then
- # HP compiler uses -M and no extra arg.
- gccflag=-M
- depmode=gcc
-fi
-
-if test "$depmode" = dashXmstdout; then
- # This is just like dashmstdout with a different argument.
- dashmflag=-xM
- depmode=dashmstdout
-fi
-
-cygpath_u="cygpath -u -f -"
-if test "$depmode" = msvcmsys; then
- # This is just like msvisualcpp but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvisualcpp
-fi
-
-if test "$depmode" = msvc7msys; then
- # This is just like msvc7 but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvc7
-fi
-
-if test "$depmode" = xlc; then
- # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
- gccflag=-qmakedep=gcc,-MF
- depmode=gcc
-fi
-
-case "$depmode" in
-gcc3)
-## gcc 3 implements dependency tracking that does exactly what
-## we want. Yay! Note: for some reason libtool 1.4 doesn't like
-## it if -MD -MP comes after the -MF stuff. Hmm.
-## Unfortunately, FreeBSD c89 acceptance of flags depends upon
-## the command line argument order; so add the flags where they
-## appear in depend2.am. Note that the slowdown incurred here
-## affects only configure: in makefiles, %FASTDEP% shortcuts this.
- for arg
- do
- case $arg in
- -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
- *) set fnord "$@" "$arg" ;;
- esac
- shift # fnord
- shift # $arg
- done
- "$@"
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- mv "$tmpdepfile" "$depfile"
- ;;
-
-gcc)
-## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
-## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
-## (see the conditional assignment to $gccflag above).
-## There are various ways to get dependency output from gcc. Here's
-## why we pick this rather obscure method:
-## - Don't want to use -MD because we'd like the dependencies to end
-## up in a subdir. Having to rename by hand is ugly.
-## (We might end up doing this anyway to support other compilers.)
-## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-## -MM, not -M (despite what the docs say). Also, it might not be
-## supported by the other compilers which use the 'gcc' depmode.
-## - Using -M directly means running the compiler twice (even worse
-## than renaming).
- if test -z "$gccflag"; then
- gccflag=-MD,
- fi
- "$@" -Wp,"$gccflag$tmpdepfile"
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- # The second -e expression handles DOS-style file names with drive
- # letters.
- sed -e 's/^[^:]*: / /' \
- -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the "deleted header file" problem.
-## The problem is that when a header file which appears in a .P file
-## is deleted, the dependency causes make to die (because there is
-## typically no way to rebuild the header). We avoid this by adding
-## dummy dependencies for each header file. Too bad gcc doesn't do
-## this for us directly.
-## Some versions of gcc put a space before the ':'. On the theory
-## that the space means something, we add a space to the output as
-## well. hp depmode also adds that space, but also prefixes the VPATH
-## to the object. Take care to not repeat it in the output.
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-sgi)
- if test "$libtool" = yes; then
- "$@" "-Wp,-MDupdate,$tmpdepfile"
- else
- "$@" -MDupdate "$tmpdepfile"
- fi
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
-
- if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
- echo "$object : \\" > "$depfile"
- # Clip off the initial element (the dependent). Don't try to be
- # clever and replace this with sed code, as IRIX sed won't handle
- # lines with more than a fixed number of characters (4096 in
- # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
- # the IRIX cc adds comments like '#:fec' to the end of the
- # dependency line.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
- | tr "$nl" ' ' >> "$depfile"
- echo >> "$depfile"
- # The second pass generates a dummy entry for each header file.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
- >> "$depfile"
- else
- make_dummy_depfile
- fi
- rm -f "$tmpdepfile"
- ;;
-
-xlc)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-aix)
- # The C for AIX Compiler uses -M and outputs the dependencies
- # in a .u file. In older versions, this file always lives in the
- # current directory. Also, the AIX compiler puts '$object:' at the
- # start of each line; $object doesn't have directory information.
- # Version 6 uses the directory in both cases.
- set_dir_from "$object"
- set_base_from "$object"
- if test "$libtool" = yes; then
- tmpdepfile1=$dir$base.u
- tmpdepfile2=$base.u
- tmpdepfile3=$dir.libs/$base.u
- "$@" -Wc,-M
- else
- tmpdepfile1=$dir$base.u
- tmpdepfile2=$dir$base.u
- tmpdepfile3=$dir$base.u
- "$@" -M
- fi
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- do
- test -f "$tmpdepfile" && break
- done
- aix_post_process_depfile
- ;;
-
-tcc)
- # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
- # FIXME: That version still under development at the moment of writing.
- # Make that this statement remains true also for stable, released
- # versions.
- # It will wrap lines (doesn't matter whether long or short) with a
- # trailing '\', as in:
- #
- # foo.o : \
- # foo.c \
- # foo.h \
- #
- # It will put a trailing '\' even on the last line, and will use leading
- # spaces rather than leading tabs (at least since its commit 0394caf7
- # "Emit spaces for -MD").
- "$@" -MD -MF "$tmpdepfile"
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
- # We have to change lines of the first kind to '$object: \'.
- sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
- # And for each line of the second kind, we have to emit a 'dep.h:'
- # dummy dependency, to avoid the deleted-header problem.
- sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-## The order of this option in the case statement is important, since the
-## shell code in configure will try each of these formats in the order
-## listed in this file. A plain '-MD' option would be understood by many
-## compilers, so we must ensure this comes after the gcc and icc options.
-pgcc)
- # Portland's C compiler understands '-MD'.
- # Will always output deps to 'file.d' where file is the root name of the
- # source file under compilation, even if file resides in a subdirectory.
- # The object file name does not affect the name of the '.d' file.
- # pgcc 10.2 will output
- # foo.o: sub/foo.c sub/foo.h
- # and will wrap long lines using '\' :
- # foo.o: sub/foo.c ... \
- # sub/foo.h ... \
- # ...
- set_dir_from "$object"
- # Use the source, not the object, to determine the base name, since
- # that's sadly what pgcc will do too.
- set_base_from "$source"
- tmpdepfile=$base.d
-
- # For projects that build the same source file twice into different object
- # files, the pgcc approach of using the *source* file root name can cause
- # problems in parallel builds. Use a locking strategy to avoid stomping on
- # the same $tmpdepfile.
- lockdir=$base.d-lock
- trap "
- echo '$0: caught signal, cleaning up...' >&2
- rmdir '$lockdir'
- exit 1
- " 1 2 13 15
- numtries=100
- i=$numtries
- while test $i -gt 0; do
- # mkdir is a portable test-and-set.
- if mkdir "$lockdir" 2>/dev/null; then
- # This process acquired the lock.
- "$@" -MD
- stat=$?
- # Release the lock.
- rmdir "$lockdir"
- break
- else
- # If the lock is being held by a different process, wait
- # until the winning process is done or we timeout.
- while test -d "$lockdir" && test $i -gt 0; do
- sleep 1
- i=`expr $i - 1`
- done
- fi
- i=`expr $i - 1`
- done
- trap - 1 2 13 15
- if test $i -le 0; then
- echo "$0: failed to acquire lock after $numtries attempts" >&2
- echo "$0: check lockdir '$lockdir'" >&2
- exit 1
- fi
-
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- # Each line is of the form `foo.o: dependent.h',
- # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
- # Do two passes, one to just change these to
- # `$object: dependent.h' and one to simply `dependent.h:'.
- sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process this invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp2)
- # The "hp" stanza above does not work with aCC (C++) and HP's ia64
- # compilers, which have integrated preprocessors. The correct option
- # to use with these is +Maked; it writes dependencies to a file named
- # 'foo.d', which lands next to the object file, wherever that
- # happens to be.
- # Much of this is similar to the tru64 case; see comments there.
- set_dir_from "$object"
- set_base_from "$object"
- if test "$libtool" = yes; then
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir.libs/$base.d
- "$@" -Wc,+Maked
- else
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir$base.d
- "$@" +Maked
- fi
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile1" "$tmpdepfile2"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
- # Add 'dependent.h:' lines.
- sed -ne '2,${
- s/^ *//
- s/ \\*$//
- s/$/:/
- p
- }' "$tmpdepfile" >> "$depfile"
- else
- make_dummy_depfile
- fi
- rm -f "$tmpdepfile" "$tmpdepfile2"
- ;;
-
-tru64)
- # The Tru64 compiler uses -MD to generate dependencies as a side
- # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
- # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
- # dependencies in 'foo.d' instead, so we check for that too.
- # Subdirectories are respected.
- set_dir_from "$object"
- set_base_from "$object"
-
- if test "$libtool" = yes; then
- # Libtool generates 2 separate objects for the 2 libraries. These
- # two compilations output dependencies in $dir.libs/$base.o.d and
- # in $dir$base.o.d. We have to check for both files, because
- # one of the two compilations can be disabled. We should prefer
- # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
- # automatically cleaned when .libs/ is deleted, while ignoring
- # the former would cause a distcleancheck panic.
- tmpdepfile1=$dir$base.o.d # libtool 1.5
- tmpdepfile2=$dir.libs/$base.o.d # Likewise.
- tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
- "$@" -Wc,-MD
- else
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir$base.d
- tmpdepfile3=$dir$base.d
- "$@" -MD
- fi
-
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- do
- test -f "$tmpdepfile" && break
- done
- # Same post-processing that is required for AIX mode.
- aix_post_process_depfile
- ;;
-
-msvc7)
- if test "$libtool" = yes; then
- showIncludes=-Wc,-showIncludes
- else
- showIncludes=-showIncludes
- fi
- "$@" $showIncludes > "$tmpdepfile"
- stat=$?
- grep -v '^Note: including file: ' "$tmpdepfile"
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- # The first sed program below extracts the file names and escapes
- # backslashes for cygpath. The second sed program outputs the file
- # name when reading, but also accumulates all include files in the
- # hold buffer in order to output them again at the end. This only
- # works with sed implementations that can handle large buffers.
- sed < "$tmpdepfile" -n '
-/^Note: including file: *\(.*\)/ {
- s//\1/
- s/\\/\\\\/g
- p
-}' | $cygpath_u | sort -u | sed -n '
-s/ /\\ /g
-s/\(.*\)/'"$tab"'\1 \\/p
-s/.\(.*\) \\/\1:/
-H
-$ {
- s/.*/'"$tab"'/
- G
- p
-}' >> "$depfile"
- echo >> "$depfile" # make sure the fragment doesn't end with a backslash
- rm -f "$tmpdepfile"
- ;;
-
-msvc7msys)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-#nosideeffect)
- # This comment above is used by automake to tell side-effect
- # dependency tracking mechanisms from slower ones.
-
-dashmstdout)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout, regardless of -o.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- # Remove '-o $object'.
- IFS=" "
- for arg
- do
- case $arg in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift # fnord
- shift # $arg
- ;;
- esac
- done
-
- test -z "$dashmflag" && dashmflag=-M
- # Require at least two characters before searching for ':'
- # in the target name. This is to cope with DOS-style filenames:
- # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
- "$@" $dashmflag |
- sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process this sed invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-dashXmstdout)
- # This case only exists to satisfy depend.m4. It is never actually
- # run, as this mode is specially recognized in the preamble.
- exit 1
- ;;
-
-makedepend)
- "$@" || exit $?
- # Remove any Libtool call
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
- # X makedepend
- shift
- cleared=no eat=no
- for arg
- do
- case $cleared in
- no)
- set ""; shift
- cleared=yes ;;
- esac
- if test $eat = yes; then
- eat=no
- continue
- fi
- case "$arg" in
- -D*|-I*)
- set fnord "$@" "$arg"; shift ;;
- # Strip any option that makedepend may not understand. Remove
- # the object too, otherwise makedepend will parse it as a source file.
- -arch)
- eat=yes ;;
- -*|$object)
- ;;
- *)
- set fnord "$@" "$arg"; shift ;;
- esac
- done
- obj_suffix=`echo "$object" | sed 's/^.*\././'`
- touch "$tmpdepfile"
- ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
- rm -f "$depfile"
- # makedepend may prepend the VPATH from the source file name to the object.
- # No need to regex-escape $object, excess matching of '.' is harmless.
- sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process the last invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- sed '1,2d' "$tmpdepfile" \
- | tr ' ' "$nl" \
- | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile" "$tmpdepfile".bak
- ;;
-
-cpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- # Remove '-o $object'.
- IFS=" "
- for arg
- do
- case $arg in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift # fnord
- shift # $arg
- ;;
- esac
- done
-
- "$@" -E \
- | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- | sed '$ s: \\$::' > "$tmpdepfile"
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- cat < "$tmpdepfile" >> "$depfile"
- sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvisualcpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- IFS=" "
- for arg
- do
- case "$arg" in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
- set fnord "$@"
- shift
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift
- shift
- ;;
- esac
- done
- "$@" -E 2>/dev/null |
- sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
- echo "$tab" >> "$depfile"
- sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvcmsys)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-none)
- exec "$@"
- ;;
-
-*)
- echo "Unknown depmode $depmode" 1>&2
- exit 1
- ;;
-esac
-
-exit 0
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# 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:
diff --git a/src/c/jerasure/build-aux/install-sh b/src/c/jerasure/build-aux/install-sh
deleted file mode 100755
index 377bb86..0000000
--- a/src/c/jerasure/build-aux/install-sh
+++ /dev/null
@@ -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:
diff --git a/src/c/jerasure/build-aux/ltmain.sh b/src/c/jerasure/build-aux/ltmain.sh
deleted file mode 100644
index ca96cb3..0000000
--- a/src/c/jerasure/build-aux/ltmain.sh
+++ /dev/null
@@ -1,9660 +0,0 @@
-
-# libtool (GNU libtool) 2.4.2
-# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010, 2011 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.
-
-# GNU Libtool 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 2 of the License, or
-# (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-# or obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Usage: $progname [OPTION]... [MODE-ARG]...
-#
-# Provide generalized library-building support services.
-#
-# --config show all configuration variables
-# --debug enable verbose shell tracing
-# -n, --dry-run display commands without modifying any files
-# --features display basic configuration information and exit
-# --mode=MODE use operation mode MODE
-# --preserve-dup-deps don't remove duplicate dependency libraries
-# --quiet, --silent don't print informational messages
-# --no-quiet, --no-silent
-# print informational messages (default)
-# --no-warn don't display warning messages
-# --tag=TAG use configuration variables from tag TAG
-# -v, --verbose print more informational messages than default
-# --no-verbose don't print the extra informational messages
-# --version print version information
-# -h, --help, --help-all print short, long, or detailed help message
-#
-# MODE must be one of the following:
-#
-# clean remove files from the build directory
-# compile compile a source file into a libtool object
-# execute automatically set library path, then run a program
-# finish complete the installation of libtool libraries
-# install install libraries or executables
-# link create a library or an executable
-# uninstall remove libraries from an installed directory
-#
-# MODE-ARGS vary depending on the MODE. When passed as first option,
-# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
-# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
-#
-# When reporting a bug, please describe a test case to reproduce it and
-# include the following information:
-#
-# host-triplet: $host
-# shell: $SHELL
-# compiler: $LTCC
-# compiler flags: $LTCFLAGS
-# linker: $LD (gnu? $with_gnu_ld)
-# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1
-# automake: $automake_version
-# autoconf: $autoconf_version
-#
-# Report bugs to <bug-libtool@gnu.org>.
-# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
-# General help using GNU software: <http://www.gnu.org/gethelp/>.
-
-PROGRAM=libtool
-PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.7ubuntu1"
-TIMESTAMP=""
-package_revision=1.3337
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs 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
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-}
-
-# NLS nuisances: We save the old values to restore during execute mode.
-lt_user_locale=
-lt_safe_locale=
-for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-do
- eval "if test \"\${$lt_var+set}\" = set; then
- save_$lt_var=\$$lt_var
- $lt_var=C
- export $lt_var
- lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
- lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
- fi"
-done
-LC_ALL=C
-LANGUAGE=C
-export LANGUAGE LC_ALL
-
-$lt_unset CDPATH
-
-
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
-
-
-
-: ${CP="cp -f"}
-test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
-: ${MAKE="make"}
-: ${MKDIR="mkdir"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
-: ${Xsed="$SED -e 1s/^X//"}
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
-EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
-
-exit_status=$EXIT_SUCCESS
-
-# Make sure IFS has a sensible default
-lt_nl='
-'
-IFS=" $lt_nl"
-
-dirname="s,/[^/]*$,,"
-basename="s,^.*/,,"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
-} # func_dirname may be replaced by extended shell implementation
-
-
-# func_basename file
-func_basename ()
-{
- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-} # func_basename may be replaced by extended shell implementation
-
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-# dirname: Compute the dirname of FILE. If nonempty,
-# add APPEND to the result, otherwise set result
-# to NONDIR_REPLACEMENT.
-# value returned in "$func_dirname_result"
-# basename: Compute filename of FILE.
-# value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
- # Extract subdirectory from the argument.
- func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
- func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-} # func_dirname_and_basename may be replaced by extended shell implementation
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-} # func_stripname may be replaced by extended shell implementation
-
-
-# These SED scripts presuppose an absolute path with a trailing slash.
-pathcar='s,^/\([^/]*\).*$,\1,'
-pathcdr='s,^/[^/]*,,'
-removedotparts=':dotsl
- s@/\./@/@g
- t dotsl
- s,/\.$,/,'
-collapseslashes='s@/\{1,\}@/@g'
-finalslash='s,/*$,/,'
-
-# func_normal_abspath PATH
-# Remove doubled-up and trailing slashes, "." path components,
-# and cancel out any ".." path components in PATH after making
-# it an absolute path.
-# value returned in "$func_normal_abspath_result"
-func_normal_abspath ()
-{
- # Start from root dir and reassemble the path.
- func_normal_abspath_result=
- func_normal_abspath_tpath=$1
- func_normal_abspath_altnamespace=
- case $func_normal_abspath_tpath in
- "")
- # Empty path, that just means $cwd.
- func_stripname '' '/' "`pwd`"
- func_normal_abspath_result=$func_stripname_result
- return
- ;;
- # The next three entries are used to spot a run of precisely
- # two leading slashes without using negated character classes;
- # we take advantage of case's first-match behaviour.
- ///*)
- # Unusual form of absolute path, do nothing.
- ;;
- //*)
- # Not necessarily an ordinary path; POSIX reserves leading '//'
- # and for example Cygwin uses it to access remote file shares
- # over CIFS/SMB, so we conserve a leading double slash if found.
- func_normal_abspath_altnamespace=/
- ;;
- /*)
- # Absolute path, do nothing.
- ;;
- *)
- # Relative path, prepend $cwd.
- func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
- ;;
- esac
- # Cancel out all the simple stuff to save iterations. We also want
- # the path to end with a slash for ease of parsing, so make sure
- # there is one (and only one) here.
- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
- while :; do
- # Processed it all yet?
- if test "$func_normal_abspath_tpath" = / ; then
- # If we ascended to the root using ".." the result may be empty now.
- if test -z "$func_normal_abspath_result" ; then
- func_normal_abspath_result=/
- fi
- break
- fi
- func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$pathcar"`
- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$pathcdr"`
- # Figure out what to do with it
- case $func_normal_abspath_tcomponent in
- "")
- # Trailing empty path component, ignore it.
- ;;
- ..)
- # Parent dir; strip last assembled component from result.
- func_dirname "$func_normal_abspath_result"
- func_normal_abspath_result=$func_dirname_result
- ;;
- *)
- # Actual path component, append it.
- func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
- ;;
- esac
- done
- # Restore leading double-slash if one was found on entry.
- func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
-}
-
-# func_relative_path SRCDIR DSTDIR
-# generates a relative path from SRCDIR to DSTDIR, with a trailing
-# slash if non-empty, suitable for immediately appending a filename
-# without needing to append a separator.
-# value returned in "$func_relative_path_result"
-func_relative_path ()
-{
- func_relative_path_result=
- func_normal_abspath "$1"
- func_relative_path_tlibdir=$func_normal_abspath_result
- func_normal_abspath "$2"
- func_relative_path_tbindir=$func_normal_abspath_result
-
- # Ascend the tree starting from libdir
- while :; do
- # check if we have found a prefix of bindir
- case $func_relative_path_tbindir in
- $func_relative_path_tlibdir)
- # found an exact match
- func_relative_path_tcancelled=
- break
- ;;
- $func_relative_path_tlibdir*)
- # found a matching prefix
- func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
- func_relative_path_tcancelled=$func_stripname_result
- if test -z "$func_relative_path_result"; then
- func_relative_path_result=.
- fi
- break
- ;;
- *)
- func_dirname $func_relative_path_tlibdir
- func_relative_path_tlibdir=${func_dirname_result}
- if test "x$func_relative_path_tlibdir" = x ; then
- # Have to descend all the way to the root!
- func_relative_path_result=../$func_relative_path_result
- func_relative_path_tcancelled=$func_relative_path_tbindir
- break
- fi
- func_relative_path_result=../$func_relative_path_result
- ;;
- esac
- done
-
- # Now calculate path; take care to avoid doubling-up slashes.
- func_stripname '' '/' "$func_relative_path_result"
- func_relative_path_result=$func_stripname_result
- func_stripname '/' '/' "$func_relative_path_tcancelled"
- if test "x$func_stripname_result" != x ; then
- func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
- fi
-
- # Normalisation. If bindir is libdir, return empty string,
- # else relative path ending with a slash; either way, target
- # file name can be directly appended.
- if test ! -z "$func_relative_path_result"; then
- func_stripname './' '' "$func_relative_path_result/"
- func_relative_path_result=$func_stripname_result
- fi
-}
-
-# The name of this program:
-func_dirname_and_basename "$progpath"
-progname=$func_basename_result
-
-# Make sure we have an absolute path for reexecution:
-case $progpath in
- [\\/]*|[A-Za-z]:\\*) ;;
- *[\\/]*)
- progdir=$func_dirname_result
- progdir=`cd "$progdir" && pwd`
- progpath="$progdir/$progname"
- ;;
- *)
- save_IFS="$IFS"
- IFS=${PATH_SEPARATOR-:}
- for progdir in $PATH; do
- IFS="$save_IFS"
- test -x "$progdir/$progname" && break
- done
- IFS="$save_IFS"
- test -n "$progdir" || progdir=`pwd`
- progpath="$progdir/$progname"
- ;;
-esac
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution that turns a string into a regex matching for the
-# string literally.
-sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
-
-# Sed substitution that converts a w32 file name or path
-# which contains forward slashes, into one that contains
-# (escaped) backslashes. A very naive implementation.
-lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-
-# Re-`\' parameter expansions in output of double_quote_subst that were
-# `\'-ed in input to the same. If an odd number of `\' preceded a '$'
-# in input to double_quote_subst, that '$' was protected from expansion.
-# Since each input `\' is now two `\'s, look for any number of runs of
-# four `\'s followed by two `\'s and then a '$'. `\' that '$'.
-bs='\\'
-bs2='\\\\'
-bs4='\\\\\\\\'
-dollar='\$'
-sed_double_backslash="\
- s/$bs4/&\\
-/g
- s/^$bs2$dollar/$bs&/
- s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
- s/\n//g"
-
-# Standard options:
-opt_dry_run=false
-opt_help=false
-opt_quiet=false
-opt_verbose=false
-opt_warning=:
-
-# func_echo arg...
-# Echo program name prefixed message, along with the current mode
-# name if it has been set yet.
-func_echo ()
-{
- $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-}
-
-# func_verbose arg...
-# Echo program name prefixed message in verbose mode only.
-func_verbose ()
-{
- $opt_verbose && func_echo ${1+"$@"}
-
- # A bug in bash halts the script if the last line of a function
- # fails when set -e is in force, so we need another command to
- # work around that:
- :
-}
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-# func_error arg...
-# Echo program name prefixed message to standard error.
-func_error ()
-{
- $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-}
-
-# func_warning arg...
-# Echo program name prefixed warning message to standard error.
-func_warning ()
-{
- $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-
- # bash bug again:
- :
-}
-
-# func_fatal_error arg...
-# Echo program name prefixed message to standard error, and exit.
-func_fatal_error ()
-{
- func_error ${1+"$@"}
- exit $EXIT_FAILURE
-}
-
-# func_fatal_help arg...
-# Echo program name prefixed message to standard error, followed by
-# a help hint, and exit.
-func_fatal_help ()
-{
- func_error ${1+"$@"}
- func_fatal_error "$help"
-}
-help="Try \`$progname --help' for more information." ## default
-
-
-# func_grep expression filename
-# Check whether EXPRESSION matches any line of FILENAME, without output.
-func_grep ()
-{
- $GREP "$1" "$2" >/dev/null 2>&1
-}
-
-
-# func_mkdir_p directory-path
-# Make sure the entire path to DIRECTORY-PATH is available.
-func_mkdir_p ()
-{
- my_directory_path="$1"
- my_dir_list=
-
- if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
-
- # Protect directory names starting with `-'
- case $my_directory_path in
- -*) my_directory_path="./$my_directory_path" ;;
- esac
-
- # While some portion of DIR does not yet exist...
- while test ! -d "$my_directory_path"; do
- # ...make a list in topmost first order. Use a colon delimited
- # list incase some portion of path contains whitespace.
- my_dir_list="$my_directory_path:$my_dir_list"
-
- # If the last portion added has no slash in it, the list is done
- case $my_directory_path in */*) ;; *) break ;; esac
-
- # ...otherwise throw away the child directory and loop
- my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
- done
- my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
-
- save_mkdir_p_IFS="$IFS"; IFS=':'
- for my_dir in $my_dir_list; do
- IFS="$save_mkdir_p_IFS"
- # mkdir can fail with a `File exist' error if two processes
- # try to create one of the directories concurrently. Don't
- # stop in that case!
- $MKDIR "$my_dir" 2>/dev/null || :
- done
- IFS="$save_mkdir_p_IFS"
-
- # Bail out if we (or some other process) failed to create a directory.
- test -d "$my_directory_path" || \
- func_fatal_error "Failed to create \`$1'"
- fi
-}
-
-
-# func_mktempdir [string]
-# Make a temporary directory that won't clash with other running
-# libtool processes, and avoids race conditions if possible. If
-# given, STRING is the basename for that directory.
-func_mktempdir ()
-{
- my_template="${TMPDIR-/tmp}/${1-$progname}"
-
- if test "$opt_dry_run" = ":"; then
- # Return a directory name, but don't create it in dry-run mode
- my_tmpdir="${my_template}-$$"
- else
-
- # If mktemp works, use that first and foremost
- my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
-
- if test ! -d "$my_tmpdir"; then
- # Failing that, at least try and use $RANDOM to avoid a race
- my_tmpdir="${my_template}-${RANDOM-0}$$"
-
- save_mktempdir_umask=`umask`
- umask 0077
- $MKDIR "$my_tmpdir"
- umask $save_mktempdir_umask
- fi
-
- # If we're not in dry-run mode, bomb out on failure
- test -d "$my_tmpdir" || \
- func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
- fi
-
- $ECHO "$my_tmpdir"
-}
-
-
-# func_quote_for_eval arg
-# Aesthetically quote ARG to be evaled later.
-# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
-# is double-quoted, suitable for a subsequent eval, whereas
-# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
-# which are still active within double quotes backslashified.
-func_quote_for_eval ()
-{
- case $1 in
- *[\\\`\"\$]*)
- func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
- *)
- func_quote_for_eval_unquoted_result="$1" ;;
- esac
-
- case $func_quote_for_eval_unquoted_result in
- # Double-quote args containing shell metacharacters to delay
- # word splitting, command substitution and and variable
- # expansion for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
- ;;
- *)
- func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
- esac
-}
-
-
-# func_quote_for_expand arg
-# Aesthetically quote ARG to be evaled later; same as above,
-# but do not quote variable references.
-func_quote_for_expand ()
-{
- case $1 in
- *[\\\`\"]*)
- my_arg=`$ECHO "$1" | $SED \
- -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
- *)
- my_arg="$1" ;;
- esac
-
- case $my_arg in
- # Double-quote args containing shell metacharacters to delay
- # word splitting and command substitution for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- my_arg="\"$my_arg\""
- ;;
- esac
-
- func_quote_for_expand_result="$my_arg"
-}
-
-
-# func_show_eval cmd [fail_exp]
-# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.
-func_show_eval ()
-{
- my_cmd="$1"
- my_fail_exp="${2-:}"
-
- ${opt_silent-false} || {
- func_quote_for_expand "$my_cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
-
- if ${opt_dry_run-false}; then :; else
- eval "$my_cmd"
- my_status=$?
- if test "$my_status" -eq 0; then :; else
- eval "(exit $my_status); $my_fail_exp"
- fi
- fi
-}
-
-
-# func_show_eval_locale cmd [fail_exp]
-# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it. Use the saved locale for evaluation.
-func_show_eval_locale ()
-{
- my_cmd="$1"
- my_fail_exp="${2-:}"
-
- ${opt_silent-false} || {
- func_quote_for_expand "$my_cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
-
- if ${opt_dry_run-false}; then :; else
- eval "$lt_user_locale
- $my_cmd"
- my_status=$?
- eval "$lt_safe_locale"
- if test "$my_status" -eq 0; then :; else
- eval "(exit $my_status); $my_fail_exp"
- fi
- fi
-}
-
-# func_tr_sh
-# Turn $1 into a string suitable for a shell variable name.
-# Result is stored in $func_tr_sh_result. All characters
-# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
-# if $1 begins with a digit, a '_' is prepended as well.
-func_tr_sh ()
-{
- case $1 in
- [0-9]* | *[!a-zA-Z0-9_]*)
- func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
- ;;
- * )
- func_tr_sh_result=$1
- ;;
- esac
-}
-
-
-# func_version
-# Echo version message to standard output and exit.
-func_version ()
-{
- $opt_debug
-
- $SED -n '/(C)/!b go
- :more
- /\./!{
- N
- s/\n# / /
- b more
- }
- :go
- /^# '$PROGRAM' (GNU /,/# warranty; / {
- s/^# //
- s/^# *$//
- s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
- p
- }' < "$progpath"
- exit $?
-}
-
-# func_usage
-# Echo short help message to standard output and exit.
-func_usage ()
-{
- $opt_debug
-
- $SED -n '/^# Usage:/,/^# *.*--help/ {
- s/^# //
- s/^# *$//
- s/\$progname/'$progname'/
- p
- }' < "$progpath"
- echo
- $ECHO "run \`$progname --help | more' for full usage"
- exit $?
-}
-
-# func_help [NOEXIT]
-# Echo long help message to standard output and exit,
-# unless 'noexit' is passed as argument.
-func_help ()
-{
- $opt_debug
-
- $SED -n '/^# Usage:/,/# Report bugs to/ {
- :print
- s/^# //
- s/^# *$//
- s*\$progname*'$progname'*
- s*\$host*'"$host"'*
- s*\$SHELL*'"$SHELL"'*
- s*\$LTCC*'"$LTCC"'*
- s*\$LTCFLAGS*'"$LTCFLAGS"'*
- s*\$LD*'"$LD"'*
- s/\$with_gnu_ld/'"$with_gnu_ld"'/
- s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
- s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
- p
- d
- }
- /^# .* home page:/b print
- /^# General help using/b print
- ' < "$progpath"
- ret=$?
- if test -z "$1"; then
- exit $ret
- fi
-}
-
-# func_missing_arg argname
-# Echo program name prefixed message to standard error and set global
-# exit_cmd.
-func_missing_arg ()
-{
- $opt_debug
-
- func_error "missing argument for $1."
- exit_cmd=exit
-}
-
-
-# func_split_short_opt shortopt
-# Set func_split_short_opt_name and func_split_short_opt_arg shell
-# variables after splitting SHORTOPT after the 2nd character.
-func_split_short_opt ()
-{
- my_sed_short_opt='1s/^\(..\).*$/\1/;q'
- my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
-
- func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
- func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
-} # func_split_short_opt may be replaced by extended shell implementation
-
-
-# func_split_long_opt longopt
-# Set func_split_long_opt_name and func_split_long_opt_arg shell
-# variables after splitting LONGOPT at the `=' sign.
-func_split_long_opt ()
-{
- my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
- my_sed_long_arg='1s/^--[^=]*=//'
-
- func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
- func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
-} # func_split_long_opt may be replaced by extended shell implementation
-
-exit_cmd=:
-
-
-
-
-
-magic="%%%MAGIC variable%%%"
-magic_exe="%%%MAGIC EXE variable%%%"
-
-# Global variables.
-nonopt=
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end. This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
- eval "${1}=\$${1}\${2}"
-} # func_append may be replaced by extended shell implementation
-
-# func_append_quoted var value
-# Quote VALUE and append to the end of shell variable VAR, separated
-# by a space.
-func_append_quoted ()
-{
- func_quote_for_eval "${2}"
- eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
-} # func_append_quoted may be replaced by extended shell implementation
-
-
-# func_arith arithmetic-term...
-func_arith ()
-{
- func_arith_result=`expr "${@}"`
-} # func_arith may be replaced by extended shell implementation
-
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
- func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
-} # func_len may be replaced by extended shell implementation
-
-
-# func_lo2o object
-func_lo2o ()
-{
- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-} # func_lo2o may be replaced by extended shell implementation
-
-
-# func_xform libobj-or-source
-func_xform ()
-{
- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-} # func_xform may be replaced by extended shell implementation
-
-
-# func_fatal_configuration arg...
-# Echo program name prefixed message to standard error, followed by
-# a configuration failure hint, and exit.
-func_fatal_configuration ()
-{
- func_error ${1+"$@"}
- func_error "See the $PACKAGE documentation for more information."
- func_fatal_error "Fatal configuration error."
-}
-
-
-# func_config
-# Display the configuration for all the tags in this script.
-func_config ()
-{
- re_begincf='^# ### BEGIN LIBTOOL'
- re_endcf='^# ### END LIBTOOL'
-
- # Default configuration.
- $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
-
- # Now print the configurations for the tags.
- for tagname in $taglist; do
- $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
- done
-
- exit $?
-}
-
-# func_features
-# Display the features supported by this script.
-func_features ()
-{
- echo "host: $host"
- if test "$build_libtool_libs" = yes; then
- echo "enable shared libraries"
- else
- echo "disable shared libraries"
- fi
- if test "$build_old_libs" = yes; then
- echo "enable static libraries"
- else
- echo "disable static libraries"
- fi
-
- exit $?
-}
-
-# func_enable_tag tagname
-# Verify that TAGNAME is valid, and either flag an error and exit, or
-# enable the TAGNAME tag. We also add TAGNAME to the global $taglist
-# variable here.
-func_enable_tag ()
-{
- # Global variable:
- tagname="$1"
-
- re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
- re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
- sed_extractcf="/$re_begincf/,/$re_endcf/p"
-
- # Validate tagname.
- case $tagname in
- *[!-_A-Za-z0-9,/]*)
- func_fatal_error "invalid tag name: $tagname"
- ;;
- esac
-
- # Don't test for the "default" C tag, as we know it's
- # there but not specially marked.
- case $tagname in
- CC) ;;
- *)
- if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
- taglist="$taglist $tagname"
-
- # Evaluate the configuration. Be careful to quote the path
- # and the sed script, to avoid splitting on whitespace, but
- # also don't use non-portable quotes within backquotes within
- # quotes we have to do it in 2 steps:
- extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
- eval "$extractedcf"
- else
- func_error "ignoring unknown tag $tagname"
- fi
- ;;
- esac
-}
-
-# func_check_version_match
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
- if test "$package_revision" != "$macro_revision"; then
- if test "$VERSION" != "$macro_version"; then
- if test -z "$macro_version"; then
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
- else
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
- fi
- else
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
- fi
-
- exit $EXIT_MISMATCH
- fi
-}
-
-
-# Shorthand for --mode=foo, only valid as the first argument
-case $1 in
-clean|clea|cle|cl)
- shift; set dummy --mode clean ${1+"$@"}; shift
- ;;
-compile|compil|compi|comp|com|co|c)
- shift; set dummy --mode compile ${1+"$@"}; shift
- ;;
-execute|execut|execu|exec|exe|ex|e)
- shift; set dummy --mode execute ${1+"$@"}; shift
- ;;
-finish|finis|fini|fin|fi|f)
- shift; set dummy --mode finish ${1+"$@"}; shift
- ;;
-install|instal|insta|inst|ins|in|i)
- shift; set dummy --mode install ${1+"$@"}; shift
- ;;
-link|lin|li|l)
- shift; set dummy --mode link ${1+"$@"}; shift
- ;;
-uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
- shift; set dummy --mode uninstall ${1+"$@"}; shift
- ;;
-esac
-
-
-
-# Option defaults:
-opt_debug=:
-opt_dry_run=false
-opt_config=false
-opt_preserve_dup_deps=false
-opt_features=false
-opt_finish=false
-opt_help=false
-opt_help_all=false
-opt_silent=:
-opt_warning=:
-opt_verbose=:
-opt_silent=false
-opt_verbose=false
-
-
-# Parse options once, thoroughly. This comes as soon as possible in the
-# script to make things like `--version' happen as quickly as we can.
-{
- # this just eases exit handling
- while test $# -gt 0; do
- opt="$1"
- shift
- case $opt in
- --debug|-x) opt_debug='set -x'
- func_echo "enabling shell trace mode"
- $opt_debug
- ;;
- --dry-run|--dryrun|-n)
- opt_dry_run=:
- ;;
- --config)
- opt_config=:
-func_config
- ;;
- --dlopen|-dlopen)
- optarg="$1"
- opt_dlopen="${opt_dlopen+$opt_dlopen
-}$optarg"
- shift
- ;;
- --preserve-dup-deps)
- opt_preserve_dup_deps=:
- ;;
- --features)
- opt_features=:
-func_features
- ;;
- --finish)
- opt_finish=:
-set dummy --mode finish ${1+"$@"}; shift
- ;;
- --help)
- opt_help=:
- ;;
- --help-all)
- opt_help_all=:
-opt_help=': help-all'
- ;;
- --mode)
- test $# = 0 && func_missing_arg $opt && break
- optarg="$1"
- opt_mode="$optarg"
-case $optarg in
- # Valid mode arguments:
- clean|compile|execute|finish|install|link|relink|uninstall) ;;
-
- # Catch anything else as an error
- *) func_error "invalid argument for $opt"
- exit_cmd=exit
- break
- ;;
-esac
- shift
- ;;
- --no-silent|--no-quiet)
- opt_silent=false
-func_append preserve_args " $opt"
- ;;
- --no-warning|--no-warn)
- opt_warning=false
-func_append preserve_args " $opt"
- ;;
- --no-verbose)
- opt_verbose=false
-func_append preserve_args " $opt"
- ;;
- --silent|--quiet)
- opt_silent=:
-func_append preserve_args " $opt"
- opt_verbose=false
- ;;
- --verbose|-v)
- opt_verbose=:
-func_append preserve_args " $opt"
-opt_silent=false
- ;;
- --tag)
- test $# = 0 && func_missing_arg $opt && break
- optarg="$1"
- opt_tag="$optarg"
-func_append preserve_args " $opt $optarg"
-func_enable_tag "$optarg"
- shift
- ;;
-
- -\?|-h) func_usage ;;
- --help) func_help ;;
- --version) func_version ;;
-
- # Separate optargs to long options:
- --*=*)
- func_split_long_opt "$opt"
- set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
- shift
- ;;
-
- # Separate non-argument short options:
- -\?*|-h*|-n*|-v*)
- func_split_short_opt "$opt"
- set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
- shift
- ;;
-
- --) break ;;
- -*) func_fatal_help "unrecognized option \`$opt'" ;;
- *) set dummy "$opt" ${1+"$@"}; shift; break ;;
- esac
- done
-
- # Validate options:
-
- # save first non-option argument
- if test "$#" -gt 0; then
- nonopt="$opt"
- shift
- fi
-
- # preserve --debug
- test "$opt_debug" = : || func_append preserve_args " --debug"
-
- case $host in
- *cygwin* | *mingw* | *pw32* | *cegcc*)
- # don't eliminate duplications in $postdeps and $predeps
- opt_duplicate_compiler_generated_deps=:
- ;;
- *)
- opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
- ;;
- esac
-
- $opt_help || {
- # Sanity checks first:
- func_check_version_match
-
- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
- func_fatal_configuration "not configured to build any kind of library"
- fi
-
- # Darwin sucks
- eval std_shrext=\"$shrext_cmds\"
-
- # Only execute mode is allowed to have -dlopen flags.
- if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
- func_error "unrecognized option \`-dlopen'"
- $ECHO "$help" 1>&2
- exit $EXIT_FAILURE
- fi
-
- # Change the help message to a mode-specific one.
- generic_help="$help"
- help="Try \`$progname --help --mode=$opt_mode' for more information."
- }
-
-
- # Bail if the options were screwed
- $exit_cmd $EXIT_FAILURE
-}
-
-
-
-
-## ----------- ##
-## Main. ##
-## ----------- ##
-
-# func_lalib_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_lalib_p ()
-{
- test -f "$1" &&
- $SED -e 4q "$1" 2>/dev/null \
- | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
-}
-
-# func_lalib_unsafe_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function implements the same check as func_lalib_p without
-# resorting to external programs. To this end, it redirects stdin and
-# closes it afterwards, without saving the original file descriptor.
-# As a safety measure, use it only where a negative result would be
-# fatal anyway. Works if `file' does not exist.
-func_lalib_unsafe_p ()
-{
- lalib_p=no
- if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
- for lalib_p_l in 1 2 3 4
- do
- read lalib_p_line
- case "$lalib_p_line" in
- \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
- esac
- done
- exec 0<&5 5<&-
- fi
- test "$lalib_p" = yes
-}
-
-# func_ltwrapper_script_p file
-# True iff FILE is a libtool wrapper script
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_script_p ()
-{
- func_lalib_p "$1"
-}
-
-# func_ltwrapper_executable_p file
-# True iff FILE is a libtool wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_executable_p ()
-{
- func_ltwrapper_exec_suffix=
- case $1 in
- *.exe) ;;
- *) func_ltwrapper_exec_suffix=.exe ;;
- esac
- $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
-}
-
-# func_ltwrapper_scriptname file
-# Assumes file is an ltwrapper_executable
-# uses $file to determine the appropriate filename for a
-# temporary ltwrapper_script.
-func_ltwrapper_scriptname ()
-{
- func_dirname_and_basename "$1" "" "."
- func_stripname '' '.exe' "$func_basename_result"
- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-}
-
-# func_ltwrapper_p file
-# True iff FILE is a libtool wrapper script or wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_p ()
-{
- func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
-}
-
-
-# func_execute_cmds commands fail_cmd
-# Execute tilde-delimited COMMANDS.
-# If FAIL_CMD is given, eval that upon failure.
-# FAIL_CMD may read-access the current command in variable CMD!
-func_execute_cmds ()
-{
- $opt_debug
- save_ifs=$IFS; IFS='~'
- for cmd in $1; do
- IFS=$save_ifs
- eval cmd=\"$cmd\"
- func_show_eval "$cmd" "${2-:}"
- done
- IFS=$save_ifs
-}
-
-
-# func_source file
-# Source FILE, adding directory component if necessary.
-# Note that it is not necessary on cygwin/mingw to append a dot to
-# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
-# behavior happens only for exec(3), not for open(2)! Also, sourcing
-# `FILE.' does not work on cygwin managed mounts.
-func_source ()
-{
- $opt_debug
- case $1 in
- */* | *\\*) . "$1" ;;
- *) . "./$1" ;;
- esac
-}
-
-
-# func_resolve_sysroot PATH
-# Replace a leading = in PATH with a sysroot. Store the result into
-# func_resolve_sysroot_result
-func_resolve_sysroot ()
-{
- func_resolve_sysroot_result=$1
- case $func_resolve_sysroot_result in
- =*)
- func_stripname '=' '' "$func_resolve_sysroot_result"
- func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
- ;;
- esac
-}
-
-# func_replace_sysroot PATH
-# If PATH begins with the sysroot, replace it with = and
-# store the result into func_replace_sysroot_result.
-func_replace_sysroot ()
-{
- case "$lt_sysroot:$1" in
- ?*:"$lt_sysroot"*)
- func_stripname "$lt_sysroot" '' "$1"
- func_replace_sysroot_result="=$func_stripname_result"
- ;;
- *)
- # Including no sysroot.
- func_replace_sysroot_result=$1
- ;;
- esac
-}
-
-# func_infer_tag arg
-# Infer tagged configuration to use if any are available and
-# if one wasn't chosen via the "--tag" command line option.
-# Only attempt this if the compiler in the base compile
-# command doesn't match the default compiler.
-# arg is usually of the form 'gcc ...'
-func_infer_tag ()
-{
- $opt_debug
- if test -n "$available_tags" && test -z "$tagname"; then
- CC_quoted=
- for arg in $CC; do
- func_append_quoted CC_quoted "$arg"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
- case $@ in
- # Blanks in the command may have been stripped by the calling shell,
- # but not from the CC environment variable when configure was run.
- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
- # Blanks at the start of $base_compile will cause this to fail
- # if we don't check for them as well.
- *)
- for z in $available_tags; do
- if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
- # Evaluate the configuration.
- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
- CC_quoted=
- for arg in $CC; do
- # Double-quote args containing other shell metacharacters.
- func_append_quoted CC_quoted "$arg"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
- case "$@ " in
- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
- # The compiler in the base compile command matches
- # the one in the tagged configuration.
- # Assume this is the tagged configuration we want.
- tagname=$z
- break
- ;;
- esac
- fi
- done
- # If $tagname still isn't set, then no tagged configuration
- # was found and let the user know that the "--tag" command
- # line option must be used.
- if test -z "$tagname"; then
- func_echo "unable to infer tagged configuration"
- func_fatal_error "specify a tag with \`--tag'"
-# else
-# func_verbose "using $tagname tagged configuration"
- fi
- ;;
- esac
- fi
-}
-
-
-
-# func_write_libtool_object output_name pic_name nonpic_name
-# Create a libtool object file (analogous to a ".la" file),
-# but don't create it if we're doing a dry run.
-func_write_libtool_object ()
-{
- write_libobj=${1}
- if test "$build_libtool_libs" = yes; then
- write_lobj=\'${2}\'
- else
- write_lobj=none
- fi
-
- if test "$build_old_libs" = yes; then
- write_oldobj=\'${3}\'
- else
- write_oldobj=none
- fi
-
- $opt_dry_run || {
- cat >${write_libobj}T <<EOF
-# $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object=$write_lobj
-
-# Name of the non-PIC object
-non_pic_object=$write_oldobj
-
-EOF
- $MV "${write_libobj}T" "${write_libobj}"
- }
-}
-
-
-##################################################
-# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
-##################################################
-
-# func_convert_core_file_wine_to_w32 ARG
-# Helper function used by file name conversion functions when $build is *nix,
-# and $host is mingw, cygwin, or some other w32 environment. Relies on a
-# correctly configured wine environment available, with the winepath program
-# in $build's $PATH.
-#
-# ARG is the $build file name to be converted to w32 format.
-# Result is available in $func_convert_core_file_wine_to_w32_result, and will
-# be empty on error (or when ARG is empty)
-func_convert_core_file_wine_to_w32 ()
-{
- $opt_debug
- func_convert_core_file_wine_to_w32_result="$1"
- if test -n "$1"; then
- # Unfortunately, winepath does not exit with a non-zero error code, so we
- # are forced to check the contents of stdout. On the other hand, if the
- # command is not found, the shell will set an exit code of 127 and print
- # *an error message* to stdout. So we must check for both error code of
- # zero AND non-empty stdout, which explains the odd construction:
- func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
- if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
- func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
- $SED -e "$lt_sed_naive_backslashify"`
- else
- func_convert_core_file_wine_to_w32_result=
- fi
- fi
-}
-# end: func_convert_core_file_wine_to_w32
-
-
-# func_convert_core_path_wine_to_w32 ARG
-# Helper function used by path conversion functions when $build is *nix, and
-# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
-# configured wine environment available, with the winepath program in $build's
-# $PATH. Assumes ARG has no leading or trailing path separator characters.
-#
-# ARG is path to be converted from $build format to win32.
-# Result is available in $func_convert_core_path_wine_to_w32_result.
-# Unconvertible file (directory) names in ARG are skipped; if no directory names
-# are convertible, then the result may be empty.
-func_convert_core_path_wine_to_w32 ()
-{
- $opt_debug
- # unfortunately, winepath doesn't convert paths, only file names
- func_convert_core_path_wine_to_w32_result=""
- if test -n "$1"; then
- oldIFS=$IFS
- IFS=:
- for func_convert_core_path_wine_to_w32_f in $1; do
- IFS=$oldIFS
- func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
- if test -n "$func_convert_core_file_wine_to_w32_result" ; then
- if test -z "$func_convert_core_path_wine_to_w32_result"; then
- func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
- else
- func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
- fi
- fi
- done
- IFS=$oldIFS
- fi
-}
-# end: func_convert_core_path_wine_to_w32
-
-
-# func_cygpath ARGS...
-# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
-# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
-# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
-# (2), returns the Cygwin file name or path in func_cygpath_result (input
-# file name or path is assumed to be in w32 format, as previously converted
-# from $build's *nix or MSYS format). In case (3), returns the w32 file name
-# or path in func_cygpath_result (input file name or path is assumed to be in
-# Cygwin format). Returns an empty string on error.
-#
-# ARGS are passed to cygpath, with the last one being the file name or path to
-# be converted.
-#
-# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
-# environment variable; do not put it in $PATH.
-func_cygpath ()
-{
- $opt_debug
- if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
- func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
- if test "$?" -ne 0; then
- # on failure, ensure result is empty
- func_cygpath_result=
- fi
- else
- func_cygpath_result=
- func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
- fi
-}
-#end: func_cygpath
-
-
-# func_convert_core_msys_to_w32 ARG
-# Convert file name or path ARG from MSYS format to w32 format. Return
-# result in func_convert_core_msys_to_w32_result.
-func_convert_core_msys_to_w32 ()
-{
- $opt_debug
- # awkward: cmd appends spaces to result
- func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
-}
-#end: func_convert_core_msys_to_w32
-
-
-# func_convert_file_check ARG1 ARG2
-# Verify that ARG1 (a file name in $build format) was converted to $host
-# format in ARG2. Otherwise, emit an error message, but continue (resetting
-# func_to_host_file_result to ARG1).
-func_convert_file_check ()
-{
- $opt_debug
- if test -z "$2" && test -n "$1" ; then
- func_error "Could not determine host file name corresponding to"
- func_error " \`$1'"
- func_error "Continuing, but uninstalled executables may not work."
- # Fallback:
- func_to_host_file_result="$1"
- fi
-}
-# end func_convert_file_check
-
-
-# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
-# Verify that FROM_PATH (a path in $build format) was converted to $host
-# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
-# func_to_host_file_result to a simplistic fallback value (see below).
-func_convert_path_check ()
-{
- $opt_debug
- if test -z "$4" && test -n "$3"; then
- func_error "Could not determine the host path corresponding to"
- func_error " \`$3'"
- func_error "Continuing, but uninstalled executables may not work."
- # Fallback. This is a deliberately simplistic "conversion" and
- # should not be "improved". See libtool.info.
- if test "x$1" != "x$2"; then
- lt_replace_pathsep_chars="s|$1|$2|g"
- func_to_host_path_result=`echo "$3" |
- $SED -e "$lt_replace_pathsep_chars"`
- else
- func_to_host_path_result="$3"
- fi
- fi
-}
-# end func_convert_path_check
-
-
-# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
-# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
-# and appending REPL if ORIG matches BACKPAT.
-func_convert_path_front_back_pathsep ()
-{
- $opt_debug
- case $4 in
- $1 ) func_to_host_path_result="$3$func_to_host_path_result"
- ;;
- esac
- case $4 in
- $2 ) func_append func_to_host_path_result "$3"
- ;;
- esac
-}
-# end func_convert_path_front_back_pathsep
-
-
-##################################################
-# $build to $host FILE NAME CONVERSION FUNCTIONS #
-##################################################
-# invoked via `$to_host_file_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# Result will be available in $func_to_host_file_result.
-
-
-# func_to_host_file ARG
-# Converts the file name ARG from $build format to $host format. Return result
-# in func_to_host_file_result.
-func_to_host_file ()
-{
- $opt_debug
- $to_host_file_cmd "$1"
-}
-# end func_to_host_file
-
-
-# func_to_tool_file ARG LAZY
-# converts the file name ARG from $build format to toolchain format. Return
-# result in func_to_tool_file_result. If the conversion in use is listed
-# in (the comma separated) LAZY, no conversion takes place.
-func_to_tool_file ()
-{
- $opt_debug
- case ,$2, in
- *,"$to_tool_file_cmd",*)
- func_to_tool_file_result=$1
- ;;
- *)
- $to_tool_file_cmd "$1"
- func_to_tool_file_result=$func_to_host_file_result
- ;;
- esac
-}
-# end func_to_tool_file
-
-
-# func_convert_file_noop ARG
-# Copy ARG to func_to_host_file_result.
-func_convert_file_noop ()
-{
- func_to_host_file_result="$1"
-}
-# end func_convert_file_noop
-
-
-# func_convert_file_msys_to_w32 ARG
-# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper. Returns result in
-# func_to_host_file_result.
-func_convert_file_msys_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_msys_to_w32 "$1"
- func_to_host_file_result="$func_convert_core_msys_to_w32_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_w32
-
-
-# func_convert_file_cygwin_to_w32 ARG
-# Convert file name ARG from Cygwin to w32 format. Returns result in
-# func_to_host_file_result.
-func_convert_file_cygwin_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
- # LT_CYGPATH in this case.
- func_to_host_file_result=`cygpath -m "$1"`
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_cygwin_to_w32
-
-
-# func_convert_file_nix_to_w32 ARG
-# Convert file name ARG from *nix to w32 format. Requires a wine environment
-# and a working winepath. Returns result in func_to_host_file_result.
-func_convert_file_nix_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_file_wine_to_w32 "$1"
- func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_w32
-
-
-# func_convert_file_msys_to_cygwin ARG
-# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_file_msys_to_cygwin ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_msys_to_w32 "$1"
- func_cygpath -u "$func_convert_core_msys_to_w32_result"
- func_to_host_file_result="$func_cygpath_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_cygwin
-
-
-# func_convert_file_nix_to_cygwin ARG
-# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
-# in a wine environment, working winepath, and LT_CYGPATH set. Returns result
-# in func_to_host_file_result.
-func_convert_file_nix_to_cygwin ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
- func_convert_core_file_wine_to_w32 "$1"
- func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
- func_to_host_file_result="$func_cygpath_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_cygwin
-
-
-#############################################
-# $build to $host PATH CONVERSION FUNCTIONS #
-#############################################
-# invoked via `$to_host_path_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# The result will be available in $func_to_host_path_result.
-#
-# Path separators are also converted from $build format to $host format. If
-# ARG begins or ends with a path separator character, it is preserved (but
-# converted to $host format) on output.
-#
-# All path conversion functions are named using the following convention:
-# file name conversion function : func_convert_file_X_to_Y ()
-# path conversion function : func_convert_path_X_to_Y ()
-# where, for any given $build/$host combination the 'X_to_Y' value is the
-# same. If conversion functions are added for new $build/$host combinations,
-# the two new functions must follow this pattern, or func_init_to_host_path_cmd
-# will break.
-
-
-# func_init_to_host_path_cmd
-# Ensures that function "pointer" variable $to_host_path_cmd is set to the
-# appropriate value, based on the value of $to_host_file_cmd.
-to_host_path_cmd=
-func_init_to_host_path_cmd ()
-{
- $opt_debug
- if test -z "$to_host_path_cmd"; then
- func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
- to_host_path_cmd="func_convert_path_${func_stripname_result}"
- fi
-}
-
-
-# func_to_host_path ARG
-# Converts the path ARG from $build format to $host format. Return result
-# in func_to_host_path_result.
-func_to_host_path ()
-{
- $opt_debug
- func_init_to_host_path_cmd
- $to_host_path_cmd "$1"
-}
-# end func_to_host_path
-
-
-# func_convert_path_noop ARG
-# Copy ARG to func_to_host_path_result.
-func_convert_path_noop ()
-{
- func_to_host_path_result="$1"
-}
-# end func_convert_path_noop
-
-
-# func_convert_path_msys_to_w32 ARG
-# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper. Returns result in
-# func_to_host_path_result.
-func_convert_path_msys_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # Remove leading and trailing path separator characters from ARG. MSYS
- # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
- # and winepath ignores them completely.
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
- func_to_host_path_result="$func_convert_core_msys_to_w32_result"
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_msys_to_w32
-
-
-# func_convert_path_cygwin_to_w32 ARG
-# Convert path ARG from Cygwin to w32 format. Returns result in
-# func_to_host_file_result.
-func_convert_path_cygwin_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_cygwin_to_w32
-
-
-# func_convert_path_nix_to_w32 ARG
-# Convert path ARG from *nix to w32 format. Requires a wine environment and
-# a working winepath. Returns result in func_to_host_file_result.
-func_convert_path_nix_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
- func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_nix_to_w32
-
-
-# func_convert_path_msys_to_cygwin ARG
-# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_path_msys_to_cygwin ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
- func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
- func_to_host_path_result="$func_cygpath_result"
- func_convert_path_check : : \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" : "$1"
- fi
-}
-# end func_convert_path_msys_to_cygwin
-
-
-# func_convert_path_nix_to_cygwin ARG
-# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
-# a wine environment, working winepath, and LT_CYGPATH set. Returns result in
-# func_to_host_file_result.
-func_convert_path_nix_to_cygwin ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # Remove leading and trailing path separator characters from
- # ARG. msys behavior is inconsistent here, cygpath turns them
- # into '.;' and ';.', and winepath ignores them completely.
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
- func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
- func_to_host_path_result="$func_cygpath_result"
- func_convert_path_check : : \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" : "$1"
- fi
-}
-# end func_convert_path_nix_to_cygwin
-
-
-# func_mode_compile arg...
-func_mode_compile ()
-{
- $opt_debug
- # Get the compilation command and the source file.
- base_compile=
- srcfile="$nonopt" # always keep a non-empty value in "srcfile"
- suppress_opt=yes
- suppress_output=
- arg_mode=normal
- libobj=
- later=
- pie_flag=
-
- for arg
- do
- case $arg_mode in
- arg )
- # do not "continue". Instead, add this to base_compile
- lastarg="$arg"
- arg_mode=normal
- ;;
-
- target )
- libobj="$arg"
- arg_mode=normal
- continue
- ;;
-
- normal )
- # Accept any command-line options.
- case $arg in
- -o)
- test -n "$libobj" && \
- func_fatal_error "you cannot specify \`-o' more than once"
- arg_mode=target
- continue
- ;;
-
- -pie | -fpie | -fPIE)
- func_append pie_flag " $arg"
- continue
- ;;
-
- -shared | -static | -prefer-pic | -prefer-non-pic)
- func_append later " $arg"
- continue
- ;;
-
- -no-suppress)
- suppress_opt=no
- continue
- ;;
-
- -Xcompiler)
- arg_mode=arg # the next one goes into the "base_compile" arg list
- continue # The current "srcfile" will either be retained or
- ;; # replaced later. I would guess that would be a bug.
-
- -Wc,*)
- func_stripname '-Wc,' '' "$arg"
- args=$func_stripname_result
- lastarg=
- save_ifs="$IFS"; IFS=','
- for arg in $args; do
- IFS="$save_ifs"
- func_append_quoted lastarg "$arg"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$lastarg"
- lastarg=$func_stripname_result
-
- # Add the arguments to base_compile.
- func_append base_compile " $lastarg"
- continue
- ;;
-
- *)
- # Accept the current argument as the source file.
- # The previous "srcfile" becomes the current argument.
- #
- lastarg="$srcfile"
- srcfile="$arg"
- ;;
- esac # case $arg
- ;;
- esac # case $arg_mode
-
- # Aesthetically quote the previous argument.
- func_append_quoted base_compile "$lastarg"
- done # for arg
-
- case $arg_mode in
- arg)
- func_fatal_error "you must specify an argument for -Xcompile"
- ;;
- target)
- func_fatal_error "you must specify a target with \`-o'"
- ;;
- *)
- # Get the name of the library object.
- test -z "$libobj" && {
- func_basename "$srcfile"
- libobj="$func_basename_result"
- }
- ;;
- esac
-
- # Recognize several different file suffixes.
- # If the user specifies -o file.o, it is replaced with file.lo
- case $libobj in
- *.[cCFSifmso] | \
- *.ada | *.adb | *.ads | *.asm | \
- *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
- *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
- func_xform "$libobj"
- libobj=$func_xform_result
- ;;
- esac
-
- case $libobj in
- *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
- *)
- func_fatal_error "cannot determine name of library object from \`$libobj'"
- ;;
- esac
-
- func_infer_tag $base_compile
-
- for arg in $later; do
- case $arg in
- -shared)
- test "$build_libtool_libs" != yes && \
- func_fatal_configuration "can not build a shared library"
- build_old_libs=no
- continue
- ;;
-
- -static)
- build_libtool_libs=no
- build_old_libs=yes
- continue
- ;;
-
- -prefer-pic)
- pic_mode=yes
- continue
- ;;
-
- -prefer-non-pic)
- pic_mode=no
- continue
- ;;
- esac
- done
-
- func_quote_for_eval "$libobj"
- test "X$libobj" != "X$func_quote_for_eval_result" \
- && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
- && func_warning "libobj name \`$libobj' may not contain shell special characters."
- func_dirname_and_basename "$obj" "/" ""
- objname="$func_basename_result"
- xdir="$func_dirname_result"
- lobj=${xdir}$objdir/$objname
-
- test -z "$base_compile" && \
- func_fatal_help "you must specify a compilation command"
-
- # Delete any leftover library objects.
- if test "$build_old_libs" = yes; then
- removelist="$obj $lobj $libobj ${libobj}T"
- else
- removelist="$lobj $libobj ${libobj}T"
- fi
-
- # On Cygwin there's no "real" PIC flag so we must build both object types
- case $host_os in
- cygwin* | mingw* | pw32* | os2* | cegcc*)
- pic_mode=default
- ;;
- esac
- if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
- # non-PIC code in shared libraries is not supported
- pic_mode=default
- fi
-
- # Calculate the filename of the output object if compiler does
- # not support -o with -c
- if test "$compiler_c_o" = no; then
- output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
- lockfile="$output_obj.lock"
- else
- output_obj=
- need_locks=no
- lockfile=
- fi
-
- # Lock this critical section if it is needed
- # We use this script file to make the link, it avoids creating a new file
- if test "$need_locks" = yes; then
- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
- func_echo "Waiting for $lockfile to be removed"
- sleep 2
- done
- elif test "$need_locks" = warn; then
- if test -f "$lockfile"; then
- $ECHO "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
- func_append removelist " $output_obj"
- $ECHO "$srcfile" > "$lockfile"
- fi
-
- $opt_dry_run || $RM $removelist
- func_append removelist " $lockfile"
- trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
-
- func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
- srcfile=$func_to_tool_file_result
- func_quote_for_eval "$srcfile"
- qsrcfile=$func_quote_for_eval_result
-
- # Only build a PIC object if we are building libtool libraries.
- if test "$build_libtool_libs" = yes; then
- # Without this assignment, base_compile gets emptied.
- fbsd_hideous_sh_bug=$base_compile
-
- if test "$pic_mode" != no; then
- command="$base_compile $qsrcfile $pic_flag"
- else
- # Don't build PIC code
- command="$base_compile $qsrcfile"
- fi
-
- func_mkdir_p "$xdir$objdir"
-
- if test -z "$output_obj"; then
- # Place PIC objects in $objdir
- func_append command " -o $lobj"
- fi
-
- func_show_eval_locale "$command" \
- 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
-
- if test "$need_locks" = warn &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed, then go on to compile the next one
- if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
- func_show_eval '$MV "$output_obj" "$lobj"' \
- 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
- fi
-
- # Allow error messages only from the first compilation.
- if test "$suppress_opt" = yes; then
- suppress_output=' >/dev/null 2>&1'
- fi
- fi
-
- # Only build a position-dependent object if we build old libraries.
- if test "$build_old_libs" = yes; then
- if test "$pic_mode" != yes; then
- # Don't build PIC code
- command="$base_compile $qsrcfile$pie_flag"
- else
- command="$base_compile $qsrcfile $pic_flag"
- fi
- if test "$compiler_c_o" = yes; then
- func_append command " -o $obj"
- fi
-
- # Suppress compiler output if we already did a PIC compilation.
- func_append command "$suppress_output"
- func_show_eval_locale "$command" \
- '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
-
- if test "$need_locks" = warn &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed
- if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
- func_show_eval '$MV "$output_obj" "$obj"' \
- 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
- fi
- fi
-
- $opt_dry_run || {
- func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
-
- # Unlock the critical section if it was locked
- if test "$need_locks" != no; then
- removelist=$lockfile
- $RM "$lockfile"
- fi
- }
-
- exit $EXIT_SUCCESS
-}
-
-$opt_help || {
- test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
-}
-
-func_mode_help ()
-{
- # We need to display help for each of the modes.
- case $opt_mode in
- "")
- # Generic help is extracted from the usage comments
- # at the start of this file.
- func_help
- ;;
-
- clean)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
- ;;
-
- compile)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
- -o OUTPUT-FILE set the output file name to OUTPUT-FILE
- -no-suppress do not suppress compiler output for multiple passes
- -prefer-pic try to build PIC objects only
- -prefer-non-pic try to build non-PIC objects only
- -shared do not build a \`.o' file suitable for static linking
- -static only build a \`.o' file suitable for static linking
- -Wc,FLAG pass FLAG directly to the compiler
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
- ;;
-
- execute)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
- -dlopen FILE add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
- ;;
-
- finish)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges. Use
-the \`--dry-run' option if you just want to see what would be executed."
- ;;
-
- install)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command. The first component should be
-either the \`install' or \`cp' program.
-
-The following components of INSTALL-COMMAND are treated specially:
-
- -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
- ;;
-
- link)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
- -all-static do not do any dynamic linking at all
- -avoid-version do not add a version suffix if possible
- -bindir BINDIR specify path to binaries directory (for systems where
- libraries must be found in the PATH setting at runtime)
- -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
- -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
- -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
- -export-symbols SYMFILE
- try to export only the symbols listed in SYMFILE
- -export-symbols-regex REGEX
- try to export only the symbols matching REGEX
- -LLIBDIR search LIBDIR for required installed libraries
- -lNAME OUTPUT-FILE requires the installed library libNAME
- -module build a library that can dlopened
- -no-fast-install disable the fast-install mode
- -no-install link a not-installable executable
- -no-undefined declare that a library does not refer to external symbols
- -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
- -objectlist FILE Use a list of object files found in FILE to specify objects
- -precious-files-regex REGEX
- don't remove output files matching REGEX
- -release RELEASE specify package release information
- -rpath LIBDIR the created library will eventually be installed in LIBDIR
- -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
- -shared only do dynamic linking of libtool libraries
- -shrext SUFFIX override the standard shared library file extension
- -static do not do any dynamic linking of uninstalled libtool libraries
- -static-libtool-libs
- do not do any dynamic linking of libtool libraries
- -version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
- -weak LIBNAME declare that the target provides the LIBNAME interface
- -Wc,FLAG
- -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
- -Wl,FLAG
- -Xlinker FLAG pass linker-specific FLAG directly to the linker
- -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename. Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
- ;;
-
- uninstall)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
- ;;
-
- *)
- func_fatal_help "invalid operation mode \`$opt_mode'"
- ;;
- esac
-
- echo
- $ECHO "Try \`$progname --help' for more information about other modes."
-}
-
-# Now that we've collected a possible --mode arg, show help if necessary
-if $opt_help; then
- if test "$opt_help" = :; then
- func_mode_help
- else
- {
- func_help noexit
- for opt_mode in compile link execute install finish uninstall clean; do
- func_mode_help
- done
- } | sed -n '1p; 2,$s/^Usage:/ or: /p'
- {
- func_help noexit
- for opt_mode in compile link execute install finish uninstall clean; do
- echo
- func_mode_help
- done
- } |
- sed '1d
- /^When reporting/,/^Report/{
- H
- d
- }
- $x
- /information about other modes/d
- /more detailed .*MODE/d
- s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
- fi
- exit $?
-fi
-
-
-# func_mode_execute arg...
-func_mode_execute ()
-{
- $opt_debug
- # The first argument is the command name.
- cmd="$nonopt"
- test -z "$cmd" && \
- func_fatal_help "you must specify a COMMAND"
-
- # Handle -dlopen flags immediately.
- for file in $opt_dlopen; do
- test -f "$file" \
- || func_fatal_help "\`$file' is not a file"
-
- dir=
- case $file in
- *.la)
- func_resolve_sysroot "$file"
- file=$func_resolve_sysroot_result
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "\`$lib' is not a valid libtool archive"
-
- # Read the libtool library.
- dlname=
- library_names=
- func_source "$file"
-
- # Skip this library if it cannot be dlopened.
- if test -z "$dlname"; then
- # Warn if it was a shared library.
- test -n "$library_names" && \
- func_warning "\`$file' was not linked with \`-export-dynamic'"
- continue
- fi
-
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
-
- if test -f "$dir/$objdir/$dlname"; then
- func_append dir "/$objdir"
- else
- if test ! -f "$dir/$dlname"; then
- func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
- fi
- fi
- ;;
-
- *.lo)
- # Just add the directory containing the .lo file.
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
- ;;
-
- *)
- func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
- continue
- ;;
- esac
-
- # Get the absolute pathname.
- absdir=`cd "$dir" && pwd`
- test -n "$absdir" && dir="$absdir"
-
- # Now add the directory to shlibpath_var.
- if eval "test -z \"\$$shlibpath_var\""; then
- eval "$shlibpath_var=\"\$dir\""
- else
- eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
- fi
- done
-
- # This variable tells wrapper scripts just to set shlibpath_var
- # rather than running their programs.
- libtool_execute_magic="$magic"
-
- # Check if any of the arguments is a wrapper script.
- args=
- for file
- do
- case $file in
- -* | *.la | *.lo ) ;;
- *)
- # Do a test to see if this is really a libtool program.
- if func_ltwrapper_script_p "$file"; then
- func_source "$file"
- # Transform arg to wrapped name.
- file="$progdir/$program"
- elif func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- func_source "$func_ltwrapper_scriptname_result"
- # Transform arg to wrapped name.
- file="$progdir/$program"
- fi
- ;;
- esac
- # Quote arguments (to preserve shell metacharacters).
- func_append_quoted args "$file"
- done
-
- if test "X$opt_dry_run" = Xfalse; then
- if test -n "$shlibpath_var"; then
- # Export the shlibpath_var.
- eval "export $shlibpath_var"
- fi
-
- # Restore saved environment variables
- for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
- do
- eval "if test \"\${save_$lt_var+set}\" = set; then
- $lt_var=\$save_$lt_var; export $lt_var
- else
- $lt_unset $lt_var
- fi"
- done
-
- # Now prepare to actually exec the command.
- exec_cmd="\$cmd$args"
- else
- # Display what would be done.
- if test -n "$shlibpath_var"; then
- eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
- echo "export $shlibpath_var"
- fi
- $ECHO "$cmd$args"
- exit $EXIT_SUCCESS
- fi
-}
-
-test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
-
-
-# func_mode_finish arg...
-func_mode_finish ()
-{
- $opt_debug
- libs=
- libdirs=
- admincmds=
-
- for opt in "$nonopt" ${1+"$@"}
- do
- if test -d "$opt"; then
- func_append libdirs " $opt"
-
- elif test -f "$opt"; then
- if func_lalib_unsafe_p "$opt"; then
- func_append libs " $opt"
- else
- func_warning "\`$opt' is not a valid libtool archive"
- fi
-
- else
- func_fatal_error "invalid argument \`$opt'"
- fi
- done
-
- if test -n "$libs"; then
- if test -n "$lt_sysroot"; then
- sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
- sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
- else
- sysroot_cmd=
- fi
-
- # Remove sysroot references
- if $opt_dry_run; then
- for lib in $libs; do
- echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
- done
- else
- tmpdir=`func_mktempdir`
- for lib in $libs; do
- sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
- > $tmpdir/tmp-la
- mv -f $tmpdir/tmp-la $lib
- done
- ${RM}r "$tmpdir"
- fi
- fi
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- for libdir in $libdirs; do
- if test -n "$finish_cmds"; then
- # Do each command in the finish commands.
- func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
-'"$cmd"'"'
- fi
- if test -n "$finish_eval"; then
- # Do the single finish_eval.
- eval cmds=\"$finish_eval\"
- $opt_dry_run || eval "$cmds" || func_append admincmds "
- $cmds"
- fi
- done
- fi
-
- # Exit here if they wanted silent mode.
- $opt_silent && exit $EXIT_SUCCESS
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- echo "----------------------------------------------------------------------"
- echo "Libraries have been installed in:"
- for libdir in $libdirs; do
- $ECHO " $libdir"
- done
- echo
- echo "If you ever happen to want to link against installed libraries"
- echo "in a given directory, LIBDIR, you must either use libtool, and"
- echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
- echo "flag during linking and do at least one of the following:"
- if test -n "$shlibpath_var"; then
- echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
- echo " during execution"
- fi
- if test -n "$runpath_var"; then
- echo " - add LIBDIR to the \`$runpath_var' environment variable"
- echo " during linking"
- fi
- if test -n "$hardcode_libdir_flag_spec"; then
- libdir=LIBDIR
- eval flag=\"$hardcode_libdir_flag_spec\"
-
- $ECHO " - use the \`$flag' linker flag"
- fi
- if test -n "$admincmds"; then
- $ECHO " - have your system administrator run these commands:$admincmds"
- fi
- if test -f /etc/ld.so.conf; then
- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
- fi
- echo
-
- echo "See any operating system documentation about shared libraries for"
- case $host in
- solaris2.[6789]|solaris2.1[0-9])
- echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
- echo "pages."
- ;;
- *)
- echo "more information, such as the ld(1) and ld.so(8) manual pages."
- ;;
- esac
- echo "----------------------------------------------------------------------"
- fi
- exit $EXIT_SUCCESS
-}
-
-test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
-
-
-# func_mode_install arg...
-func_mode_install ()
-{
- $opt_debug
- # There may be an optional sh(1) argument at the beginning of
- # install_prog (especially on Windows NT).
- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
- # Allow the use of GNU shtool's install command.
- case $nonopt in *shtool*) :;; *) false;; esac; then
- # Aesthetically quote it.
- func_quote_for_eval "$nonopt"
- install_prog="$func_quote_for_eval_result "
- arg=$1
- shift
- else
- install_prog=
- arg=$nonopt
- fi
-
- # The real first argument should be the name of the installation program.
- # Aesthetically quote it.
- func_quote_for_eval "$arg"
- func_append install_prog "$func_quote_for_eval_result"
- install_shared_prog=$install_prog
- case " $install_prog " in
- *[\\\ /]cp\ *) install_cp=: ;;
- *) install_cp=false ;;
- esac
-
- # We need to accept at least all the BSD install flags.
- dest=
- files=
- opts=
- prev=
- install_type=
- isdir=no
- stripme=
- no_mode=:
- for arg
- do
- arg2=
- if test -n "$dest"; then
- func_append files " $dest"
- dest=$arg
- continue
- fi
-
- case $arg in
- -d) isdir=yes ;;
- -f)
- if $install_cp; then :; else
- prev=$arg
- fi
- ;;
- -g | -m | -o)
- prev=$arg
- ;;
- -s)
- stripme=" -s"
- continue
- ;;
- -*)
- ;;
- *)
- # If the previous option needed an argument, then skip it.
- if test -n "$prev"; then
- if test "x$prev" = x-m && test -n "$install_override_mode"; then
- arg2=$install_override_mode
- no_mode=false
- fi
- prev=
- else
- dest=$arg
- continue
- fi
- ;;
- esac
-
- # Aesthetically quote the argument.
- func_quote_for_eval "$arg"
- func_append install_prog " $func_quote_for_eval_result"
- if test -n "$arg2"; then
- func_quote_for_eval "$arg2"
- fi
- func_append install_shared_prog " $func_quote_for_eval_result"
- done
-
- test -z "$install_prog" && \
- func_fatal_help "you must specify an install program"
-
- test -n "$prev" && \
- func_fatal_help "the \`$prev' option requires an argument"
-
- if test -n "$install_override_mode" && $no_mode; then
- if $install_cp; then :; else
- func_quote_for_eval "$install_override_mode"
- func_append install_shared_prog " -m $func_quote_for_eval_result"
- fi
- fi
-
- if test -z "$files"; then
- if test -z "$dest"; then
- func_fatal_help "no file or destination specified"
- else
- func_fatal_help "you must specify a destination"
- fi
- fi
-
- # Strip any trailing slash from the destination.
- func_stripname '' '/' "$dest"
- dest=$func_stripname_result
-
- # Check to see that the destination is a directory.
- test -d "$dest" && isdir=yes
- if test "$isdir" = yes; then
- destdir="$dest"
- destname=
- else
- func_dirname_and_basename "$dest" "" "."
- destdir="$func_dirname_result"
- destname="$func_basename_result"
-
- # Not a directory, so check to see that there is only one file specified.
- set dummy $files; shift
- test "$#" -gt 1 && \
- func_fatal_help "\`$dest' is not a directory"
- fi
- case $destdir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- for file in $files; do
- case $file in
- *.lo) ;;
- *)
- func_fatal_help "\`$destdir' must be an absolute directory name"
- ;;
- esac
- done
- ;;
- esac
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- staticlibs=
- future_libdirs=
- current_libdirs=
- for file in $files; do
-
- # Do each installation.
- case $file in
- *.$libext)
- # Do the static libraries later.
- func_append staticlibs " $file"
- ;;
-
- *.la)
- func_resolve_sysroot "$file"
- file=$func_resolve_sysroot_result
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "\`$file' is not a valid libtool archive"
-
- library_names=
- old_library=
- relink_command=
- func_source "$file"
-
- # Add the libdir to current_libdirs if it is the destination.
- if test "X$destdir" = "X$libdir"; then
- case "$current_libdirs " in
- *" $libdir "*) ;;
- *) func_append current_libdirs " $libdir" ;;
- esac
- else
- # Note the libdir as a future libdir.
- case "$future_libdirs " in
- *" $libdir "*) ;;
- *) func_append future_libdirs " $libdir" ;;
- esac
- fi
-
- func_dirname "$file" "/" ""
- dir="$func_dirname_result"
- func_append dir "$objdir"
-
- if test -n "$relink_command"; then
- # Determine the prefix the user has applied to our future dir.
- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
-
- # Don't allow the user to place us outside of our expected
- # location b/c this prevents finding dependent libraries that
- # are installed to the same prefix.
- # At present, this check doesn't affect windows .dll's that
- # are installed into $libdir/../bin (currently, that works fine)
- # but it's something to keep an eye on.
- test "$inst_prefix_dir" = "$destdir" && \
- func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
-
- if test -n "$inst_prefix_dir"; then
- # Stick the inst_prefix_dir data into the link command.
- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
- else
- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
- fi
-
- func_warning "relinking \`$file'"
- func_show_eval "$relink_command" \
- 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
- fi
-
- # See the names of the shared library.
- set dummy $library_names; shift
- if test -n "$1"; then
- realname="$1"
- shift
-
- srcname="$realname"
- test -n "$relink_command" && srcname="$realname"T
-
- # Install the shared library and build the symlinks.
- func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
- 'exit $?'
- tstripme="$stripme"
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- case $realname in
- *.dll.a)
- tstripme=""
- ;;
- esac
- ;;
- esac
- if test -n "$tstripme" && test -n "$striplib"; then
- func_show_eval "$striplib $destdir/$realname" 'exit $?'
- fi
-
- if test "$#" -gt 0; then
- # Delete the old symlinks, and create new ones.
- # Try `ln -sf' first, because the `ln' binary might depend on
- # the symlink we replace! Solaris /bin/ln does not understand -f,
- # so we also need to try rm && ln -s.
- for linkname
- do
- test "$linkname" != "$realname" \
- && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
- done
- fi
-
- # Do each command in the postinstall commands.
- lib="$destdir/$realname"
- func_execute_cmds "$postinstall_cmds" 'exit $?'
- fi
-
- # Install the pseudo-library for information purposes.
- func_basename "$file"
- name="$func_basename_result"
- instname="$dir/$name"i
- func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
-
- # Maybe install the static library, too.
- test -n "$old_library" && func_append staticlibs " $dir/$old_library"
- ;;
-
- *.lo)
- # Install (i.e. copy) a libtool object.
-
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- func_basename "$file"
- destfile="$func_basename_result"
- destfile="$destdir/$destfile"
- fi
-
- # Deduce the name of the destination old-style object file.
- case $destfile in
- *.lo)
- func_lo2o "$destfile"
- staticdest=$func_lo2o_result
- ;;
- *.$objext)
- staticdest="$destfile"
- destfile=
- ;;
- *)
- func_fatal_help "cannot copy a libtool object to \`$destfile'"
- ;;
- esac
-
- # Install the libtool object if requested.
- test -n "$destfile" && \
- func_show_eval "$install_prog $file $destfile" 'exit $?'
-
- # Install the old object if enabled.
- if test "$build_old_libs" = yes; then
- # Deduce the name of the old-style object file.
- func_lo2o "$file"
- staticobj=$func_lo2o_result
- func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
- fi
- exit $EXIT_SUCCESS
- ;;
-
- *)
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- func_basename "$file"
- destfile="$func_basename_result"
- destfile="$destdir/$destfile"
- fi
-
- # If the file is missing, and there is a .exe on the end, strip it
- # because it is most likely a libtool script we actually want to
- # install
- stripped_ext=""
- case $file in
- *.exe)
- if test ! -f "$file"; then
- func_stripname '' '.exe' "$file"
- file=$func_stripname_result
- stripped_ext=".exe"
- fi
- ;;
- esac
-
- # Do a test to see if this is really a libtool program.
- case $host in
- *cygwin* | *mingw*)
- if func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- wrapper=$func_ltwrapper_scriptname_result
- else
- func_stripname '' '.exe' "$file"
- wrapper=$func_stripname_result
- fi
- ;;
- *)
- wrapper=$file
- ;;
- esac
- if func_ltwrapper_script_p "$wrapper"; then
- notinst_deplibs=
- relink_command=
-
- func_source "$wrapper"
-
- # Check the variables that should have been set.
- test -z "$generated_by_libtool_version" && \
- func_fatal_error "invalid libtool wrapper script \`$wrapper'"
-
- finalize=yes
- for lib in $notinst_deplibs; do
- # Check to see that each library is installed.
- libdir=
- if test -f "$lib"; then
- func_source "$lib"
- fi
- libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
- if test -n "$libdir" && test ! -f "$libfile"; then
- func_warning "\`$lib' has not been installed in \`$libdir'"
- finalize=no
- fi
- done
-
- relink_command=
- func_source "$wrapper"
-
- outputname=
- if test "$fast_install" = no && test -n "$relink_command"; then
- $opt_dry_run || {
- if test "$finalize" = yes; then
- tmpdir=`func_mktempdir`
- func_basename "$file$stripped_ext"
- file="$func_basename_result"
- outputname="$tmpdir/$file"
- # Replace the output file specification.
- relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
-
- $opt_silent || {
- func_quote_for_expand "$relink_command"
- eval "func_echo $func_quote_for_expand_result"
- }
- if eval "$relink_command"; then :
- else
- func_error "error: relink \`$file' with the above command before installing it"
- $opt_dry_run || ${RM}r "$tmpdir"
- continue
- fi
- file="$outputname"
- else
- func_warning "cannot relink \`$file'"
- fi
- }
- else
- # Install the binary that we compiled earlier.
- file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
- fi
- fi
-
- # remove .exe since cygwin /usr/bin/install will append another
- # one anyway
- case $install_prog,$host in
- */usr/bin/install*,*cygwin*)
- case $file:$destfile in
- *.exe:*.exe)
- # this is ok
- ;;
- *.exe:*)
- destfile=$destfile.exe
- ;;
- *:*.exe)
- func_stripname '' '.exe' "$destfile"
- destfile=$func_stripname_result
- ;;
- esac
- ;;
- esac
- func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
- $opt_dry_run || if test -n "$outputname"; then
- ${RM}r "$tmpdir"
- fi
- ;;
- esac
- done
-
- for file in $staticlibs; do
- func_basename "$file"
- name="$func_basename_result"
-
- # Set up the ranlib parameters.
- oldlib="$destdir/$name"
- func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
- tool_oldlib=$func_to_tool_file_result
-
- func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
-
- if test -n "$stripme" && test -n "$old_striplib"; then
- func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
- fi
-
- # Do each command in the postinstall commands.
- func_execute_cmds "$old_postinstall_cmds" 'exit $?'
- done
-
- test -n "$future_libdirs" && \
- func_warning "remember to run \`$progname --finish$future_libdirs'"
-
- if test -n "$current_libdirs"; then
- # Maybe just do a dry run.
- $opt_dry_run && current_libdirs=" -n$current_libdirs"
- exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
- else
- exit $EXIT_SUCCESS
- fi
-}
-
-test "$opt_mode" = install && func_mode_install ${1+"$@"}
-
-
-# func_generate_dlsyms outputname originator pic_p
-# Extract symbols from dlprefiles and create ${outputname}S.o with
-# a dlpreopen symbol table.
-func_generate_dlsyms ()
-{
- $opt_debug
- my_outputname="$1"
- my_originator="$2"
- my_pic_p="${3-no}"
- my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
- my_dlsyms=
-
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- if test -n "$NM" && test -n "$global_symbol_pipe"; then
- my_dlsyms="${my_outputname}S.c"
- else
- func_error "not configured to extract global symbols from dlpreopened files"
- fi
- fi
-
- if test -n "$my_dlsyms"; then
- case $my_dlsyms in
- "") ;;
- *.c)
- # Discover the nlist of each of the dlfiles.
- nlist="$output_objdir/${my_outputname}.nm"
-
- func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
-
- # Parse the name list into a source file.
- func_verbose "creating $output_objdir/$my_dlsyms"
-
- $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
-#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
-#endif
-
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-/* External symbol declarations for the compiler. */\
-"
-
- if test "$dlself" = yes; then
- func_verbose "generating symbol list for \`$output'"
-
- $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
-
- # Add our own program objects to the symbol list.
- progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- for progfile in $progfiles; do
- func_to_tool_file "$progfile" func_convert_file_msys_to_w32
- func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
- $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -n "$exclude_expsyms"; then
- $opt_dry_run || {
- eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- if test -n "$export_symbols_regex"; then
- $opt_dry_run || {
- eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- export_symbols="$output_objdir/$outputname.exp"
- $opt_dry_run || {
- $RM $export_symbols
- eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
- eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- else
- $opt_dry_run || {
- eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
- eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
- eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- fi
- fi
-
- for dlprefile in $dlprefiles; do
- func_verbose "extracting global C symbols from \`$dlprefile'"
- func_basename "$dlprefile"
- name="$func_basename_result"
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- # if an import library, we need to obtain dlname
- if func_win32_import_lib_p "$dlprefile"; then
- func_tr_sh "$dlprefile"
- eval "curr_lafile=\$libfile_$func_tr_sh_result"
- dlprefile_dlbasename=""
- if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
- # Use subshell, to avoid clobbering current variable values
- dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
- if test -n "$dlprefile_dlname" ; then
- func_basename "$dlprefile_dlname"
- dlprefile_dlbasename="$func_basename_result"
- else
- # no lafile. user explicitly requested -dlpreopen <import library>.
- $sharedlib_from_linklib_cmd "$dlprefile"
- dlprefile_dlbasename=$sharedlib_from_linklib_result
- fi
- fi
- $opt_dry_run || {
- if test -n "$dlprefile_dlbasename" ; then
- eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
- else
- func_warning "Could not compute DLL name from $name"
- eval '$ECHO ": $name " >> "$nlist"'
- fi
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
- $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
- }
- else # not an import lib
- $opt_dry_run || {
- eval '$ECHO ": $name " >> "$nlist"'
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
- }
- fi
- ;;
- *)
- $opt_dry_run || {
- eval '$ECHO ": $name " >> "$nlist"'
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
- }
- ;;
- esac
- done
-
- $opt_dry_run || {
- # Make sure we have at least an empty file.
- test -f "$nlist" || : > "$nlist"
-
- if test -n "$exclude_expsyms"; then
- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
- $MV "$nlist"T "$nlist"
- fi
-
- # Try sorting and uniquifying the output.
- if $GREP -v "^: " < "$nlist" |
- if sort -k 3 </dev/null >/dev/null 2>&1; then
- sort -k 3
- else
- sort +2
- fi |
- uniq > "$nlist"S; then
- :
- else
- $GREP -v "^: " < "$nlist" > "$nlist"S
- fi
-
- if test -f "$nlist"S; then
- eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
- else
- echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
- fi
-
- echo >> "$output_objdir/$my_dlsyms" "\
-
-/* The mapping between symbol names and symbols. */
-typedef struct {
- const char *name;
- void *address;
-} lt_dlsymlist;
-extern LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];
-LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[] =
-{\
- { \"$my_originator\", (void *) 0 },"
-
- case $need_lib_prefix in
- no)
- eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
- ;;
- *)
- eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
- ;;
- esac
- echo >> "$output_objdir/$my_dlsyms" "\
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt_${my_prefix}_LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
- } # !$opt_dry_run
-
- pic_flag_for_symtable=
- case "$compile_command " in
- *" -static "*) ;;
- *)
- case $host in
- # compiling the symbol table file with pic_flag works around
- # a FreeBSD bug that causes programs to crash when -lm is
- # linked before any other PIC object. But we must not use
- # pic_flag when linking with -static. The problem exists in
- # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
- *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
- pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
- *-*-hpux*)
- pic_flag_for_symtable=" $pic_flag" ;;
- *)
- if test "X$my_pic_p" != Xno; then
- pic_flag_for_symtable=" $pic_flag"
- fi
- ;;
- esac
- ;;
- esac
- symtab_cflags=
- for arg in $LTCFLAGS; do
- case $arg in
- -pie | -fpie | -fPIE) ;;
- *) func_append symtab_cflags " $arg" ;;
- esac
- done
-
- # Now compile the dynamic symbol file.
- func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
-
- # Clean up the generated files.
- func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
-
- # Transform the symbol file into the correct name.
- symfileobj="$output_objdir/${my_outputname}S.$objext"
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- if test -f "$output_objdir/$my_outputname.def"; then
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- else
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- fi
- ;;
- *)
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- ;;
- esac
- ;;
- *)
- func_fatal_error "unknown suffix for \`$my_dlsyms'"
- ;;
- esac
- else
- # We keep going just in case the user didn't refer to
- # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
- # really was required.
-
- # Nullify the symbol file.
- compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
- fi
-}
-
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-# Despite the name, also deal with 64 bit binaries.
-func_win32_libid ()
-{
- $opt_debug
- win32_libid_type="unknown"
- win32_fileres=`file -L $1 2>/dev/null`
- case $win32_fileres in
- *ar\ archive\ import\ library*) # definitely import
- win32_libid_type="x86 archive import"
- ;;
- *ar\ archive*) # could be an import, or static
- # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
- if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
- $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
- $SED -n -e '
- 1,100{
- / I /{
- s,.*,import,
- p
- q
- }
- }'`
- case $win32_nmres in
- import*) win32_libid_type="x86 archive import";;
- *) win32_libid_type="x86 archive static";;
- esac
- fi
- ;;
- *DLL*)
- win32_libid_type="x86 DLL"
- ;;
- *executable*) # but shell scripts are "executable" too...
- case $win32_fileres in
- *MS\ Windows\ PE\ Intel*)
- win32_libid_type="x86 DLL"
- ;;
- esac
- ;;
- esac
- $ECHO "$win32_libid_type"
-}
-
-# func_cygming_dll_for_implib ARG
-#
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-# Invoked by eval'ing the libtool variable
-# $sharedlib_from_linklib_cmd
-# Result is available in the variable
-# $sharedlib_from_linklib_result
-func_cygming_dll_for_implib ()
-{
- $opt_debug
- sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
-}
-
-# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
-#
-# The is the core of a fallback implementation of a
-# platform-specific function to extract the name of the
-# DLL associated with the specified import library LIBNAME.
-#
-# SECTION_NAME is either .idata$6 or .idata$7, depending
-# on the platform and compiler that created the implib.
-#
-# Echos the name of the DLL associated with the
-# specified import library.
-func_cygming_dll_for_implib_fallback_core ()
-{
- $opt_debug
- match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
- $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
- $SED '/^Contents of section '"$match_literal"':/{
- # Place marker at beginning of archive member dllname section
- s/.*/====MARK====/
- p
- d
- }
- # These lines can sometimes be longer than 43 characters, but
- # are always uninteresting
- /:[ ]*file format pe[i]\{,1\}-/d
- /^In archive [^:]*:/d
- # Ensure marker is printed
- /^====MARK====/p
- # Remove all lines with less than 43 characters
- /^.\{43\}/!d
- # From remaining lines, remove first 43 characters
- s/^.\{43\}//' |
- $SED -n '
- # Join marker and all lines until next marker into a single line
- /^====MARK====/ b para
- H
- $ b para
- b
- :para
- x
- s/\n//g
- # Remove the marker
- s/^====MARK====//
- # Remove trailing dots and whitespace
- s/[\. \t]*$//
- # Print
- /./p' |
- # we now have a list, one entry per line, of the stringified
- # contents of the appropriate section of all members of the
- # archive which possess that section. Heuristic: eliminate
- # all those which have a first or second character that is
- # a '.' (that is, objdump's representation of an unprintable
- # character.) This should work for all archives with less than
- # 0x302f exports -- but will fail for DLLs whose name actually
- # begins with a literal '.' or a single character followed by
- # a '.'.
- #
- # Of those that remain, print the first one.
- $SED -e '/^\./d;/^.\./d;q'
-}
-
-# func_cygming_gnu_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is a GNU/binutils-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_gnu_implib_p ()
-{
- $opt_debug
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
- test -n "$func_cygming_gnu_implib_tmp"
-}
-
-# func_cygming_ms_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is an MS-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_ms_implib_p ()
-{
- $opt_debug
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
- test -n "$func_cygming_ms_implib_tmp"
-}
-
-# func_cygming_dll_for_implib_fallback ARG
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-#
-# This fallback implementation is for use when $DLLTOOL
-# does not support the --identify-strict option.
-# Invoked by eval'ing the libtool variable
-# $sharedlib_from_linklib_cmd
-# Result is available in the variable
-# $sharedlib_from_linklib_result
-func_cygming_dll_for_implib_fallback ()
-{
- $opt_debug
- if func_cygming_gnu_implib_p "$1" ; then
- # binutils import library
- sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
- elif func_cygming_ms_implib_p "$1" ; then
- # ms-generated import library
- sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
- else
- # unknown
- sharedlib_from_linklib_result=""
- fi
-}
-
-
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
- $opt_debug
- f_ex_an_ar_dir="$1"; shift
- f_ex_an_ar_oldlib="$1"
- if test "$lock_old_archive_extraction" = yes; then
- lockfile=$f_ex_an_ar_oldlib.lock
- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
- func_echo "Waiting for $lockfile to be removed"
- sleep 2
- done
- fi
- func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
- 'stat=$?; rm -f "$lockfile"; exit $stat'
- if test "$lock_old_archive_extraction" = yes; then
- $opt_dry_run || rm -f "$lockfile"
- fi
- if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
- fi
-}
-
-
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
- $opt_debug
- my_gentop="$1"; shift
- my_oldlibs=${1+"$@"}
- my_oldobjs=""
- my_xlib=""
- my_xabs=""
- my_xdir=""
-
- for my_xlib in $my_oldlibs; do
- # Extract the objects.
- case $my_xlib in
- [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
- *) my_xabs=`pwd`"/$my_xlib" ;;
- esac
- func_basename "$my_xlib"
- my_xlib="$func_basename_result"
- my_xlib_u=$my_xlib
- while :; do
- case " $extracted_archives " in
- *" $my_xlib_u "*)
- func_arith $extracted_serial + 1
- extracted_serial=$func_arith_result
- my_xlib_u=lt$extracted_serial-$my_xlib ;;
- *) break ;;
- esac
- done
- extracted_archives="$extracted_archives $my_xlib_u"
- my_xdir="$my_gentop/$my_xlib_u"
-
- func_mkdir_p "$my_xdir"
-
- case $host in
- *-darwin*)
- func_verbose "Extracting $my_xabs"
- # Do not bother doing anything if just a dry run
- $opt_dry_run || {
- darwin_orig_dir=`pwd`
- cd $my_xdir || exit $?
- darwin_archive=$my_xabs
- darwin_curdir=`pwd`
- darwin_base_archive=`basename "$darwin_archive"`
- darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
- if test -n "$darwin_arches"; then
- darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
- darwin_arch=
- func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
- for darwin_arch in $darwin_arches ; do
- func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
- $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
- cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
- func_extract_an_archive "`pwd`" "${darwin_base_archive}"
- cd "$darwin_curdir"
- $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
- done # $darwin_arches
- ## Okay now we've a bunch of thin objects, gotta fatten them up :)
- darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
- darwin_file=
- darwin_files=
- for darwin_file in $darwin_filelist; do
- darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
- $LIPO -create -output "$darwin_file" $darwin_files
- done # $darwin_filelist
- $RM -rf unfat-$$
- cd "$darwin_orig_dir"
- else
- cd $darwin_orig_dir
- func_extract_an_archive "$my_xdir" "$my_xabs"
- fi # $darwin_arches
- } # !$opt_dry_run
- ;;
- *)
- func_extract_an_archive "$my_xdir" "$my_xabs"
- ;;
- esac
- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
- done
-
- func_extract_archives_result="$my_oldobjs"
-}
-
-
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable. Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take. If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the $objdir directory. This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
- func_emit_wrapper_arg1=${1-no}
-
- $ECHO "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='$sed_quote_subst'
-
-# Be Bourne compatible
-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs 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
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
- # install mode needs the following variables:
- generated_by_libtool_version='$macro_version'
- notinst_deplibs='$notinst_deplibs'
-else
- # When we are sourced in execute mode, \$file and \$ECHO are already set.
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- file=\"\$0\""
-
- qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
- $ECHO "\
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
- ECHO=\"$qECHO\"
- fi
-
-# Very basic option parsing. These options are (a) specific to
-# the libtool wrapper, (b) are identical between the wrapper
-# /script/ and the wrapper /executable/ which is used only on
-# windows platforms, and (c) all begin with the string "--lt-"
-# (application programs are unlikely to have options which match
-# this pattern).
-#
-# There are only two supported options: --lt-debug and
-# --lt-dump-script. There is, deliberately, no --lt-help.
-#
-# The first argument to this parsing function should be the
-# script's $0 value, followed by "$@".
-lt_option_debug=
-func_parse_lt_options ()
-{
- lt_script_arg0=\$0
- shift
- for lt_opt
- do
- case \"\$lt_opt\" in
- --lt-debug) lt_option_debug=1 ;;
- --lt-dump-script)
- lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
- test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
- lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
- cat \"\$lt_dump_D/\$lt_dump_F\"
- exit 0
- ;;
- --lt-*)
- \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
- exit 1
- ;;
- esac
- done
-
- # Print the debug banner immediately:
- if test -n \"\$lt_option_debug\"; then
- echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
- fi
-}
-
-# Used when --lt-debug. Prints its arguments to stdout
-# (redirection is the responsibility of the caller)
-func_lt_dump_args ()
-{
- lt_dump_args_N=1;
- for lt_arg
- do
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
- lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
- done
-}
-
-# Core function for launching the target application
-func_exec_program_core ()
-{
-"
- case $host in
- # Backslashes separate directories on plain windows
- *-*-mingw | *-*-os2* | *-cegcc*)
- $ECHO "\
- if test -n \"\$lt_option_debug\"; then
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
- func_lt_dump_args \${1+\"\$@\"} 1>&2
- fi
- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
- ;;
-
- *)
- $ECHO "\
- if test -n \"\$lt_option_debug\"; then
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
- func_lt_dump_args \${1+\"\$@\"} 1>&2
- fi
- exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
- ;;
- esac
- $ECHO "\
- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
- exit 1
-}
-
-# A function to encapsulate launching the target application
-# Strips options in the --lt-* namespace from \$@ and
-# launches target application with the remaining arguments.
-func_exec_program ()
-{
- case \" \$* \" in
- *\\ --lt-*)
- for lt_wr_arg
- do
- case \$lt_wr_arg in
- --lt-*) ;;
- *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
- esac
- shift
- done ;;
- esac
- func_exec_program_core \${1+\"\$@\"}
-}
-
- # Parse options
- func_parse_lt_options \"\$0\" \${1+\"\$@\"}
-
- # Find the directory that this script lives in.
- thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
- test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
- while test -n \"\$file\"; do
- destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
-
- # If there was a directory component, then change thisdir.
- if test \"x\$destdir\" != \"x\$file\"; then
- case \"\$destdir\" in
- [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
- *) thisdir=\"\$thisdir/\$destdir\" ;;
- esac
- fi
-
- file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
- file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
- done
-
- # Usually 'no', except on cygwin/mingw when embedded into
- # the cwrapper.
- WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
- if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
- # special case for '.'
- if test \"\$thisdir\" = \".\"; then
- thisdir=\`pwd\`
- fi
- # remove .libs from thisdir
- case \"\$thisdir\" in
- *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
- $objdir ) thisdir=. ;;
- esac
- fi
-
- # Try to get the absolute directory name.
- absdir=\`cd \"\$thisdir\" && pwd\`
- test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
- if test "$fast_install" = yes; then
- $ECHO "\
- program=lt-'$outputname'$exeext
- progdir=\"\$thisdir/$objdir\"
-
- if test ! -f \"\$progdir/\$program\" ||
- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
- test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
- file=\"\$\$-\$program\"
-
- if test ! -d \"\$progdir\"; then
- $MKDIR \"\$progdir\"
- else
- $RM \"\$progdir/\$file\"
- fi"
-
- $ECHO "\
-
- # relink executable if necessary
- if test -n \"\$relink_command\"; then
- if relink_command_output=\`eval \$relink_command 2>&1\`; then :
- else
- $ECHO \"\$relink_command_output\" >&2
- $RM \"\$progdir/\$file\"
- exit 1
- fi
- fi
-
- $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
- { $RM \"\$progdir/\$program\";
- $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
- $RM \"\$progdir/\$file\"
- fi"
- else
- $ECHO "\
- program='$outputname'
- progdir=\"\$thisdir/$objdir\"
-"
- fi
-
- $ECHO "\
-
- if test -f \"\$progdir/\$program\"; then"
-
- # fixup the dll searchpath if we need to.
- #
- # Fix the DLL searchpath if we need to. Do this before prepending
- # to shlibpath, because on Windows, both are PATH and uninstalled
- # libraries must come first.
- if test -n "$dllsearchpath"; then
- $ECHO "\
- # Add the dll search path components to the executable PATH
- PATH=$dllsearchpath:\$PATH
-"
- fi
-
- # Export our shlibpath_var if we have one.
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- $ECHO "\
- # Add our own library path to $shlibpath_var
- $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
- # Some systems cannot cope with colon-terminated $shlibpath_var
- # The second colon is a workaround for a bug in BeOS R4 sed
- $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
-
- export $shlibpath_var
-"
- fi
-
- $ECHO "\
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- # Run the actual program with our arguments.
- func_exec_program \${1+\"\$@\"}
- fi
- else
- # The program doesn't exist.
- \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
- \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
- \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
- exit 1
- fi
-fi\
-"
-}
-
-
-# func_emit_cwrapperexe_src
-# emit the source code for a wrapper executable on stdout
-# Must ONLY be called from within func_mode_link because
-# it depends on a number of variable set therein.
-func_emit_cwrapperexe_src ()
-{
- cat <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
- Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-
- The $output program cannot be directly executed until all the libtool
- libraries that it depends on are installed.
-
- This wrapper executable should never be moved out of the build directory.
- If it is, it will not operate correctly.
-*/
-EOF
- cat <<"EOF"
-#ifdef _MSC_VER
-# define _CRT_SECURE_NO_DEPRECATE 1
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#ifdef _MSC_VER
-# include <direct.h>
-# include <process.h>
-# include <io.h>
-#else
-# include <unistd.h>
-# include <stdint.h>
-# ifdef __CYGWIN__
-# include <io.h>
-# endif
-#endif
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-/* declarations of non-ANSI functions */
-#if defined(__MINGW32__)
-# ifdef __STRICT_ANSI__
-int _putenv (const char *);
-# endif
-#elif defined(__CYGWIN__)
-# ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-# endif
-/* #elif defined (other platforms) ... */
-#endif
-
-/* portability defines, excluding path handling macros */
-#if defined(_MSC_VER)
-# define setmode _setmode
-# define stat _stat
-# define chmod _chmod
-# define getcwd _getcwd
-# define putenv _putenv
-# define S_IXUSR _S_IEXEC
-# ifndef _INTPTR_T_DEFINED
-# define _INTPTR_T_DEFINED
-# define intptr_t int
-# endif
-#elif defined(__MINGW32__)
-# define setmode _setmode
-# define stat _stat
-# define chmod _chmod
-# define getcwd _getcwd
-# define putenv _putenv
-#elif defined(__CYGWIN__)
-# define HAVE_SETENV
-# define FOPEN_WB "wb"
-/* #elif defined (other platforms) ... */
-#endif
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef S_IXOTH
-# define S_IXOTH 0
-#endif
-#ifndef S_IXGRP
-# define S_IXGRP 0
-#endif
-
-/* path handling portability macros */
-#ifndef DIR_SEPARATOR
-# define DIR_SEPARATOR '/'
-# define PATH_SEPARATOR ':'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
- defined (__OS2__)
-# define HAVE_DOS_BASED_FILE_SYSTEM
-# define FOPEN_WB "wb"
-# ifndef DIR_SEPARATOR_2
-# define DIR_SEPARATOR_2 '\\'
-# endif
-# ifndef PATH_SEPARATOR_2
-# define PATH_SEPARATOR_2 ';'
-# endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
- (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#ifndef PATH_SEPARATOR_2
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-#else /* PATH_SEPARATOR_2 */
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-#endif /* PATH_SEPARATOR_2 */
-
-#ifndef FOPEN_WB
-# define FOPEN_WB "w"
-#endif
-#ifndef _O_BINARY
-# define _O_BINARY 0
-#endif
-
-#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
- if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-#if defined(LT_DEBUGWRAPPER)
-static int lt_debug = 1;
-#else
-static int lt_debug = 0;
-#endif
-
-const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
-
-void *xmalloc (size_t num);
-char *xstrdup (const char *string);
-const char *base_name (const char *name);
-char *find_executable (const char *wrapper);
-char *chase_symlinks (const char *pathspec);
-int make_executable (const char *path);
-int check_executable (const char *path);
-char *strendzap (char *str, const char *pat);
-void lt_debugprintf (const char *file, int line, const char *fmt, ...);
-void lt_fatal (const char *file, int line, const char *message, ...);
-static const char *nonnull (const char *s);
-static const char *nonempty (const char *s);
-void lt_setenv (const char *name, const char *value);
-char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_update_exe_path (const char *name, const char *value);
-void lt_update_lib_path (const char *name, const char *value);
-char **prepare_spawn (char **argv);
-void lt_dump_script (FILE *f);
-EOF
-
- cat <<EOF
-volatile const char * MAGIC_EXE = "$magic_exe";
-const char * LIB_PATH_VARNAME = "$shlibpath_var";
-EOF
-
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- func_to_host_path "$temp_rpath"
- cat <<EOF
-const char * LIB_PATH_VALUE = "$func_to_host_path_result";
-EOF
- else
- cat <<"EOF"
-const char * LIB_PATH_VALUE = "";
-EOF
- fi
-
- if test -n "$dllsearchpath"; then
- func_to_host_path "$dllsearchpath:"
- cat <<EOF
-const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE = "$func_to_host_path_result";
-EOF
- else
- cat <<"EOF"
-const char * EXE_PATH_VARNAME = "";
-const char * EXE_PATH_VALUE = "";
-EOF
- fi
-
- if test "$fast_install" = yes; then
- cat <<EOF
-const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
-EOF
- else
- cat <<EOF
-const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
-EOF
- fi
-
-
- cat <<"EOF"
-
-#define LTWRAPPER_OPTION_PREFIX "--lt-"
-
-static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
-static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
-
-int
-main (int argc, char *argv[])
-{
- char **newargz;
- int newargc;
- char *tmp_pathspec;
- char *actual_cwrapper_path;
- char *actual_cwrapper_name;
- char *target_name;
- char *lt_argv_zero;
- intptr_t rval = 127;
-
- int i;
-
- program_name = (char *) xstrdup (base_name (argv[0]));
- newargz = XMALLOC (char *, argc + 1);
-
- /* very simple arg parsing; don't want to rely on getopt
- * also, copy all non cwrapper options to newargz, except
- * argz[0], which is handled differently
- */
- newargc=0;
- for (i = 1; i < argc; i++)
- {
- if (strcmp (argv[i], dumpscript_opt) == 0)
- {
-EOF
- case "$host" in
- *mingw* | *cygwin* )
- # make stdout use "unix" line endings
- echo " setmode(1,_O_BINARY);"
- ;;
- esac
-
- cat <<"EOF"
- lt_dump_script (stdout);
- return 0;
- }
- if (strcmp (argv[i], debug_opt) == 0)
- {
- lt_debug = 1;
- continue;
- }
- if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
- {
- /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
- namespace, but it is not one of the ones we know about and
- have already dealt with, above (inluding dump-script), then
- report an error. Otherwise, targets might begin to believe
- they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
- namespace. The first time any user complains about this, we'll
- need to make LTWRAPPER_OPTION_PREFIX a configure-time option
- or a configure.ac-settable value.
- */
- lt_fatal (__FILE__, __LINE__,
- "unrecognized %s option: '%s'",
- ltwrapper_option_prefix, argv[i]);
- }
- /* otherwise ... */
- newargz[++newargc] = xstrdup (argv[i]);
- }
- newargz[++newargc] = NULL;
-
-EOF
- cat <<EOF
- /* The GNU banner must be the first non-error debug message */
- lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
-EOF
- cat <<"EOF"
- lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
- lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
-
- tmp_pathspec = find_executable (argv[0]);
- if (tmp_pathspec == NULL)
- lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
- lt_debugprintf (__FILE__, __LINE__,
- "(main) found exe (before symlink chase) at: %s\n",
- tmp_pathspec);
-
- actual_cwrapper_path = chase_symlinks (tmp_pathspec);
- lt_debugprintf (__FILE__, __LINE__,
- "(main) found exe (after symlink chase) at: %s\n",
- actual_cwrapper_path);
- XFREE (tmp_pathspec);
-
- actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
- strendzap (actual_cwrapper_path, actual_cwrapper_name);
-
- /* wrapper name transforms */
- strendzap (actual_cwrapper_name, ".exe");
- tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
- XFREE (actual_cwrapper_name);
- actual_cwrapper_name = tmp_pathspec;
- tmp_pathspec = 0;
-
- /* target_name transforms -- use actual target program name; might have lt- prefix */
- target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
- strendzap (target_name, ".exe");
- tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
- XFREE (target_name);
- target_name = tmp_pathspec;
- tmp_pathspec = 0;
-
- lt_debugprintf (__FILE__, __LINE__,
- "(main) libtool target name: %s\n",
- target_name);
-EOF
-
- cat <<EOF
- newargz[0] =
- XMALLOC (char, (strlen (actual_cwrapper_path) +
- strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
- strcpy (newargz[0], actual_cwrapper_path);
- strcat (newargz[0], "$objdir");
- strcat (newargz[0], "/");
-EOF
-
- cat <<"EOF"
- /* stop here, and copy so we don't have to do this twice */
- tmp_pathspec = xstrdup (newargz[0]);
-
- /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
- strcat (newargz[0], actual_cwrapper_name);
-
- /* DO want the lt- prefix here if it exists, so use target_name */
- lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
- XFREE (tmp_pathspec);
- tmp_pathspec = NULL;
-EOF
-
- case $host_os in
- mingw*)
- cat <<"EOF"
- {
- char* p;
- while ((p = strchr (newargz[0], '\\')) != NULL)
- {
- *p = '/';
- }
- while ((p = strchr (lt_argv_zero, '\\')) != NULL)
- {
- *p = '/';
- }
- }
-EOF
- ;;
- esac
-
- cat <<"EOF"
- XFREE (target_name);
- XFREE (actual_cwrapper_path);
- XFREE (actual_cwrapper_name);
-
- lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
- lt_setenv ("DUALCASE", "1"); /* for MSK sh */
- /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
- be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
- because on Windows, both *_VARNAMEs are PATH but uninstalled
- libraries must come first. */
- lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
- lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
-
- lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
- nonnull (lt_argv_zero));
- for (i = 0; i < newargc; i++)
- {
- lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
- i, nonnull (newargz[i]));
- }
-
-EOF
-
- case $host_os in
- mingw*)
- cat <<"EOF"
- /* execv doesn't actually work on mingw as expected on unix */
- newargz = prepare_spawn (newargz);
- rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
- if (rval == -1)
- {
- /* failed to start process */
- lt_debugprintf (__FILE__, __LINE__,
- "(main) failed to launch target \"%s\": %s\n",
- lt_argv_zero, nonnull (strerror (errno)));
- return 127;
- }
- return rval;
-EOF
- ;;
- *)
- cat <<"EOF"
- execv (lt_argv_zero, newargz);
- return rval; /* =127, but avoids unused variable warning */
-EOF
- ;;
- esac
-
- cat <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
- void *p = (void *) malloc (num);
- if (!p)
- lt_fatal (__FILE__, __LINE__, "memory exhausted");
-
- return p;
-}
-
-char *
-xstrdup (const char *string)
-{
- return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
- string) : NULL;
-}
-
-const char *
-base_name (const char *name)
-{
- const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- /* Skip over the disk name in MSDOS pathnames. */
- if (isalpha ((unsigned char) name[0]) && name[1] == ':')
- name += 2;
-#endif
-
- for (base = name; *name; name++)
- if (IS_DIR_SEPARATOR (*name))
- base = name + 1;
- return base;
-}
-
-int
-check_executable (const char *path)
-{
- struct stat st;
-
- lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
- nonempty (path));
- if ((!path) || (!*path))
- return 0;
-
- if ((stat (path, &st) >= 0)
- && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
- return 1;
- else
- return 0;
-}
-
-int
-make_executable (const char *path)
-{
- int rval = 0;
- struct stat st;
-
- lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
- nonempty (path));
- if ((!path) || (!*path))
- return 0;
-
- if (stat (path, &st) >= 0)
- {
- rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
- }
- return rval;
-}
-
-/* Searches for the full path of the wrapper. Returns
- newly allocated full path name if found, NULL otherwise
- Does not chase symlinks, even on platforms that support them.
-*/
-char *
-find_executable (const char *wrapper)
-{
- int has_slash = 0;
- const char *p;
- const char *p_next;
- /* static buffer for getcwd */
- char tmp[LT_PATHMAX + 1];
- int tmp_len;
- char *concat_name;
-
- lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
- nonempty (wrapper));
-
- if ((wrapper == NULL) || (*wrapper == '\0'))
- return NULL;
-
- /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
- {
- concat_name = xstrdup (wrapper);
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
- else
- {
-#endif
- if (IS_DIR_SEPARATOR (wrapper[0]))
- {
- concat_name = xstrdup (wrapper);
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- }
-#endif
-
- for (p = wrapper; *p; p++)
- if (*p == '/')
- {
- has_slash = 1;
- break;
- }
- if (!has_slash)
- {
- /* no slashes; search PATH */
- const char *path = getenv ("PATH");
- if (path != NULL)
- {
- for (p = path; *p; p = p_next)
- {
- const char *q;
- size_t p_len;
- for (q = p; *q; q++)
- if (IS_PATH_SEPARATOR (*q))
- break;
- p_len = q - p;
- p_next = (*q == '\0' ? q : q + 1);
- if (p_len == 0)
- {
- /* empty path: current directory */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
- nonnull (strerror (errno)));
- tmp_len = strlen (tmp);
- concat_name =
- XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
- concat_name[tmp_len] = '/';
- strcpy (concat_name + tmp_len + 1, wrapper);
- }
- else
- {
- concat_name =
- XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, p, p_len);
- concat_name[p_len] = '/';
- strcpy (concat_name + p_len + 1, wrapper);
- }
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
- }
- /* not found in PATH; assume curdir */
- }
- /* Relative path | not found in path: prepend cwd */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
- nonnull (strerror (errno)));
- tmp_len = strlen (tmp);
- concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
- concat_name[tmp_len] = '/';
- strcpy (concat_name + tmp_len + 1, wrapper);
-
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- return NULL;
-}
-
-char *
-chase_symlinks (const char *pathspec)
-{
-#ifndef S_ISLNK
- return xstrdup (pathspec);
-#else
- char buf[LT_PATHMAX];
- struct stat s;
- char *tmp_pathspec = xstrdup (pathspec);
- char *p;
- int has_symlinks = 0;
- while (strlen (tmp_pathspec) && !has_symlinks)
- {
- lt_debugprintf (__FILE__, __LINE__,
- "checking path component for symlinks: %s\n",
- tmp_pathspec);
- if (lstat (tmp_pathspec, &s) == 0)
- {
- if (S_ISLNK (s.st_mode) != 0)
- {
- has_symlinks = 1;
- break;
- }
-
- /* search backwards for last DIR_SEPARATOR */
- p = tmp_pathspec + strlen (tmp_pathspec) - 1;
- while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
- p--;
- if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
- {
- /* no more DIR_SEPARATORS left */
- break;
- }
- *p = '\0';
- }
- else
- {
- lt_fatal (__FILE__, __LINE__,
- "error accessing file \"%s\": %s",
- tmp_pathspec, nonnull (strerror (errno)));
- }
- }
- XFREE (tmp_pathspec);
-
- if (!has_symlinks)
- {
- return xstrdup (pathspec);
- }
-
- tmp_pathspec = realpath (pathspec, buf);
- if (tmp_pathspec == 0)
- {
- lt_fatal (__FILE__, __LINE__,
- "could not follow symlinks for %s", pathspec);
- }
- return xstrdup (tmp_pathspec);
-#endif
-}
-
-char *
-strendzap (char *str, const char *pat)
-{
- size_t len, patlen;
-
- assert (str != NULL);
- assert (pat != NULL);
-
- len = strlen (str);
- patlen = strlen (pat);
-
- if (patlen <= len)
- {
- str += len - patlen;
- if (strcmp (str, pat) == 0)
- *str = '\0';
- }
- return str;
-}
-
-void
-lt_debugprintf (const char *file, int line, const char *fmt, ...)
-{
- va_list args;
- if (lt_debug)
- {
- (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
- va_start (args, fmt);
- (void) vfprintf (stderr, fmt, args);
- va_end (args);
- }
-}
-
-static void
-lt_error_core (int exit_status, const char *file,
- int line, const char *mode,
- const char *message, va_list ap)
-{
- fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
- vfprintf (stderr, message, ap);
- fprintf (stderr, ".\n");
-
- if (exit_status >= 0)
- exit (exit_status);
-}
-
-void
-lt_fatal (const char *file, int line, const char *message, ...)
-{
- va_list ap;
- va_start (ap, message);
- lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
- va_end (ap);
-}
-
-static const char *
-nonnull (const char *s)
-{
- return s ? s : "(null)";
-}
-
-static const char *
-nonempty (const char *s)
-{
- return (s && !*s) ? "(empty)" : nonnull (s);
-}
-
-void
-lt_setenv (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_setenv) setting '%s' to '%s'\n",
- nonnull (name), nonnull (value));
- {
-#ifdef HAVE_SETENV
- /* always make a copy, for consistency with !HAVE_SETENV */
- char *str = xstrdup (value);
- setenv (name, str, 1);
-#else
- int len = strlen (name) + 1 + strlen (value) + 1;
- char *str = XMALLOC (char, len);
- sprintf (str, "%s=%s", name, value);
- if (putenv (str) != EXIT_SUCCESS)
- {
- XFREE (str);
- }
-#endif
- }
-}
-
-char *
-lt_extend_str (const char *orig_value, const char *add, int to_end)
-{
- char *new_value;
- if (orig_value && *orig_value)
- {
- int orig_value_len = strlen (orig_value);
- int add_len = strlen (add);
- new_value = XMALLOC (char, add_len + orig_value_len + 1);
- if (to_end)
- {
- strcpy (new_value, orig_value);
- strcpy (new_value + orig_value_len, add);
- }
- else
- {
- strcpy (new_value, add);
- strcpy (new_value + add_len, orig_value);
- }
- }
- else
- {
- new_value = xstrdup (add);
- }
- return new_value;
-}
-
-void
-lt_update_exe_path (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
- nonnull (name), nonnull (value));
-
- if (name && *name && value && *value)
- {
- char *new_value = lt_extend_str (getenv (name), value, 0);
- /* some systems can't cope with a ':'-terminated path #' */
- int len = strlen (new_value);
- while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
- {
- new_value[len-1] = '\0';
- }
- lt_setenv (name, new_value);
- XFREE (new_value);
- }
-}
-
-void
-lt_update_lib_path (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
- nonnull (name), nonnull (value));
-
- if (name && *name && value && *value)
- {
- char *new_value = lt_extend_str (getenv (name), value, 0);
- lt_setenv (name, new_value);
- XFREE (new_value);
- }
-}
-
-EOF
- case $host_os in
- mingw*)
- cat <<"EOF"
-
-/* Prepares an argument vector before calling spawn().
- Note that spawn() does not by itself call the command interpreter
- (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
- ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- GetVersionEx(&v);
- v.dwPlatformId == VER_PLATFORM_WIN32_NT;
- }) ? "cmd.exe" : "command.com").
- Instead it simply concatenates the arguments, separated by ' ', and calls
- CreateProcess(). We must quote the arguments since Win32 CreateProcess()
- interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
- special way:
- - Space and tab are interpreted as delimiters. They are not treated as
- delimiters if they are surrounded by double quotes: "...".
- - Unescaped double quotes are removed from the input. Their only effect is
- that within double quotes, space and tab are treated like normal
- characters.
- - Backslashes not followed by double quotes are not special.
- - But 2*n+1 backslashes followed by a double quote become
- n backslashes followed by a double quote (n >= 0):
- \" -> "
- \\\" -> \"
- \\\\\" -> \\"
- */
-#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-char **
-prepare_spawn (char **argv)
-{
- size_t argc;
- char **new_argv;
- size_t i;
-
- /* Count number of arguments. */
- for (argc = 0; argv[argc] != NULL; argc++)
- ;
-
- /* Allocate new argument vector. */
- new_argv = XMALLOC (char *, argc + 1);
-
- /* Put quoted arguments into the new argument vector. */
- for (i = 0; i < argc; i++)
- {
- const char *string = argv[i];
-
- if (string[0] == '\0')
- new_argv[i] = xstrdup ("\"\"");
- else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
- {
- int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
- size_t length;
- unsigned int backslashes;
- const char *s;
- char *quoted_string;
- char *p;
-
- length = 0;
- backslashes = 0;
- if (quote_around)
- length++;
- for (s = string; *s != '\0'; s++)
- {
- char c = *s;
- if (c == '"')
- length += backslashes + 1;
- length++;
- if (c == '\\')
- backslashes++;
- else
- backslashes = 0;
- }
- if (quote_around)
- length += backslashes + 1;
-
- quoted_string = XMALLOC (char, length + 1);
-
- p = quoted_string;
- backslashes = 0;
- if (quote_around)
- *p++ = '"';
- for (s = string; *s != '\0'; s++)
- {
- char c = *s;
- if (c == '"')
- {
- unsigned int j;
- for (j = backslashes + 1; j > 0; j--)
- *p++ = '\\';
- }
- *p++ = c;
- if (c == '\\')
- backslashes++;
- else
- backslashes = 0;
- }
- if (quote_around)
- {
- unsigned int j;
- for (j = backslashes; j > 0; j--)
- *p++ = '\\';
- *p++ = '"';
- }
- *p = '\0';
-
- new_argv[i] = quoted_string;
- }
- else
- new_argv[i] = (char *) string;
- }
- new_argv[argc] = NULL;
-
- return new_argv;
-}
-EOF
- ;;
- esac
-
- cat <<"EOF"
-void lt_dump_script (FILE* f)
-{
-EOF
- func_emit_wrapper yes |
- $SED -n -e '
-s/^\(.\{79\}\)\(..*\)/\1\
-\2/
-h
-s/\([\\"]\)/\\\1/g
-s/$/\\n/
-s/\([^\n]*\).*/ fputs ("\1", f);/p
-g
-D'
- cat <<"EOF"
-}
-EOF
-}
-# end: func_emit_cwrapperexe_src
-
-# func_win32_import_lib_p ARG
-# True if ARG is an import lib, as indicated by $file_magic_cmd
-func_win32_import_lib_p ()
-{
- $opt_debug
- case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
- *import*) : ;;
- *) false ;;
- esac
-}
-
-# func_mode_link arg...
-func_mode_link ()
-{
- $opt_debug
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- # It is impossible to link a dll without this setting, and
- # we shouldn't force the makefile maintainer to figure out
- # which system we are compiling for in order to pass an extra
- # flag for every libtool invocation.
- # allow_undefined=no
-
- # FIXME: Unfortunately, there are problems with the above when trying
- # to make a dll which has undefined symbols, in which case not
- # even a static library is built. For now, we need to specify
- # -no-undefined on the libtool link line when we can be certain
- # that all symbols are satisfied, otherwise we get a static library.
- allow_undefined=yes
- ;;
- *)
- allow_undefined=yes
- ;;
- esac
- libtool_args=$nonopt
- base_compile="$nonopt $@"
- compile_command=$nonopt
- finalize_command=$nonopt
-
- compile_rpath=
- finalize_rpath=
- compile_shlibpath=
- finalize_shlibpath=
- convenience=
- old_convenience=
- deplibs=
- old_deplibs=
- compiler_flags=
- linker_flags=
- dllsearchpath=
- lib_search_path=`pwd`
- inst_prefix_dir=
- new_inherited_linker_flags=
-
- avoid_version=no
- bindir=
- dlfiles=
- dlprefiles=
- dlself=no
- export_dynamic=no
- export_symbols=
- export_symbols_regex=
- generated=
- libobjs=
- ltlibs=
- module=no
- no_install=no
- objs=
- non_pic_objects=
- precious_files_regex=
- prefer_static_libs=no
- preload=no
- prev=
- prevarg=
- release=
- rpath=
- xrpath=
- perm_rpath=
- temp_rpath=
- thread_safe=no
- vinfo=
- vinfo_number=no
- weak_libs=
- single_module="${wl}-single_module"
- func_infer_tag $base_compile
-
- # We need to know -static, to get the right output filenames.
- for arg
- do
- case $arg in
- -shared)
- test "$build_libtool_libs" != yes && \
- func_fatal_configuration "can not build a shared library"
- build_old_libs=no
- break
- ;;
- -all-static | -static | -static-libtool-libs)
- case $arg in
- -all-static)
- if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
- func_warning "complete static linking is impossible in this configuration"
- fi
- if test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- -static)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=built
- ;;
- -static-libtool-libs)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- esac
- build_libtool_libs=no
- build_old_libs=yes
- break
- ;;
- esac
- done
-
- # See if our shared archives depend on static archives.
- test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
- # Go through the arguments, transforming them on the way.
- while test "$#" -gt 0; do
- arg="$1"
- shift
- func_quote_for_eval "$arg"
- qarg=$func_quote_for_eval_unquoted_result
- func_append libtool_args " $func_quote_for_eval_result"
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- case $prev in
- output)
- func_append compile_command " @OUTPUT@"
- func_append finalize_command " @OUTPUT@"
- ;;
- esac
-
- case $prev in
- bindir)
- bindir="$arg"
- prev=
- continue
- ;;
- dlfiles|dlprefiles)
- if test "$preload" = no; then
- # Add the symbol object into the linking commands.
- func_append compile_command " @SYMFILE@"
- func_append finalize_command " @SYMFILE@"
- preload=yes
- fi
- case $arg in
- *.la | *.lo) ;; # We handle these cases below.
- force)
- if test "$dlself" = no; then
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- self)
- if test "$prev" = dlprefiles; then
- dlself=yes
- elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
- dlself=yes
- else
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- *)
- if test "$prev" = dlfiles; then
- func_append dlfiles " $arg"
- else
- func_append dlprefiles " $arg"
- fi
- prev=
- continue
- ;;
- esac
- ;;
- expsyms)
- export_symbols="$arg"
- test -f "$arg" \
- || func_fatal_error "symbol file \`$arg' does not exist"
- prev=
- continue
- ;;
- expsyms_regex)
- export_symbols_regex="$arg"
- prev=
- continue
- ;;
- framework)
- case $host in
- *-*-darwin*)
- case "$deplibs " in
- *" $qarg.ltframework "*) ;;
- *) func_append deplibs " $qarg.ltframework" # this is fixed later
- ;;
- esac
- ;;
- esac
- prev=
- continue
- ;;
- inst_prefix)
- inst_prefix_dir="$arg"
- prev=
- continue
- ;;
- objectlist)
- if test -f "$arg"; then
- save_arg=$arg
- moreargs=
- for fil in `cat "$save_arg"`
- do
-# func_append moreargs " $fil"
- arg=$fil
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if func_lalib_unsafe_p "$arg"; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- func_source "$arg"
-
- if test -z "$pic_object" ||
- test -z "$non_pic_object" ||
- test "$pic_object" = none &&
- test "$non_pic_object" = none; then
- func_fatal_error "cannot find name of object for \`$arg'"
- fi
-
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- func_append dlfiles " $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- func_append dlprefiles " $pic_object"
- prev=
- fi
-
- # A PIC object.
- func_append libobjs " $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- func_append non_pic_objects " $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- else
- # If the PIC object exists, use it instead.
- # $xdir was prepended to $pic_object above.
- non_pic_object="$pic_object"
- func_append non_pic_objects " $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if $opt_dry_run; then
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- func_lo2o "$arg"
- pic_object=$xdir$objdir/$func_lo2o_result
- non_pic_object=$xdir$func_lo2o_result
- func_append libobjs " $pic_object"
- func_append non_pic_objects " $non_pic_object"
- else
- func_fatal_error "\`$arg' is not a valid libtool object"
- fi
- fi
- done
- else
- func_fatal_error "link input file \`$arg' does not exist"
- fi
- arg=$save_arg
- prev=
- continue
- ;;
- precious_regex)
- precious_files_regex="$arg"
- prev=
- continue
- ;;
- release)
- release="-$arg"
- prev=
- continue
- ;;
- rpath | xrpath)
- # We need an absolute path.
- case $arg in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- if test "$prev" = rpath; then
- case "$rpath " in
- *" $arg "*) ;;
- *) func_append rpath " $arg" ;;
- esac
- else
- case "$xrpath " in
- *" $arg "*) ;;
- *) func_append xrpath " $arg" ;;
- esac
- fi
- prev=
- continue
- ;;
- shrext)
- shrext_cmds="$arg"
- prev=
- continue
- ;;
- weak)
- func_append weak_libs " $arg"
- prev=
- continue
- ;;
- xcclinker)
- func_append linker_flags " $qarg"
- func_append compiler_flags " $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xcompiler)
- func_append compiler_flags " $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xlinker)
- func_append linker_flags " $qarg"
- func_append compiler_flags " $wl$qarg"
- prev=
- func_append compile_command " $wl$qarg"
- func_append finalize_command " $wl$qarg"
- continue
- ;;
- *)
- eval "$prev=\"\$arg\""
- prev=
- continue
- ;;
- esac
- fi # test -n "$prev"
-
- prevarg="$arg"
-
- case $arg in
- -all-static)
- if test -n "$link_static_flag"; then
- # See comment for -static flag below, for more details.
- func_append compile_command " $link_static_flag"
- func_append finalize_command " $link_static_flag"
- fi
- continue
- ;;
-
- -allow-undefined)
- # FIXME: remove this flag sometime in the future.
- func_fatal_error "\`-allow-undefined' must not be used because it is the default"
- ;;
-
- -avoid-version)
- avoid_version=yes
- continue
- ;;
-
- -bindir)
- prev=bindir
- continue
- ;;
-
- -dlopen)
- prev=dlfiles
- continue
- ;;
-
- -dlpreopen)
- prev=dlprefiles
- continue
- ;;
-
- -export-dynamic)
- export_dynamic=yes
- continue
- ;;
-
- -export-symbols | -export-symbols-regex)
- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
- func_fatal_error "more than one -exported-symbols argument is not allowed"
- fi
- if test "X$arg" = "X-export-symbols"; then
- prev=expsyms
- else
- prev=expsyms_regex
- fi
- continue
- ;;
-
- -framework)
- prev=framework
- continue
- ;;
-
- -inst-prefix-dir)
- prev=inst_prefix
- continue
- ;;
-
- # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
- # so, if we see these flags be careful not to treat them like -L
- -L[A-Z][A-Z]*:*)
- case $with_gcc/$host in
- no/*-*-irix* | /*-*-irix*)
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- ;;
- esac
- continue
- ;;
-
- -L*)
- func_stripname "-L" '' "$arg"
- if test -z "$func_stripname_result"; then
- if test "$#" -gt 0; then
- func_fatal_error "require no space between \`-L' and \`$1'"
- else
- func_fatal_error "need path for \`-L' option"
- fi
- fi
- func_resolve_sysroot "$func_stripname_result"
- dir=$func_resolve_sysroot_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- absdir=`cd "$dir" && pwd`
- test -z "$absdir" && \
- func_fatal_error "cannot determine absolute directory name of \`$dir'"
- dir="$absdir"
- ;;
- esac
- case "$deplibs " in
- *" -L$dir "* | *" $arg "*)
- # Will only happen for absolute or sysroot arguments
- ;;
- *)
- # Preserve sysroot, but never include relative directories
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
- *) func_append deplibs " -L$dir" ;;
- esac
- func_append lib_search_path " $dir"
- ;;
- esac
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$dir:"*) ;;
- ::) dllsearchpath=$dir;;
- *) func_append dllsearchpath ":$dir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
- *) func_append dllsearchpath ":$testbindir";;
- esac
- ;;
- esac
- continue
- ;;
-
- -l*)
- if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
- # These systems don't actually have a C or math library (as such)
- continue
- ;;
- *-*-os2*)
- # These systems don't actually have a C library (as such)
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C and math libraries are in the System framework
- func_append deplibs " System.ltframework"
- continue
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
- # Causes problems with __ctype
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
- # Compiler inserts libc in the correct place for threads to work
- test "X$arg" = "X-lc" && continue
- ;;
- esac
- elif test "X$arg" = "X-lc_r"; then
- case $host in
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc_r directly, use -pthread flag.
- continue
- ;;
- esac
- fi
- func_append deplibs " $arg"
- continue
- ;;
-
- -module)
- module=yes
- continue
- ;;
-
- # Tru64 UNIX uses -model [arg] to determine the layout of C++
- # classes, name mangling, and exception handling.
- # Darwin uses the -arch flag to determine output architecture.
- -model|-arch|-isysroot|--sysroot)
- func_append compiler_flags " $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- prev=xcompiler
- continue
- ;;
-
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
- |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
- func_append compiler_flags " $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- case "$new_inherited_linker_flags " in
- *" $arg "*) ;;
- * ) func_append new_inherited_linker_flags " $arg" ;;
- esac
- continue
- ;;
-
- -multi_module)
- single_module="${wl}-multi_module"
- continue
- ;;
-
- -no-fast-install)
- fast_install=no
- continue
- ;;
-
- -no-install)
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
- # The PATH hackery in wrapper scripts is required on Windows
- # and Darwin in order for the loader to find any dlls it needs.
- func_warning "\`-no-install' is ignored for $host"
- func_warning "assuming \`-no-fast-install' instead"
- fast_install=no
- ;;
- *) no_install=yes ;;
- esac
- continue
- ;;
-
- -no-undefined)
- allow_undefined=no
- continue
- ;;
-
- -objectlist)
- prev=objectlist
- continue
- ;;
-
- -o) prev=output ;;
-
- -precious-files-regex)
- prev=precious_regex
- continue
- ;;
-
- -release)
- prev=release
- continue
- ;;
-
- -rpath)
- prev=rpath
- continue
- ;;
-
- -R)
- prev=xrpath
- continue
- ;;
-
- -R*)
- func_stripname '-R' '' "$arg"
- dir=$func_stripname_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- =*)
- func_stripname '=' '' "$dir"
- dir=$lt_sysroot$func_stripname_result
- ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- case "$xrpath " in
- *" $dir "*) ;;
- *) func_append xrpath " $dir" ;;
- esac
- continue
- ;;
-
- -shared)
- # The effects of -shared are defined in a previous loop.
- continue
- ;;
-
- -shrext)
- prev=shrext
- continue
- ;;
-
- -static | -static-libtool-libs)
- # The effects of -static are defined in a previous loop.
- # We used to do the same as -all-static on platforms that
- # didn't have a PIC flag, but the assumption that the effects
- # would be equivalent was wrong. It would break on at least
- # Digital Unix and AIX.
- continue
- ;;
-
- -thread-safe)
- thread_safe=yes
- continue
- ;;
-
- -version-info)
- prev=vinfo
- continue
- ;;
-
- -version-number)
- prev=vinfo
- vinfo_number=yes
- continue
- ;;
-
- -weak)
- prev=weak
- continue
- ;;
-
- -Wc,*)
- func_stripname '-Wc,' '' "$arg"
- args=$func_stripname_result
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$flag"
- func_append arg " $func_quote_for_eval_result"
- func_append compiler_flags " $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$arg"
- arg=$func_stripname_result
- ;;
-
- -Wl,*)
- func_stripname '-Wl,' '' "$arg"
- args=$func_stripname_result
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$flag"
- func_append arg " $wl$func_quote_for_eval_result"
- func_append compiler_flags " $wl$func_quote_for_eval_result"
- func_append linker_flags " $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$arg"
- arg=$func_stripname_result
- ;;
-
- -Xcompiler)
- prev=xcompiler
- continue
- ;;
-
- -Xlinker)
- prev=xlinker
- continue
- ;;
-
- -XCClinker)
- prev=xcclinker
- continue
- ;;
-
- # -msg_* for osf cc
- -msg_*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
-
- # Flags to be passed through unchanged, with rationale:
- # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
- # -r[0-9][0-9]* specify processor for the SGI compiler
- # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
- # +DA*, +DD* enable 64-bit mode for the HP compiler
- # -q* compiler args for the IBM compiler
- # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
- # -F/path path to uninstalled frameworks, gcc on darwin
- # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
- # @file GCC response files
- # -tp=* Portland pgcc target processor selection
- # --sysroot=* for sysroot support
- # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
- -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- func_append compiler_flags " $arg"
- continue
- ;;
-
- # Some other compiler flag.
- -* | +*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
-
- *.$objext)
- # A standard object.
- func_append objs " $arg"
- ;;
-
- *.lo)
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if func_lalib_unsafe_p "$arg"; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- func_source "$arg"
-
- if test -z "$pic_object" ||
- test -z "$non_pic_object" ||
- test "$pic_object" = none &&
- test "$non_pic_object" = none; then
- func_fatal_error "cannot find name of object for \`$arg'"
- fi
-
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- func_append dlfiles " $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- func_append dlprefiles " $pic_object"
- prev=
- fi
-
- # A PIC object.
- func_append libobjs " $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- func_append non_pic_objects " $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- else
- # If the PIC object exists, use it instead.
- # $xdir was prepended to $pic_object above.
- non_pic_object="$pic_object"
- func_append non_pic_objects " $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if $opt_dry_run; then
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- func_lo2o "$arg"
- pic_object=$xdir$objdir/$func_lo2o_result
- non_pic_object=$xdir$func_lo2o_result
- func_append libobjs " $pic_object"
- func_append non_pic_objects " $non_pic_object"
- else
- func_fatal_error "\`$arg' is not a valid libtool object"
- fi
- fi
- ;;
-
- *.$libext)
- # An archive.
- func_append deplibs " $arg"
- func_append old_deplibs " $arg"
- continue
- ;;
-
- *.la)
- # A libtool-controlled library.
-
- func_resolve_sysroot "$arg"
- if test "$prev" = dlfiles; then
- # This library was specified with -dlopen.
- func_append dlfiles " $func_resolve_sysroot_result"
- prev=
- elif test "$prev" = dlprefiles; then
- # The library was specified with -dlpreopen.
- func_append dlprefiles " $func_resolve_sysroot_result"
- prev=
- else
- func_append deplibs " $func_resolve_sysroot_result"
- fi
- continue
- ;;
-
- # Some other compiler argument.
- *)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
- esac # arg
-
- # Now actually substitute the argument into the commands.
- if test -n "$arg"; then
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
- done # argument parsing loop
-
- test -n "$prev" && \
- func_fatal_help "the \`$prevarg' option requires an argument"
-
- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
- eval arg=\"$export_dynamic_flag_spec\"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
-
- oldlibs=
- # calculate the name of the file, without its directory
- func_basename "$output"
- outputname="$func_basename_result"
- libobjs_save="$libobjs"
-
- if test -n "$shlibpath_var"; then
- # get the directories listed in $shlibpath_var
- eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
- else
- shlib_search_path=
- fi
- eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
- eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
- func_dirname "$output" "/" ""
- output_objdir="$func_dirname_result$objdir"
- func_to_tool_file "$output_objdir/"
- tool_output_objdir=$func_to_tool_file_result
- # Create the object directory.
- func_mkdir_p "$output_objdir"
-
- # Determine the type of output
- case $output in
- "")
- func_fatal_help "you must specify an output file"
- ;;
- *.$libext) linkmode=oldlib ;;
- *.lo | *.$objext) linkmode=obj ;;
- *.la) linkmode=lib ;;
- *) linkmode=prog ;; # Anything else should be a program.
- esac
-
- specialdeplibs=
-
- libs=
- # Find all interdependent deplibs by searching for libraries
- # that are linked more than once (e.g. -la -lb -la)
- for deplib in $deplibs; do
- if $opt_preserve_dup_deps ; then
- case "$libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append libs " $deplib"
- done
-
- if test "$linkmode" = lib; then
- libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
- # Compute libraries that are listed more than once in $predeps
- # $postdeps and mark them as special (i.e., whose duplicates are
- # not to be eliminated).
- pre_post_deps=
- if $opt_duplicate_compiler_generated_deps; then
- for pre_post_dep in $predeps $postdeps; do
- case "$pre_post_deps " in
- *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
- esac
- func_append pre_post_deps " $pre_post_dep"
- done
- fi
- pre_post_deps=
- fi
-
- deplibs=
- newdependency_libs=
- newlib_search_path=
- need_relink=no # whether we're linking any uninstalled libtool libraries
- notinst_deplibs= # not-installed libtool libraries
- notinst_path= # paths that contain not-installed libtool libraries
-
- case $linkmode in
- lib)
- passes="conv dlpreopen link"
- for file in $dlfiles $dlprefiles; do
- case $file in
- *.la) ;;
- *)
- func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
- ;;
- esac
- done
- ;;
- prog)
- compile_deplibs=
- finalize_deplibs=
- alldeplibs=no
- newdlfiles=
- newdlprefiles=
- passes="conv scan dlopen dlpreopen link"
- ;;
- *) passes="conv"
- ;;
- esac
-
- for pass in $passes; do
- # The preopen pass in lib mode reverses $deplibs; put it back here
- # so that -L comes before libs that need it for instance...
- if test "$linkmode,$pass" = "lib,link"; then
- ## FIXME: Find the place where the list is rebuilt in the wrong
- ## order, and fix it there properly
- tmp_deplibs=
- for deplib in $deplibs; do
- tmp_deplibs="$deplib $tmp_deplibs"
- done
- deplibs="$tmp_deplibs"
- fi
-
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan"; then
- libs="$deplibs"
- deplibs=
- fi
- if test "$linkmode" = prog; then
- case $pass in
- dlopen) libs="$dlfiles" ;;
- dlpreopen) libs="$dlprefiles" ;;
- link)
- libs="$deplibs %DEPLIBS%"
- test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
- ;;
- esac
- fi
- if test "$linkmode,$pass" = "lib,dlpreopen"; then
- # Collect and forward deplibs of preopened libtool libs
- for lib in $dlprefiles; do
- # Ignore non-libtool-libs
- dependency_libs=
- func_resolve_sysroot "$lib"
- case $lib in
- *.la) func_source "$func_resolve_sysroot_result" ;;
- esac
-
- # Collect preopened libtool deplibs, except any this library
- # has declared as weak libs
- for deplib in $dependency_libs; do
- func_basename "$deplib"
- deplib_base=$func_basename_result
- case " $weak_libs " in
- *" $deplib_base "*) ;;
- *) func_append deplibs " $deplib" ;;
- esac
- done
- done
- libs="$dlprefiles"
- fi
- if test "$pass" = dlopen; then
- # Collect dlpreopened libraries
- save_deplibs="$deplibs"
- deplibs=
- fi
-
- for deplib in $libs; do
- lib=
- found=no
- case $deplib in
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
- |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- func_append compiler_flags " $deplib"
- if test "$linkmode" = lib ; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
- * ) func_append new_inherited_linker_flags " $deplib" ;;
- esac
- fi
- fi
- continue
- ;;
- -l*)
- if test "$linkmode" != lib && test "$linkmode" != prog; then
- func_warning "\`-l' is ignored for archives/objects"
- continue
- fi
- func_stripname '-l' '' "$deplib"
- name=$func_stripname_result
- if test "$linkmode" = lib; then
- searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
- else
- searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
- fi
- for searchdir in $searchdirs; do
- for search_ext in .la $std_shrext .so .a; do
- # Search the libtool library
- lib="$searchdir/lib${name}${search_ext}"
- if test -f "$lib"; then
- if test "$search_ext" = ".la"; then
- found=yes
- else
- found=no
- fi
- break 2
- fi
- done
- done
- if test "$found" != yes; then
- # deplib doesn't seem to be a libtool library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- else # deplib is a libtool library
- # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
- # We need to do some special things here, and not later.
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $deplib "*)
- if func_lalib_p "$lib"; then
- library_names=
- old_library=
- func_source "$lib"
- for l in $old_library $library_names; do
- ll="$l"
- done
- if test "X$ll" = "X$old_library" ; then # only static version available
- found=no
- func_dirname "$lib" "" "."
- ladir="$func_dirname_result"
- lib=$ladir/$old_library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- fi
- fi
- ;;
- *) ;;
- esac
- fi
- fi
- ;; # -l
- *.ltframework)
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- if test "$linkmode" = lib ; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
- * ) func_append new_inherited_linker_flags " $deplib" ;;
- esac
- fi
- fi
- continue
- ;;
- -L*)
- case $linkmode in
- lib)
- deplibs="$deplib $deplibs"
- test "$pass" = conv && continue
- newdependency_libs="$deplib $newdependency_libs"
- func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- prog)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- if test "$pass" = scan; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- *)
- func_warning "\`-L' is ignored for archives/objects"
- ;;
- esac # linkmode
- continue
- ;; # -L
- -R*)
- if test "$pass" = link; then
- func_stripname '-R' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- dir=$func_resolve_sysroot_result
- # Make sure the xrpath contains only unique directories.
- case "$xrpath " in
- *" $dir "*) ;;
- *) func_append xrpath " $dir" ;;
- esac
- fi
- deplibs="$deplib $deplibs"
- continue
- ;;
- *.la)
- func_resolve_sysroot "$deplib"
- lib=$func_resolve_sysroot_result
- ;;
- *.$libext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- case $linkmode in
- lib)
- # Linking convenience modules into shared libraries is allowed,
- # but linking other static libraries is non-portable.
- case " $dlpreconveniencelibs " in
- *" $deplib "*) ;;
- *)
- valid_a_lib=no
- case $deplibs_check_method in
- match_pattern*)
- set dummy $deplibs_check_method; shift
- match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
- | $EGREP "$match_pattern_regex" > /dev/null; then
- valid_a_lib=yes
- fi
- ;;
- pass_all)
- valid_a_lib=yes
- ;;
- esac
- if test "$valid_a_lib" != yes; then
- echo
- $ECHO "*** Warning: Trying to link with static lib archive $deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because the file extensions .$libext of this argument makes me believe"
- echo "*** that it is just a static archive that I should not use here."
- else
- echo
- $ECHO "*** Warning: Linking the shared library $output against the"
- $ECHO "*** static library $deplib is not portable!"
- deplibs="$deplib $deplibs"
- fi
- ;;
- esac
- continue
- ;;
- prog)
- if test "$pass" != link; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- continue
- ;;
- esac # linkmode
- ;; # *.$libext
- *.lo | *.$objext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- elif test "$linkmode" = prog; then
- if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
- # If there is no dlopen support or we're linking statically,
- # we need to preload.
- func_append newdlprefiles " $deplib"
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- func_append newdlfiles " $deplib"
- fi
- fi
- continue
- ;;
- %DEPLIBS%)
- alldeplibs=yes
- continue
- ;;
- esac # case $deplib
-
- if test "$found" = yes || test -f "$lib"; then :
- else
- func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
- fi
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$lib" \
- || func_fatal_error "\`$lib' is not a valid libtool archive"
-
- func_dirname "$lib" "" "."
- ladir="$func_dirname_result"
-
- dlname=
- dlopen=
- dlpreopen=
- libdir=
- library_names=
- old_library=
- inherited_linker_flags=
- # If the library was installed with an old release of libtool,
- # it will not redefine variables installed, or shouldnotlink
- installed=yes
- shouldnotlink=no
- avoidtemprpath=
-
-
- # Read the .la file
- func_source "$lib"
-
- # Convert "-framework foo" to "foo.ltframework"
- if test -n "$inherited_linker_flags"; then
- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
- for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
- case " $new_inherited_linker_flags " in
- *" $tmp_inherited_linker_flag "*) ;;
- *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
- esac
- done
- fi
- dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan" ||
- { test "$linkmode" != prog && test "$linkmode" != lib; }; then
- test -n "$dlopen" && func_append dlfiles " $dlopen"
- test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
- fi
-
- if test "$pass" = conv; then
- # Only check for convenience libraries
- deplibs="$lib $deplibs"
- if test -z "$libdir"; then
- if test -z "$old_library"; then
- func_fatal_error "cannot find name of link library for \`$lib'"
- fi
- # It is a libtool convenience library, so add in its objects.
- func_append convenience " $ladir/$objdir/$old_library"
- func_append old_convenience " $ladir/$objdir/$old_library"
- tmp_libs=
- for deplib in $dependency_libs; do
- deplibs="$deplib $deplibs"
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done
- elif test "$linkmode" != prog && test "$linkmode" != lib; then
- func_fatal_error "\`$lib' is not a convenience library"
- fi
- continue
- fi # $pass = conv
-
-
- # Get the name of the library we link against.
- linklib=
- if test -n "$old_library" &&
- { test "$prefer_static_libs" = yes ||
- test "$prefer_static_libs,$installed" = "built,no"; }; then
- linklib=$old_library
- else
- for l in $old_library $library_names; do
- linklib="$l"
- done
- fi
- if test -z "$linklib"; then
- func_fatal_error "cannot find name of link library for \`$lib'"
- fi
-
- # This library was specified with -dlopen.
- if test "$pass" = dlopen; then
- if test -z "$libdir"; then
- func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
- fi
- if test -z "$dlname" ||
- test "$dlopen_support" != yes ||
- test "$build_libtool_libs" = no; then
- # If there is no dlname, no dlopen support or we're linking
- # statically, we need to preload. We also need to preload any
- # dependent libraries so libltdl's deplib preloader doesn't
- # bomb out in the load deplibs phase.
- func_append dlprefiles " $lib $dependency_libs"
- else
- func_append newdlfiles " $lib"
- fi
- continue
- fi # $pass = dlopen
-
- # We need an absolute path.
- case $ladir in
- [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
- *)
- abs_ladir=`cd "$ladir" && pwd`
- if test -z "$abs_ladir"; then
- func_warning "cannot determine absolute directory name of \`$ladir'"
- func_warning "passing it literally to the linker, although it might fail"
- abs_ladir="$ladir"
- fi
- ;;
- esac
- func_basename "$lib"
- laname="$func_basename_result"
-
- # Find the relevant object directory and library name.
- if test "X$installed" = Xyes; then
- if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- func_warning "library \`$lib' was moved."
- dir="$ladir"
- absdir="$abs_ladir"
- libdir="$abs_ladir"
- else
- dir="$lt_sysroot$libdir"
- absdir="$lt_sysroot$libdir"
- fi
- test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
- else
- if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- dir="$ladir"
- absdir="$abs_ladir"
- # Remove this search path later
- func_append notinst_path " $abs_ladir"
- else
- dir="$ladir/$objdir"
- absdir="$abs_ladir/$objdir"
- # Remove this search path later
- func_append notinst_path " $abs_ladir"
- fi
- fi # $installed = yes
- func_stripname 'lib' '.la' "$laname"
- name=$func_stripname_result
-
- # This library was specified with -dlpreopen.
- if test "$pass" = dlpreopen; then
- if test -z "$libdir" && test "$linkmode" = prog; then
- func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
- fi
- case "$host" in
- # special handling for platforms with PE-DLLs.
- *cygwin* | *mingw* | *cegcc* )
- # Linker will automatically link against shared library if both
- # static and shared are present. Therefore, ensure we extract
- # symbols from the import library if a shared library is present
- # (otherwise, the dlopen module name will be incorrect). We do
- # this by putting the import library name into $newdlprefiles.
- # We recover the dlopen module name by 'saving' the la file
- # name in a special purpose variable, and (later) extracting the
- # dlname from the la file.
- if test -n "$dlname"; then
- func_tr_sh "$dir/$linklib"
- eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
- func_append newdlprefiles " $dir/$linklib"
- else
- func_append newdlprefiles " $dir/$old_library"
- # Keep a list of preopened convenience libraries to check
- # that they are being used correctly in the link pass.
- test -z "$libdir" && \
- func_append dlpreconveniencelibs " $dir/$old_library"
- fi
- ;;
- * )
- # Prefer using a static library (so that no silly _DYNAMIC symbols
- # are required to link).
- if test -n "$old_library"; then
- func_append newdlprefiles " $dir/$old_library"
- # Keep a list of preopened convenience libraries to check
- # that they are being used correctly in the link pass.
- test -z "$libdir" && \
- func_append dlpreconveniencelibs " $dir/$old_library"
- # Otherwise, use the dlname, so that lt_dlopen finds it.
- elif test -n "$dlname"; then
- func_append newdlprefiles " $dir/$dlname"
- else
- func_append newdlprefiles " $dir/$linklib"
- fi
- ;;
- esac
- fi # $pass = dlpreopen
-
- if test -z "$libdir"; then
- # Link the convenience library
- if test "$linkmode" = lib; then
- deplibs="$dir/$old_library $deplibs"
- elif test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$dir/$old_library $compile_deplibs"
- finalize_deplibs="$dir/$old_library $finalize_deplibs"
- else
- deplibs="$lib $deplibs" # used for prog,scan pass
- fi
- continue
- fi
-
-
- if test "$linkmode" = prog && test "$pass" != link; then
- func_append newlib_search_path " $ladir"
- deplibs="$lib $deplibs"
-
- linkalldeplibs=no
- if test "$link_all_deplibs" != no || test -z "$library_names" ||
- test "$build_libtool_libs" = no; then
- linkalldeplibs=yes
- fi
-
- tmp_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- -L*) func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- esac
- # Need to link against all dependency_libs?
- if test "$linkalldeplibs" = yes; then
- deplibs="$deplib $deplibs"
- else
- # Need to hardcode shared library paths
- # or/and link against static libraries
- newdependency_libs="$deplib $newdependency_libs"
- fi
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done # for deplib
- continue
- fi # $linkmode = prog...
-
- if test "$linkmode,$pass" = "prog,link"; then
- if test -n "$library_names" &&
- { { test "$prefer_static_libs" = no ||
- test "$prefer_static_libs,$installed" = "built,yes"; } ||
- test -z "$old_library"; }; then
- # We need to hardcode the library path
- if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
- # Make sure the rpath contains only unique directories.
- case "$temp_rpath:" in
- *"$absdir:"*) ;;
- *) func_append temp_rpath "$absdir:" ;;
- esac
- fi
-
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) func_append compile_rpath " $absdir" ;;
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- ;;
- esac
- fi # $linkmode,$pass = prog,link...
-
- if test "$alldeplibs" = yes &&
- { test "$deplibs_check_method" = pass_all ||
- { test "$build_libtool_libs" = yes &&
- test -n "$library_names"; }; }; then
- # We only need to search for static libraries
- continue
- fi
- fi
-
- link_static=no # Whether the deplib will be linked statically
- use_static_libs=$prefer_static_libs
- if test "$use_static_libs" = built && test "$installed" = yes; then
- use_static_libs=no
- fi
- if test -n "$library_names" &&
- { test "$use_static_libs" = no || test -z "$old_library"; }; then
- case $host in
- *cygwin* | *mingw* | *cegcc*)
- # No point in relinking DLLs because paths are not encoded
- func_append notinst_deplibs " $lib"
- need_relink=no
- ;;
- *)
- if test "$installed" = no; then
- func_append notinst_deplibs " $lib"
- need_relink=yes
- fi
- ;;
- esac
- # This is a shared library
-
- # Warn about portability, can't link against -module's on some
- # systems (darwin). Don't bleat about dlopened modules though!
- dlopenmodule=""
- for dlpremoduletest in $dlprefiles; do
- if test "X$dlpremoduletest" = "X$lib"; then
- dlopenmodule="$dlpremoduletest"
- break
- fi
- done
- if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
- echo
- if test "$linkmode" = prog; then
- $ECHO "*** Warning: Linking the executable $output against the loadable module"
- else
- $ECHO "*** Warning: Linking the shared library $output against the loadable module"
- fi
- $ECHO "*** $linklib is not portable!"
- fi
- if test "$linkmode" = lib &&
- test "$hardcode_into_libs" = yes; then
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) func_append compile_rpath " $absdir" ;;
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- ;;
- esac
- fi
-
- if test -n "$old_archive_from_expsyms_cmds"; then
- # figure out the soname
- set dummy $library_names
- shift
- realname="$1"
- shift
- libname=`eval "\\$ECHO \"$libname_spec\""`
- # use dlname if we got it. it's perfectly good, no?
- if test -n "$dlname"; then
- soname="$dlname"
- elif test -n "$soname_spec"; then
- # bleh windows
- case $host in
- *cygwin* | mingw* | *cegcc*)
- func_arith $current - $age
- major=$func_arith_result
- versuffix="-$major"
- ;;
- esac
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
-
- # Make a new name for the extract_expsyms_cmds to use
- soroot="$soname"
- func_basename "$soroot"
- soname="$func_basename_result"
- func_stripname 'lib' '.dll' "$soname"
- newlib=libimp-$func_stripname_result.a
-
- # If the library has no export list, then create one now
- if test -f "$output_objdir/$soname-def"; then :
- else
- func_verbose "extracting exported symbol list from \`$soname'"
- func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
- fi
-
- # Create $newlib
- if test -f "$output_objdir/$newlib"; then :; else
- func_verbose "generating import library for \`$soname'"
- func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
- fi
- # make sure the library variables are pointing to the new library
- dir=$output_objdir
- linklib=$newlib
- fi # test -n "$old_archive_from_expsyms_cmds"
-
- if test "$linkmode" = prog || test "$opt_mode" != relink; then
- add_shlibpath=
- add_dir=
- add=
- lib_linked=yes
- case $hardcode_action in
- immediate | unsupported)
- if test "$hardcode_direct" = no; then
- add="$dir/$linklib"
- case $host in
- *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
- *-*-sysv4*uw2*) add_dir="-L$dir" ;;
- *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
- *-*-unixware7*) add_dir="-L$dir" ;;
- *-*-darwin* )
- # if the lib is a (non-dlopened) module then we can not
- # link against it, someone is ignoring the earlier warnings
- if /usr/bin/file -L $add 2> /dev/null |
- $GREP ": [^:]* bundle" >/dev/null ; then
- if test "X$dlopenmodule" != "X$lib"; then
- $ECHO "*** Warning: lib $linklib is a module, not a shared library"
- if test -z "$old_library" ; then
- echo
- echo "*** And there doesn't seem to be a static archive available"
- echo "*** The link will probably fail, sorry"
- else
- add="$dir/$old_library"
- fi
- elif test -n "$old_library"; then
- add="$dir/$old_library"
- fi
- fi
- esac
- elif test "$hardcode_minus_L" = no; then
- case $host in
- *-*-sunos*) add_shlibpath="$dir" ;;
- esac
- add_dir="-L$dir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = no; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- relink)
- if test "$hardcode_direct" = yes &&
- test "$hardcode_direct_absolute" = no; then
- add="$dir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$absdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
- func_append add_dir " -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- *) lib_linked=no ;;
- esac
-
- if test "$lib_linked" != yes; then
- func_fatal_configuration "unsupported hardcode properties"
- fi
-
- if test -n "$add_shlibpath"; then
- case :$compile_shlibpath: in
- *":$add_shlibpath:"*) ;;
- *) func_append compile_shlibpath "$add_shlibpath:" ;;
- esac
- fi
- if test "$linkmode" = prog; then
- test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
- test -n "$add" && compile_deplibs="$add $compile_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- if test "$hardcode_direct" != yes &&
- test "$hardcode_minus_L" != yes &&
- test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) func_append finalize_shlibpath "$libdir:" ;;
- esac
- fi
- fi
- fi
-
- if test "$linkmode" = prog || test "$opt_mode" = relink; then
- add_shlibpath=
- add_dir=
- add=
- # Finalize command for both is simple: just hardcode it.
- if test "$hardcode_direct" = yes &&
- test "$hardcode_direct_absolute" = no; then
- add="$libdir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$libdir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) func_append finalize_shlibpath "$libdir:" ;;
- esac
- add="-l$name"
- elif test "$hardcode_automatic" = yes; then
- if test -n "$inst_prefix_dir" &&
- test -f "$inst_prefix_dir$libdir/$linklib" ; then
- add="$inst_prefix_dir$libdir/$linklib"
- else
- add="$libdir/$linklib"
- fi
- else
- # We cannot seem to hardcode it, guess we'll fake it.
- add_dir="-L$libdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
- func_append add_dir " -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
- add="-l$name"
- fi
-
- if test "$linkmode" = prog; then
- test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
- test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- fi
- fi
- elif test "$linkmode" = prog; then
- # Here we assume that one of hardcode_direct or hardcode_minus_L
- # is not unsupported. This is valid on all known static and
- # shared platforms.
- if test "$hardcode_direct" != unsupported; then
- test -n "$old_library" && linklib="$old_library"
- compile_deplibs="$dir/$linklib $compile_deplibs"
- finalize_deplibs="$dir/$linklib $finalize_deplibs"
- else
- compile_deplibs="-l$name -L$dir $compile_deplibs"
- finalize_deplibs="-l$name -L$dir $finalize_deplibs"
- fi
- elif test "$build_libtool_libs" = yes; then
- # Not a shared library
- if test "$deplibs_check_method" != pass_all; then
- # We're trying link a shared library against a static one
- # but the system doesn't support it.
-
- # Just print a warning and add the library to dependency_libs so
- # that the program can be linked against the static library.
- echo
- $ECHO "*** Warning: This system can not link to static lib archive $lib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have."
- if test "$module" = yes; then
- echo "*** But as you try to build a module library, libtool will still create "
- echo "*** a static module, that should work as long as the dlopening application"
- echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- else
- deplibs="$dir/$old_library $deplibs"
- link_static=yes
- fi
- fi # link shared/static library?
-
- if test "$linkmode" = lib; then
- if test -n "$dependency_libs" &&
- { test "$hardcode_into_libs" != yes ||
- test "$build_old_libs" = yes ||
- test "$link_static" = yes; }; then
- # Extract -R from dependency_libs
- temp_deplibs=
- for libdir in $dependency_libs; do
- case $libdir in
- -R*) func_stripname '-R' '' "$libdir"
- temp_xrpath=$func_stripname_result
- case " $xrpath " in
- *" $temp_xrpath "*) ;;
- *) func_append xrpath " $temp_xrpath";;
- esac;;
- *) func_append temp_deplibs " $libdir";;
- esac
- done
- dependency_libs="$temp_deplibs"
- fi
-
- func_append newlib_search_path " $absdir"
- # Link against this library
- test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
- # ... and its dependency_libs
- tmp_libs=
- for deplib in $dependency_libs; do
- newdependency_libs="$deplib $newdependency_libs"
- case $deplib in
- -L*) func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result";;
- *) func_resolve_sysroot "$deplib" ;;
- esac
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $func_resolve_sysroot_result "*)
- func_append specialdeplibs " $func_resolve_sysroot_result" ;;
- esac
- fi
- func_append tmp_libs " $func_resolve_sysroot_result"
- done
-
- if test "$link_all_deplibs" != no; then
- # Add the search paths of all dependency libraries
- for deplib in $dependency_libs; do
- path=
- case $deplib in
- -L*) path="$deplib" ;;
- *.la)
- func_resolve_sysroot "$deplib"
- deplib=$func_resolve_sysroot_result
- func_dirname "$deplib" "" "."
- dir=$func_dirname_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
- *)
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- func_warning "cannot determine absolute directory name of \`$dir'"
- absdir="$dir"
- fi
- ;;
- esac
- if $GREP "^installed=no" $deplib > /dev/null; then
- case $host in
- *-*-darwin*)
- depdepl=
- eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
- if test -n "$deplibrary_names" ; then
- for tmp in $deplibrary_names ; do
- depdepl=$tmp
- done
- if test -f "$absdir/$objdir/$depdepl" ; then
- depdepl="$absdir/$objdir/$depdepl"
- darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- if test -z "$darwin_install_name"; then
- darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- fi
- func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
- func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
- path=
- fi
- fi
- ;;
- *)
- path="-L$absdir/$objdir"
- ;;
- esac
- else
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- test -z "$libdir" && \
- func_fatal_error "\`$deplib' is not a valid libtool archive"
- test "$absdir" != "$libdir" && \
- func_warning "\`$deplib' seems to be moved"
-
- path="-L$absdir"
- fi
- ;;
- esac
- case " $deplibs " in
- *" $path "*) ;;
- *) deplibs="$path $deplibs" ;;
- esac
- done
- fi # link_all_deplibs != no
- fi # linkmode = lib
- done # for deplib in $libs
- if test "$pass" = link; then
- if test "$linkmode" = "prog"; then
- compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
- finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
- else
- compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- fi
- fi
- dependency_libs="$newdependency_libs"
- if test "$pass" = dlpreopen; then
- # Link the dlpreopened libraries before other libraries
- for deplib in $save_deplibs; do
- deplibs="$deplib $deplibs"
- done
- fi
- if test "$pass" != dlopen; then
- if test "$pass" != conv; then
- # Make sure lib_search_path contains only unique directories.
- lib_search_path=
- for dir in $newlib_search_path; do
- case "$lib_search_path " in
- *" $dir "*) ;;
- *) func_append lib_search_path " $dir" ;;
- esac
- done
- newlib_search_path=
- fi
-
- if test "$linkmode,$pass" != "prog,link"; then
- vars="deplibs"
- else
- vars="compile_deplibs finalize_deplibs"
- fi
- for var in $vars dependency_libs; do
- # Add libraries to $var in reverse order
- eval tmp_libs=\"\$$var\"
- new_libs=
- for deplib in $tmp_libs; do
- # FIXME: Pedantically, this is the right thing to do, so
- # that some nasty dependency loop isn't accidentally
- # broken:
- #new_libs="$deplib $new_libs"
- # Pragmatically, this seems to cause very few problems in
- # practice:
- case $deplib in
- -L*) new_libs="$deplib $new_libs" ;;
- -R*) ;;
- *)
- # And here is the reason: when a library appears more
- # than once as an explicit dependence of a library, or
- # is implicitly linked in more than once by the
- # compiler, it is considered special, and multiple
- # occurrences thereof are not removed. Compare this
- # with having the same library being listed as a
- # dependency of multiple other libraries: in this case,
- # we know (pedantically, we assume) the library does not
- # need to be listed more than once, so we keep only the
- # last copy. This is not always right, but it is rare
- # enough that we require users that really mean to play
- # such unportable linking tricks to link the library
- # using -Wl,-lname, so that libtool does not consider it
- # for duplicate removal.
- case " $specialdeplibs " in
- *" $deplib "*) new_libs="$deplib $new_libs" ;;
- *)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) new_libs="$deplib $new_libs" ;;
- esac
- ;;
- esac
- ;;
- esac
- done
- tmp_libs=
- for deplib in $new_libs; do
- case $deplib in
- -L*)
- case " $tmp_libs " in
- *" $deplib "*) ;;
- *) func_append tmp_libs " $deplib" ;;
- esac
- ;;
- *) func_append tmp_libs " $deplib" ;;
- esac
- done
- eval $var=\"$tmp_libs\"
- done # for var
- fi
- # Last step: remove runtime libs from dependency_libs
- # (they stay in deplibs)
- tmp_libs=
- for i in $dependency_libs ; do
- case " $predeps $postdeps $compiler_lib_search_path " in
- *" $i "*)
- i=""
- ;;
- esac
- if test -n "$i" ; then
- func_append tmp_libs " $i"
- fi
- done
- dependency_libs=$tmp_libs
- done # for pass
- if test "$linkmode" = prog; then
- dlfiles="$newdlfiles"
- fi
- if test "$linkmode" = prog || test "$linkmode" = lib; then
- dlprefiles="$newdlprefiles"
- fi
-
- case $linkmode in
- oldlib)
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- func_warning "\`-dlopen' is ignored for archives"
- fi
-
- case " $deplibs" in
- *\ -l* | *\ -L*)
- func_warning "\`-l' and \`-L' are ignored for archives" ;;
- esac
-
- test -n "$rpath" && \
- func_warning "\`-rpath' is ignored for archives"
-
- test -n "$xrpath" && \
- func_warning "\`-R' is ignored for archives"
-
- test -n "$vinfo" && \
- func_warning "\`-version-info/-version-number' is ignored for archives"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for archives"
-
- test -n "$export_symbols$export_symbols_regex" && \
- func_warning "\`-export-symbols' is ignored for archives"
-
- # Now set the variables for building old libraries.
- build_libtool_libs=no
- oldlibs="$output"
- func_append objs "$old_deplibs"
- ;;
-
- lib)
- # Make sure we only generate libraries of the form `libNAME.la'.
- case $outputname in
- lib*)
- func_stripname 'lib' '.la' "$outputname"
- name=$func_stripname_result
- eval shared_ext=\"$shrext_cmds\"
- eval libname=\"$libname_spec\"
- ;;
- *)
- test "$module" = no && \
- func_fatal_help "libtool library \`$output' must begin with \`lib'"
-
- if test "$need_lib_prefix" != no; then
- # Add the "lib" prefix for modules if required
- func_stripname '' '.la' "$outputname"
- name=$func_stripname_result
- eval shared_ext=\"$shrext_cmds\"
- eval libname=\"$libname_spec\"
- else
- func_stripname '' '.la' "$outputname"
- libname=$func_stripname_result
- fi
- ;;
- esac
-
- if test -n "$objs"; then
- if test "$deplibs_check_method" != pass_all; then
- func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
- else
- echo
- $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
- $ECHO "*** objects $objs is not portable!"
- func_append libobjs " $objs"
- fi
- fi
-
- test "$dlself" != no && \
- func_warning "\`-dlopen self' is ignored for libtool libraries"
-
- set dummy $rpath
- shift
- test "$#" -gt 1 && \
- func_warning "ignoring multiple \`-rpath's for a libtool library"
-
- install_libdir="$1"
-
- oldlibs=
- if test -z "$rpath"; then
- if test "$build_libtool_libs" = yes; then
- # Building a libtool convenience library.
- # Some compilers have problems with a `.al' extension so
- # convenience libraries should have the same extension an
- # archive normally would.
- oldlibs="$output_objdir/$libname.$libext $oldlibs"
- build_libtool_libs=convenience
- build_old_libs=yes
- fi
-
- test -n "$vinfo" && \
- func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for convenience libraries"
- else
-
- # Parse the version information argument.
- save_ifs="$IFS"; IFS=':'
- set dummy $vinfo 0 0 0
- shift
- IFS="$save_ifs"
-
- test -n "$7" && \
- func_fatal_help "too many parameters to \`-version-info'"
-
- # convert absolute version numbers to libtool ages
- # this retains compatibility with .la files and attempts
- # to make the code below a bit more comprehensible
-
- case $vinfo_number in
- yes)
- number_major="$1"
- number_minor="$2"
- number_revision="$3"
- #
- # There are really only two kinds -- those that
- # use the current revision as the major version
- # and those that subtract age and use age as
- # a minor version. But, then there is irix
- # which has an extra 1 added just for fun
- #
- case $version_type in
- # correct linux to gnu/linux during the next big refactor
- darwin|linux|osf|windows|none)
- func_arith $number_major + $number_minor
- current=$func_arith_result
- age="$number_minor"
- revision="$number_revision"
- ;;
- freebsd-aout|freebsd-elf|qnx|sunos)
- current="$number_major"
- revision="$number_minor"
- age="0"
- ;;
- irix|nonstopux)
- func_arith $number_major + $number_minor
- current=$func_arith_result
- age="$number_minor"
- revision="$number_minor"
- lt_irix_increment=no
- ;;
- *)
- func_fatal_configuration "$modename: unknown library version type \`$version_type'"
- ;;
- esac
- ;;
- no)
- current="$1"
- revision="$2"
- age="$3"
- ;;
- esac
-
- # Check that each of the things are valid numbers.
- case $current in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "CURRENT \`$current' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- case $revision in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "REVISION \`$revision' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- case $age in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "AGE \`$age' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- if test "$age" -gt "$current"; then
- func_error "AGE \`$age' is greater than the current interface number \`$current'"
- func_fatal_error "\`$vinfo' is not valid version information"
- fi
-
- # Calculate the version variables.
- major=
- versuffix=
- verstring=
- case $version_type in
- none) ;;
-
- darwin)
- # Like Linux, but with the current version available in
- # verstring for coding it into the library header
- func_arith $current - $age
- major=.$func_arith_result
- versuffix="$major.$age.$revision"
- # Darwin ld doesn't like 0 for these options...
- func_arith $current + 1
- minor_current=$func_arith_result
- xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
- ;;
-
- freebsd-aout)
- major=".$current"
- versuffix=".$current.$revision";
- ;;
-
- freebsd-elf)
- major=".$current"
- versuffix=".$current"
- ;;
-
- irix | nonstopux)
- if test "X$lt_irix_increment" = "Xno"; then
- func_arith $current - $age
- else
- func_arith $current - $age + 1
- fi
- major=$func_arith_result
-
- case $version_type in
- nonstopux) verstring_prefix=nonstopux ;;
- *) verstring_prefix=sgi ;;
- esac
- verstring="$verstring_prefix$major.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$revision
- while test "$loop" -ne 0; do
- func_arith $revision - $loop
- iface=$func_arith_result
- func_arith $loop - 1
- loop=$func_arith_result
- verstring="$verstring_prefix$major.$iface:$verstring"
- done
-
- # Before this point, $major must not contain `.'.
- major=.$major
- versuffix="$major.$revision"
- ;;
-
- linux) # correct to gnu/linux during the next big refactor
- func_arith $current - $age
- major=.$func_arith_result
- versuffix="$major.$age.$revision"
- ;;
-
- osf)
- func_arith $current - $age
- major=.$func_arith_result
- versuffix=".$current.$age.$revision"
- verstring="$current.$age.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$age
- while test "$loop" -ne 0; do
- func_arith $current - $loop
- iface=$func_arith_result
- func_arith $loop - 1
- loop=$func_arith_result
- verstring="$verstring:${iface}.0"
- done
-
- # Make executables depend on our current version.
- func_append verstring ":${current}.0"
- ;;
-
- qnx)
- major=".$current"
- versuffix=".$current"
- ;;
-
- sunos)
- major=".$current"
- versuffix=".$current.$revision"
- ;;
-
- windows)
- # Use '-' rather than '.', since we only want one
- # extension on DOS 8.3 filesystems.
- func_arith $current - $age
- major=$func_arith_result
- versuffix="-$major"
- ;;
-
- *)
- func_fatal_configuration "unknown library version type \`$version_type'"
- ;;
- esac
-
- # Clear the version info if we defaulted, and they specified a release.
- if test -z "$vinfo" && test -n "$release"; then
- major=
- case $version_type in
- darwin)
- # we can't check for "0.0" in archive_cmds due to quoting
- # problems, so we reset it completely
- verstring=
- ;;
- *)
- verstring="0.0"
- ;;
- esac
- if test "$need_version" = no; then
- versuffix=
- else
- versuffix=".0.0"
- fi
- fi
-
- # Remove version info from name if versioning should be avoided
- if test "$avoid_version" = yes && test "$need_version" = no; then
- major=
- versuffix=
- verstring=""
- fi
-
- # Check to see if the archive will have undefined symbols.
- if test "$allow_undefined" = yes; then
- if test "$allow_undefined_flag" = unsupported; then
- func_warning "undefined symbols not allowed in $host shared libraries"
- build_libtool_libs=no
- build_old_libs=yes
- fi
- else
- # Don't allow undefined symbols.
- allow_undefined_flag="$no_undefined_flag"
- fi
-
- fi
-
- func_generate_dlsyms "$libname" "$libname" "yes"
- func_append libobjs " $symfileobj"
- test "X$libobjs" = "X " && libobjs=
-
- if test "$opt_mode" != relink; then
- # Remove our outputs, but don't remove object files since they
- # may have been created when compiling PIC objects.
- removelist=
- tempremovelist=`$ECHO "$output_objdir/*"`
- for p in $tempremovelist; do
- case $p in
- *.$objext | *.gcno)
- ;;
- $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
- if test "X$precious_files_regex" != "X"; then
- if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
- then
- continue
- fi
- fi
- func_append removelist " $p"
- ;;
- *) ;;
- esac
- done
- test -n "$removelist" && \
- func_show_eval "${RM}r \$removelist"
- fi
-
- # Now set the variables for building old libraries.
- if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
- func_append oldlibs " $output_objdir/$libname.$libext"
-
- # Transform .lo files to .o files.
- oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
- fi
-
- # Eliminate all temporary directories.
- #for path in $notinst_path; do
- # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
- # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
- # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
- #done
-
- if test -n "$xrpath"; then
- # If the user specified any rpath flags, then add them.
- temp_xrpath=
- for libdir in $xrpath; do
- func_replace_sysroot "$libdir"
- func_append temp_xrpath " -R$func_replace_sysroot_result"
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- done
- if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
- dependency_libs="$temp_xrpath $dependency_libs"
- fi
- fi
-
- # Make sure dlfiles contains only unique files that won't be dlpreopened
- old_dlfiles="$dlfiles"
- dlfiles=
- for lib in $old_dlfiles; do
- case " $dlprefiles $dlfiles " in
- *" $lib "*) ;;
- *) func_append dlfiles " $lib" ;;
- esac
- done
-
- # Make sure dlprefiles contains only unique files
- old_dlprefiles="$dlprefiles"
- dlprefiles=
- for lib in $old_dlprefiles; do
- case "$dlprefiles " in
- *" $lib "*) ;;
- *) func_append dlprefiles " $lib" ;;
- esac
- done
-
- if test "$build_libtool_libs" = yes; then
- if test -n "$rpath"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
- # these systems don't actually have a c library (as such)!
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C library is in the System framework
- func_append deplibs " System.ltframework"
- ;;
- *-*-netbsd*)
- # Don't link with libc until the a.out ld.so is fixed.
- ;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
- # Causes problems with __ctype
- ;;
- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
- # Compiler inserts libc in the correct place for threads to work
- ;;
- *)
- # Add libc to deplibs on all other systems if necessary.
- if test "$build_libtool_need_lc" = "yes"; then
- func_append deplibs " -lc"
- fi
- ;;
- esac
- fi
-
- # Transform deplibs into only deplibs that can be linked in shared.
- name_save=$name
- libname_save=$libname
- release_save=$release
- versuffix_save=$versuffix
- major_save=$major
- # I'm not sure if I'm treating the release correctly. I think
- # release should show up in the -l (ie -lgmp5) so we don't want to
- # add it in twice. Is that correct?
- release=""
- versuffix=""
- major=""
- newdeplibs=
- droppeddeps=no
- case $deplibs_check_method in
- pass_all)
- # Don't check for shared/static. Everything works.
- # This might be a little naive. We might want to check
- # whether the library exists or not. But this is on
- # osf3 & osf4 and I'm not really sure... Just
- # implementing what was already the behavior.
- newdeplibs=$deplibs
- ;;
- test_compile)
- # This code stresses the "libraries are programs" paradigm to its
- # limits. Maybe even breaks it. We compile a program, linking it
- # against the deplibs as a proxy for the library. Then we can check
- # whether they linked in statically or dynamically with ldd.
- $opt_dry_run || $RM conftest.c
- cat > conftest.c <<EOF
- int main() { return 0; }
-EOF
- $opt_dry_run || $RM conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
- ldd_output=`ldd conftest`
- for i in $deplibs; do
- case $i in
- -l*)
- func_stripname -l '' "$i"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
- func_append newdeplibs " $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- func_append newdeplibs " $i"
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning: dynamic linker does not accept needed library $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which I believe you do not have"
- echo "*** because a test_compile did reveal that the linker did not use it for"
- echo "*** its dynamic dependency list that programs get resolved with at runtime."
- fi
- fi
- ;;
- *)
- func_append newdeplibs " $i"
- ;;
- esac
- done
- else
- # Error occurred in the first compile. Let's try to salvage
- # the situation: Compile a separate program for each library.
- for i in $deplibs; do
- case $i in
- -l*)
- func_stripname -l '' "$i"
- name=$func_stripname_result
- $opt_dry_run || $RM conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
- ldd_output=`ldd conftest`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
- func_append newdeplibs " $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- func_append newdeplibs " $i"
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning: dynamic linker does not accept needed library $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because a test_compile did reveal that the linker did not use this one"
- echo "*** as a dynamic dependency that programs can get resolved with at runtime."
- fi
- fi
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
- echo "*** make it link in! You will probably need to install it or some"
- echo "*** library that it depends on before this library will be fully"
- echo "*** functional. Installing it before continuing would be even better."
- fi
- ;;
- *)
- func_append newdeplibs " $i"
- ;;
- esac
- done
- fi
- ;;
- file_magic*)
- set dummy $deplibs_check_method; shift
- file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- for a_deplib in $deplibs; do
- case $a_deplib in
- -l*)
- func_stripname -l '' "$a_deplib"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- if test -n "$file_magic_glob"; then
- libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
- else
- libnameglob=$libname
- fi
- test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- if test "$want_nocaseglob" = yes; then
- shopt -s nocaseglob
- potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
- $nocaseglob
- else
- potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
- fi
- for potent_lib in $potential_libs; do
- # Follow soft links.
- if ls -lLd "$potent_lib" 2>/dev/null |
- $GREP " -> " >/dev/null; then
- continue
- fi
- # The statement above tries to avoid entering an
- # endless loop below, in case of cyclic links.
- # We might still enter an endless loop, since a link
- # loop can be closed while we follow links,
- # but so what?
- potlib="$potent_lib"
- while test -h "$potlib" 2>/dev/null; do
- potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
- case $potliblink in
- [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
- *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
- esac
- done
- if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
- $SED -e 10q |
- $EGREP "$file_magic_regex" > /dev/null; then
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- echo
- $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
- else
- $ECHO "*** with $libname and none of the candidates passed a file format test"
- $ECHO "*** using a file magic. Last file checked: $potlib"
- fi
- fi
- ;;
- *)
- # Add a -L argument.
- func_append newdeplibs " $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
- ;;
- match_pattern*)
- set dummy $deplibs_check_method; shift
- match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- for a_deplib in $deplibs; do
- case $a_deplib in
- -l*)
- func_stripname -l '' "$a_deplib"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
- for potent_lib in $potential_libs; do
- potlib="$potent_lib" # see symlink-check above in file_magic test
- if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
- $EGREP "$match_pattern_regex" > /dev/null; then
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- echo
- $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
- else
- $ECHO "*** with $libname and none of the candidates passed a file format test"
- $ECHO "*** using a regex pattern. Last file checked: $potlib"
- fi
- fi
- ;;
- *)
- # Add a -L argument.
- func_append newdeplibs " $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
- ;;
- none | unknown | *)
- newdeplibs=""
- tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- for i in $predeps $postdeps ; do
- # can't use Xsed below, because $i might contain '/'
- tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
- done
- fi
- case $tmp_deplibs in
- *[!\ \ ]*)
- echo
- if test "X$deplibs_check_method" = "Xnone"; then
- echo "*** Warning: inter-library dependencies are not supported in this platform."
- else
- echo "*** Warning: inter-library dependencies are not known to be supported."
- fi
- echo "*** All declared inter-library dependencies are being dropped."
- droppeddeps=yes
- ;;
- esac
- ;;
- esac
- versuffix=$versuffix_save
- major=$major_save
- release=$release_save
- libname=$libname_save
- name=$name_save
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library with the System framework
- newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- if test "$droppeddeps" = yes; then
- if test "$module" = yes; then
- echo
- echo "*** Warning: libtool could not satisfy all declared inter-library"
- $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
- echo "*** a static module, that should work as long as the dlopening"
- echo "*** application is linked with the -dlopen flag."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- else
- echo "*** The inter-library dependencies that have been dropped here will be"
- echo "*** automatically added whenever a program is linked with this library"
- echo "*** or is declared to -dlopen it."
-
- if test "$allow_undefined" = no; then
- echo
- echo "*** Since this library must not contain undefined symbols,"
- echo "*** because either the platform does not support them or"
- echo "*** it was explicitly requested with -no-undefined,"
- echo "*** libtool will only create a static version of it."
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- fi
- fi
- # Done checking deplibs!
- deplibs=$newdeplibs
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- case $host in
- *-*-darwin*)
- newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
- # move library search paths that coincide with paths to not yet
- # installed libraries to the beginning of the library search list
- new_libs=
- for path in $notinst_path; do
- case " $new_libs " in
- *" -L$path/$objdir "*) ;;
- *)
- case " $deplibs " in
- *" -L$path/$objdir "*)
- func_append new_libs " -L$path/$objdir" ;;
- esac
- ;;
- esac
- done
- for deplib in $deplibs; do
- case $deplib in
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) func_append new_libs " $deplib" ;;
- esac
- ;;
- *) func_append new_libs " $deplib" ;;
- esac
- done
- deplibs="$new_libs"
-
- # All the library-specific variables (install_libdir is set above).
- library_names=
- old_library=
- dlname=
-
- # Test again, we may have decided not to build it any more
- if test "$build_libtool_libs" = yes; then
- # Remove ${wl} instances when linking with ld.
- # FIXME: should test the right _cmds variable.
- case $archive_cmds in
- *\$LD\ *) wl= ;;
- esac
- if test "$hardcode_into_libs" = yes; then
- # Hardcode the library paths
- hardcode_libdirs=
- dep_rpath=
- rpath="$finalize_rpath"
- test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
- for libdir in $rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- func_replace_sysroot "$libdir"
- libdir=$func_replace_sysroot_result
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append dep_rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
- fi
- if test -n "$runpath_var" && test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- func_append rpath "$dir:"
- done
- eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
- fi
- test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
- fi
-
- shlibpath="$finalize_shlibpath"
- test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
- if test -n "$shlibpath"; then
- eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
- fi
-
- # Get the real and link names of the library.
- eval shared_ext=\"$shrext_cmds\"
- eval library_names=\"$library_names_spec\"
- set dummy $library_names
- shift
- realname="$1"
- shift
-
- if test -n "$soname_spec"; then
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
- if test -z "$dlname"; then
- dlname=$soname
- fi
-
- lib="$output_objdir/$realname"
- linknames=
- for link
- do
- func_append linknames " $link"
- done
-
- # Use standard objects if they are pic
- test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- test "X$libobjs" = "X " && libobjs=
-
- delfiles=
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
- export_symbols="$output_objdir/$libname.uexp"
- func_append delfiles " $export_symbols"
- fi
-
- orig_export_symbols=
- case $host_os in
- cygwin* | mingw* | cegcc*)
- if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
- # exporting using user supplied symfile
- if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
- # and it's NOT already a .def file. Must figure out
- # which of the given symbols are data symbols and tag
- # them as such. So, trigger use of export_symbols_cmds.
- # export_symbols gets reassigned inside the "prepare
- # the list of exported symbols" if statement, so the
- # include_expsyms logic still works.
- orig_export_symbols="$export_symbols"
- export_symbols=
- always_export_symbols=yes
- fi
- fi
- ;;
- esac
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
- func_verbose "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $opt_dry_run || $RM $export_symbols
- cmds=$export_symbols_cmds
- save_ifs="$IFS"; IFS='~'
- for cmd1 in $cmds; do
- IFS="$save_ifs"
- # Take the normal branch if the nm_file_list_spec branch
- # doesn't work or if tool conversion is not needed.
- case $nm_file_list_spec~$to_tool_file_cmd in
- *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
- try_normal_branch=yes
- eval cmd=\"$cmd1\"
- func_len " $cmd"
- len=$func_len_result
- ;;
- *)
- try_normal_branch=no
- ;;
- esac
- if test "$try_normal_branch" = yes \
- && { test "$len" -lt "$max_cmd_len" \
- || test "$max_cmd_len" -le -1; }
- then
- func_show_eval "$cmd" 'exit $?'
- skipped_export=false
- elif test -n "$nm_file_list_spec"; then
- func_basename "$output"
- output_la=$func_basename_result
- save_libobjs=$libobjs
- save_output=$output
- output=${output_objdir}/${output_la}.nm
- func_to_tool_file "$output"
- libobjs=$nm_file_list_spec$func_to_tool_file_result
- func_append delfiles " $output"
- func_verbose "creating $NM input file list: $output"
- for obj in $save_libobjs; do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result"
- done > "$output"
- eval cmd=\"$cmd1\"
- func_show_eval "$cmd" 'exit $?'
- output=$save_output
- libobjs=$save_libobjs
- skipped_export=false
- else
- # The command line is too long to execute in one step.
- func_verbose "using reloadable object file for export list..."
- skipped_export=:
- # Break out early, otherwise skipped_export may be
- # set to false by a later but shorter cmd.
- break
- fi
- done
- IFS="$save_ifs"
- if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
- func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
- fi
- fi
- fi
-
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols="$export_symbols"
- test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
- $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
- fi
-
- if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
- # The given exports_symbols file has to be filtered, so filter it.
- func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
- # FIXME: $output_objdir/$libname.filter potentially contains lots of
- # 's' commands which not all seds can handle. GNU sed should be fine
- # though. Also, the filter scales superlinearly with the number of
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
- func_append delfiles " $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
-
- tmp_deplibs=
- for test_deplib in $deplibs; do
- case " $convenience " in
- *" $test_deplib "*) ;;
- *)
- func_append tmp_deplibs " $test_deplib"
- ;;
- esac
- done
- deplibs="$tmp_deplibs"
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec" &&
- test "$compiler_needs_object" = yes &&
- test -z "$libobjs"; then
- # extract the archives, so we have objects to list.
- # TODO: could optimize this to just extract one archive.
- whole_archive_flag_spec=
- fi
- if test -n "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- test "X$libobjs" = "X " && libobjs=
- else
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $convenience
- func_append libobjs " $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
- fi
-
- if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
- eval flag=\"$thread_safe_flag_spec\"
- func_append linker_flags " $flag"
- fi
-
- # Make a backup of the uninstalled library when relinking
- if test "$opt_mode" = relink; then
- $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
- fi
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- eval test_cmds=\"$module_expsym_cmds\"
- cmds=$module_expsym_cmds
- else
- eval test_cmds=\"$module_cmds\"
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- eval test_cmds=\"$archive_expsym_cmds\"
- cmds=$archive_expsym_cmds
- else
- eval test_cmds=\"$archive_cmds\"
- cmds=$archive_cmds
- fi
- fi
-
- if test "X$skipped_export" != "X:" &&
- func_len " $test_cmds" &&
- len=$func_len_result &&
- test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- :
- else
- # The command line is too long to link in one step, link piecewise
- # or, if using GNU ld and skipped_export is not :, use a linker
- # script.
-
- # Save the value of $output and $libobjs because we want to
- # use them later. If we have whole_archive_flag_spec, we
- # want to use save_libobjs as it was before
- # whole_archive_flag_spec was expanded, because we can't
- # assume the linker understands whole_archive_flag_spec.
- # This may have to be revisited, in case too many
- # convenience libraries get linked in and end up exceeding
- # the spec.
- if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- fi
- save_output=$output
- func_basename "$output"
- output_la=$func_basename_result
-
- # Clear the reloadable object creation command queue and
- # initialize k to one.
- test_cmds=
- concat_cmds=
- objlist=
- last_robj=
- k=1
-
- if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
- output=${output_objdir}/${output_la}.lnkscript
- func_verbose "creating GNU ld script: $output"
- echo 'INPUT (' > $output
- for obj in $save_libobjs
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result" >> $output
- done
- echo ')' >> $output
- func_append delfiles " $output"
- func_to_tool_file "$output"
- output=$func_to_tool_file_result
- elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
- output=${output_objdir}/${output_la}.lnk
- func_verbose "creating linker input file list: $output"
- : > $output
- set x $save_libobjs
- shift
- firstobj=
- if test "$compiler_needs_object" = yes; then
- firstobj="$1 "
- shift
- fi
- for obj
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result" >> $output
- done
- func_append delfiles " $output"
- func_to_tool_file "$output"
- output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
- else
- if test -n "$save_libobjs"; then
- func_verbose "creating reloadable object files..."
- output=$output_objdir/$output_la-${k}.$objext
- eval test_cmds=\"$reload_cmds\"
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
-
- # Loop over the list of objects to be linked.
- for obj in $save_libobjs
- do
- func_len " $obj"
- func_arith $len + $func_len_result
- len=$func_arith_result
- if test "X$objlist" = X ||
- test "$len" -lt "$max_cmd_len"; then
- func_append objlist " $obj"
- else
- # The command $test_cmds is almost too long, add a
- # command to the queue.
- if test "$k" -eq 1 ; then
- # The first file doesn't have a previous command to add.
- reload_objs=$objlist
- eval concat_cmds=\"$reload_cmds\"
- else
- # All subsequent reloadable object files will link in
- # the last one created.
- reload_objs="$objlist $last_robj"
- eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
- fi
- last_robj=$output_objdir/$output_la-${k}.$objext
- func_arith $k + 1
- k=$func_arith_result
- output=$output_objdir/$output_la-${k}.$objext
- objlist=" $obj"
- func_len " $last_robj"
- func_arith $len0 + $func_len_result
- len=$func_arith_result
- fi
- done
- # Handle the remaining objects by creating one last
- # reloadable object file. All subsequent reloadable object
- # files will link in the last one created.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- reload_objs="$objlist $last_robj"
- eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
- if test -n "$last_robj"; then
- eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
- fi
- func_append delfiles " $output"
-
- else
- output=
- fi
-
- if ${skipped_export-false}; then
- func_verbose "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $opt_dry_run || $RM $export_symbols
- libobjs=$output
- # Append the command to create the export file.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
- if test -n "$last_robj"; then
- eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
- fi
- fi
-
- test -n "$save_libobjs" &&
- func_verbose "creating a temporary reloadable object file: $output"
-
- # Loop through the commands generated above and execute them.
- save_ifs="$IFS"; IFS='~'
- for cmd in $concat_cmds; do
- IFS="$save_ifs"
- $opt_silent || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
- $opt_dry_run || eval "$cmd" || {
- lt_exit=$?
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
- fi
-
- exit $lt_exit
- }
- done
- IFS="$save_ifs"
-
- if test -n "$export_symbols_regex" && ${skipped_export-false}; then
- func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
- fi
- fi
-
- if ${skipped_export-false}; then
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols="$export_symbols"
- test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
- $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
- fi
-
- if test -n "$orig_export_symbols"; then
- # The given exports_symbols file has to be filtered, so filter it.
- func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
- # FIXME: $output_objdir/$libname.filter potentially contains lots of
- # 's' commands which not all seds can handle. GNU sed should be fine
- # though. Also, the filter scales superlinearly with the number of
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
- func_append delfiles " $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
- fi
-
- libobjs=$output
- # Restore the value of output.
- output=$save_output
-
- if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- test "X$libobjs" = "X " && libobjs=
- fi
- # Expand the library linking commands again to reset the
- # value of $libobjs for piecewise linking.
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- cmds=$module_expsym_cmds
- else
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- cmds=$archive_expsym_cmds
- else
- cmds=$archive_cmds
- fi
- fi
- fi
-
- if test -n "$delfiles"; then
- # Append the command to remove temporary files to $cmds.
- eval cmds=\"\$cmds~\$RM $delfiles\"
- fi
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $dlprefiles
- func_append libobjs " $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
-
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- eval cmd=\"$cmd\"
- $opt_silent || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
- $opt_dry_run || eval "$cmd" || {
- lt_exit=$?
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
- fi
-
- exit $lt_exit
- }
- done
- IFS="$save_ifs"
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
-
- if test -n "$convenience"; then
- if test -z "$whole_archive_flag_spec"; then
- func_show_eval '${RM}r "$gentop"'
- fi
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- # Create links to the real library.
- for linkname in $linknames; do
- if test "$realname" != "$linkname"; then
- func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
- fi
- done
-
- # If -module or -export-dynamic was specified, set the dlname.
- if test "$module" = yes || test "$export_dynamic" = yes; then
- # On all known operating systems, these are identical.
- dlname="$soname"
- fi
- fi
- ;;
-
- obj)
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- func_warning "\`-dlopen' is ignored for objects"
- fi
-
- case " $deplibs" in
- *\ -l* | *\ -L*)
- func_warning "\`-l' and \`-L' are ignored for objects" ;;
- esac
-
- test -n "$rpath" && \
- func_warning "\`-rpath' is ignored for objects"
-
- test -n "$xrpath" && \
- func_warning "\`-R' is ignored for objects"
-
- test -n "$vinfo" && \
- func_warning "\`-version-info' is ignored for objects"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for objects"
-
- case $output in
- *.lo)
- test -n "$objs$old_deplibs" && \
- func_fatal_error "cannot build library object \`$output' from non-libtool objects"
-
- libobj=$output
- func_lo2o "$libobj"
- obj=$func_lo2o_result
- ;;
- *)
- libobj=
- obj="$output"
- ;;
- esac
-
- # Delete the old objects.
- $opt_dry_run || $RM $obj $libobj
-
- # Objects from convenience libraries. This assumes
- # single-version convenience libraries. Whenever we create
- # different ones for PIC/non-PIC, this we'll have to duplicate
- # the extraction.
- reload_conv_objs=
- gentop=
- # reload_cmds runs $LD directly, so let us get rid of
- # -Wl from whole_archive_flag_spec and hope we can get by with
- # turning comma into space..
- wl=
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
- eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
- reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
- else
- gentop="$output_objdir/${obj}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $convenience
- reload_conv_objs="$reload_objs $func_extract_archives_result"
- fi
- fi
-
- # If we're not building shared, we need to use non_pic_objs
- test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
-
- # Create the old-style object.
- reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
- output="$obj"
- func_execute_cmds "$reload_cmds" 'exit $?'
-
- # Exit if we aren't doing a library object file.
- if test -z "$libobj"; then
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- if test "$build_libtool_libs" != yes; then
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- # Create an invalid libtool object if no PIC, so that we don't
- # accidentally link it into a program.
- # $show "echo timestamp > $libobj"
- # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
- exit $EXIT_SUCCESS
- fi
-
- if test -n "$pic_flag" || test "$pic_mode" != default; then
- # Only do commands if we really have different PIC objects.
- reload_objs="$libobjs $reload_conv_objs"
- output="$libobj"
- func_execute_cmds "$reload_cmds" 'exit $?'
- fi
-
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- exit $EXIT_SUCCESS
- ;;
-
- prog)
- case $host in
- *cygwin*) func_stripname '' '.exe' "$output"
- output=$func_stripname_result.exe;;
- esac
- test -n "$vinfo" && \
- func_warning "\`-version-info' is ignored for programs"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for programs"
-
- test "$preload" = yes \
- && test "$dlopen_support" = unknown \
- && test "$dlopen_self" = unknown \
- && test "$dlopen_self_static" = unknown && \
- func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library is the System framework
- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- case $host in
- *-*-darwin*)
- # Don't allow lazy linking, it breaks C++ global constructors
- # But is supposedly fixed on 10.4 or later (yay!).
- if test "$tagname" = CXX ; then
- case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
- 10.[0123])
- func_append compile_command " ${wl}-bind_at_load"
- func_append finalize_command " ${wl}-bind_at_load"
- ;;
- esac
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
-
- # move library search paths that coincide with paths to not yet
- # installed libraries to the beginning of the library search list
- new_libs=
- for path in $notinst_path; do
- case " $new_libs " in
- *" -L$path/$objdir "*) ;;
- *)
- case " $compile_deplibs " in
- *" -L$path/$objdir "*)
- func_append new_libs " -L$path/$objdir" ;;
- esac
- ;;
- esac
- done
- for deplib in $compile_deplibs; do
- case $deplib in
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) func_append new_libs " $deplib" ;;
- esac
- ;;
- *) func_append new_libs " $deplib" ;;
- esac
- done
- compile_deplibs="$new_libs"
-
-
- func_append compile_command " $compile_deplibs"
- func_append finalize_command " $finalize_deplibs"
-
- if test -n "$rpath$xrpath"; then
- # If the user specified any rpath flags, then add them.
- for libdir in $rpath $xrpath; do
- # This is the magic to use -rpath.
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- done
- fi
-
- # Now hardcode the library paths
- rpath=
- hardcode_libdirs=
- for libdir in $compile_rpath $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$libdir:"*) ;;
- ::) dllsearchpath=$libdir;;
- *) func_append dllsearchpath ":$libdir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
- *) func_append dllsearchpath ":$testbindir";;
- esac
- ;;
- esac
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- compile_rpath="$rpath"
-
- rpath=
- hardcode_libdirs=
- for libdir in $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$finalize_perm_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_perm_rpath " $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- finalize_rpath="$rpath"
-
- if test -n "$libobjs" && test "$build_old_libs" = yes; then
- # Transform all the library objects into standard objects.
- compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
- finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
- fi
-
- func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
-
- # template prelinking step
- if test -n "$prelink_cmds"; then
- func_execute_cmds "$prelink_cmds" 'exit $?'
- fi
-
- wrappers_required=yes
- case $host in
- *cegcc* | *mingw32ce*)
- # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
- wrappers_required=no
- ;;
- *cygwin* | *mingw* )
- if test "$build_libtool_libs" != yes; then
- wrappers_required=no
- fi
- ;;
- *)
- if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
- wrappers_required=no
- fi
- ;;
- esac
- if test "$wrappers_required" = no; then
- # Replace the output file specification.
- compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
- link_command="$compile_command$compile_rpath"
-
- # We have no uninstalled library dependencies, so finalize right now.
- exit_status=0
- func_show_eval "$link_command" 'exit_status=$?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- # Delete the generated files.
- if test -f "$output_objdir/${outputname}S.${objext}"; then
- func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
- fi
-
- exit $exit_status
- fi
-
- if test -n "$compile_shlibpath$finalize_shlibpath"; then
- compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
- fi
- if test -n "$finalize_shlibpath"; then
- finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
- fi
-
- compile_var=
- finalize_var=
- if test -n "$runpath_var"; then
- if test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- func_append rpath "$dir:"
- done
- compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- if test -n "$finalize_perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $finalize_perm_rpath; do
- func_append rpath "$dir:"
- done
- finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- fi
-
- if test "$no_install" = yes; then
- # We don't need to create a wrapper script.
- link_command="$compile_var$compile_command$compile_rpath"
- # Replace the output file specification.
- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
- # Delete the old output file.
- $opt_dry_run || $RM $output
- # Link the executable and exit
- func_show_eval "$link_command" 'exit $?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- if test "$hardcode_action" = relink; then
- # Fast installation is not supported
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
-
- func_warning "this platform does not like uninstalled shared libraries"
- func_warning "\`$output' will be relinked during installation"
- else
- if test "$fast_install" != no; then
- link_command="$finalize_var$compile_command$finalize_rpath"
- if test "$fast_install" = yes; then
- relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
- else
- # fast_install is set to needless
- relink_command=
- fi
- else
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
- fi
- fi
-
- # Replace the output file specification.
- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
- # Delete the old output files.
- $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
- func_show_eval "$link_command" 'exit $?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output_objdir/$outputname"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- # Now create the wrapper script.
- func_verbose "creating $output"
-
- # Quote the relink command for shipping.
- if test -n "$relink_command"; then
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
- fi
- done
- relink_command="(cd `pwd`; $relink_command)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
- fi
-
- # Only actually do things if not in dry run mode.
- $opt_dry_run || {
- # win32 will think the script is a binary if it has
- # a .exe suffix, so we strip it off here.
- case $output in
- *.exe) func_stripname '' '.exe' "$output"
- output=$func_stripname_result ;;
- esac
- # test for cygwin because mv fails w/o .exe extensions
- case $host in
- *cygwin*)
- exeext=.exe
- func_stripname '' '.exe' "$outputname"
- outputname=$func_stripname_result ;;
- *) exeext= ;;
- esac
- case $host in
- *cygwin* | *mingw* )
- func_dirname_and_basename "$output" "" "."
- output_name=$func_basename_result
- output_path=$func_dirname_result
- cwrappersource="$output_path/$objdir/lt-$output_name.c"
- cwrapper="$output_path/$output_name.exe"
- $RM $cwrappersource $cwrapper
- trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-
- func_emit_cwrapperexe_src > $cwrappersource
-
- # The wrapper executable is built using the $host compiler,
- # because it contains $host paths and files. If cross-
- # compiling, it, like the target executable, must be
- # executed on the $host or under an emulation environment.
- $opt_dry_run || {
- $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
- $STRIP $cwrapper
- }
-
- # Now, create the wrapper script for func_source use:
- func_ltwrapper_scriptname $cwrapper
- $RM $func_ltwrapper_scriptname_result
- trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
- $opt_dry_run || {
- # note: this script will not be executed, so do not chmod.
- if test "x$build" = "x$host" ; then
- $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
- else
- func_emit_wrapper no > $func_ltwrapper_scriptname_result
- fi
- }
- ;;
- * )
- $RM $output
- trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
-
- func_emit_wrapper no > $output
- chmod +x $output
- ;;
- esac
- }
- exit $EXIT_SUCCESS
- ;;
- esac
-
- # See if we need to build an old-fashioned archive.
- for oldlib in $oldlibs; do
-
- if test "$build_libtool_libs" = convenience; then
- oldobjs="$libobjs_save $symfileobj"
- addlibs="$convenience"
- build_libtool_libs=no
- else
- if test "$build_libtool_libs" = module; then
- oldobjs="$libobjs_save"
- build_libtool_libs=no
- else
- oldobjs="$old_deplibs $non_pic_objects"
- if test "$preload" = yes && test -f "$symfileobj"; then
- func_append oldobjs " $symfileobj"
- fi
- fi
- addlibs="$old_convenience"
- fi
-
- if test -n "$addlibs"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $addlibs
- func_append oldobjs " $func_extract_archives_result"
- fi
-
- # Do each command in the archive commands.
- if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
- cmds=$old_archive_from_new_cmds
- else
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $dlprefiles
- func_append oldobjs " $func_extract_archives_result"
- fi
-
- # POSIX demands no paths to be encoded in archives. We have
- # to avoid creating archives with duplicate basenames if we
- # might have to extract them afterwards, e.g., when creating a
- # static archive out of a convenience library, or when linking
- # the entirety of a libtool archive into another (currently
- # not supported by libtool).
- if (for obj in $oldobjs
- do
- func_basename "$obj"
- $ECHO "$func_basename_result"
- done | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- echo "copying selected object files to avoid basename conflicts..."
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
- func_mkdir_p "$gentop"
- save_oldobjs=$oldobjs
- oldobjs=
- counter=1
- for obj in $save_oldobjs
- do
- func_basename "$obj"
- objbase="$func_basename_result"
- case " $oldobjs " in
- " ") oldobjs=$obj ;;
- *[\ /]"$objbase "*)
- while :; do
- # Make sure we don't pick an alternate name that also
- # overlaps.
- newobj=lt$counter-$objbase
- func_arith $counter + 1
- counter=$func_arith_result
- case " $oldobjs " in
- *[\ /]"$newobj "*) ;;
- *) if test ! -f "$gentop/$newobj"; then break; fi ;;
- esac
- done
- func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
- func_append oldobjs " $gentop/$newobj"
- ;;
- *) func_append oldobjs " $obj" ;;
- esac
- done
- fi
- func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
- tool_oldlib=$func_to_tool_file_result
- eval cmds=\"$old_archive_cmds\"
-
- func_len " $cmds"
- len=$func_len_result
- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- cmds=$old_archive_cmds
- elif test -n "$archiver_list_spec"; then
- func_verbose "using command file archive linking..."
- for obj in $oldobjs
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result"
- done > $output_objdir/$libname.libcmd
- func_to_tool_file "$output_objdir/$libname.libcmd"
- oldobjs=" $archiver_list_spec$func_to_tool_file_result"
- cmds=$old_archive_cmds
- else
- # the command line is too long to link in one step, link in parts
- func_verbose "using piecewise archive linking..."
- save_RANLIB=$RANLIB
- RANLIB=:
- objlist=
- concat_cmds=
- save_oldobjs=$oldobjs
- oldobjs=
- # Is there a better way of finding the last object in the list?
- for obj in $save_oldobjs
- do
- last_oldobj=$obj
- done
- eval test_cmds=\"$old_archive_cmds\"
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
- for obj in $save_oldobjs
- do
- func_len " $obj"
- func_arith $len + $func_len_result
- len=$func_arith_result
- func_append objlist " $obj"
- if test "$len" -lt "$max_cmd_len"; then
- :
- else
- # the above command should be used before it gets too long
- oldobjs=$objlist
- if test "$obj" = "$last_oldobj" ; then
- RANLIB=$save_RANLIB
- fi
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
- objlist=
- len=$len0
- fi
- done
- RANLIB=$save_RANLIB
- oldobjs=$objlist
- if test "X$oldobjs" = "X" ; then
- eval cmds=\"\$concat_cmds\"
- else
- eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
- fi
- fi
- fi
- func_execute_cmds "$cmds" 'exit $?'
- done
-
- test -n "$generated" && \
- func_show_eval "${RM}r$generated"
-
- # Now create the libtool archive.
- case $output in
- *.la)
- old_library=
- test "$build_old_libs" = yes && old_library="$libname.$libext"
- func_verbose "creating $output"
-
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
- fi
- done
- # Quote the link command for shipping.
- relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
- if test "$hardcode_automatic" = yes ; then
- relink_command=
- fi
-
- # Only create the output if not a dry run.
- $opt_dry_run || {
- for installed in no yes; do
- if test "$installed" = yes; then
- if test -z "$install_libdir"; then
- break
- fi
- output="$output_objdir/$outputname"i
- # Replace all uninstalled libtool libraries with the installed ones
- newdependency_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- *.la)
- func_basename "$deplib"
- name="$func_basename_result"
- func_resolve_sysroot "$deplib"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
- test -z "$libdir" && \
- func_fatal_error "\`$deplib' is not a valid libtool archive"
- func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
- ;;
- -L*)
- func_stripname -L '' "$deplib"
- func_replace_sysroot "$func_stripname_result"
- func_append newdependency_libs " -L$func_replace_sysroot_result"
- ;;
- -R*)
- func_stripname -R '' "$deplib"
- func_replace_sysroot "$func_stripname_result"
- func_append newdependency_libs " -R$func_replace_sysroot_result"
- ;;
- *) func_append newdependency_libs " $deplib" ;;
- esac
- done
- dependency_libs="$newdependency_libs"
- newdlfiles=
-
- for lib in $dlfiles; do
- case $lib in
- *.la)
- func_basename "$lib"
- name="$func_basename_result"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- test -z "$libdir" && \
- func_fatal_error "\`$lib' is not a valid libtool archive"
- func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
- ;;
- *) func_append newdlfiles " $lib" ;;
- esac
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
- for lib in $dlprefiles; do
- case $lib in
- *.la)
- # Only pass preopened files to the pseudo-archive (for
- # eventual linking with the app. that links it) if we
- # didn't already link the preopened objects directly into
- # the library:
- func_basename "$lib"
- name="$func_basename_result"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- test -z "$libdir" && \
- func_fatal_error "\`$lib' is not a valid libtool archive"
- func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
- ;;
- esac
- done
- dlprefiles="$newdlprefiles"
- else
- newdlfiles=
- for lib in $dlfiles; do
- case $lib in
- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
- *) abs=`pwd`"/$lib" ;;
- esac
- func_append newdlfiles " $abs"
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
- for lib in $dlprefiles; do
- case $lib in
- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
- *) abs=`pwd`"/$lib" ;;
- esac
- func_append newdlprefiles " $abs"
- done
- dlprefiles="$newdlprefiles"
- fi
- $RM $output
- # place dlname in correct position for cygwin
- # In fact, it would be nice if we could use this code for all target
- # systems that can't hard-code library paths into their executables
- # and that have no shared library path variable independent of PATH,
- # but it turns out we can't easily determine that from inspecting
- # libtool variables, so we have to hard-code the OSs to which it
- # applies here; at the moment, that means platforms that use the PE
- # object format with DLL files. See the long comment at the top of
- # tests/bindir.at for full details.
- tdlname=$dlname
- case $host,$output,$installed,$module,$dlname in
- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
- # If a -bindir argument was supplied, place the dll there.
- if test "x$bindir" != x ;
- then
- func_relative_path "$install_libdir" "$bindir"
- tdlname=$func_relative_path_result$dlname
- else
- # Otherwise fall back on heuristic.
- tdlname=../bin/$dlname
- fi
- ;;
- esac
- $ECHO > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Linker flags that can not go in dependency_libs.
-inherited_linker_flags='$new_inherited_linker_flags'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Names of additional weak libraries provided by this library
-weak_library_names='$weak_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
- if test "$installed" = no && test "$need_relink" = yes; then
- $ECHO >> $output "\
-relink_command=\"$relink_command\""
- fi
- done
- }
-
- # Do a symbolic link so that the libtool archive can be found in
- # LD_LIBRARY_PATH before the program is installed.
- func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
- ;;
- esac
- exit $EXIT_SUCCESS
-}
-
-{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
- func_mode_link ${1+"$@"}
-
-
-# func_mode_uninstall arg...
-func_mode_uninstall ()
-{
- $opt_debug
- RM="$nonopt"
- files=
- rmforce=
- exit_status=0
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- for arg
- do
- case $arg in
- -f) func_append RM " $arg"; rmforce=yes ;;
- -*) func_append RM " $arg" ;;
- *) func_append files " $arg" ;;
- esac
- done
-
- test -z "$RM" && \
- func_fatal_help "you must specify an RM program"
-
- rmdirs=
-
- for file in $files; do
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
- if test "X$dir" = X.; then
- odir="$objdir"
- else
- odir="$dir/$objdir"
- fi
- func_basename "$file"
- name="$func_basename_result"
- test "$opt_mode" = uninstall && odir="$dir"
-
- # Remember odir for removal later, being careful to avoid duplicates
- if test "$opt_mode" = clean; then
- case " $rmdirs " in
- *" $odir "*) ;;
- *) func_append rmdirs " $odir" ;;
- esac
- fi
-
- # Don't error if the file doesn't exist and rm -f was used.
- if { test -L "$file"; } >/dev/null 2>&1 ||
- { test -h "$file"; } >/dev/null 2>&1 ||
- test -f "$file"; then
- :
- elif test -d "$file"; then
- exit_status=1
- continue
- elif test "$rmforce" = yes; then
- continue
- fi
-
- rmfiles="$file"
-
- case $name in
- *.la)
- # Possibly a libtool archive, so verify it.
- if func_lalib_p "$file"; then
- func_source $dir/$name
-
- # Delete the libtool libraries and symlinks.
- for n in $library_names; do
- func_append rmfiles " $odir/$n"
- done
- test -n "$old_library" && func_append rmfiles " $odir/$old_library"
-
- case "$opt_mode" in
- clean)
- case " $library_names " in
- *" $dlname "*) ;;
- *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
- esac
- test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
- ;;
- uninstall)
- if test -n "$library_names"; then
- # Do each command in the postuninstall commands.
- func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
- fi
-
- if test -n "$old_library"; then
- # Do each command in the old_postuninstall commands.
- func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
- fi
- # FIXME: should reinstall the best remaining shared library.
- ;;
- esac
- fi
- ;;
-
- *.lo)
- # Possibly a libtool object, so verify it.
- if func_lalib_p "$file"; then
-
- # Read the .lo file
- func_source $dir/$name
-
- # Add PIC object to the list of files to remove.
- if test -n "$pic_object" &&
- test "$pic_object" != none; then
- func_append rmfiles " $dir/$pic_object"
- fi
-
- # Add non-PIC object to the list of files to remove.
- if test -n "$non_pic_object" &&
- test "$non_pic_object" != none; then
- func_append rmfiles " $dir/$non_pic_object"
- fi
- fi
- ;;
-
- *)
- if test "$opt_mode" = clean ; then
- noexename=$name
- case $file in
- *.exe)
- func_stripname '' '.exe' "$file"
- file=$func_stripname_result
- func_stripname '' '.exe' "$name"
- noexename=$func_stripname_result
- # $file with .exe has already been added to rmfiles,
- # add $file without .exe
- func_append rmfiles " $file"
- ;;
- esac
- # Do a test to see if this is a libtool program.
- if func_ltwrapper_p "$file"; then
- if func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- relink_command=
- func_source $func_ltwrapper_scriptname_result
- func_append rmfiles " $func_ltwrapper_scriptname_result"
- else
- relink_command=
- func_source $dir/$noexename
- fi
-
- # note $name still contains .exe if it was in $file originally
- # as does the version of $file that was added into $rmfiles
- func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
- if test "$fast_install" = yes && test -n "$relink_command"; then
- func_append rmfiles " $odir/lt-$name"
- fi
- if test "X$noexename" != "X$name" ; then
- func_append rmfiles " $odir/lt-${noexename}.c"
- fi
- fi
- fi
- ;;
- esac
- func_show_eval "$RM $rmfiles" 'exit_status=1'
- done
-
- # Try to remove the ${objdir}s in the directories where we deleted files
- for dir in $rmdirs; do
- if test -d "$dir"; then
- func_show_eval "rmdir $dir >/dev/null 2>&1"
- fi
- done
-
- exit $exit_status
-}
-
-{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
- func_mode_uninstall ${1+"$@"}
-
-test -z "$opt_mode" && {
- help="$generic_help"
- func_fatal_help "you must specify a MODE"
-}
-
-test -z "$exec_cmd" && \
- func_fatal_help "invalid operation mode \`$opt_mode'"
-
-if test -n "$exec_cmd"; then
- eval exec "$exec_cmd"
- exit $EXIT_FAILURE
-fi
-
-exit $exit_status
-
-
-# The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries. Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them. This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration. But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
-# vi:sw=2
diff --git a/src/c/jerasure/build-aux/missing b/src/c/jerasure/build-aux/missing
deleted file mode 100755
index db98974..0000000
--- a/src/c/jerasure/build-aux/missing
+++ /dev/null
@@ -1,215 +0,0 @@
-#! /bin/sh
-# Common wrapper for a few potentially missing GNU programs.
-
-scriptversion=2013-10-28.13; # UTC
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program 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 2, 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.
-
-if test $# -eq 0; then
- echo 1>&2 "Try '$0 --help' for more information"
- exit 1
-fi
-
-case $1 in
-
- --is-lightweight)
- # Used by our autoconf macros to check whether the available missing
- # script is modern enough.
- exit 0
- ;;
-
- --run)
- # Back-compat with the calling convention used by older automake.
- shift
- ;;
-
- -h|--h|--he|--hel|--help)
- echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
-to PROGRAM being missing or too old.
-
-Options:
- -h, --help display this help and exit
- -v, --version output version information and exit
-
-Supported PROGRAM values:
- aclocal autoconf autoheader autom4te automake makeinfo
- bison yacc flex lex help2man
-
-Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
-'g' are ignored when checking the name.
-
-Send bug reports to <bug-automake@gnu.org>."
- exit $?
- ;;
-
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing $scriptversion (GNU Automake)"
- exit $?
- ;;
-
- -*)
- echo 1>&2 "$0: unknown '$1' option"
- echo 1>&2 "Try '$0 --help' for more information"
- exit 1
- ;;
-
-esac
-
-# Run the given program, remember its exit status.
-"$@"; st=$?
-
-# If it succeeded, we are done.
-test $st -eq 0 && exit 0
-
-# Also exit now if we it failed (or wasn't found), and '--version' was
-# passed; such an option is passed most likely to detect whether the
-# program is present and works.
-case $2 in --version|--help) exit $st;; esac
-
-# Exit code 63 means version mismatch. This often happens when the user
-# tries to use an ancient version of a tool on a file that requires a
-# minimum version.
-if test $st -eq 63; then
- msg="probably too old"
-elif test $st -eq 127; then
- # Program was missing.
- msg="missing on your system"
-else
- # Program was found and executed, but failed. Give up.
- exit $st
-fi
-
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
-
-program_details ()
-{
- case $1 in
- aclocal|automake)
- echo "The '$1' program is part of the GNU Automake package:"
- echo "<$gnu_software_URL/automake>"
- echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/autoconf>"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- autoconf|autom4te|autoheader)
- echo "The '$1' program is part of the GNU Autoconf package:"
- echo "<$gnu_software_URL/autoconf/>"
- echo "It also requires GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- esac
-}
-
-give_advice ()
-{
- # Normalize program name to check for.
- normalized_program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
- printf '%s\n' "'$1' is $msg."
-
- configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
- case $normalized_program in
- autoconf*)
- echo "You should only need it if you modified 'configure.ac',"
- echo "or m4 files included by it."
- program_details 'autoconf'
- ;;
- autoheader*)
- echo "You should only need it if you modified 'acconfig.h' or"
- echo "$configure_deps."
- program_details 'autoheader'
- ;;
- automake*)
- echo "You should only need it if you modified 'Makefile.am' or"
- echo "$configure_deps."
- program_details 'automake'
- ;;
- aclocal*)
- echo "You should only need it if you modified 'acinclude.m4' or"
- echo "$configure_deps."
- program_details 'aclocal'
- ;;
- autom4te*)
- echo "You might have modified some maintainer files that require"
- echo "the 'autom4te' program to be rebuilt."
- program_details 'autom4te'
- ;;
- bison*|yacc*)
- echo "You should only need it if you modified a '.y' file."
- echo "You may want to install the GNU Bison package:"
- echo "<$gnu_software_URL/bison/>"
- ;;
- lex*|flex*)
- echo "You should only need it if you modified a '.l' file."
- echo "You may want to install the Fast Lexical Analyzer package:"
- echo "<$flex_URL>"
- ;;
- help2man*)
- echo "You should only need it if you modified a dependency" \
- "of a man page."
- echo "You may want to install the GNU Help2man package:"
- echo "<$gnu_software_URL/help2man/>"
- ;;
- makeinfo*)
- echo "You should only need it if you modified a '.texi' file, or"
- echo "any other file indirectly affecting the aspect of the manual."
- echo "You might want to install the Texinfo package:"
- echo "<$gnu_software_URL/texinfo/>"
- echo "The spurious makeinfo call might also be the consequence of"
- echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
- echo "want to install GNU make:"
- echo "<$gnu_software_URL/make/>"
- ;;
- *)
- echo "You might have modified some files without having the proper"
- echo "tools for further handling them. Check the 'README' file, it"
- echo "often tells you about the needed prerequisites for installing"
- echo "this package. You may also peek at any GNU archive site, in"
- echo "case some other package contains this missing '$1' program."
- ;;
- esac
-}
-
-give_advice "$1" | sed -e '1s/^/WARNING: /' \
- -e '2,$s/^/ /' >&2
-
-# Propagate the correct exit status (expected to be 127 for a program
-# not found, 63 for a program that failed due to version mismatch).
-exit $st
-
-# 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:
diff --git a/src/c/jerasure/build-aux/test-driver b/src/c/jerasure/build-aux/test-driver
deleted file mode 100755
index d306056..0000000
--- a/src/c/jerasure/build-aux/test-driver
+++ /dev/null
@@ -1,139 +0,0 @@
-#! /bin/sh
-# test-driver - basic testsuite driver script.
-
-scriptversion=2013-07-13.22; # UTC
-
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
-#
-# This program 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 2, 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 file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-# Make unconditional expansion of undefined variables an error. This
-# helps a lot in preventing typo-related bugs.
-set -u
-
-usage_error ()
-{
- echo "$0: $*" >&2
- print_usage >&2
- exit 2
-}
-
-print_usage ()
-{
- cat <<END
-Usage:
- test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
- [--expect-failure={yes|no}] [--color-tests={yes|no}]
- [--enable-hard-errors={yes|no}] [--]
- TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
-The '--test-name', '--log-file' and '--trs-file' options are mandatory.
-END
-}
-
-test_name= # Used for reporting.
-log_file= # Where to save the output of the test script.
-trs_file= # Where to save the metadata of the test run.
-expect_failure=no
-color_tests=no
-enable_hard_errors=yes
-while test $# -gt 0; do
- case $1 in
- --help) print_usage; exit $?;;
- --version) echo "test-driver $scriptversion"; exit $?;;
- --test-name) test_name=$2; shift;;
- --log-file) log_file=$2; shift;;
- --trs-file) trs_file=$2; shift;;
- --color-tests) color_tests=$2; shift;;
- --expect-failure) expect_failure=$2; shift;;
- --enable-hard-errors) enable_hard_errors=$2; shift;;
- --) shift; break;;
- -*) usage_error "invalid option: '$1'";;
- *) break;;
- esac
- shift
-done
-
-missing_opts=
-test x"$test_name" = x && missing_opts="$missing_opts --test-name"
-test x"$log_file" = x && missing_opts="$missing_opts --log-file"
-test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
-if test x"$missing_opts" != x; then
- usage_error "the following mandatory options are missing:$missing_opts"
-fi
-
-if test $# -eq 0; then
- usage_error "missing argument"
-fi
-
-if test $color_tests = yes; then
- # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
- red='' # Red.
- grn='' # Green.
- lgn='' # Light green.
- blu='' # Blue.
- mgn='' # Magenta.
- std='' # No color.
-else
- red= grn= lgn= blu= mgn= std=
-fi
-
-do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
-trap "st=129; $do_exit" 1
-trap "st=130; $do_exit" 2
-trap "st=141; $do_exit" 13
-trap "st=143; $do_exit" 15
-
-# Test script is run here.
-"$@" >$log_file 2>&1
-estatus=$?
-if test $enable_hard_errors = no && test $estatus -eq 99; then
- estatus=1
-fi
-
-case $estatus:$expect_failure in
- 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
- 0:*) col=$grn res=PASS recheck=no gcopy=no;;
- 77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
- 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
- *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
- *:*) col=$red res=FAIL recheck=yes gcopy=yes;;
-esac
-
-# Report outcome to console.
-echo "${col}${res}${std}: $test_name"
-
-# Register the test result, and other relevant metadata.
-echo ":test-result: $res" > $trs_file
-echo ":global-test-result: $res" >> $trs_file
-echo ":recheck: $recheck" >> $trs_file
-echo ":copy-in-global-log: $gcopy" >> $trs_file
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# 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:
diff --git a/src/c/jerasure/configure b/src/c/jerasure/configure
deleted file mode 100755
index d9a0ac4..0000000
--- a/src/c/jerasure/configure
+++ /dev/null
@@ -1,15530 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Jerasure 2.0.
-#
-#
-# 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 -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
- || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || 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 about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a 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'"
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-
-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='Jerasure'
-PACKAGE_TARNAME='jerasure'
-PACKAGE_VERSION='2.0'
-PACKAGE_STRING='Jerasure 2.0'
-PACKAGE_BUGREPORT=''
-PACKAGE_URL='https://jerasure.org/jerasure/jerasure'
-
-ac_unique_file="src/jerasure.c"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIBOBJS
-SIMD_FLAGS
-CPP
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-MANIFEST_TOOL
-RANLIB
-ac_ct_AR
-AR
-DLLTOOL
-OBJDUMP
-LN_S
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-EGREP
-GREP
-SED
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-am__nodep
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-LIBTOOL
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-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
-enable_silent_rules
-enable_static
-enable_shared
-with_pic
-enable_fast_install
-enable_dependency_tracking
-with_gnu_ld
-with_sysroot
-enable_libtool_lock
-enable_sse
-'
- 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 Jerasure 2.0 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --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/jerasure]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of Jerasure 2.0:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-silent-rules less verbose build output (undo: "make V=1")
- --disable-silent-rules verbose build output (undo: "make V=0")
- --enable-static[=PKGS] build static libraries [default=no]
- --enable-shared[=PKGS] build shared libraries [default=yes]
- --enable-fast-install[=PKGS]
- optimize for fast installation [default=yes]
- --enable-dependency-tracking
- do not reject slow dependency extractors
- --disable-dependency-tracking
- speeds up one-time build
- --disable-libtool-lock avoid locking (might break parallel builds)
- --disable-sse Build without SSE optimizations
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
- both]
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]
- --with-sysroot=DIR Search for dependent libraries within DIR
- (or the compiler's sysroot if not specified).
-
-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 the package provider.
-Jerasure home page: <https://jerasure.org/jerasure/jerasure>.
-_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
-Jerasure configure 2.0
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_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_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_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_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_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
- 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. */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* 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 $2 ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext 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_func
-
-# 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;}
- ;;
-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_find_uintX_t LINENO BITS VAR
-# ------------------------------------
-# Finds an unsigned integer type with width BITS, setting cache variable VAR
-# accordingly.
-ac_fn_c_find_uintX_t ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5
-$as_echo_n "checking for uint$2_t... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=no"
- # Order is important - never check a type that is potentially smaller
- # than half of the expected target width.
- for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \
- 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- case $ac_type in #(
- uint$2_t) :
- eval "$3=yes" ;; #(
- *) :
- eval "$3=\$ac_type" ;;
-esac
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- if eval test \"x\$"$3"\" = x"no"; then :
-
-else
- break
-fi
- done
-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_find_uintX_t
-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 Jerasure $as_me 2.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_config_headers="$ac_config_headers include/config.h"
-
-
-ac_aux_dir=
-for ac_dir in build-aux "$srcdir"/build-aux; 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 build-aux \"$srcdir\"/build-aux" "$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.
-
-
-
-
-am__api_version='1.14'
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
-
- done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[\\\"\#\$\&\'\`$am_lf]*)
- as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
-esac
-case $srcdir in
- *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
- as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
- alias in your environment" "$LINENO" 5
- fi
- if test "$2" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-
-rm -f conftest.file
-
-test "$program_prefix" != NONE &&
- program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; 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_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # 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_STRIP="${ac_tool_prefix}strip"
- $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
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; 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_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # 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_STRIP="strip"
- $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_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- 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
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
- if ${ac_cv_path_mkdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
- done
-IFS=$as_save_IFS
-
-fi
-
- test -d ./--version && rmdir ./--version
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- MKDIR_P="$ac_install_sh -d"
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-for ac_prog in gawk mawk nawk awk
-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_AWK+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # 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_AWK="$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
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
- enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=1;;
-esac
-am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if $as_echo 'TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- am__isrc=' -I$(srcdir)'
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='jerasure'
- VERSION='2.0'
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-mkdir_p='$(MKDIR_P)'
-
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AMTAR='$${TAR-tar}'
-
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar pax cpio none'
-
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
-
-
-
-
-
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
- fi
-fi
-
-# Package default C compiler flags.
-: ${CFLAGS='-g -O3 -Wall'}
-
-case `pwd` in
- *\ * | *\ *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.4.2'
-macro_revision='1.3337'
-
-
-
-
-
-
-
-
-
-
-
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-# 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
-
-
-# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO ""
-}
-
-case "$ECHO" in
- printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
- print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
- enableval=$enable_dependency_tracking;
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
- am__nodep='_no'
-fi
- if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-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
-
-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 whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-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
-
-
-depcc="$CC" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
- for ac_i in 1 2 3 4 5 6 7; do
- ac_script="$ac_script$as_nl$ac_script"
- done
- echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
- { ac_script=; unset ac_script;}
- if test -z "$SED"; then
- ac_path_SED_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
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_SED" || continue
-# Check for GNU ac_path_SED and select it if it is found.
- # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
- ac_cv_path_SED="$ac_path_SED" ac_path_SED_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 '' >> "conftest.nl"
- "$ac_path_SED" -f conftest.sed < "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_SED_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_SED="$ac_path_SED"
- ac_path_SED_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_SED_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_SED"; then
- as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
- fi
-else
- ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
- rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-
-
-
-
-
-
-
-
-
-
-{ $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 fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
- then ac_cv_path_FGREP="$GREP -F"
- else
- if test -z "$FGREP"; then
- ac_path_FGREP_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 fgrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_FGREP" || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
- # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_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 'FGREP' >> "conftest.nl"
- "$ac_path_FGREP" FGREP < "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_FGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_FGREP="$ac_path_FGREP"
- ac_path_FGREP_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_FGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_FGREP"; then
- as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_FGREP=$FGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
-
-
-test -z "$GREP" && GREP=grep
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
- withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- if test -n "$ac_tool_prefix"; then
- for ac_prog in dumpbin "link -dump"
- 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_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DUMPBIN"; then
- ac_cv_prog_DUMPBIN="$DUMPBIN" # 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_DUMPBIN="$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
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$DUMPBIN" && break
- done
-fi
-if test -z "$DUMPBIN"; then
- ac_ct_DUMPBIN=$DUMPBIN
- for ac_prog in dumpbin "link -dump"
-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_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DUMPBIN"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # 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_DUMPBIN="$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_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_DUMPBIN" && break
-done
-
- if test "x$ac_ct_DUMPBIN" = x; then
- DUMPBIN=":"
- 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
- DUMPBIN=$ac_ct_DUMPBIN
- fi
-fi
-
- case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
-
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: output\"" >&5)
- cat conftest.out >&5
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- os2*)
- # The test takes a long time on OS/2.
- lt_cv_sys_max_cmd_len=8192
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len" && \
- test undefined != "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-
-
-
-
-
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,b/c, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-
-
-
-
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-if ${lt_cv_to_host_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
- ;;
- esac
- ;;
- *-*-cygwin* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
- ;;
- esac
- ;;
- * ) # unhandled hosts (and "normal" native builds)
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
-esac
-
-fi
-
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-$as_echo "$lt_cv_to_host_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-if ${lt_cv_to_tool_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- #assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
- ;;
- esac
- ;;
-esac
-
-fi
-
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- if test "$GCC" != yes; then
- reload_cmds=false
- fi
- ;;
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; 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_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # 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_OBJDUMP="${ac_tool_prefix}objdump"
- $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
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
- ac_ct_OBJDUMP=$OBJDUMP
- # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; 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_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OBJDUMP"; then
- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # 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_OBJDUMP="objdump"
- $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_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OBJDUMP" = x; then
- OBJDUMP="false"
- 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
- OBJDUMP=$ac_ct_OBJDUMP
- fi
-else
- OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[45]*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
- if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- # Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[3-9]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
- case $host_os in
- mingw* | pw32*)
- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
- want_nocaseglob=yes
- else
- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
- fi
- ;;
- esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; 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_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # 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_DLLTOOL="${ac_tool_prefix}dlltool"
- $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
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
- ac_ct_DLLTOOL=$DLLTOOL
- # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; 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_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DLLTOOL"; then
- ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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_DLLTOOL="dlltool"
- $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_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DLLTOOL" = x; then
- DLLTOOL="false"
- 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
- DLLTOOL=$ac_ct_DLLTOOL
- fi
-else
- DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
- # two different shell functions defined in ltmain.sh
- # decide which to use based on capabilities of $DLLTOOL
- case `$DLLTOOL --help 2>&1` in
- *--identify-strict*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
- ;;
- *)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
- ;;
- esac
- ;;
-*)
- # fallback: assume linklib IS sharedlib
- lt_cv_sharedlib_from_linklib_cmd="$ECHO"
- ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- for ac_prog in ar
- 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_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # 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_AR="$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
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AR" && break
- done
-fi
-if test -z "$AR"; then
- ac_ct_AR=$AR
- for ac_prog in ar
-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_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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_AR="$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_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_AR" && break
-done
-
- if test "x$ac_ct_AR" = x; then
- AR="false"
- 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
- AR=$ac_ct_AR
- fi
-fi
-
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-$as_echo_n "checking for archiver @FILE support... " >&6; }
-if ${lt_cv_ar_at_file+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ar_at_file=no
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- echo conftest.$ac_objext > conftest.lst
- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test "$ac_status" -eq 0; then
- # Ensure the archiver fails upon bogus file names.
- rm -f conftest.$ac_objext libconftest.a
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test "$ac_status" -ne 0; then
- lt_cv_ar_at_file=@
- fi
- fi
- rm -f conftest.* libconftest.a
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-$as_echo "$lt_cv_ar_at_file" >&6; }
-
-if test "x$lt_cv_ar_at_file" = xno; then
- archiver_list_spec=
-else
- archiver_list_spec=$lt_cv_ar_at_file
-fi
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; 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_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # 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_STRIP="${ac_tool_prefix}strip"
- $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
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; 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_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # 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_STRIP="strip"
- $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_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- 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
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; 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_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # 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_RANLIB="${ac_tool_prefix}ranlib"
- $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
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; 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_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # 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_RANLIB="ranlib"
- $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_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- 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
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-
-
-
-
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[BCDT]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[ABCDGISTW]'
- ;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[ABCDEGRST]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[BCDEGRST]'
- ;;
-osf*)
- symcode='[BCDEGQRST]'
- ;;
-solaris*)
- symcode='[BDRT]'
- ;;
-sco3.2v5*)
- symcode='[DT]'
- ;;
-sysv4.2uw2*)
- symcode='[DT]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[ABDT]'
- ;;
-sysv4)
- symcode='[DFNSTU]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK '"\
-" {last_section=section; section=\$ 3};"\
-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
- (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-LT_DLSYM_CONST struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_globsym_save_LIBS=$LIBS
- lt_globsym_save_CFLAGS=$CFLAGS
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS=$lt_globsym_save_LIBS
- CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&5
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&5
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
- fi
- else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
- nm_file_list_spec='@'
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-$as_echo_n "checking for sysroot... " >&6; }
-
-# Check whether --with-sysroot was given.
-if test "${with_sysroot+set}" = set; then :
- withval=$with_sysroot;
-else
- with_sysroot=no
-fi
-
-
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
- if test "$GCC" = yes; then
- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
- fi
- ;; #(
- /*)
- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
- ;; #(
- no|'')
- ;; #(
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
-$as_echo "${with_sysroot}" >&6; }
- as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
- ;;
-esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-$as_echo "${lt_sysroot:-no}" >&6; }
-
-
-
-
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
- enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line '$LINENO' "configure"' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- case `/usr/bin/file conftest.o` in
- *x86-64*)
- LD="${LD-ld} -m elf32_x86_64"
- ;;
- *)
- LD="${LD-ld} -m elf_i386"
- ;;
- esac
- ;;
- powerpc64le-*)
- LD="${LD-ld} -m elf32lppclinux"
- ;;
- powerpc64-*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- powerpcle-*)
- LD="${LD-ld} -m elf64lppc"
- ;;
- powerpc-*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- 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
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_cc_needs_belf=yes
-else
- lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- 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
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*)
- case $host in
- i?86-*-solaris*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- sparc*-*-solaris*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
- LD="${LD-ld}_sol2"
- fi
- ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks="$enable_libtool_lock"
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
-set dummy ${ac_tool_prefix}mt; 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_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$MANIFEST_TOOL"; then
- ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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_MANIFEST_TOOL="${ac_tool_prefix}mt"
- $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
-MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
-if test -n "$MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-$as_echo "$MANIFEST_TOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
- ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
- # Extract the first word of "mt", so it can be a program name with args.
-set dummy mt; 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_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_MANIFEST_TOOL"; then
- ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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_MANIFEST_TOOL="mt"
- $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_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
-if test -n "$ac_ct_MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_MANIFEST_TOOL" = x; then
- MANIFEST_TOOL=":"
- 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
- MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
- fi
-else
- MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
-fi
-
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if ${lt_cv_path_mainfest_tool+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_path_mainfest_tool=no
- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
- cat conftest.err >&5
- if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_mainfest_tool=yes
- fi
- rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-$as_echo "$lt_cv_path_mainfest_tool" >&6; }
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
- MANIFEST_TOOL=:
-fi
-
-
-
-
-
-
- case $host_os in
- rhapsody* | darwin*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; 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_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DSYMUTIL"; then
- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # 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_DSYMUTIL="${ac_tool_prefix}dsymutil"
- $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
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
- ac_ct_DSYMUTIL=$DSYMUTIL
- # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; 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_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DSYMUTIL"; then
- ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # 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_DSYMUTIL="dsymutil"
- $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_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DSYMUTIL" = x; then
- DSYMUTIL=":"
- 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
- DSYMUTIL=$ac_ct_DSYMUTIL
- fi
-else
- DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; 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_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NMEDIT"; then
- ac_cv_prog_NMEDIT="$NMEDIT" # 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_NMEDIT="${ac_tool_prefix}nmedit"
- $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
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
- ac_ct_NMEDIT=$NMEDIT
- # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; 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_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_NMEDIT"; then
- ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # 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_NMEDIT="nmedit"
- $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_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_NMEDIT" = x; then
- NMEDIT=":"
- 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
- NMEDIT=$ac_ct_NMEDIT
- fi
-else
- NMEDIT="$ac_cv_prog_NMEDIT"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; 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_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$LIPO"; then
- ac_cv_prog_LIPO="$LIPO" # 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_LIPO="${ac_tool_prefix}lipo"
- $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
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_LIPO"; then
- ac_ct_LIPO=$LIPO
- # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; 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_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_LIPO"; then
- ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # 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_LIPO="lipo"
- $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_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_LIPO" = x; then
- LIPO=":"
- 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
- LIPO=$ac_ct_LIPO
- fi
-else
- LIPO="$ac_cv_prog_LIPO"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; 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_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL"; then
- ac_cv_prog_OTOOL="$OTOOL" # 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_OTOOL="${ac_tool_prefix}otool"
- $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
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
- ac_ct_OTOOL=$OTOOL
- # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; 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_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL"; then
- ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # 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_OTOOL="otool"
- $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_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL" = x; then
- OTOOL=":"
- 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
- OTOOL=$ac_ct_OTOOL
- fi
-else
- OTOOL="$ac_cv_prog_OTOOL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; 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_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL64"; then
- ac_cv_prog_OTOOL64="$OTOOL64" # 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_OTOOL64="${ac_tool_prefix}otool64"
- $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
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
- ac_ct_OTOOL64=$OTOOL64
- # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; 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_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL64"; then
- ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # 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_OTOOL64="otool64"
- $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_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL64" = x; then
- OTOOL64=":"
- 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
- OTOOL64=$ac_ct_OTOOL64
- fi
-else
- OTOOL64="$ac_cv_prog_OTOOL64"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- # If there is a non-empty error log, and "single_module"
- # appears in it, assume the flag caused a linker warning
- if test -s conftest.err && $GREP single_module conftest.err; then
- cat conftest.err >&5
- # Otherwise, if the output was created with a 0 exit code from
- # the compiler, it worked.
- elif test -f libconftest.dylib && test $_lt_result -eq 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&5
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_ld_exported_symbols_list=yes
-else
- lt_cv_ld_exported_symbols_list=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
- echo "$AR cru libconftest.a conftest.o" >&5
- $AR cru libconftest.a conftest.o 2>&5
- echo "$RANLIB libconftest.a" >&5
- $RANLIB libconftest.a 2>&5
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -s conftest.err && $GREP force_load conftest.err; then
- cat conftest.err >&5
- elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&5
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
- case $host_os in
- rhapsody* | darwin1.[012])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- 10.[012]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-
-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 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
-
-
-for ac_header in dlfcn.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-# Set options
-# Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
- enableval=$enable_static; p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_static=no
-fi
-
-
-
-
-
-
-
-
-
-
- enable_dlopen=no
-
-
- enable_win32_dll=no
-
-
- # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
- enableval=$enable_shared; p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_shared=yes
-fi
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
- withval=$with_pic; lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for lt_pkg in $withval; do
- IFS="$lt_save_ifs"
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-
-
-
-
-
- # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
- enableval=$enable_fast_install; p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_fast_install=yes
-fi
-
-
-
-
-
-
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-test -z "$LN_S" && LN_S="ln -s"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
-
-
-
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/${ac_tool_prefix}file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- else
- MAGIC_CMD=:
- fi
-fi
-
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC="$CC"
-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
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
- case $cc_basename in
- nvcc*)
- lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
- *)
- lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
- esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_rtti_exceptions=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="-fno-rtti -fno-exceptions"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_rtti_exceptions=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
- lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
- :
-fi
-
-fi
-
-
-
-
-
-
- lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-
- if test "$GCC" = yes; then
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_static='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- lt_prog_compiler_pic='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- lt_prog_compiler_static=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
- ;;
-
- interix[3-9]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- lt_prog_compiler_can_build_shared=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic=-Kconform_pic
- fi
- ;;
-
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- lt_prog_compiler_wl='-Xlinker '
- if test -n "$lt_prog_compiler_pic"; then
- lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
- fi
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- lt_prog_compiler_wl='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- else
- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- hpux9* | hpux10* | hpux11*)
- lt_prog_compiler_wl='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- lt_prog_compiler_static='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- lt_prog_compiler_wl='-Wl,'
- # PIC (with -KPIC) is the default.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='--shared'
- lt_prog_compiler_static='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- lt_prog_compiler_wl='-Wl,-Wl,,'
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- ccc*)
- lt_prog_compiler_wl='-Wl,'
- # All Alpha code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-qpic'
- lt_prog_compiler_static='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl=''
- ;;
- *Sun\ F* | *Sun*Fortran*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Qoption ld '
- ;;
- *Sun\ C*)
- # Sun C 5.9
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Wl,'
- ;;
- *Intel*\ [CF]*Compiler*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- *Portland\ Group*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- lt_prog_compiler_wl='-Wl,'
- # All OSF/1 code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- rdos*)
- lt_prog_compiler_static='-non_shared'
- ;;
-
- solaris*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- lt_prog_compiler_wl='-Qoption ld ';;
- *)
- lt_prog_compiler_wl='-Wl,';;
- esac
- ;;
-
- sunos4*)
- lt_prog_compiler_wl='-Qoption ld '
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- lt_prog_compiler_pic='-Kconform_pic'
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- unicos*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_can_build_shared=no
- ;;
-
- uts4*)
- lt_prog_compiler_pic='-pic'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *)
- lt_prog_compiler_can_build_shared=no
- ;;
- esac
- fi
-
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic=
- ;;
- *)
- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
- ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-$as_echo "$lt_cv_prog_compiler_pic" >&6; }
-lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic_works=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_pic_works=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
- case $lt_prog_compiler_pic in
- "" | " "*) ;;
- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
- esac
-else
- lt_prog_compiler_pic=
- lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_static_works=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_static_works=yes
- fi
- else
- lt_cv_prog_compiler_static_works=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
- :
-else
- lt_prog_compiler_static=
-fi
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
- if test "$hard_links" = no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
- runpath_var=
- allow_undefined_flag=
- always_export_symbols=no
- archive_cmds=
- archive_expsym_cmds=
- compiler_needs_object=no
- enable_shared_with_static_runtimes=no
- export_dynamic_flag_spec=
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- hardcode_automatic=no
- hardcode_direct=no
- hardcode_direct_absolute=no
- hardcode_libdir_flag_spec=
- hardcode_libdir_separator=
- hardcode_minus_L=no
- hardcode_shlibpath_var=unsupported
- inherit_rpath=no
- link_all_deplibs=unknown
- module_cmds=
- module_expsym_cmds=
- old_archive_from_new_cmds=
- old_archive_from_expsyms_cmds=
- thread_safe_flag_spec=
- whole_archive_flag_spec=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- include_expsyms=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- linux* | k*bsd*-gnu | gnu*)
- link_all_deplibs=no
- ;;
- esac
-
- ld_shlibs=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test "$with_gnu_ld" = yes; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
- *\ \(GNU\ Binutils\)\ [3-9]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test "$lt_use_gnu_ld_interface" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- export_dynamic_flag_spec='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[3-9]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- export_dynamic_flag_spec='${wl}--export-all-symbols'
- allow_undefined_flag=unsupported
- always_export_symbols=no
- enable_shared_with_static_runtimes=yes
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
- exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- haiku*)
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- link_all_deplibs=yes
- ;;
-
- interix[3-9]*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- whole_archive_flag_spec=
- tmp_sharedflag='--shared' ;;
- xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- ld_shlibs=no
- fi
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
-
- if test "$ld_shlibs" = no; then
- runpath_var=
- hardcode_libdir_flag_spec=
- export_dynamic_flag_spec=
- whole_archive_flag_spec=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
-
- aix[4-9]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds=''
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- file_list_spec='${wl}-f,'
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- link_all_deplibs=no
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- export_dynamic_flag_spec='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- always_export_symbols=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_="/usr/lib:/lib"
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath_
-fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
- allow_undefined_flag="-z nodefs"
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_="/usr/lib:/lib"
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath_
-fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag=' ${wl}-bernotok'
- allow_undefined_flag=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec='$convenience'
- fi
- archive_cmds_need_lc=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- bsdi[45]*)
- export_dynamic_flag_spec=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- case $cc_basename in
- cl*)
- # Native MSVC
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- file_list_spec='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
- enable_shared_with_static_runtimes=yes
- exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
- # Don't use ranlib
- old_postinstall_cmds='chmod 644 $oldlib'
- postlink_cmds='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # Assume MSVC wrapper
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- old_archive_from_new_cmds='true'
- # FIXME: Should let the user specify the lib program.
- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
- enable_shared_with_static_runtimes=yes
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
-
-
- archive_cmds_need_lc=no
- hardcode_direct=no
- hardcode_automatic=yes
- hardcode_shlibpath_var=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
- else
- whole_archive_flag_spec=''
- fi
- link_all_deplibs=yes
- allow_undefined_flag="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-
- else
- ld_shlibs=no
- fi
-
- ;;
-
- dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- export_dynamic_flag_spec='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
-
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler__b=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -b"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler__b=yes
- fi
- else
- lt_cv_prog_compiler__b=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
-
-if test x"$lt_cv_prog_compiler__b" = xyes; then
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-fi
-
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- ;;
- *)
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- # This should be the same for all languages, so no per-tag cache variable.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if ${lt_cv_irix_exported_symbol+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int foo (void) { return 0; }
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_irix_exported_symbol=yes
-else
- lt_cv_irix_exported_symbol=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-$as_echo "$lt_cv_irix_exported_symbol" >&6; }
- if test "$lt_cv_irix_exported_symbol" = yes; then
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
- fi
- else
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- inherit_rpath=yes
- link_all_deplibs=yes
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- newsos6)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_shlibpath_var=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- hardcode_direct_absolute=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- else
- case $host_os in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- ld_shlibs=no
- fi
- ;;
-
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec='-rpath $libdir'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_separator=:
- ;;
-
- solaris*)
- no_undefined_flag=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_shlibpath_var=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- link_all_deplibs=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- reload_cmds='$CC -r -o $output$reload_objs'
- hardcode_direct=no
- ;;
- motorola)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- ;;
-
- sysv4.3*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- export_dynamic_flag_spec='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- no_undefined_flag='${wl}-z,text'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag='${wl}-z,text'
- allow_undefined_flag='${wl}-z,nodefs'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-R,$libdir'
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- export_dynamic_flag_spec='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- *)
- ld_shlibs=no
- ;;
- esac
-
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- export_dynamic_flag_spec='${wl}-Blargedynsym'
- ;;
- esac
- fi
- fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $archive_cmds in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
- (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- then
- lt_cv_archive_cmds_need_lc=no
- else
- lt_cv_archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
- archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
- ;;
- esac
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
- *) lt_sed_strip_eq="s,=/,/,g" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[lt_foo]++; }
- if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's,/\([A-Za-z]:\),\1,g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[4-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- library_names_spec='${libname}.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec="$LIB"
- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[23].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[3-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
- lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
-
-fi
-
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[89] | openbsd2.[89].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
- test -n "$runpath_var" ||
- test "X$hardcode_automatic" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$hardcode_direct" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
- test "$hardcode_minus_L" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink ||
- test "$inherit_rpath" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-
-
-
-
- if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $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 dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=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_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
-
-fi
-
- ;;
-
- *)
- ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
- lt_cv_dlopen="shl_load"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $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 shl_load ();
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_shl_load=yes
-else
- ac_cv_lib_dld_shl_load=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_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
- ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $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 dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=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_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld $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 dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_svld_dlopen=yes
-else
- ac_cv_lib_svld_dlopen=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_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $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 dld_link ();
-int
-main ()
-{
-return dld_link ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_dld_link=yes
-else
- ac_cv_lib_dld_dld_link=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_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self_static=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self_static=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-striplib=
-old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- fi
- ;;
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
- # Report which library types will actually be built
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[4-9]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
-
-
-
-
-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
-
-CC="$lt_save_CC"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ac_config_commands="$ac_config_commands libtool"
-
-
-
-
-# Only expand once:
-
-
-
-# Checks for programs.
-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
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-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
-
-
-depcc="$CC" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-
-# Checks for libraries.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gf_init_easy in -lgf_complete" >&5
-$as_echo_n "checking for gf_init_easy in -lgf_complete... " >&6; }
-if ${ac_cv_lib_gf_complete_gf_init_easy+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lgf_complete $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 gf_init_easy ();
-int
-main ()
-{
-return gf_init_easy ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_gf_complete_gf_init_easy=yes
-else
- ac_cv_lib_gf_complete_gf_init_easy=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_gf_complete_gf_init_easy" >&5
-$as_echo "$ac_cv_lib_gf_complete_gf_init_easy" >&6; }
-if test "x$ac_cv_lib_gf_complete_gf_init_easy" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBGF_COMPLETE 1
-_ACEOF
-
- LIBS="-lgf_complete $LIBS"
-
-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 $? "You need to have gf_complete installed.
- gf_complete is available from http://jerasure.org/jerasure/gf-complete
-See \`config.log' for more details" "$LINENO" 5; }
-
-fi
-
-
-# Checks for header files.
-for ac_header in stddef.h stdint.h stdlib.h string.h sys/time.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$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
-
-for ac_header in gf_complete.h gf_general.h gf_method.h gf_rand.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$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
-
-
-# Checks for typedefs, structures, and compiler characteristics.
-ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t"
-case $ac_cv_c_uint32_t in #(
- no|yes) ;; #(
- *)
-
-$as_echo "#define _UINT32_T 1" >>confdefs.h
-
-
-cat >>confdefs.h <<_ACEOF
-#define uint32_t $ac_cv_c_uint32_t
-_ACEOF
-;;
- esac
-
-ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t"
-case $ac_cv_c_uint64_t in #(
- no|yes) ;; #(
- *)
-
-$as_echo "#define _UINT64_T 1" >>confdefs.h
-
-
-cat >>confdefs.h <<_ACEOF
-#define uint64_t $ac_cv_c_uint64_t
-_ACEOF
-;;
- esac
-
-
-
-
- case $host_cpu in
- powerpc*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether altivec is supported" >&5
-$as_echo_n "checking whether altivec is supported... " >&6; }
-if ${ax_cv_have_altivec_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- if test `/usr/sbin/sysctl -a 2>/dev/null| grep -c hw.optional.altivec` != 0; then
- if test `/usr/sbin/sysctl -n hw.optional.altivec` = 1; then
- ax_cv_have_altivec_ext=yes
- fi
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_altivec_ext" >&5
-$as_echo "$ax_cv_have_altivec_ext" >&6; }
-
- if test "$ax_cv_have_altivec_ext" = yes; then
-
-$as_echo "#define HAVE_ALTIVEC /**/" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -faltivec" >&5
-$as_echo_n "checking whether C compiler accepts -faltivec... " >&6; }
-if ${ax_cv_check_cflags___faltivec+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -faltivec"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___faltivec=yes
-else
- ax_cv_check_cflags___faltivec=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___faltivec" >&5
-$as_echo "$ax_cv_check_cflags___faltivec" >&6; }
-if test x"$ax_cv_check_cflags___faltivec" = xyes; then :
- SIMD_FLAGS="$SIMD_FLAGS -faltivec"
-else
- :
-fi
-
- fi
- ;;
-
-
- i[3456]86*|x86_64*|amd64*)
-
-
-
-
-
-
-
-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 x86 cpuid 0x00000001 output" >&5
-$as_echo_n "checking for x86 cpuid 0x00000001 output... " >&6; }
-if ${ax_cv_gcc_x86_cpuid_0x00000001+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ax_cv_gcc_x86_cpuid_0x00000001=unknown
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 0x00000001, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ax_cv_gcc_x86_cpuid_0x00000001=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- ax_cv_gcc_x86_cpuid_0x00000001=unknown; rm -f conftest_cpuid
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0x00000001" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_0x00000001" >&6; }
-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
-
-
- ecx=0
- edx=0
- if test "$ax_cv_gcc_x86_cpuid_0x00000001" != "unknown";
- then
- ecx=`echo $ax_cv_gcc_x86_cpuid_0x00000001 | cut -d ":" -f 3`
- edx=`echo $ax_cv_gcc_x86_cpuid_0x00000001 | cut -d ":" -f 4`
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mmx is supported" >&5
-$as_echo_n "checking whether mmx is supported... " >&6; }
-if ${ax_cv_have_mmx_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_mmx_ext=no
- if test "$((0x$edx>>23&0x01))" = 1; then
- ax_cv_have_mmx_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_mmx_ext" >&5
-$as_echo "$ax_cv_have_mmx_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse is supported" >&5
-$as_echo_n "checking whether sse is supported... " >&6; }
-if ${ax_cv_have_sse_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse_ext=no
- if test "$((0x$edx>>25&0x01))" = 1; then
- ax_cv_have_sse_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse_ext" >&5
-$as_echo "$ax_cv_have_sse_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse2 is supported" >&5
-$as_echo_n "checking whether sse2 is supported... " >&6; }
-if ${ax_cv_have_sse2_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse2_ext=no
- if test "$((0x$edx>>26&0x01))" = 1; then
- ax_cv_have_sse2_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse2_ext" >&5
-$as_echo "$ax_cv_have_sse2_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse3 is supported" >&5
-$as_echo_n "checking whether sse3 is supported... " >&6; }
-if ${ax_cv_have_sse3_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse3_ext=no
- if test "$((0x$ecx&0x01))" = 1; then
- ax_cv_have_sse3_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse3_ext" >&5
-$as_echo "$ax_cv_have_sse3_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ssse3 is supported" >&5
-$as_echo_n "checking whether ssse3 is supported... " >&6; }
-if ${ax_cv_have_ssse3_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_ssse3_ext=no
- if test "$((0x$ecx>>9&0x01))" = 1; then
- ax_cv_have_ssse3_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_ssse3_ext" >&5
-$as_echo "$ax_cv_have_ssse3_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse4.1 is supported" >&5
-$as_echo_n "checking whether sse4.1 is supported... " >&6; }
-if ${ax_cv_have_sse41_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse41_ext=no
- if test "$((0x$ecx>>19&0x01))" = 1; then
- ax_cv_have_sse41_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse41_ext" >&5
-$as_echo "$ax_cv_have_sse41_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse4.2 is supported" >&5
-$as_echo_n "checking whether sse4.2 is supported... " >&6; }
-if ${ax_cv_have_sse42_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse42_ext=no
- if test "$((0x$ecx>>20&0x01))" = 1; then
- ax_cv_have_sse42_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse42_ext" >&5
-$as_echo "$ax_cv_have_sse42_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether avx is supported by processor" >&5
-$as_echo_n "checking whether avx is supported by processor... " >&6; }
-if ${ax_cv_have_avx_cpu_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_avx_cpu_ext=no
- if test "$((0x$ecx>>28&0x01))" = 1; then
- ax_cv_have_avx_cpu_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_avx_cpu_ext" >&5
-$as_echo "$ax_cv_have_avx_cpu_ext" >&6; }
-
- if test x"$ax_cv_have_avx_cpu_ext" = x"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 for x86-AVX xgetbv 0x00000000 output" >&5
-$as_echo_n "checking for x86-AVX xgetbv 0x00000000 output... " >&6; }
-if ${ax_cv_gcc_x86_avx_xgetbv_0x00000000+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ax_cv_gcc_x86_avx_xgetbv_0x00000000=unknown
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 0x00000000, eax, edx;
- FILE *f;
- /* Opcodes for xgetbv */
- __asm__(".byte 0x0f, 0x01, 0xd0"
- : "=a" (eax), "=d" (edx)
- : "c" (op));
- f = fopen("conftest_xgetbv", "w"); if (!f) return 1;
- fprintf(f, "%x:%x\n", eax, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ax_cv_gcc_x86_avx_xgetbv_0x00000000=`cat conftest_xgetbv`; rm -f conftest_xgetbv
-else
- ax_cv_gcc_x86_avx_xgetbv_0x00000000=unknown; rm -f conftest_xgetbv
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_avx_xgetbv_0x00000000" >&5
-$as_echo "$ax_cv_gcc_x86_avx_xgetbv_0x00000000" >&6; }
-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
-
-
-
- xgetbv_eax="0"
- if test x"$ax_cv_gcc_x86_avx_xgetbv_0x00000000" != x"unknown"; then
- xgetbv_eax=`echo $ax_cv_gcc_x86_avx_xgetbv_0x00000000 | cut -d ":" -f 1`
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether avx is supported by operating system" >&5
-$as_echo_n "checking whether avx is supported by operating system... " >&6; }
-if ${ax_cv_have_avx_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_avx_ext=no
-
- if test "$((0x$ecx>>27&0x01))" = 1; then
- if test "$((0x$xgetbv_eax&0x6))" = 6; then
- ax_cv_have_avx_ext=yes
- fi
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_avx_ext" >&5
-$as_echo "$ax_cv_have_avx_ext" >&6; }
- if test x"$ax_cv_have_avx_ext" = x"no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports AVX, but your operating system doesn't" >&5
-$as_echo "$as_me: WARNING: Your processor supports AVX, but your operating system doesn't" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_mmx_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mmmx" >&5
-$as_echo_n "checking whether C compiler accepts -mmmx... " >&6; }
-if ${ax_cv_check_cflags___mmmx+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -mmmx"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___mmmx=yes
-else
- ax_cv_check_cflags___mmmx=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mmmx" >&5
-$as_echo "$ax_cv_check_cflags___mmmx" >&6; }
-if test x"$ax_cv_check_cflags___mmmx" = xyes; then :
- ax_cv_support_mmx_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_mmx_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mmmx"
-
-$as_echo "#define HAVE_MMX /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports mmx instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports mmx instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_sse_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse" >&5
-$as_echo_n "checking whether C compiler accepts -msse... " >&6; }
-if ${ax_cv_check_cflags___msse+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse=yes
-else
- ax_cv_check_cflags___msse=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse" >&5
-$as_echo "$ax_cv_check_cflags___msse" >&6; }
-if test x"$ax_cv_check_cflags___msse" = xyes; then :
- ax_cv_support_sse_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse"
-
-$as_echo "#define HAVE_SSE /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_sse2_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse2" >&5
-$as_echo_n "checking whether C compiler accepts -msse2... " >&6; }
-if ${ax_cv_check_cflags___msse2+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse2"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse2=yes
-else
- ax_cv_check_cflags___msse2=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse2" >&5
-$as_echo "$ax_cv_check_cflags___msse2" >&6; }
-if test x"$ax_cv_check_cflags___msse2" = xyes; then :
- ax_cv_support_sse2_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse2_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse2"
-
-$as_echo "#define HAVE_SSE2 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse2 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse2 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_sse3_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse3" >&5
-$as_echo_n "checking whether C compiler accepts -msse3... " >&6; }
-if ${ax_cv_check_cflags___msse3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse3"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse3=yes
-else
- ax_cv_check_cflags___msse3=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse3" >&5
-$as_echo "$ax_cv_check_cflags___msse3" >&6; }
-if test x"$ax_cv_check_cflags___msse3" = xyes; then :
- ax_cv_support_sse3_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse3_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse3"
-
-$as_echo "#define HAVE_SSE3 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse3 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse3 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_ssse3_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mssse3" >&5
-$as_echo_n "checking whether C compiler accepts -mssse3... " >&6; }
-if ${ax_cv_check_cflags___mssse3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -mssse3"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___mssse3=yes
-else
- ax_cv_check_cflags___mssse3=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mssse3" >&5
-$as_echo "$ax_cv_check_cflags___mssse3" >&6; }
-if test x"$ax_cv_check_cflags___mssse3" = xyes; then :
- ax_cv_support_ssse3_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_ssse3_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mssse3"
-
-$as_echo "#define HAVE_SSSE3 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports ssse3 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports ssse3 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_sse41_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse4.1" >&5
-$as_echo_n "checking whether C compiler accepts -msse4.1... " >&6; }
-if ${ax_cv_check_cflags___msse4_1+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse4.1"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse4_1=yes
-else
- ax_cv_check_cflags___msse4_1=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse4_1" >&5
-$as_echo "$ax_cv_check_cflags___msse4_1" >&6; }
-if test x"$ax_cv_check_cflags___msse4_1" = xyes; then :
- ax_cv_support_sse41_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse41_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse4.1"
-
-$as_echo "#define HAVE_SSE4_1 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse4.1 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse4.1 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_sse42_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse4.2" >&5
-$as_echo_n "checking whether C compiler accepts -msse4.2... " >&6; }
-if ${ax_cv_check_cflags___msse4_2+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse4.2"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse4_2=yes
-else
- ax_cv_check_cflags___msse4_2=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse4_2" >&5
-$as_echo "$ax_cv_check_cflags___msse4_2" >&6; }
-if test x"$ax_cv_check_cflags___msse4_2" = xyes; then :
- ax_cv_support_sse42_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse42_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse4.2"
-
-$as_echo "#define HAVE_SSE4_2 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse4.2 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse4.2 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_avx_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx" >&5
-$as_echo_n "checking whether C compiler accepts -mavx... " >&6; }
-if ${ax_cv_check_cflags___mavx+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -mavx"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___mavx=yes
-else
- ax_cv_check_cflags___mavx=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx" >&5
-$as_echo "$ax_cv_check_cflags___mavx" >&6; }
-if test x"$ax_cv_check_cflags___mavx" = xyes; then :
- ax_cv_support_avx_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_avx_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mavx"
-
-$as_echo "#define HAVE_AVX /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports avx instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports avx instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- ;;
- esac
-
-
-
-
-# Check whether --enable-sse was given.
-if test "${enable_sse+set}" = set; then :
- enableval=$enable_sse; if test "x$enableval" = "xno" ; then
- SIMD_FLAGS=""
- echo "DISABLED SSE!!!"
- fi
-
-fi
-
-
-# Checks for library functions.
-for ac_header in stdlib.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdlib_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_STDLIB_H 1
-_ACEOF
-
-fi
-
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
-$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
-if ${ac_cv_func_malloc_0_nonnull+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_malloc_0_nonnull=no
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-char *malloc ();
-#endif
-
-int
-main ()
-{
-return ! malloc (0);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_malloc_0_nonnull=yes
-else
- ac_cv_func_malloc_0_nonnull=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
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
-$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
-if test $ac_cv_func_malloc_0_nonnull = yes; then :
-
-$as_echo "#define HAVE_MALLOC 1" >>confdefs.h
-
-else
- $as_echo "#define HAVE_MALLOC 0" >>confdefs.h
-
- case " $LIBOBJS " in
- *" malloc.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
- ;;
-esac
-
-
-$as_echo "#define malloc rpl_malloc" >>confdefs.h
-
-fi
-
-
-for ac_func in bzero getcwd gettimeofday mkdir strchr strdup strrchr
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-ac_config_files="$ac_config_files Examples/Makefile Makefile src/Makefile"
-
-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}'
-
-DEFS=-DHAVE_CONFIG_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
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
-$as_echo_n "checking that generated files are newer than configure... " >&6; }
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
-$as_echo "done" >&6; }
- if test -n "$EXEEXT"; then
- am__EXEEXT_TRUE=
- am__EXEEXT_FALSE='#'
-else
- am__EXEEXT_TRUE='#'
- am__EXEEXT_FALSE=
-fi
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- as_fn_error $? "conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-: "${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 Jerasure $as_me 2.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_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
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to the package provider.
-Jerasure home page: <https://jerasure.org/jerasure/jerasure>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-Jerasure config.status 2.0
-configured by $0, generated by GNU Autoconf 2.69,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-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;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_HEADERS " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
- --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
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
-enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
-PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
-host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
-host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
-host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
-build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
-build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
-build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
-SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
-Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
-GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
-EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
-FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
-LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
-NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
-LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
-exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
-file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
-want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
-archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
-STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
-lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
-CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
-compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
-GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
-nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
-lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
-objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
-need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
-MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
-LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
-libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
-postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
-version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
-install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
-striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in SHELL \
-ECHO \
-PATH_SEPARATOR \
-SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-OBJDUMP \
-deplibs_check_method \
-file_magic_cmd \
-file_magic_glob \
-want_nocaseglob \
-DLLTOOL \
-sharedlib_from_linklib_cmd \
-AR \
-AR_FLAGS \
-archiver_list_spec \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-nm_file_list_spec \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_pic \
-lt_prog_compiler_wl \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-MANIFEST_TOOL \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_separator \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-install_override_mode \
-finish_eval \
-old_striplib \
-striplib; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postlink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
-
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
- RM='$RM'
- ofile='$ofile'
-
-
-
-
-_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
- "include/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/config.h" ;;
- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
- "Examples/Makefile") CONFIG_FILES="$CONFIG_FILES Examples/Makefile" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
-
- *) 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
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-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"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_tt"; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
-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
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
- ac_MKDIR_P=$MKDIR_P
- case $MKDIR_P in
- [\\/$]* | ?:[\\/]* ) ;;
- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
- esac
-_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
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;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
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
- } >"$ac_tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$ac_tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
- fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_arg="$ac_file"
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$_am_arg" : 'X\(//\)[^/]' \| \
- X"$_am_arg" : 'X\(//\)$' \| \
- X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-
- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
- esac
-
-
- case $ac_file$ac_mode in
- "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
- # Older Autoconf quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
- shift
- for mf
- do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named 'Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running 'make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "$am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir=$dirpart/$fdir; as_fn_mkdir_p
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
- done
-}
- ;;
- "libtool":C)
-
- # See if we are running on zsh, and set the options which allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile="${ofile}T"
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool 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 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags=""
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that protects backslashes.
-ECHO=$lt_ECHO
-
-# The PATH separator for the build system.
-PATH_SEPARATOR=$lt_PATH_SEPARATOR
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# convert \$build file names to \$host format.
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-
-# convert \$build files to toolchain format.
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-
-# An object symbol dumper.
-OBJDUMP=$lt_OBJDUMP
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method = "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# How to find potential files when deplibs_check_method = "file_magic".
-file_magic_glob=$lt_file_magic_glob
-
-# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
-want_nocaseglob=$lt_want_nocaseglob
-
-# DLL creation program.
-DLLTOOL=$lt_DLLTOOL
-
-# Command to associate shared and link libraries.
-sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
-
-# The archiver.
-AR=$lt_AR
-
-# Flags to create an archive.
-AR_FLAGS=$lt_AR_FLAGS
-
-# How to feed a file listing to the archiver.
-archiver_list_spec=$lt_archiver_list_spec
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Whether to use a lock for old archive extraction.
-lock_old_archive_extraction=$lock_old_archive_extraction
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# Specify filename containing input files for \$NM.
-nm_file_list_spec=$lt_nm_file_list_spec
-
-# The root where to search for dependent libraries,and in which our libraries should be installed.
-lt_sysroot=$lt_sysroot
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Manifest tool.
-MANIFEST_TOOL=$lt_MANIFEST_TOOL
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Permission mode override for installation of shared libraries.
-install_override_mode=$lt_install_override_mode
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- if test x"$xsi_shell" = xyes; then
- sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
-func_dirname ()\
-{\
-\ case ${1} in\
-\ */*) func_dirname_result="${1%/*}${2}" ;;\
-\ * ) func_dirname_result="${3}" ;;\
-\ esac\
-} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_basename ()$/,/^} # func_basename /c\
-func_basename ()\
-{\
-\ func_basename_result="${1##*/}"\
-} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
-func_dirname_and_basename ()\
-{\
-\ case ${1} in\
-\ */*) func_dirname_result="${1%/*}${2}" ;;\
-\ * ) func_dirname_result="${3}" ;;\
-\ esac\
-\ func_basename_result="${1##*/}"\
-} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
-func_stripname ()\
-{\
-\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
-\ # positional parameters, so assign one to ordinary parameter first.\
-\ func_stripname_result=${3}\
-\ func_stripname_result=${func_stripname_result#"${1}"}\
-\ func_stripname_result=${func_stripname_result%"${2}"}\
-} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
-func_split_long_opt ()\
-{\
-\ func_split_long_opt_name=${1%%=*}\
-\ func_split_long_opt_arg=${1#*=}\
-} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
-func_split_short_opt ()\
-{\
-\ func_split_short_opt_arg=${1#??}\
-\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
-} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
-func_lo2o ()\
-{\
-\ case ${1} in\
-\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
-\ *) func_lo2o_result=${1} ;;\
-\ esac\
-} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_xform ()$/,/^} # func_xform /c\
-func_xform ()\
-{\
- func_xform_result=${1%.*}.lo\
-} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_arith ()$/,/^} # func_arith /c\
-func_arith ()\
-{\
- func_arith_result=$(( $* ))\
-} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_len ()$/,/^} # func_len /c\
-func_len ()\
-{\
- func_len_result=${#1}\
-} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-fi
-
-if test x"$lt_shell_append" = xyes; then
- sed -e '/^func_append ()$/,/^} # func_append /c\
-func_append ()\
-{\
- eval "${1}+=\\${2}"\
-} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
-func_append_quoted ()\
-{\
-\ func_quote_for_eval "${2}"\
-\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
-} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- # Save a `func_append' function call where possible by direct use of '+='
- sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-else
- # Save a `func_append' function call even when '+=' is not available
- sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
-$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
-fi
-
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-
- ;;
-
- 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
diff --git a/src/c/jerasure/configure.ac b/src/c/jerasure/configure.ac
deleted file mode 100644
index 63e6b0e..0000000
--- a/src/c/jerasure/configure.ac
+++ /dev/null
@@ -1,54 +0,0 @@
-# Jerasure autoconf template
-
-AC_PREREQ([2.65])
-AC_INIT([Jerasure], [2.0], [], [],
- [https://jerasure.org/jerasure/jerasure])
-AC_CONFIG_SRCDIR([src/jerasure.c])
-AC_CONFIG_HEADERS([include/config.h])
-
-AC_CONFIG_AUX_DIR([build-aux])
-AC_CONFIG_MACRO_DIR([m4])
-
-AM_INIT_AUTOMAKE([1.13 -Wall -Wno-extra-portability])
-
-# Package default C compiler flags.
-dnl This must be before LT_INIT and AC_PROG_CC.
-: ${CFLAGS='-g -O3 -Wall'}
-
-LT_INIT([disable-static])
-
-# Checks for programs.
-AC_PROG_CC
-
-# Checks for libraries.
-AC_CHECK_LIB([gf_complete], [gf_init_easy], [],
- [AC_MSG_FAILURE(
- [You need to have gf_complete installed.
- gf_complete is available from http://jerasure.org/jerasure/gf-complete])
- ])
-
-# Checks for header files.
-AC_CHECK_HEADERS([stddef.h stdint.h stdlib.h string.h sys/time.h unistd.h])
-AC_CHECK_HEADERS([gf_complete.h gf_general.h gf_method.h gf_rand.h])
-
-# Checks for typedefs, structures, and compiler characteristics.
-AC_TYPE_UINT32_T
-AC_TYPE_UINT64_T
-AX_EXT
-
-AC_ARG_ENABLE([sse],
- AS_HELP_STRING([--disable-sse], [Build without SSE optimizations]),
- [if test "x$enableval" = "xno" ; then
- SIMD_FLAGS=""
- echo "DISABLED SSE!!!"
- fi]
-)
-
-# Checks for library functions.
-AC_FUNC_MALLOC
-AC_CHECK_FUNCS([bzero getcwd gettimeofday mkdir strchr strdup strrchr])
-
-AC_CONFIG_FILES([Examples/Makefile
- Makefile
- src/Makefile])
-AC_OUTPUT
diff --git a/src/c/jerasure/include/cauchy.h b/src/c/jerasure/include/cauchy.h
deleted file mode 100644
index f8d1ae3..0000000
--- a/src/c/jerasure/include/cauchy.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* *
- * Copyright (c) 2013, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-#pragma once
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int *cauchy_original_coding_matrix(int k, int m, int w);
-extern int *cauchy_xy_coding_matrix(int k, int m, int w, int *x, int *y);
-extern void cauchy_improve_coding_matrix(int k, int m, int w, int *matrix);
-extern int *cauchy_good_general_coding_matrix(int k, int m, int w);
-extern int cauchy_n_ones(int n, int w);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/c/jerasure/include/config.h.in b/src/c/jerasure/include/config.h.in
deleted file mode 100644
index 5d04afb..0000000
--- a/src/c/jerasure/include/config.h.in
+++ /dev/null
@@ -1,156 +0,0 @@
-/* include/config.h.in. Generated from configure.ac by autoheader. */
-
-/* Support Altivec instructions */
-#undef HAVE_ALTIVEC
-
-/* Support AVX (Advanced Vector Extensions) instructions */
-#undef HAVE_AVX
-
-/* Define to 1 if you have the `bzero' function. */
-#undef HAVE_BZERO
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you have the `getcwd' function. */
-#undef HAVE_GETCWD
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#undef HAVE_GETTIMEOFDAY
-
-/* Define to 1 if you have the <gf_complete.h> header file. */
-#undef HAVE_GF_COMPLETE_H
-
-/* Define to 1 if you have the <gf_general.h> header file. */
-#undef HAVE_GF_GENERAL_H
-
-/* Define to 1 if you have the <gf_method.h> header file. */
-#undef HAVE_GF_METHOD_H
-
-/* Define to 1 if you have the <gf_rand.h> header file. */
-#undef HAVE_GF_RAND_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the `gf_complete' library (-lgf_complete). */
-#undef HAVE_LIBGF_COMPLETE
-
-/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
- to 0 otherwise. */
-#undef HAVE_MALLOC
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the `mkdir' function. */
-#undef HAVE_MKDIR
-
-/* Support mmx instructions */
-#undef HAVE_MMX
-
-/* Support SSE (Streaming SIMD Extensions) instructions */
-#undef HAVE_SSE
-
-/* Support SSE2 (Streaming SIMD Extensions 2) instructions */
-#undef HAVE_SSE2
-
-/* Support SSE3 (Streaming SIMD Extensions 3) instructions */
-#undef HAVE_SSE3
-
-/* Support SSSE4.1 (Streaming SIMD Extensions 4.1) instructions */
-#undef HAVE_SSE4_1
-
-/* Support SSSE4.2 (Streaming SIMD Extensions 4.2) instructions */
-#undef HAVE_SSE4_2
-
-/* Support SSSE3 (Supplemental Streaming SIMD Extensions 3) instructions */
-#undef HAVE_SSSE3
-
-/* Define to 1 if you have the <stddef.h> header file. */
-#undef HAVE_STDDEF_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the `strchr' function. */
-#undef HAVE_STRCHR
-
-/* Define to 1 if you have the `strdup' function. */
-#undef HAVE_STRDUP
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the `strrchr' function. */
-#undef HAVE_STRRCHR
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#undef LT_OBJDIR
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
-
-/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
- <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
- #define below would cause a syntax error. */
-#undef _UINT32_T
-
-/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
- <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
- #define below would cause a syntax error. */
-#undef _UINT64_T
-
-/* Define to rpl_malloc if the replacement function should be used. */
-#undef malloc
-
-/* Define to the type of an unsigned integer type of width exactly 32 bits if
- such a type exists and the standard includes do not define it. */
-#undef uint32_t
-
-/* Define to the type of an unsigned integer type of width exactly 64 bits if
- such a type exists and the standard includes do not define it. */
-#undef uint64_t
diff --git a/src/c/jerasure/include/galois.h b/src/c/jerasure/include/galois.h
deleted file mode 100644
index c134d5c..0000000
--- a/src/c/jerasure/include/galois.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* *
- * Copyright (c) 2013, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-#pragma once
-
-#include <stdint.h>
-#include <gf_complete.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int galois_init_default_field(int w);
-extern int galois_uninit_field(int w);
-extern void galois_change_technique(gf_t *gf, int w);
-
-extern int galois_single_multiply(int a, int b, int w);
-extern int galois_single_divide(int a, int b, int w);
-extern int galois_inverse(int x, int w);
-
-void galois_region_xor( char *src, /* Source Region */
- char *dest, /* Dest Region (holds result) */
- int nbytes); /* Number of bytes in region */
-
-/* These multiply regions in w=8, w=16 and w=32. They are much faster
- than calling galois_single_multiply. The regions must be long word aligned. */
-
-void galois_w08_region_multiply(char *region, /* Region to multiply */
- int multby, /* Number to multiply by */
- int nbytes, /* Number of bytes in region */
- char *r2, /* If r2 != NULL, products go here.
- Otherwise region is overwritten */
- int add); /* If (r2 != NULL && add) the produce is XOR'd with r2 */
-
-void galois_w16_region_multiply(char *region, /* Region to multiply */
- int multby, /* Number to multiply by */
- int nbytes, /* Number of bytes in region */
- char *r2, /* If r2 != NULL, products go here.
- Otherwise region is overwritten */
- int add); /* If (r2 != NULL && add) the produce is XOR'd with r2 */
-
-void galois_w32_region_multiply(char *region, /* Region to multiply */
- int multby, /* Number to multiply by */
- int nbytes, /* Number of bytes in region */
- char *r2, /* If r2 != NULL, products go here.
- Otherwise region is overwritten */
- int add); /* If (r2 != NULL && add) the produce is XOR'd with r2 */
-
-gf_t* galois_init_field(int w,
- int mult_type,
- int region_type,
- int divide_type,
- uint64_t prim_poly,
- int arg1,
- int arg2);
-
-gf_t* galois_init_composite_field(int w,
- int region_type,
- int divide_type,
- int degree,
- gf_t* base_gf);
-
-gf_t * galois_get_field_ptr(int w);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/c/jerasure/include/jerasure.h b/src/c/jerasure/include/jerasure.h
deleted file mode 100644
index 26fc46d..0000000
--- a/src/c/jerasure/include/jerasure.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/* *
- * Copyright (c) 2013, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-#pragma once
-
-#ifndef _JERASURE_H
-#define _JERASURE_H
-
-/* This uses procedures from the Galois Field arithmetic library */
-
-#include "galois.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* ------------------------------------------------------------ */
-/* In all of the routines below:
-
- k = Number of data devices
- m = Number of coding devices
- w = Word size
-
- data_ptrs = An array of k pointers to data which is size bytes.
- Size must be a multiple of sizeof(long).
- Pointers must also be longword aligned.
-
- coding_ptrs = An array of m pointers to coding data which is size bytes.
-
- packetsize = The size of a coding block with bitmatrix coding.
- When you code with a bitmatrix, you will use w packets
- of size packetsize.
-
- matrix = an array of k*m integers.
- It represents an m by k matrix.
- Element i,j is in matrix[i*k+j];
-
- bitmatrix = an array of k*m*w*w integers.
- It represents an mw by kw matrix.
- Element i,j is in matrix[i*k*w+j];
-
- erasures = an array of id's of erased devices.
- Id's are integers between 0 and k+m-1.
- Id's 0 to k-1 are id's of data devices.
- Id's k to k+m-1 are id's of coding devices:
- Coding device id = id-k.
- If there are e erasures, erasures[e] = -1.
-
- schedule = an array of schedule operations.
-
- If there are m operations, then schedule[m][0] = -1.
-
- operation = an array of 5 integers:
-
- 0 = operation: 0 for copy, 1 for xor (-1 for end)
- 1 = source device (0 - k+m-1)
- 2 = source packet (0 - w-1)
- 3 = destination device (0 - k+m-1)
- 4 = destination packet (0 - w-1)
- */
-
-/* --------------------------------------------------------------- */
-/* Bitmatrices / schedules ---------------------------------------- */
-/*
- - jerasure_matrix_to_bitmatrix turns a m X k matrix in GF(2^w) into a
- wm X wk bitmatrix (in GF(2)). This is
- explained in the Cauchy Reed-Solomon coding
- paper.
-
- - jerasure_dumb_bitmatrix_to_schedule turns a bitmatrix into a schedule
- using the straightforward algorithm -- just
- schedule the dot products defined by each
- row of the matrix.
-
- - jerasure_smart_bitmatrix_to_schedule turns a bitmatrix into a schedule,
- but tries to use previous dot products to
- calculate new ones. This is the optimization
- explained in the original Liberation code paper.
-
- - jerasure_generate_schedule_cache precalcalculate all the schedule for the
- given distribution bitmatrix. M must equal 2.
-
- - jerasure_free_schedule frees a schedule that was allocated with
- jerasure_XXX_bitmatrix_to_schedule.
-
- - jerasure_free_schedule_cache frees a schedule cache that was created with
- jerasure_generate_schedule_cache.
- */
-
-int *jerasure_matrix_to_bitmatrix(int k, int m, int w, int *matrix);
-int **jerasure_dumb_bitmatrix_to_schedule(int k, int m, int w, int *bitmatrix);
-int **jerasure_smart_bitmatrix_to_schedule(int k, int m, int w, int *bitmatrix);
-int ***jerasure_generate_schedule_cache(int k, int m, int w, int *bitmatrix, int smart);
-
-void jerasure_free_schedule(int **schedule);
-void jerasure_free_schedule_cache(int k, int m, int ***cache);
-
-
-/* ------------------------------------------------------------ */
-/* Encoding - these are all straightforward. jerasure_matrix_encode only
- works with w = 8|16|32. */
-
-void jerasure_do_parity(int k, char **data_ptrs, char *parity_ptr, int size);
-
-void jerasure_matrix_encode(int k, int m, int w, int *matrix,
- char **data_ptrs, char **coding_ptrs, int size);
-
-void jerasure_bitmatrix_encode(int k, int m, int w, int *bitmatrix,
- char **data_ptrs, char **coding_ptrs, int size, int packetsize);
-
-void jerasure_schedule_encode(int k, int m, int w, int **schedule,
- char **data_ptrs, char **coding_ptrs, int size, int packetsize);
-
-/* ------------------------------------------------------------ */
-/* Decoding. -------------------------------------------------- */
-
-/* These return integers, because the matrix may not be invertible.
-
- The parameter row_k_ones should be set to 1 if row k of the matrix
- (or rows kw to (k+1)w+1) of th distribution matrix are all ones
- (or all identity matrices). Then you can improve the performance
- of decoding when there is more than one failure, and the parity
- device didn't fail. You do it by decoding all but one of the data
- devices, and then decoding the last data device from the data devices
- and the parity device.
-
- jerasure_schedule_decode_lazy generates the schedule on the fly.
-
- jerasure_matrix_decode only works when w = 8|16|32.
-
- jerasure_make_decoding_matrix/bitmatrix make the k*k decoding matrix
- (or wk*wk bitmatrix) by taking the rows corresponding to k
- non-erased devices of the distribution matrix, and then
- inverting that matrix.
-
- You should already have allocated the decoding matrix and
- dm_ids, which is a vector of k integers. These will be
- filled in appropriately. dm_ids[i] is the id of element
- i of the survivors vector. I.e. row i of the decoding matrix
- times dm_ids equals data drive i.
-
- Both of these routines take "erased" instead of "erasures".
- Erased is a vector with k+m elements, which has 0 or 1 for
- each device's id, according to whether the device is erased.
-
- jerasure_erasures_to_erased allocates and returns erased from erasures.
-
- */
-
-int jerasure_matrix_decode(int k, int m, int w,
- int *matrix, int row_k_ones, int *erasures,
- char **data_ptrs, char **coding_ptrs, int size);
-
-int jerasure_bitmatrix_decode(int k, int m, int w,
- int *bitmatrix, int row_k_ones, int *erasures,
- char **data_ptrs, char **coding_ptrs, int size, int packetsize);
-
-int jerasure_schedule_decode_lazy(int k, int m, int w, int *bitmatrix, int *erasures,
- char **data_ptrs, char **coding_ptrs, int size, int packetsize,
- int smart);
-
-int jerasure_schedule_decode_cache(int k, int m, int w, int ***scache, int *erasures,
- char **data_ptrs, char **coding_ptrs, int size, int packetsize);
-
-int jerasure_make_decoding_matrix(int k, int m, int w, int *matrix, int *erased,
- int *decoding_matrix, int *dm_ids);
-
-int jerasure_make_decoding_bitmatrix(int k, int m, int w, int *matrix, int *erased,
- int *decoding_matrix, int *dm_ids);
-
-int *jerasure_erasures_to_erased(int k, int m, int *erasures);
-
-/* ------------------------------------------------------------ */
-/* These perform dot products and schedules. -------------------*/
-/*
- src_ids is a matrix of k id's (0 - k-1 for data devices, k - k+m-1
- for coding devices) that identify the source devices. Dest_id is
- the id of the destination device.
-
- jerasure_matrix_dotprod only works when w = 8|16|32.
-
- jerasure_do_scheduled_operations executes the schedule on w*packetsize worth of
- bytes from each device. ptrs is an array of pointers which should have as many
- elements as the highest referenced device in the schedule.
-
- */
-
-void jerasure_matrix_dotprod(int k, int w, int *matrix_row,
- int *src_ids, int dest_id,
- char **data_ptrs, char **coding_ptrs, int size);
-
-void jerasure_bitmatrix_dotprod(int k, int w, int *bitmatrix_row,
- int *src_ids, int dest_id,
- char **data_ptrs, char **coding_ptrs, int size, int packetsize);
-
-void jerasure_do_scheduled_operations(char **ptrs, int **schedule, int packetsize);
-
-/* ------------------------------------------------------------ */
-/* Matrix Inversion ------------------------------------------- */
-/*
- The two matrix inversion functions work on rows*rows matrices of
- ints. If a bitmatrix, then each int will just be zero or one.
- Otherwise, they will be elements of gf(2^w). Obviously, you can
- do bit matrices with crs_invert_matrix() and set w = 1, but
- crs_invert_bitmatrix will be more efficient.
-
- The two invertible functions return whether a matrix is invertible.
- They are more efficient than the inverstion functions.
-
- Mat will be destroyed when the matrix inversion or invertible
- testing is done. Sorry.
-
- Inv must be allocated by the caller.
-
- The two invert_matrix functions return 0 on success, and -1 if the
- matrix is uninvertible.
-
- The two invertible function simply return whether the matrix is
- invertible. (0 or 1). Mat will be destroyed.
- */
-
-int jerasure_invert_matrix(int *mat, int *inv, int rows, int w);
-int jerasure_invert_bitmatrix(int *mat, int *inv, int rows);
-int jerasure_invertible_matrix(int *mat, int rows, int w);
-int jerasure_invertible_bitmatrix(int *mat, int rows);
-
-/* ------------------------------------------------------------ */
-/* Basic matrix operations -------------------------------------*/
-/*
- Each of the print_matrix routines require a w. In jerasure_print_matrix,
- this is to calculate the field width. In jerasure_print_bitmatrix, it is
- to put spaces between the bits.
-
- jerasure_matrix_multiply is a simple matrix multiplier in GF(2^w). It returns a r1*c2
- matrix, which is the product of the two input matrices. It allocates
- the product. Obviously, c1 should equal r2. However, this is not
- validated by the procedure.
-*/
-
-void jerasure_print_matrix(int *matrix, int rows, int cols, int w);
-void jerasure_print_bitmatrix(int *matrix, int rows, int cols, int w);
-
-
-int *jerasure_matrix_multiply(int *m1, int *m2, int r1, int c1, int r2, int c2, int w);
-
-/* ------------------------------------------------------------ */
-/* Stats ------------------------------------------------------ */
-/*
- jerasure_get_stats fills in a vector of three doubles:
-
- fill_in[0] is the number of bytes that have been XOR'd
- fill_in[1] is the number of bytes that have been copied
- fill_in[2] is the number of bytes that have been multiplied
- by a constant in GF(2^w)
-
- When jerasure_get_stats() is called, it resets its values.
- */
-
-void jerasure_get_stats(double *fill_in);
-
-int jerasure_autoconf_test();
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/src/c/jerasure/include/liberation.h b/src/c/jerasure/include/liberation.h
deleted file mode 100644
index 150acb9..0000000
--- a/src/c/jerasure/include/liberation.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* *
- * Copyright (c) 2013, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-#pragma once
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int *liberation_coding_bitmatrix(int k, int w);
-extern int *liber8tion_coding_bitmatrix(int k);
-extern int *blaum_roth_coding_bitmatrix(int k, int w);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/c/jerasure/include/reed_sol.h b/src/c/jerasure/include/reed_sol.h
deleted file mode 100644
index 48fc4e6..0000000
--- a/src/c/jerasure/include/reed_sol.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* *
- * Copyright (c) 2013, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-#pragma once
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int *reed_sol_vandermonde_coding_matrix(int k, int m, int w);
-extern int *reed_sol_extended_vandermonde_matrix(int rows, int cols, int w);
-extern int *reed_sol_big_vandermonde_distribution_matrix(int rows, int cols, int w);
-
-extern int reed_sol_r6_encode(int k, int w, char **data_ptrs, char **coding_ptrs, int size);
-extern int *reed_sol_r6_coding_matrix(int k, int w);
-
-extern void reed_sol_galois_w08_region_multby_2(char *region, int nbytes);
-extern void reed_sol_galois_w16_region_multby_2(char *region, int nbytes);
-extern void reed_sol_galois_w32_region_multby_2(char *region, int nbytes);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/c/jerasure/include/timing.h b/src/c/jerasure/include/timing.h
deleted file mode 100644
index b489d0d..0000000
--- a/src/c/jerasure/include/timing.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// Timing measurement utilities.
-
-#ifndef JERASURE_INCLUDED__TIMING_H
-#define JERASURE_INCLUDED__TIMING_H
-
-// Define USE_CLOCK to use clock(). Otherwise use gettimeofday().
-#define USE_CLOCK
-
-#ifdef USE_CLOCK
-#include <time.h>
-#else
-#include <sys/time.h>
-#endif
-
-struct timing {
-#ifdef USE_CLOCK
- clock_t clock;
-#else
- struct timeval tv;
-#endif
-};
-
-// Get the current time as a double in seconds.
-double
-timing_now(
- void);
-
-// Set *t to the current time.
-void
-timing_set(
- struct timing * t);
-
-// Get *t as a double in seconds.
-double
-timing_get(
- struct timing * t);
-
-// Return *t2 - *t1 as a double in seconds.
-double
-timing_delta(
- struct timing * t1,
- struct timing * t2);
-#endif
diff --git a/src/c/jerasure/m4/ax_check_compile_flag.m4 b/src/c/jerasure/m4/ax_check_compile_flag.m4
deleted file mode 100644
index 51df0c0..0000000
--- a/src/c/jerasure/m4/ax_check_compile_flag.m4
+++ /dev/null
@@ -1,74 +0,0 @@
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
-#
-# DESCRIPTION
-#
-# Check whether the given FLAG works with the current language's compiler
-# or gives an error. (Warnings, however, are ignored)
-#
-# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
-# success/failure.
-#
-# If EXTRA-FLAGS is defined, it is added to the current language's default
-# flags (e.g. CFLAGS) when the check is done. The check is thus made with
-# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
-# force the compiler to issue an error when a bad flag is given.
-#
-# INPUT gives an alternative input source to AC_COMPILE_IFELSE.
-#
-# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
-# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
-# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
-#
-# This program 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, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 3
-
-AC_DEFUN([AX_CHECK_COMPILE_FLAG],
-[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
-AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
-AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
- ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
- _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
- AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
- [AS_VAR_SET(CACHEVAR,[yes])],
- [AS_VAR_SET(CACHEVAR,[no])])
- _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
-AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
- [m4_default([$2], :)],
- [m4_default([$3], :)])
-AS_VAR_POPDEF([CACHEVAR])dnl
-])dnl AX_CHECK_COMPILE_FLAGS
diff --git a/src/c/jerasure/m4/ax_ext.m4 b/src/c/jerasure/m4/ax_ext.m4
deleted file mode 100644
index 70a83bf..0000000
--- a/src/c/jerasure/m4/ax_ext.m4
+++ /dev/null
@@ -1,247 +0,0 @@
-#
-# Modified from autoconf-archive to replace AC_REQUIRE([AX_GCC_X86_*]) with
-# AX_REQUIRE_DEFINED(...).
-#
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_ext.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_EXT
-#
-# DESCRIPTION
-#
-# Find supported SIMD extensions by requesting cpuid. When an SIMD
-# extension is found, the -m"simdextensionname" is added to SIMD_FLAGS if
-# compiler supports it. For example, if "sse2" is available, then "-msse2"
-# is added to SIMD_FLAGS.
-#
-# This macro calls:
-#
-# AC_SUBST(SIMD_FLAGS)
-#
-# And defines:
-#
-# HAVE_MMX / HAVE_SSE / HAVE_SSE2 / HAVE_SSE3 / HAVE_SSSE3 / HAVE_SSE4.1 / HAVE_SSE4.2 / HAVE_AVX
-#
-# LICENSE
-#
-# Copyright (c) 2007 Christophe Tournayre <turn3r@users.sourceforge.net>
-# Copyright (c) 2013 Michael Petch <mpetch@capp-sysware.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 13.1
-
-AC_DEFUN([AX_EXT],
-[
- AC_REQUIRE([AC_CANONICAL_HOST])
-
- case $host_cpu in
- powerpc*)
- AC_CACHE_CHECK([whether altivec is supported], [ax_cv_have_altivec_ext],
- [
- if test `/usr/sbin/sysctl -a 2>/dev/null| grep -c hw.optional.altivec` != 0; then
- if test `/usr/sbin/sysctl -n hw.optional.altivec` = 1; then
- ax_cv_have_altivec_ext=yes
- fi
- fi
- ])
-
- if test "$ax_cv_have_altivec_ext" = yes; then
- AC_DEFINE(HAVE_ALTIVEC,,[Support Altivec instructions])
- AX_CHECK_COMPILE_FLAG(-faltivec, SIMD_FLAGS="$SIMD_FLAGS -faltivec", [])
- fi
- ;;
-
-
- i[[3456]]86*|x86_64*|amd64*)
-
- AX_REQUIRE_DEFINED([AX_GCC_X86_CPUID])
- AX_REQUIRE_DEFINED([AX_GCC_X86_AVX_XGETBV])
-
- AX_GCC_X86_CPUID(0x00000001)
- ecx=0
- edx=0
- if test "$ax_cv_gcc_x86_cpuid_0x00000001" != "unknown";
- then
- ecx=`echo $ax_cv_gcc_x86_cpuid_0x00000001 | cut -d ":" -f 3`
- edx=`echo $ax_cv_gcc_x86_cpuid_0x00000001 | cut -d ":" -f 4`
- fi
-
- AC_CACHE_CHECK([whether mmx is supported], [ax_cv_have_mmx_ext],
- [
- ax_cv_have_mmx_ext=no
- if test "$((0x$edx>>23&0x01))" = 1; then
- ax_cv_have_mmx_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse is supported], [ax_cv_have_sse_ext],
- [
- ax_cv_have_sse_ext=no
- if test "$((0x$edx>>25&0x01))" = 1; then
- ax_cv_have_sse_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse2 is supported], [ax_cv_have_sse2_ext],
- [
- ax_cv_have_sse2_ext=no
- if test "$((0x$edx>>26&0x01))" = 1; then
- ax_cv_have_sse2_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse3 is supported], [ax_cv_have_sse3_ext],
- [
- ax_cv_have_sse3_ext=no
- if test "$((0x$ecx&0x01))" = 1; then
- ax_cv_have_sse3_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether ssse3 is supported], [ax_cv_have_ssse3_ext],
- [
- ax_cv_have_ssse3_ext=no
- if test "$((0x$ecx>>9&0x01))" = 1; then
- ax_cv_have_ssse3_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse4.1 is supported], [ax_cv_have_sse41_ext],
- [
- ax_cv_have_sse41_ext=no
- if test "$((0x$ecx>>19&0x01))" = 1; then
- ax_cv_have_sse41_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse4.2 is supported], [ax_cv_have_sse42_ext],
- [
- ax_cv_have_sse42_ext=no
- if test "$((0x$ecx>>20&0x01))" = 1; then
- ax_cv_have_sse42_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether avx is supported by processor], [ax_cv_have_avx_cpu_ext],
- [
- ax_cv_have_avx_cpu_ext=no
- if test "$((0x$ecx>>28&0x01))" = 1; then
- ax_cv_have_avx_cpu_ext=yes
- fi
- ])
-
- if test x"$ax_cv_have_avx_cpu_ext" = x"yes"; then
- AX_GCC_X86_AVX_XGETBV(0x00000000)
-
- xgetbv_eax="0"
- if test x"$ax_cv_gcc_x86_avx_xgetbv_0x00000000" != x"unknown"; then
- xgetbv_eax=`echo $ax_cv_gcc_x86_avx_xgetbv_0x00000000 | cut -d ":" -f 1`
- fi
-
- AC_CACHE_CHECK([whether avx is supported by operating system], [ax_cv_have_avx_ext],
- [
- ax_cv_have_avx_ext=no
-
- if test "$((0x$ecx>>27&0x01))" = 1; then
- if test "$((0x$xgetbv_eax&0x6))" = 6; then
- ax_cv_have_avx_ext=yes
- fi
- fi
- ])
- if test x"$ax_cv_have_avx_ext" = x"no"; then
- AC_MSG_WARN([Your processor supports AVX, but your operating system doesn't])
- fi
- fi
-
- if test "$ax_cv_have_mmx_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-mmmx, ax_cv_support_mmx_ext=yes, [])
- if test x"$ax_cv_support_mmx_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mmmx"
- AC_DEFINE(HAVE_MMX,,[Support mmx instructions])
- else
- AC_MSG_WARN([Your processor supports mmx instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_sse_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse, ax_cv_support_sse_ext=yes, [])
- if test x"$ax_cv_support_sse_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse"
- AC_DEFINE(HAVE_SSE,,[Support SSE (Streaming SIMD Extensions) instructions])
- else
- AC_MSG_WARN([Your processor supports sse instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_sse2_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse2, ax_cv_support_sse2_ext=yes, [])
- if test x"$ax_cv_support_sse2_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse2"
- AC_DEFINE(HAVE_SSE2,,[Support SSE2 (Streaming SIMD Extensions 2) instructions])
- else
- AC_MSG_WARN([Your processor supports sse2 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_sse3_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse3, ax_cv_support_sse3_ext=yes, [])
- if test x"$ax_cv_support_sse3_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse3"
- AC_DEFINE(HAVE_SSE3,,[Support SSE3 (Streaming SIMD Extensions 3) instructions])
- else
- AC_MSG_WARN([Your processor supports sse3 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_ssse3_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-mssse3, ax_cv_support_ssse3_ext=yes, [])
- if test x"$ax_cv_support_ssse3_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mssse3"
- AC_DEFINE(HAVE_SSSE3,,[Support SSSE3 (Supplemental Streaming SIMD Extensions 3) instructions])
- else
- AC_MSG_WARN([Your processor supports ssse3 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_sse41_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse4.1, ax_cv_support_sse41_ext=yes, [])
- if test x"$ax_cv_support_sse41_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse4.1"
- AC_DEFINE(HAVE_SSE4_1,,[Support SSSE4.1 (Streaming SIMD Extensions 4.1) instructions])
- else
- AC_MSG_WARN([Your processor supports sse4.1 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_sse42_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse4.2, ax_cv_support_sse42_ext=yes, [])
- if test x"$ax_cv_support_sse42_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse4.2"
- AC_DEFINE(HAVE_SSE4_2,,[Support SSSE4.2 (Streaming SIMD Extensions 4.2) instructions])
- else
- AC_MSG_WARN([Your processor supports sse4.2 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_avx_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-mavx, ax_cv_support_avx_ext=yes, [])
- if test x"$ax_cv_support_avx_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mavx"
- AC_DEFINE(HAVE_AVX,,[Support AVX (Advanced Vector Extensions) instructions])
- else
- AC_MSG_WARN([Your processor supports avx instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- ;;
- esac
-
- AC_SUBST(SIMD_FLAGS)
-])
diff --git a/src/c/jerasure/m4/ax_gcc_x86_avx_xgetbv.m4 b/src/c/jerasure/m4/ax_gcc_x86_avx_xgetbv.m4
deleted file mode 100644
index 0624eeb..0000000
--- a/src/c/jerasure/m4/ax_gcc_x86_avx_xgetbv.m4
+++ /dev/null
@@ -1,79 +0,0 @@
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_gcc_x86_avx_xgetbv.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_GCC_X86_AVX_XGETBV
-#
-# DESCRIPTION
-#
-# On later x86 processors with AVX SIMD support, with gcc or a compiler
-# that has a compatible syntax for inline assembly instructions, run a
-# small program that executes the xgetbv instruction with input OP. This
-# can be used to detect if the OS supports AVX instruction usage.
-#
-# On output, the values of the eax and edx registers are stored as
-# hexadecimal strings as "eax:edx" in the cache variable
-# ax_cv_gcc_x86_avx_xgetbv.
-#
-# If the xgetbv instruction fails (because you are running a
-# cross-compiler, or because you are not using gcc, or because you are on
-# a processor that doesn't have this instruction),
-# ax_cv_gcc_x86_avx_xgetbv_OP is set to the string "unknown".
-#
-# This macro mainly exists to be used in AX_EXT.
-#
-# LICENSE
-#
-# Copyright (c) 2013 Michael Petch <mpetch@capp-sysware.com>
-#
-# This program 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, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 1
-
-AC_DEFUN([AX_GCC_X86_AVX_XGETBV],
-[AC_REQUIRE([AC_PROG_CC])
-AC_LANG_PUSH([C])
-AC_CACHE_CHECK(for x86-AVX xgetbv $1 output, ax_cv_gcc_x86_avx_xgetbv_$1,
- [AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <stdio.h>], [
- int op = $1, eax, edx;
- FILE *f;
- /* Opcodes for xgetbv */
- __asm__(".byte 0x0f, 0x01, 0xd0"
- : "=a" (eax), "=d" (edx)
- : "c" (op));
- f = fopen("conftest_xgetbv", "w"); if (!f) return 1;
- fprintf(f, "%x:%x\n", eax, edx);
- fclose(f);
- return 0;
-])],
- [ax_cv_gcc_x86_avx_xgetbv_$1=`cat conftest_xgetbv`; rm -f conftest_xgetbv],
- [ax_cv_gcc_x86_avx_xgetbv_$1=unknown; rm -f conftest_xgetbv],
- [ax_cv_gcc_x86_avx_xgetbv_$1=unknown])])
-AC_LANG_POP([C])
-])
diff --git a/src/c/jerasure/m4/ax_gcc_x86_cpuid.m4 b/src/c/jerasure/m4/ax_gcc_x86_cpuid.m4
deleted file mode 100644
index 7d46fee..0000000
--- a/src/c/jerasure/m4/ax_gcc_x86_cpuid.m4
+++ /dev/null
@@ -1,79 +0,0 @@
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_gcc_x86_cpuid.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_GCC_X86_CPUID(OP)
-#
-# DESCRIPTION
-#
-# On Pentium and later x86 processors, with gcc or a compiler that has a
-# compatible syntax for inline assembly instructions, run a small program
-# that executes the cpuid instruction with input OP. This can be used to
-# detect the CPU type.
-#
-# On output, the values of the eax, ebx, ecx, and edx registers are stored
-# as hexadecimal strings as "eax:ebx:ecx:edx" in the cache variable
-# ax_cv_gcc_x86_cpuid_OP.
-#
-# If the cpuid instruction fails (because you are running a
-# cross-compiler, or because you are not using gcc, or because you are on
-# a processor that doesn't have this instruction), ax_cv_gcc_x86_cpuid_OP
-# is set to the string "unknown".
-#
-# This macro mainly exists to be used in AX_GCC_ARCHFLAG.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
-# Copyright (c) 2008 Matteo Frigo
-#
-# This program 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, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 7
-
-AC_DEFUN([AX_GCC_X86_CPUID],
-[AC_REQUIRE([AC_PROG_CC])
-AC_LANG_PUSH([C])
-AC_CACHE_CHECK(for x86 cpuid $1 output, ax_cv_gcc_x86_cpuid_$1,
- [AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <stdio.h>], [
- int op = $1, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-])],
- [ax_cv_gcc_x86_cpuid_$1=`cat conftest_cpuid`; rm -f conftest_cpuid],
- [ax_cv_gcc_x86_cpuid_$1=unknown; rm -f conftest_cpuid],
- [ax_cv_gcc_x86_cpuid_$1=unknown])])
-AC_LANG_POP([C])
-])
diff --git a/src/c/jerasure/m4/ax_require_defined.m4 b/src/c/jerasure/m4/ax_require_defined.m4
deleted file mode 100644
index cae1111..0000000
--- a/src/c/jerasure/m4/ax_require_defined.m4
+++ /dev/null
@@ -1,37 +0,0 @@
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_require_defined.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_REQUIRE_DEFINED(MACRO)
-#
-# DESCRIPTION
-#
-# AX_REQUIRE_DEFINED is a simple helper for making sure other macros have
-# been defined and thus are available for use. This avoids random issues
-# where a macro isn't expanded. Instead the configure script emits a
-# non-fatal:
-#
-# ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found
-#
-# It's like AC_REQUIRE except it doesn't expand the required macro.
-#
-# Here's an example:
-#
-# AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG])
-#
-# LICENSE
-#
-# Copyright (c) 2014 Mike Frysinger <vapier@gentoo.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 1
-
-AC_DEFUN([AX_REQUIRE_DEFINED], [dnl
- m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])])
-])dnl AX_REQUIRE_DEFINED
diff --git a/src/c/jerasure/m4/libtool.m4 b/src/c/jerasure/m4/libtool.m4
deleted file mode 100644
index e0ffe79..0000000
--- a/src/c/jerasure/m4/libtool.m4
+++ /dev/null
@@ -1,7997 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-m4_define([_LT_COPYING], [dnl
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool 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 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-])
-
-# serial 57 LT_INIT
-
-
-# LT_PREREQ(VERSION)
-# ------------------
-# Complain and exit if this libtool version is less that VERSION.
-m4_defun([LT_PREREQ],
-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
- [m4_default([$3],
- [m4_fatal([Libtool version $1 or higher is required],
- 63)])],
- [$2])])
-
-
-# _LT_CHECK_BUILDDIR
-# ------------------
-# Complain if the absolute build directory name contains unusual characters
-m4_defun([_LT_CHECK_BUILDDIR],
-[case `pwd` in
- *\ * | *\ *)
- AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-esac
-])
-
-
-# LT_INIT([OPTIONS])
-# ------------------
-AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
-AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])# LT_INIT
-
-# Old names:
-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
- case $cc_temp in
- compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
- distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-])
-
-
-# _LT_FILEUTILS_DEFAULTS
-# ----------------------
-# It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
-m4_defun([_LT_FILEUTILS_DEFAULTS],
-[: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-])# _LT_FILEUTILS_DEFAULTS
-
-
-# _LT_SETUP
-# ---------
-m4_defun([_LT_SETUP],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-
-_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
-dnl
-_LT_DECL([], [host_alias], [0], [The host system])dnl
-_LT_DECL([], [host], [0])dnl
-_LT_DECL([], [host_os], [0])dnl
-dnl
-_LT_DECL([], [build_alias], [0], [The build system])dnl
-_LT_DECL([], [build], [0])dnl
-_LT_DECL([], [build_os], [0])dnl
-dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-test -z "$LN_S" && LN_S="ln -s"
-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-dnl
-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
-m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_WITH_SYSROOT])dnl
-
-_LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-])
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-_LT_CHECK_OBJDIR
-
-m4_require([_LT_TAG_COMPILER])dnl
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- _LT_PATH_MAGIC
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-LT_SUPPORTED_TAG([CC])
-_LT_LANG_C_CONFIG
-_LT_LANG_DEFAULT_CONFIG
-_LT_CONFIG_COMMANDS
-])# _LT_SETUP
-
-
-# _LT_PREPARE_SED_QUOTE_VARS
-# --------------------------
-# Define a few sed substitution that help us do robust quoting.
-m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
-[# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-])
-
-# _LT_PROG_LTMAIN
-# ---------------
-# Note that this code is called both from `configure', and `config.status'
-# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
-# so we pass a copy along to make sure it has a sensible value anyway.
-m4_defun([_LT_PROG_LTMAIN],
-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
-])# _LT_PROG_LTMAIN
-
-
-## ------------------------------------- ##
-## Accumulate code for creating libtool. ##
-## ------------------------------------- ##
-
-# So that we can recreate a full libtool script including additional
-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
-# label.
-
-
-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-# ----------------------------------------
-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL_INIT],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-
-
-# _LT_CONFIG_LIBTOOL([COMMANDS])
-# ------------------------------
-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-
-
-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-# -----------------------------------------------------
-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-[_LT_CONFIG_LIBTOOL([$1])
-_LT_CONFIG_LIBTOOL_INIT([$2])
-])
-
-
-# _LT_FORMAT_COMMENT([COMMENT])
-# -----------------------------
-# Add leading comment marks to the start of each line, and a trailing
-# full-stop to the whole comment if one is not present already.
-m4_define([_LT_FORMAT_COMMENT],
-[m4_ifval([$1], [
-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
- [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-)])
-
-
-
-## ------------------------ ##
-## FIXME: Eliminate VARNAME ##
-## ------------------------ ##
-
-
-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-# -------------------------------------------------------------------
-# CONFIGNAME is the name given to the value in the libtool script.
-# VARNAME is the (base) name used in the configure script.
-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-# VARNAME. Any other value will be used directly.
-m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
- [m4_ifval([$1], [$1], [$2])])
- lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
- m4_ifval([$4],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
- lt_dict_add_subkey([lt_decl_dict], [$2],
- [tagged?], [m4_ifval([$5], [yes], [no])])])
-])
-
-
-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-# --------------------------------------------------------
-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-
-
-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_tag_varnames],
-[_lt_decl_filter([tagged?], [yes], $@)])
-
-
-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-# ---------------------------------------------------------
-m4_define([_lt_decl_filter],
-[m4_case([$#],
- [0], [m4_fatal([$0: too few arguments: $#])],
- [1], [m4_fatal([$0: too few arguments: $#: $1])],
- [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
- [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
- [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-])
-
-
-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-# --------------------------------------------------
-m4_define([lt_decl_quote_varnames],
-[_lt_decl_filter([value], [1], $@)])
-
-
-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_dquote_varnames],
-[_lt_decl_filter([value], [2], $@)])
-
-
-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_varnames_tagged],
-[m4_assert([$# <= 2])dnl
-_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
- m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-m4_define([_lt_decl_varnames_tagged],
-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-
-
-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_all_varnames],
-[_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_if([$2], [],
- m4_quote(lt_decl_varnames),
- m4_quote(m4_shift($@))))[]dnl
-])
-m4_define([_lt_decl_all_varnames],
-[lt_join($@, lt_decl_varnames_tagged([$1],
- lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-])
-
-
-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-# ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'. VARNAME
-# must have a single quote delimited value for this to work.
-m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
-
-
-# _LT_CONFIG_STATUS_DECLARATIONS
-# ------------------------------
-# We delimit libtool config variables with single quotes, so when
-# we write them to config.status, we have to be sure to quote all
-# embedded single quotes properly. In configure, this macro expands
-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-#
-# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
- [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAGS
-# ----------------
-# Output comment and list of tags supported by the script
-m4_defun([_LT_LIBTOOL_TAGS],
-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
-])
-
-
-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-# -----------------------------------
-# Extract the dictionary values for VARNAME (optionally with TAG) and
-# expand to a commented shell variable setting:
-#
-# # Some comment about what VAR is for.
-# visible_name=$lt_internal_name
-m4_define([_LT_LIBTOOL_DECLARE],
-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
- [description])))[]dnl
-m4_pushdef([_libtool_name],
- m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
- [0], [_libtool_name=[$]$1],
- [1], [_libtool_name=$lt_[]$1],
- [2], [_libtool_name=$lt_[]$1],
- [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-])
-
-
-# _LT_LIBTOOL_CONFIG_VARS
-# -----------------------
-# Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
-# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
-# section) are produced by _LT_LIBTOOL_TAG_VARS.
-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-[m4_foreach([_lt_var],
- m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAG_VARS(TAG)
-# -------------------------
-m4_define([_LT_LIBTOOL_TAG_VARS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-
-
-# _LT_TAGVAR(VARNAME, [TAGNAME])
-# ------------------------------
-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-
-
-# _LT_CONFIG_COMMANDS
-# -------------------
-# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
-# variables for single and double quote escaping we saved from calls
-# to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'. Finally, any additional code accumulated
-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-m4_defun([_LT_CONFIG_COMMANDS],
-[AC_PROVIDE_IFELSE([LT_OUTPUT],
- dnl If the libtool generation code has been placed in $CONFIG_LT,
- dnl instead of duplicating it all over again into config.status,
- dnl then we will have config.status run $CONFIG_LT later, so it
- dnl needs to know what name is stored there:
- [AC_CONFIG_COMMANDS([libtool],
- [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
- dnl If the libtool generation code is destined for config.status,
- dnl expand the accumulated commands and init code now:
- [AC_CONFIG_COMMANDS([libtool],
- [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-])#_LT_CONFIG_COMMANDS
-
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-[
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-_LT_CONFIG_STATUS_DECLARATIONS
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$[]1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_quote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_dquote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-_LT_OUTPUT_LIBTOOL_INIT
-])
-
-# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
-# ------------------------------------
-# Generate a child script FILE with all initialization necessary to
-# reuse the environment learned by the parent script, and make the
-# file executable. If COMMENT is supplied, it is inserted after the
-# `#!' sequence but before initialization text begins. After this
-# macro, additional text can be appended to FILE to form the body of
-# the child script. The macro ends with non-zero status if the
-# file could not be fully written (such as if the disk is full).
-m4_ifdef([AS_INIT_GENERATED],
-[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
-[m4_defun([_LT_GENERATED_FILE_INIT],
-[m4_require([AS_PREPARE])]dnl
-[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
-[lt_write_fail=0
-cat >$1 <<_ASEOF || lt_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-$2
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$1 <<\_ASEOF || lt_write_fail=1
-AS_SHELL_SANITIZE
-_AS_PREPARE
-exec AS_MESSAGE_FD>&1
-_ASEOF
-test $lt_write_fail = 0 && chmod +x $1[]dnl
-m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
-
-# LT_OUTPUT
-# ---------
-# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), incase it is used in configure for compilation
-# tests.
-AC_DEFUN([LT_OUTPUT],
-[: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
-[# Run this file to recreate a libtool stub with the current configuration.])
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-lt_cl_silent=false
-exec AS_MESSAGE_LOG_FD>>config.log
-{
- echo
- AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
-
-Report bugs to <bug-libtool@gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2011 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test $[#] != 0
-do
- case $[1] in
- --version | --v* | -V )
- echo "$lt_cl_version"; exit 0 ;;
- --help | --h* | -h )
- echo "$lt_cl_help"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --quiet | --q* | --silent | --s* | -q )
- lt_cl_silent=: ;;
-
- -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
-
- *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
- esac
- shift
-done
-
-if $lt_cl_silent; then
- exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure. Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-lt_cl_success=:
-test "$silent" = yes &&
- lt_config_lt_args="$lt_config_lt_args --quiet"
-exec AS_MESSAGE_LOG_FD>/dev/null
-$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-exec AS_MESSAGE_LOG_FD>>config.log
-$lt_cl_success || AS_EXIT(1)
-])# LT_OUTPUT
-
-
-# _LT_CONFIG(TAG)
-# ---------------
-# If TAG is the built-in tag, create an initial libtool script with a
-# default configuration from the untagged config vars. Otherwise add code
-# to config.status for appending the configuration named by TAG from the
-# matching tagged config vars.
-m4_defun([_LT_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_CONFIG_SAVE_COMMANDS([
- m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
- m4_if(_LT_TAG, [C], [
- # See if we are running on zsh, and set the options which allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile="${ofile}T"
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-_LT_COPYING
-_LT_LIBTOOL_TAGS
-
-# ### BEGIN LIBTOOL CONFIG
-_LT_LIBTOOL_CONFIG_VARS
-_LT_LIBTOOL_TAG_VARS
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
- _LT_PROG_LTMAIN
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- _LT_PROG_REPLACE_SHELLFNS
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-],
-[cat <<_LT_EOF >> "$ofile"
-
-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-dnl in a comment (ie after a #).
-# ### BEGIN LIBTOOL TAG CONFIG: $1
-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-# ### END LIBTOOL TAG CONFIG: $1
-_LT_EOF
-])dnl /m4_if
-],
-[m4_if([$1], [], [
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
- RM='$RM'
- ofile='$ofile'], [])
-])dnl /_LT_CONFIG_SAVE_COMMANDS
-])# _LT_CONFIG
-
-
-# LT_SUPPORTED_TAG(TAG)
-# ---------------------
-# Trace this macro to discover what tags are supported by the libtool
-# --tag option, using:
-# autoconf --trace 'LT_SUPPORTED_TAG:$1'
-AC_DEFUN([LT_SUPPORTED_TAG], [])
-
-
-# C support is built-in for now
-m4_define([_LT_LANG_C_enabled], [])
-m4_define([_LT_TAGS], [])
-
-
-# LT_LANG(LANG)
-# -------------
-# Enable libtool support for the given language if not already enabled.
-AC_DEFUN([LT_LANG],
-[AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
- [C], [_LT_LANG(C)],
- [C++], [_LT_LANG(CXX)],
- [Go], [_LT_LANG(GO)],
- [Java], [_LT_LANG(GCJ)],
- [Fortran 77], [_LT_LANG(F77)],
- [Fortran], [_LT_LANG(FC)],
- [Windows Resource], [_LT_LANG(RC)],
- [m4_ifdef([_LT_LANG_]$1[_CONFIG],
- [_LT_LANG($1)],
- [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])# LT_LANG
-
-
-# _LT_LANG(LANGNAME)
-# ------------------
-m4_defun([_LT_LANG],
-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
- [LT_SUPPORTED_TAG([$1])dnl
- m4_append([_LT_TAGS], [$1 ])dnl
- m4_define([_LT_LANG_]$1[_enabled], [])dnl
- _LT_LANG_$1_CONFIG($1)])dnl
-])# _LT_LANG
-
-
-m4_ifndef([AC_PROG_GO], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_GO. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-m4_defun([AC_PROG_GO],
-[AC_LANG_PUSH(Go)dnl
-AC_ARG_VAR([GOC], [Go compiler command])dnl
-AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
-_AC_ARG_VAR_LDFLAGS()dnl
-AC_CHECK_TOOL(GOC, gccgo)
-if test -z "$GOC"; then
- if test -n "$ac_tool_prefix"; then
- AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
- fi
-fi
-if test -z "$GOC"; then
- AC_CHECK_PROG(GOC, gccgo, gccgo, false)
-fi
-])#m4_defun
-])#m4_ifndef
-
-
-# _LT_LANG_DEFAULT_CONFIG
-# -----------------------
-m4_defun([_LT_LANG_DEFAULT_CONFIG],
-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [LT_LANG(CXX)],
- [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_F77],
- [LT_LANG(F77)],
- [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_FC],
- [LT_LANG(FC)],
- [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-
-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-dnl pulling things in needlessly.
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
- [LT_LANG(GCJ)],
- [m4_ifdef([AC_PROG_GCJ],
- [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([A][M_PROG_GCJ],
- [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([LT_PROG_GCJ],
- [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
-AC_PROVIDE_IFELSE([AC_PROG_GO],
- [LT_LANG(GO)],
- [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
-
-AC_PROVIDE_IFELSE([LT_PROG_RC],
- [LT_LANG(RC)],
- [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
-
-# Obsolete macros:
-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-dnl AC_DEFUN([AC_LIBTOOL_RC], [])
-
-
-# _LT_TAG_COMPILER
-# ----------------
-m4_defun([_LT_TAG_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_TAG_COMPILER
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-m4_defun([_LT_COMPILER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-m4_defun([_LT_LINKER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# -------------------------
-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
- case $host_os in
- rhapsody* | darwin*)
- AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
- AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
- AC_CHECK_TOOL([LIPO], [lipo], [:])
- AC_CHECK_TOOL([OTOOL], [otool], [:])
- AC_CHECK_TOOL([OTOOL64], [otool64], [:])
- _LT_DECL([], [DSYMUTIL], [1],
- [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
- _LT_DECL([], [NMEDIT], [1],
- [Tool to change global to local symbols on Mac OS X])
- _LT_DECL([], [LIPO], [1],
- [Tool to manipulate fat objects and archives on Mac OS X])
- _LT_DECL([], [OTOOL], [1],
- [ldd/readelf like tool for Mach-O binaries on Mac OS X])
- _LT_DECL([], [OTOOL64], [1],
- [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-
- AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
- [lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- # If there is a non-empty error log, and "single_module"
- # appears in it, assume the flag caused a linker warning
- if test -s conftest.err && $GREP single_module conftest.err; then
- cat conftest.err >&AS_MESSAGE_LOG_FD
- # Otherwise, if the output was created with a 0 exit code from
- # the compiler, it worked.
- elif test -f libconftest.dylib && test $_lt_result -eq 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi])
-
- AC_CACHE_CHECK([for -exported_symbols_list linker flag],
- [lt_cv_ld_exported_symbols_list],
- [lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [lt_cv_ld_exported_symbols_list=yes],
- [lt_cv_ld_exported_symbols_list=no])
- LDFLAGS="$save_LDFLAGS"
- ])
-
- AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
- [lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
- echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
- $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
- echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
- $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -s conftest.err && $GREP force_load conftest.err; then
- cat conftest.err >&AS_MESSAGE_LOG_FD
- elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
- ])
- case $host_os in
- rhapsody* | darwin1.[[012]])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- 10.[[012]]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-])
-
-
-# _LT_DARWIN_LINKER_FEATURES([TAG])
-# ---------------------------------
-# Checks for linker and compiler features on darwin
-m4_defun([_LT_DARWIN_LINKER_FEATURES],
-[
- m4_require([_LT_REQUIRED_DARWIN_CHECKS])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_automatic, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
- m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
- [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes])
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=''
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
- m4_if([$1], [CXX],
-[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
- _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
- fi
-],[])
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
-])
-
-# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
-# ----------------------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-# Store the results from the different compilers for each TAGNAME.
-# Allow to override them for all tags through lt_cv_aix_libpath.
-m4_defun([_LT_SYS_MODULE_PATH_AIX],
-[m4_require([_LT_DECL_SED])dnl
-if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
- [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
- lt_aix_libpath_sed='[
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }]'
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi],[])
- if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
- fi
- ])
- aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
-fi
-])# _LT_SYS_MODULE_PATH_AIX
-
-
-# _LT_SHELL_INIT(ARG)
-# -------------------
-m4_define([_LT_SHELL_INIT],
-[m4_divert_text([M4SH-INIT], [$1
-])])# _LT_SHELL_INIT
-
-
-
-# _LT_PROG_ECHO_BACKSLASH
-# -----------------------
-# Find how we can fake an echo command that does not interpret backslash.
-# In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script which will find a shell with a builtin
-# printf (which we can use as an echo command).
-m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-AC_MSG_CHECKING([how to print strings])
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$[]1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-case "$ECHO" in
- printf*) AC_MSG_RESULT([printf]) ;;
- print*) AC_MSG_RESULT([print -r]) ;;
- *) AC_MSG_RESULT([cat]) ;;
-esac
-
-m4_ifdef([_AS_DETECT_SUGGESTED],
-[_AS_DETECT_SUGGESTED([
- test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test "X`printf %s $ECHO`" = "X$ECHO" \
- || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
-
-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
-])# _LT_PROG_ECHO_BACKSLASH
-
-
-# _LT_WITH_SYSROOT
-# ----------------
-AC_DEFUN([_LT_WITH_SYSROOT],
-[AC_MSG_CHECKING([for sysroot])
-AC_ARG_WITH([sysroot],
-[ --with-sysroot[=DIR] Search for dependent libraries within DIR
- (or the compiler's sysroot if not specified).],
-[], [with_sysroot=no])
-
-dnl lt_sysroot will always be passed unquoted. We quote it here
-dnl in case the user passed a directory name.
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
- if test "$GCC" = yes; then
- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
- fi
- ;; #(
- /*)
- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
- ;; #(
- no|'')
- ;; #(
- *)
- AC_MSG_RESULT([${with_sysroot}])
- AC_MSG_ERROR([The sysroot must be an absolute path.])
- ;;
-esac
-
- AC_MSG_RESULT([${lt_sysroot:-no}])
-_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-[dependent libraries, and in which our libraries should be installed.])])
-
-# _LT_ENABLE_LOCK
-# ---------------
-m4_defun([_LT_ENABLE_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
- [AS_HELP_STRING([--disable-libtool-lock],
- [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- case `/usr/bin/file conftest.o` in
- *x86-64*)
- LD="${LD-ld} -m elf32_x86_64"
- ;;
- *)
- LD="${LD-ld} -m elf_i386"
- ;;
- esac
- ;;
- powerpc64le-*)
- LD="${LD-ld} -m elf32lppclinux"
- ;;
- powerpc64-*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- powerpcle-*)
- LD="${LD-ld} -m elf64lppc"
- ;;
- powerpc-*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
- [AC_LANG_PUSH(C)
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
- AC_LANG_POP])
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*)
- case $host in
- i?86-*-solaris*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- sparc*-*-solaris*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
- LD="${LD-ld}_sol2"
- fi
- ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks="$enable_libtool_lock"
-])# _LT_ENABLE_LOCK
-
-
-# _LT_PROG_AR
-# -----------
-m4_defun([_LT_PROG_AR],
-[AC_CHECK_TOOLS(AR, [ar], false)
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
-
-AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
- [lt_cv_ar_at_file=no
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
- [echo conftest.$ac_objext > conftest.lst
- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
- AC_TRY_EVAL([lt_ar_try])
- if test "$ac_status" -eq 0; then
- # Ensure the archiver fails upon bogus file names.
- rm -f conftest.$ac_objext libconftest.a
- AC_TRY_EVAL([lt_ar_try])
- if test "$ac_status" -ne 0; then
- lt_cv_ar_at_file=@
- fi
- fi
- rm -f conftest.* libconftest.a
- ])
- ])
-
-if test "x$lt_cv_ar_at_file" = xno; then
- archiver_list_spec=
-else
- archiver_list_spec=$lt_cv_ar_at_file
-fi
-_LT_DECL([], [archiver_list_spec], [1],
- [How to feed a file listing to the archiver])
-])# _LT_PROG_AR
-
-
-# _LT_CMD_OLD_ARCHIVE
-# -------------------
-m4_defun([_LT_CMD_OLD_ARCHIVE],
-[_LT_PROG_AR
-
-AC_CHECK_TOOL(STRIP, strip, :)
-test -z "$STRIP" && STRIP=:
-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-test -z "$RANLIB" && RANLIB=:
-_LT_DECL([], [RANLIB], [1],
- [Commands used to install an old-style archive])
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-_LT_DECL([], [old_postinstall_cmds], [2])
-_LT_DECL([], [old_postuninstall_cmds], [2])
-_LT_TAGDECL([], [old_archive_cmds], [2],
- [Commands used to build an old-style archive])
-_LT_DECL([], [lock_old_archive_extraction], [0],
- [Whether to use a lock for old archive extraction])
-])# _LT_CMD_OLD_ARCHIVE
-
-
-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([_LT_COMPILER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$3"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- fi
- $RM conftest*
-])
-
-if test x"[$]$2" = xyes; then
- m4_if([$5], , :, [$5])
-else
- m4_if([$6], , :, [$6])
-fi
-])# _LT_COMPILER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-
-
-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------
-# Check whether the given linker option works
-AC_DEFUN([_LT_LINKER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $3"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&AS_MESSAGE_LOG_FD
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- else
- $2=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
- m4_if([$4], , :, [$4])
-else
- m4_if([$5], , :, [$5])
-fi
-])# _LT_LINKER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-
-
-# LT_CMD_MAX_LEN
-#---------------
-AC_DEFUN([LT_CMD_MAX_LEN],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- os2*)
- # The test takes a long time on OS/2.
- lt_cv_sys_max_cmd_len=8192
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len" && \
- test undefined != "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
- AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
- AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
- [What is the maximum length of a command?])
-])# LT_CMD_MAX_LEN
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-
-
-# _LT_HEADER_DLFCN
-# ----------------
-m4_defun([_LT_HEADER_DLFCN],
-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-])# _LT_HEADER_DLFCN
-
-
-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ----------------------------------------------------------------
-m4_defun([_LT_TRY_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
- [$4]
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-[#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}]
-_LT_EOF
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) $1 ;;
- x$lt_dlneed_uscore) $2 ;;
- x$lt_dlunknown|x*) $3 ;;
- esac
- else :
- # compilation failed
- $3
- fi
-fi
-rm -fr conftest*
-])# _LT_TRY_DLOPEN_SELF
-
-
-# LT_SYS_DLOPEN_SELF
-# ------------------
-AC_DEFUN([LT_SYS_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ])
- ;;
-
- *)
- AC_CHECK_FUNC([shl_load],
- [lt_cv_dlopen="shl_load"],
- [AC_CHECK_LIB([dld], [shl_load],
- [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
- [AC_CHECK_FUNC([dlopen],
- [lt_cv_dlopen="dlopen"],
- [AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
- [AC_CHECK_LIB([svld], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
- [AC_CHECK_LIB([dld], [dld_link],
- [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
- ])
- ])
- ])
- ])
- ])
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- AC_CACHE_CHECK([whether a program can dlopen itself],
- lt_cv_dlopen_self, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
- lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
- ])
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
- lt_cv_dlopen_self_static, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
- lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
- ])
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
- [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
- [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
- [Whether dlopen of statically linked programs is supported])
-])# LT_SYS_DLOPEN_SELF
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-
-
-# _LT_COMPILER_C_O([TAGNAME])
-# ---------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler.
-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-m4_defun([_LT_COMPILER_C_O],
-[m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
- fi
- fi
- chmod u+w . 2>&AS_MESSAGE_LOG_FD
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-])
-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
- [Does compiler simultaneously support -c and -o options?])
-])# _LT_COMPILER_C_O
-
-
-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-# ----------------------------------
-# Check to see if we can do hard links to lock some files if needed
-m4_defun([_LT_COMPILER_FILE_LOCKS],
-[m4_require([_LT_ENABLE_LOCK])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_COMPILER_C_O([$1])
-
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- AC_MSG_CHECKING([if we can lock with hard links])
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- AC_MSG_RESULT([$hard_links])
- if test "$hard_links" = no; then
- AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-])# _LT_COMPILER_FILE_LOCKS
-
-
-# _LT_CHECK_OBJDIR
-# ----------------
-m4_defun([_LT_CHECK_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-_LT_DECL([], [objdir], [0],
- [The name of the directory that contains temporary libtool files])dnl
-m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
- [Define to the sub-directory in which libtool stores uninstalled libraries.])
-])# _LT_CHECK_OBJDIR
-
-
-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-# --------------------------------------
-# Check hardcoding attributes.
-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
- test -n "$_LT_TAGVAR(runpath_var, $1)" ||
- test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
- test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
- # Linking always hardcodes the temporary library directory.
- _LT_TAGVAR(hardcode_action, $1)=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- _LT_TAGVAR(hardcode_action, $1)=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- _LT_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
- test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-_LT_TAGDECL([], [hardcode_action], [0],
- [How to hardcode a shared library path into an executable])
-])# _LT_LINKER_HARDCODE_LIBPATH
-
-
-# _LT_CMD_STRIPLIB
-# ----------------
-m4_defun([_LT_CMD_STRIPLIB],
-[m4_require([_LT_DECL_EGREP])
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- fi
- ;;
- *)
- AC_MSG_RESULT([no])
- ;;
- esac
-fi
-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-_LT_DECL([], [striplib], [1])
-])# _LT_CMD_STRIPLIB
-
-
-# _LT_SYS_DYNAMIC_LINKER([TAG])
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-m4_defun([_LT_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_OBJDUMP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-m4_if([$1],
- [], [
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
- *) lt_sed_strip_eq="s,=/,/,g" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[[lt_foo]]++; }
- if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[[4-9]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[[01]] | aix4.[[01]].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[[45]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- library_names_spec='${libname}.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec="$LIB"
- if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[[23]].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[[01]]* | freebsdelf3.[[01]]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
- freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[[3-9]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
- [lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
- LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
- [lt_cv_shlibpath_overrides_runpath=yes])])
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
- ])
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[[89]] | openbsd2.[[89]].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-_LT_DECL([], [variables_saved_for_relink], [1],
- [Variables whose values should be saved in libtool wrapper scripts and
- restored at link time])
-_LT_DECL([], [need_lib_prefix], [0],
- [Do we need the "lib" prefix for modules?])
-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-_LT_DECL([], [version_type], [0], [Library versioning type])
-_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable])
-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-_LT_DECL([], [shlibpath_overrides_runpath], [0],
- [Is shlibpath searched before the hard-coded library search path?])
-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-_LT_DECL([], [library_names_spec], [1],
- [[List of archive names. First name is the real one, the rest are links.
- The last name is the one that the linker finds with -lNAME]])
-_LT_DECL([], [soname_spec], [1],
- [[The coded name of the library, if different from the real name]])
-_LT_DECL([], [install_override_mode], [1],
- [Permission mode override for installation of shared libraries])
-_LT_DECL([], [postinstall_cmds], [2],
- [Command to use after installation of a shared archive])
-_LT_DECL([], [postuninstall_cmds], [2],
- [Command to use after uninstallation of a shared archive])
-_LT_DECL([], [finish_cmds], [2],
- [Commands used to finish a libtool library installation in a directory])
-_LT_DECL([], [finish_eval], [1],
- [[As "finish_cmds", except a single script fragment to be evaled but
- not shown]])
-_LT_DECL([], [hardcode_into_libs], [0],
- [Whether we should hardcode library paths into libraries])
-_LT_DECL([], [sys_lib_search_path_spec], [2],
- [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
- [Run-time system search path for libraries])
-])# _LT_SYS_DYNAMIC_LINKER
-
-
-# _LT_PATH_TOOL_PREFIX(TOOL)
-# --------------------------
-# find a file program which can recognize shared library
-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-[m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] | ?:[\\/]*])
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word. This closes a longstanding sh security hole.
- ac_dummy="m4_if([$2], , $PATH, [$2])"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$1; then
- lt_cv_path_MAGIC_CMD="$ac_dir/$1"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- AC_MSG_RESULT($MAGIC_CMD)
-else
- AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
- [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])# _LT_PATH_TOOL_PREFIX
-
-# Old name:
-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-
-
-# _LT_PATH_MAGIC
-# --------------
-# find a file program which can recognize a shared library
-m4_defun([_LT_PATH_MAGIC],
-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
- else
- MAGIC_CMD=:
- fi
-fi
-])# _LT_PATH_MAGIC
-
-
-# LT_PATH_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([LT_PATH_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
-
-AC_ARG_WITH([gnu-ld],
- [AS_HELP_STRING([--with-gnu-ld],
- [assume the C compiler uses GNU ld @<:@default=no@:>@])],
- [test "$withval" = no || with_gnu_ld=yes],
- [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by $CC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [[\\/]]* | ?:[[\\/]]*)
- re_direlt='/[[^/]][[^/]]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])# LT_PATH_LD
-
-# Old names:
-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_LD], [])
-dnl AC_DEFUN([AC_PROG_LD], [])
-
-
-# _LT_PATH_LD_GNU
-#- --------------
-m4_defun([_LT_PATH_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# _LT_PATH_LD_GNU
-
-
-# _LT_CMD_RELOAD
-# --------------
-# find reload flag for linker
-# -- PORTME Some linkers may need a different reload flag.
-m4_defun([_LT_CMD_RELOAD],
-[AC_CACHE_CHECK([for $LD option to reload object files],
- lt_cv_ld_reload_flag,
- [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- if test "$GCC" != yes; then
- reload_cmds=false
- fi
- ;;
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_TAGDECL([], [reload_cmds], [2])dnl
-])# _LT_CMD_RELOAD
-
-
-# _LT_CHECK_MAGIC_METHOD
-# ----------------------
-# how to check for library dependencies
-# -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_MAGIC_METHOD],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[[45]]*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
- if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- # Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[[3-9]]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-])
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
- case $host_os in
- mingw* | pw32*)
- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
- want_nocaseglob=yes
- else
- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
- fi
- ;;
- esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-_LT_DECL([], [deplibs_check_method], [1],
- [Method to check whether dependent libraries are shared objects])
-_LT_DECL([], [file_magic_cmd], [1],
- [Command to use when deplibs_check_method = "file_magic"])
-_LT_DECL([], [file_magic_glob], [1],
- [How to find potential files when deplibs_check_method = "file_magic"])
-_LT_DECL([], [want_nocaseglob], [1],
- [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
-])# _LT_CHECK_MAGIC_METHOD
-
-
-# LT_PATH_NM
-# ----------
-# find the pathname to a BSD- or MS-compatible name lister
-AC_DEFUN([LT_PATH_NM],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi])
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
- case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
- AC_SUBST([DUMPBIN])
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
- [lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
- cat conftest.out >&AS_MESSAGE_LOG_FD
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*])
-])# LT_PATH_NM
-
-# Old names:
-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_NM], [])
-dnl AC_DEFUN([AC_PROG_NM], [])
-
-# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-# --------------------------------
-# how to determine the name of the shared library
-# associated with a specific link library.
-# -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-m4_require([_LT_DECL_DLLTOOL])
-AC_CACHE_CHECK([how to associate runtime and link libraries],
-lt_cv_sharedlib_from_linklib_cmd,
-[lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
- # two different shell functions defined in ltmain.sh
- # decide which to use based on capabilities of $DLLTOOL
- case `$DLLTOOL --help 2>&1` in
- *--identify-strict*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
- ;;
- *)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
- ;;
- esac
- ;;
-*)
- # fallback: assume linklib IS sharedlib
- lt_cv_sharedlib_from_linklib_cmd="$ECHO"
- ;;
-esac
-])
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
- [Command to associate shared and link libraries])
-])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-
-
-# _LT_PATH_MANIFEST_TOOL
-# ----------------------
-# locate the manifest tool
-m4_defun([_LT_PATH_MANIFEST_TOOL],
-[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
- [lt_cv_path_mainfest_tool=no
- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
- cat conftest.err >&AS_MESSAGE_LOG_FD
- if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_mainfest_tool=yes
- fi
- rm -f conftest*])
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
- MANIFEST_TOOL=:
-fi
-_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
-])# _LT_PATH_MANIFEST_TOOL
-
-
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
- # These system don't have libm, or don't need it
- ;;
-*-ncr-sysv4.3*)
- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
- AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
- ;;
-*)
- AC_CHECK_LIB(m, cos, LIBM="-lm")
- ;;
-esac
-AC_SUBST([LIBM])
-])# LT_LIB_M
-
-# Old name:
-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_CHECK_LIBM], [])
-
-
-# _LT_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------
-m4_defun([_LT_COMPILER_NO_RTTI],
-[m4_require([_LT_TAG_COMPILER])dnl
-
-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
- case $cc_basename in
- nvcc*)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
- esac
-
- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
- lt_cv_prog_compiler_rtti_exceptions,
- [-fno-rtti -fno-exceptions], [],
- [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
- [Compiler flag to turn off builtin functions])
-])# _LT_COMPILER_NO_RTTI
-
-
-# _LT_CMD_GLOBAL_SYMBOLS
-# ----------------------
-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[[BCDT]]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[[ABCDGISTW]]'
- ;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[[ABCDEGRST]]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[[BCDEGRST]]'
- ;;
-osf*)
- symcode='[[BCDEGQRST]]'
- ;;
-solaris*)
- symcode='[[BDRT]]'
- ;;
-sco3.2v5*)
- symcode='[[DT]]'
- ;;
-sysv4.2uw2*)
- symcode='[[DT]]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[[ABDT]]'
- ;;
-sysv4)
- symcode='[[DFNSTU]]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK ['"\
-" {last_section=section; section=\$ 3};"\
-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx]"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT@&t@_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT@&t@_DLSYM_CONST
-#else
-# define LT@&t@_DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-LT@&t@_DLSYM_CONST struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[[]] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_globsym_save_LIBS=$LIBS
- lt_globsym_save_CFLAGS=$CFLAGS
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS=$lt_globsym_save_LIBS
- CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- AC_MSG_RESULT(failed)
-else
- AC_MSG_RESULT(ok)
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
- nm_file_list_spec='@'
-fi
-
-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
- [Take the output of nm and produce a listing of raw symbols and C names])
-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
- [Transform the output of nm in a proper C declaration])
-_LT_DECL([global_symbol_to_c_name_address],
- [lt_cv_sys_global_symbol_to_c_name_address], [1],
- [Transform the output of nm in a C name address pair])
-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
- [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
- [Transform the output of nm in a C name address pair when lib prefix is needed])
-_LT_DECL([], [nm_file_list_spec], [1],
- [Specify filename containing input files for $NM])
-]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-# _LT_COMPILER_PIC([TAGNAME])
-# ---------------------------
-m4_defun([_LT_COMPILER_PIC],
-[m4_require([_LT_TAG_COMPILER])dnl
-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_TAGVAR(lt_prog_compiler_static, $1)=
-
-m4_if([$1], [CXX], [
- # C++ specific cases for pic, static, wl, etc.
- if test "$GXX" = yes; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
- *djgpp*)
- # DJGPP does not support shared libraries at all
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- else
- case $host_os in
- aix[[4-9]]*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- chorus*)
- case $cc_basename in
- cxch68*)
- # Green Hills C++ Compiler
- # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
- ;;
- esac
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
- dgux*)
- case $cc_basename in
- ec++*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- freebsd* | dragonfly*)
- # FreeBSD uses GNU C++
- ;;
- hpux9* | hpux10* | hpux11*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- if test "$host_cpu" != ia64; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- fi
- ;;
- aCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- interix*)
- # This is c89, which is MS Visual C++ (no shared libs)
- # Anyone wants to do a port?
- ;;
- irix5* | irix6* | nonstopux*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- # CC pic flag -KPIC is the default.
- ;;
- *)
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- KCC*)
- # KAI C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- ecpc* )
- # old Intel C++ for x86_64 which still supported -KPIC.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- icpc* )
- # Intel C++, used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- cxx*)
- # Compaq C++
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
- # IBM XL 8.0, 9.0 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- esac
- ;;
- esac
- ;;
- lynxos*)
- ;;
- m88k*)
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
- ;;
- *)
- ;;
- esac
- ;;
- netbsd* | netbsdelf*-gnu)
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- cxx*)
- # Digital/Compaq C++
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- psos*)
- ;;
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- ;;
- *)
- ;;
- esac
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- lcc*)
- # Lucid
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- *)
- ;;
- esac
- ;;
- vxworks*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-],
-[
- if test "$GCC" = yes; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
- if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
- fi
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
-
- hpux9* | hpux10* | hpux11*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC (with -KPIC) is the default.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- ccc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All Alpha code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
- ;;
- *Sun\ F* | *Sun*Fortran*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- *Sun\ C*)
- # Sun C 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- ;;
- *Intel*\ [[CF]]*Compiler*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- *Portland\ Group*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All OSF/1 code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- rdos*)
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- solaris*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
- *)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- unicos*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
-
- uts4*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-])
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
- ;;
-esac
-
-AC_CACHE_CHECK([for $compiler option to produce PIC],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
- [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
- [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
- "" | " "*) ;;
- *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
- esac],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
- [Additional compiler flags for building library objects])
-
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
- [How to pass a linker flag through the compiler])
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
- _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
- $lt_tmp_static_flag,
- [],
- [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
- [Compiler flag to prevent dynamic linking])
-])# _LT_COMPILER_PIC
-
-
-# _LT_LINKER_SHLIBS([TAGNAME])
-# ----------------------------
-# See if the linker supports building shared libraries.
-m4_defun([_LT_LINKER_SHLIBS],
-[AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-m4_if([$1], [CXX], [
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- case $host_os in
- aix[[4-9]]*)
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global defined
- # symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- ;;
- pw32*)
- _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
- ;;
- cygwin* | mingw* | cegcc*)
- case $cc_basename in
- cl*)
- _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | gnu*)
- _LT_TAGVAR(link_all_deplibs, $1)=no
- ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- esac
-], [
- runpath_var=
- _LT_TAGVAR(allow_undefined_flag, $1)=
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(archive_cmds, $1)=
- _LT_TAGVAR(archive_expsym_cmds, $1)=
- _LT_TAGVAR(compiler_needs_object, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(hardcode_automatic, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- _LT_TAGVAR(hardcode_minus_L, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- _LT_TAGVAR(inherit_rpath, $1)=no
- _LT_TAGVAR(link_all_deplibs, $1)=unknown
- _LT_TAGVAR(module_cmds, $1)=
- _LT_TAGVAR(module_expsym_cmds, $1)=
- _LT_TAGVAR(old_archive_from_new_cmds, $1)=
- _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
- _LT_TAGVAR(thread_safe_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- _LT_TAGVAR(include_expsyms, $1)=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- linux* | k*bsd*-gnu | gnu*)
- _LT_TAGVAR(link_all_deplibs, $1)=no
- ;;
- esac
-
- _LT_TAGVAR(ld_shlibs, $1)=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test "$with_gnu_ld" = yes; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
- *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test "$lt_use_gnu_ld_interface" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[[3-9]]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- tmp_sharedflag='--shared' ;;
- xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
-
- if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
- runpath_var=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- fi
- ;;
-
- aix[[4-9]]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=no
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- bsdi[[45]]*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- case $cc_basename in
- cl*)
- # Native MSVC
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
- # Don't use ranlib
- _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
- _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # Assume MSVC wrapper
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- # FIXME: Should let the user specify the lib program.
- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- m4_if($1, [], [
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- _LT_LINKER_OPTION([if $CC understands -b],
- _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
- [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- # This should be the same for all languages, so no per-tag cache variable.
- AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
- [lt_cv_irix_exported_symbol],
- [save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- AC_LINK_IFELSE(
- [AC_LANG_SOURCE(
- [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
- [C++], [[int foo (void) { return 0; }]],
- [Fortran 77], [[
- subroutine foo
- end]],
- [Fortran], [[
- subroutine foo
- end]])])],
- [lt_cv_irix_exported_symbol=yes],
- [lt_cv_irix_exported_symbol=no])
- LDFLAGS="$save_LDFLAGS"])
- if test "$lt_cv_irix_exported_symbol" = yes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
- fi
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- newsos6)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- else
- case $host_os in
- openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- os2*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- solaris*)
- _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
- _LT_TAGVAR(hardcode_direct, $1)=no
- ;;
- motorola)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4.3*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- _LT_TAGVAR(ld_shlibs, $1)=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
- ;;
- esac
- fi
- fi
-])
-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-
-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-_LT_DECL([], [extract_expsyms_cmds], [2],
- [The commands to extract the exported symbol list from a shared archive])
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
- # Assume -lc should be added
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $_LT_TAGVAR(archive_cmds, $1) in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- AC_CACHE_CHECK([whether -lc should be explicitly linked in],
- [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
- [$RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
- pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
- _LT_TAGVAR(allow_undefined_flag, $1)=
- if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
- then
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
- else
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- fi
- _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- ])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
- ;;
- esac
- fi
- ;;
-esac
-
-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
- [Whether or not to add -lc for building shared libraries])
-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
- [enable_shared_with_static_runtimes], [0],
- [Whether or not to disallow shared libs when runtime libs are static])
-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
- [Compiler flag to allow reflexive dlopens])
-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
- [Compiler flag to generate shared objects directly from archives])
-_LT_TAGDECL([], [compiler_needs_object], [1],
- [Whether the compiler copes with passing no objects directly])
-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
- [Create an old-style archive from a shared archive])
-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
- [Create a temporary old-style archive to link instead of a shared archive])
-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-_LT_TAGDECL([], [archive_expsym_cmds], [2])
-_LT_TAGDECL([], [module_cmds], [2],
- [Commands used to build a loadable module if different from building
- a shared archive.])
-_LT_TAGDECL([], [module_expsym_cmds], [2])
-_LT_TAGDECL([], [with_gnu_ld], [1],
- [Whether we are building with GNU ld or not])
-_LT_TAGDECL([], [allow_undefined_flag], [1],
- [Flag that allows shared libraries with undefined symbols to be built])
-_LT_TAGDECL([], [no_undefined_flag], [1],
- [Flag that enforces no undefined symbols])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
- [Flag to hardcode $libdir into a binary during linking.
- This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
- [Whether we need a single "-rpath" flag with a separated argument])
-_LT_TAGDECL([], [hardcode_direct], [0],
- [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
- DIR into the resulting binary])
-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
- [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
- DIR into the resulting binary and the resulting library dependency is
- "absolute", i.e impossible to change by setting ${shlibpath_var} if the
- library is relocated])
-_LT_TAGDECL([], [hardcode_minus_L], [0],
- [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
- [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_automatic], [0],
- [Set to "yes" if building a shared library automatically hardcodes DIR
- into the library and all subsequent libraries and executables linked
- against it])
-_LT_TAGDECL([], [inherit_rpath], [0],
- [Set to yes if linker adds runtime paths of dependent libraries
- to runtime path list])
-_LT_TAGDECL([], [link_all_deplibs], [0],
- [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [always_export_symbols], [0],
- [Set to "yes" if exported symbols are required])
-_LT_TAGDECL([], [export_symbols_cmds], [2],
- [The commands to list exported symbols])
-_LT_TAGDECL([], [exclude_expsyms], [1],
- [Symbols that should not be listed in the preloaded symbols])
-_LT_TAGDECL([], [include_expsyms], [1],
- [Symbols that must always be exported])
-_LT_TAGDECL([], [prelink_cmds], [2],
- [Commands necessary for linking programs (against libraries) with templates])
-_LT_TAGDECL([], [postlink_cmds], [2],
- [Commands necessary for finishing linking programs])
-_LT_TAGDECL([], [file_list_spec], [1],
- [Specify filename containing input files])
-dnl FIXME: Not yet implemented
-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-dnl [Compiler flag to generate thread safe objects])
-])# _LT_LINKER_SHLIBS
-
-
-# _LT_LANG_C_CONFIG([TAG])
-# ------------------------
-# Ensure that the configuration variables for a C compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_C_CONFIG],
-[m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_TAG_COMPILER
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
- LT_SYS_DLOPEN_SELF
- _LT_CMD_STRIPLIB
-
- # Report which library types will actually be built
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_CONFIG($1)
-fi
-AC_LANG_POP
-CC="$lt_save_CC"
-])# _LT_LANG_C_CONFIG
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
- (test "X$CXX" != "Xg++"))) ; then
- AC_PROG_CXXCPP
-else
- _lt_caught_CXX_error=yes
-fi
-
-AC_LANG_PUSH(C++)
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(compiler_needs_object, $1)=no
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="int some_variable = 0;"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC=$CC
- lt_save_CFLAGS=$CFLAGS
- lt_save_LD=$LD
- lt_save_GCC=$GCC
- GCC=$GXX
- lt_save_with_gnu_ld=$with_gnu_ld
- lt_save_path_LD=$lt_cv_path_LD
- if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
- else
- $as_unset lt_cv_prog_gnu_ld
- fi
- if test -n "${lt_cv_path_LDCXX+set}"; then
- lt_cv_path_LD=$lt_cv_path_LDCXX
- else
- $as_unset lt_cv_path_LD
- fi
- test -z "${LDCXX+set}" || LD=$LDCXX
- CC=${CXX-"c++"}
- CFLAGS=$CXXFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- # We don't want -fno-exception when compiling C++ code, so set the
- # no_builtin_flag separately
- if test "$GXX" = yes; then
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
- else
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
- fi
-
- if test "$GXX" = yes; then
- # Set up default GNU C++ configuration
-
- LT_PATH_LD
-
- # Check if GNU C++ uses GNU ld as the underlying linker, since the
- # archiving commands below assume that GNU ld is being used.
- if test "$with_gnu_ld" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # If archive_cmds runs LD, not CC, wlarc should be empty
- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
- # investigate it a little bit more. (MM)
- wlarc='${wl}'
-
- # ancient GNU ld didn't support --whole-archive et. al.
- if eval "`$CC -print-prog-name=ld` --help 2>&1" |
- $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- with_gnu_ld=no
- wlarc=
-
- # A generic and very simple default shared library creation
- # command for GNU C++ for the case where it uses the native
- # linker, instead of GNU ld. If possible, this setting should
- # overridden to take advantage of the native linker features on
- # the platform it is being used on.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- fi
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- GXX=no
- with_gnu_ld=no
- wlarc=
- fi
-
- # PORTME: fill in a description of your system's C++ link characteristics
- AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
- _LT_TAGVAR(ld_shlibs, $1)=yes
- case $host_os in
- aix3*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- case $ld_flag in
- *-brtl*)
- aix_use_runtimelinking=yes
- break
- ;;
- esac
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
- if test "$GXX" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to
- # export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an empty
- # executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared
- # libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- chorus*)
- case $cc_basename in
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- case $GXX,$cc_basename in
- ,cl* | no,cl*)
- # Native MSVC
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- # Don't use ranlib
- _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
- _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- func_to_tool_file "$lt_outputfile"~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # g++
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- case $cc_basename in
- ec++*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- freebsd2.*)
- # C++ shared libraries reported to be fairly broken before
- # switch to ELF
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- freebsd-elf*)
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- ;;
-
- freebsd* | dragonfly*)
- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
- # conventions
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- hpux9*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- hpux10*|hpux11*)
- if test $with_gnu_ld = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
- esac
- fi
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- esac
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- if test $with_gnu_ld = no; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC*)
- # SGI C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
- # Archives containing C++ object files must be created using
- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
- ;;
- *)
- if test "$GXX" = yes; then
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
- fi
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
- esac
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
- ;;
- icpc* | ecpc* )
- # Intel C++
- with_gnu_ld=yes
- # version 8.0 and above of icpc choke on multiply defined symbols
- # if we add $predep_objects and $postdep_objects, however 7.1 and
- # earlier do not add the objects themselves.
- case `$CC -V 2>&1` in
- *"Version 7."*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 8.0 or newer
- tmp_idyn=
- case $host_cpu in
- ia64*) tmp_idyn=' -i_dynamic';;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- case `$CC -V` in
- *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
- _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
- compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
- _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
- $RANLIB $oldlib'
- _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- *) # Version 6 and above use weak symbols
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- ;;
- cxx*)
- # Compaq C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
- ;;
- xl* | mpixl* | bgxl*)
- # IBM XL 8.0 on PPC, with GNU ld
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
-
- # Not sure whether something based on
- # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
- # would be better.
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- esac
- ;;
- esac
- ;;
-
- lynxos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- m88k*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- mvs*)
- case $cc_basename in
- cxx*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- fi
- # Workaround some broken pre-1.5 toolchains
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
- ;;
-
- *nto* | *qnx*)
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- openbsd2*)
- # C++ shared libraries are fairly broken
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- fi
- output_verbose_link_cmd=func_echo_all
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Archives containing C++ object files must be created using
- # the KAI C++ compiler.
- case $host in
- osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
- *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
- esac
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- cxx*)
- case $host in
- osf3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- ;;
- *)
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
- echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
- $RM $lib.exp'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- case $host in
- osf3*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- psos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- lcc*)
- # Lucid
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
-
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
- # The C++ compiler must be used to create the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
- ;;
- *)
- # GNU C++ compiler with Solaris linker
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
- if $CC --version | $GREP -v '^2\.7' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- else
- # g++ 2.7 appears to require `-G' NOT `-shared' on this
- # platform.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- fi
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- ;;
- esac
- fi
- ;;
- esac
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
- '"$_LT_TAGVAR(old_archive_cmds, $1)"
- _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
- '"$_LT_TAGVAR(reload_cmds, $1)"
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- vxworks*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
- test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
- _LT_TAGVAR(GCC, $1)="$GXX"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
- LDCXX=$LD
- LD=$lt_save_LD
- GCC=$lt_save_GCC
- with_gnu_ld=$lt_save_with_gnu_ld
- lt_cv_path_LDCXX=$lt_cv_path_LD
- lt_cv_path_LD=$lt_save_path_LD
- lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
- lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-AC_LANG_POP
-])# _LT_LANG_CXX_CONFIG
-
-
-# _LT_FUNC_STRIPNAME_CNF
-# ----------------------
-# func_stripname_cnf prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-#
-# This function is identical to the (non-XSI) version of func_stripname,
-# except this one can be used by m4 code that may be executed by configure,
-# rather than the libtool script.
-m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
-AC_REQUIRE([_LT_DECL_SED])
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
-func_stripname_cnf ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-} # func_stripname_cnf
-])# _LT_FUNC_STRIPNAME_CNF
-
-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-# ---------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
-# Dependencies to place before and after the object being linked:
-_LT_TAGVAR(predep_objects, $1)=
-_LT_TAGVAR(postdep_objects, $1)=
-_LT_TAGVAR(predeps, $1)=
-_LT_TAGVAR(postdeps, $1)=
-_LT_TAGVAR(compiler_lib_search_path, $1)=
-
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library. It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-int a;
-void foo (void) { a = 0; }
-_LT_EOF
-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-_LT_EOF
-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer*4 a
- a=0
- return
- end
-_LT_EOF
-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer a
- a=0
- return
- end
-_LT_EOF
-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-public class foo {
- private int a;
- public void bar (void) {
- a = 0;
- }
-};
-_LT_EOF
-], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
-package foo
-func foo() {
-}
-_LT_EOF
-])
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- for p in `eval "$output_verbose_link_cmd"`; do
- case ${prev}${p} in
-
- -L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
- # Remove the space.
- if test $p = "-L" ||
- test $p = "-R"; then
- prev=$p
- continue
- fi
-
- # Expand the sysroot to ease extracting the directories later.
- if test -z "$prev"; then
- case $p in
- -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
- -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
- -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
- esac
- fi
- case $p in
- =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
- esac
- if test "$pre_test_object_deps_done" = no; then
- case ${prev} in
- -L | -R)
- # Internal compiler library paths should come after those
- # provided the user. The postdeps already come after the
- # user supplied libs so there is no need to process them.
- if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
- _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
- else
- _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$_LT_TAGVAR(postdeps, $1)"; then
- _LT_TAGVAR(postdeps, $1)="${prev}${p}"
- else
- _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
- fi
- fi
- prev=
- ;;
-
- *.lto.$objext) ;; # Ignore GCC LTO objects
- *.$objext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
- _LT_TAGVAR(predep_objects, $1)="$p"
- else
- _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
- fi
- else
- if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
- _LT_TAGVAR(postdep_objects, $1)="$p"
- else
- _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-m4_if([$1], [CXX],
-[case $host_os in
-interix[[3-9]]*)
- # Interix 3.5 installs completely hosed .la files for C++, so rather than
- # hack all around it, let's just trust "g++" to DTRT.
- _LT_TAGVAR(predep_objects,$1)=
- _LT_TAGVAR(postdep_objects,$1)=
- _LT_TAGVAR(postdeps,$1)=
- ;;
-
-linux*)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
-
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- if test "$solaris_use_stlport4" != yes; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-
-solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- # Adding this requires a known-good setup of shared libraries for
- # Sun compiler versions before 5.6, else PIC objects from an old
- # archive will be linked into the output, leading to subtle bugs.
- if test "$solaris_use_stlport4" != yes; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-esac
-])
-
-case " $_LT_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
- [The directories searched by this compiler when creating a shared library])
-_LT_TAGDECL([], [predep_objects], [1],
- [Dependencies to place before and after the objects being linked to
- create a shared library])
-_LT_TAGDECL([], [postdep_objects], [1])
-_LT_TAGDECL([], [predeps], [1])
-_LT_TAGDECL([], [postdeps], [1])
-_LT_TAGDECL([], [compiler_lib_search_path], [1],
- [The library search path used internally by the compiler when linking
- a shared library])
-])# _LT_SYS_HIDDEN_LIBDEPS
-
-
-# _LT_LANG_F77_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a Fortran 77 compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_F77_CONFIG],
-[AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test "X$F77" = "Xno"; then
- _lt_disable_F77=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the F77 compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
- lt_save_CFLAGS=$CFLAGS
- CC=${F77-"f77"}
- CFLAGS=$FFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
- GCC=$G77
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)="$G77"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC="$lt_save_CC"
- CFLAGS="$lt_save_CFLAGS"
-fi # test "$_lt_disable_F77" != yes
-
-AC_LANG_POP
-])# _LT_LANG_F77_CONFIG
-
-
-# _LT_LANG_FC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for a Fortran compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_FC_CONFIG],
-[AC_LANG_PUSH(Fortran)
-
-if test -z "$FC" || test "X$FC" = "Xno"; then
- _lt_disable_FC=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for fc test sources.
-ac_ext=${ac_fc_srcext-f}
-
-# Object file extension for compiled fc test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the FC compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
- lt_save_CFLAGS=$CFLAGS
- CC=${FC-"f95"}
- CFLAGS=$FCFLAGS
- compiler=$CC
- GCC=$ac_cv_fc_compiler_gnu
-
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
-fi # test "$_lt_disable_FC" != yes
-
-AC_LANG_POP
-])# _LT_LANG_FC_CONFIG
-
-
-# _LT_LANG_GCJ_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Java Compiler compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GCJ_CONFIG],
-[AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GCJ-"gcj"}
-CFLAGS=$GCJFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GCJ_CONFIG
-
-
-# _LT_LANG_GO_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Go compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GO_CONFIG],
-[AC_REQUIRE([LT_PROG_GO])dnl
-AC_LANG_SAVE
-
-# Source file extension for Go test sources.
-ac_ext=go
-
-# Object file extension for compiled Go test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="package main; func main() { }"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='package main; func main() { }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GOC-"gccgo"}
-CFLAGS=$GOFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# Go did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GO_CONFIG
-
-
-# _LT_LANG_RC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for the Windows resource compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_RC_CONFIG],
-[AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=
-CC=${RC-"windres"}
-CFLAGS=
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-if test -n "$compiler"; then
- :
- _LT_CONFIG($1)
-fi
-
-GCC=$lt_save_GCC
-AC_LANG_RESTORE
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_RC_CONFIG
-
-
-# LT_PROG_GCJ
-# -----------
-AC_DEFUN([LT_PROG_GCJ],
-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
- [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
- [AC_CHECK_TOOL(GCJ, gcj,)
- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
- AC_SUBST(GCJFLAGS)])])[]dnl
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-
-
-# LT_PROG_GO
-# ----------
-AC_DEFUN([LT_PROG_GO],
-[AC_CHECK_TOOL(GOC, gccgo,)
-])
-
-
-# LT_PROG_RC
-# ----------
-AC_DEFUN([LT_PROG_RC],
-[AC_CHECK_TOOL(RC, windres,)
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_RC], [])
-
-
-# _LT_DECL_EGREP
-# --------------
-# If we don't have a new enough Autoconf to choose the best grep
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_EGREP],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_REQUIRE([AC_PROG_FGREP])dnl
-test -z "$GREP" && GREP=grep
-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-_LT_DECL([], [EGREP], [1], [An ERE matcher])
-_LT_DECL([], [FGREP], [1], [A literal string matcher])
-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-AC_SUBST([GREP])
-])
-
-
-# _LT_DECL_OBJDUMP
-# --------------
-# If we don't have a new enough Autoconf to choose the best objdump
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_OBJDUMP],
-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-AC_SUBST([OBJDUMP])
-])
-
-# _LT_DECL_DLLTOOL
-# ----------------
-# Ensure DLLTOOL variable is set.
-m4_defun([_LT_DECL_DLLTOOL],
-[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
-AC_SUBST([DLLTOOL])
-])
-
-# _LT_DECL_SED
-# ------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible. Prefer GNU sed if found.
-m4_defun([_LT_DECL_SED],
-[AC_PROG_SED
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
- [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-])# _LT_DECL_SED
-
-m4_ifndef([AC_PROG_SED], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_SED. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-
-m4_defun([AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for lt_ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
- lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
- fi
- done
- done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
- test ! -f $lt_ac_sed && continue
- cat /dev/null > conftest.in
- lt_ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >conftest.in
- # Check for GNU sed and select it if it is found.
- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
- lt_cv_path_SED=$lt_ac_sed
- break
- fi
- while true; do
- cat conftest.in conftest.in >conftest.tmp
- mv conftest.tmp conftest.in
- cp conftest.in conftest.nl
- echo >>conftest.nl
- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
- cmp -s conftest.out conftest.nl || break
- # 10000 chars as input seems more than enough
- test $lt_ac_count -gt 10 && break
- lt_ac_count=`expr $lt_ac_count + 1`
- if test $lt_ac_count -gt $lt_ac_max; then
- lt_ac_max=$lt_ac_count
- lt_cv_path_SED=$lt_ac_sed
- fi
- done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])#AC_PROG_SED
-])#m4_ifndef
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_SED], [])
-
-
-# _LT_CHECK_SHELL_FEATURES
-# ------------------------
-# Find out whether the shell is Bourne or XSI compatible,
-# or has some other useful features.
-m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,b/c, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-])# _LT_CHECK_SHELL_FEATURES
-
-
-# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
-# ------------------------------------------------------
-# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
-# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
-m4_defun([_LT_PROG_FUNCTION_REPLACE],
-[dnl {
-sed -e '/^$1 ()$/,/^} # $1 /c\
-$1 ()\
-{\
-m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1])
-} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-])
-
-
-# _LT_PROG_REPLACE_SHELLFNS
-# -------------------------
-# Replace existing portable implementations of several shell functions with
-# equivalent extended shell implementations where those features are available..
-m4_defun([_LT_PROG_REPLACE_SHELLFNS],
-[if test x"$xsi_shell" = xyes; then
- _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac])
-
- _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
- func_basename_result="${1##*/}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac
- func_basename_result="${1##*/}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
- # positional parameters, so assign one to ordinary parameter first.
- func_stripname_result=${3}
- func_stripname_result=${func_stripname_result#"${1}"}
- func_stripname_result=${func_stripname_result%"${2}"}])
-
- _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
- func_split_long_opt_name=${1%%=*}
- func_split_long_opt_arg=${1#*=}])
-
- _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
- func_split_short_opt_arg=${1#??}
- func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
-
- _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
- case ${1} in
- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
- *) func_lo2o_result=${1} ;;
- esac])
-
- _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo])
-
- _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))])
-
- _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}])
-fi
-
-if test x"$lt_shell_append" = xyes; then
- _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
- func_quote_for_eval "${2}"
-dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
- eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
-
- # Save a `func_append' function call where possible by direct use of '+='
- sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-else
- # Save a `func_append' function call even when '+=' is not available
- sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
- AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
-fi
-])
-
-# _LT_PATH_CONVERSION_FUNCTIONS
-# -----------------------------
-# Determine which file name conversion functions should be used by
-# func_to_host_file (and, implicitly, by func_to_host_path). These are needed
-# for certain cross-compile configurations and native mingw.
-m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_MSG_CHECKING([how to convert $build file names to $host format])
-AC_CACHE_VAL(lt_cv_to_host_file_cmd,
-[case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
- ;;
- esac
- ;;
- *-*-cygwin* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
- ;;
- esac
- ;;
- * ) # unhandled hosts (and "normal" native builds)
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
-esac
-])
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
-_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
- [0], [convert $build file names to $host format])dnl
-
-AC_MSG_CHECKING([how to convert $build file names to toolchain format])
-AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
-[#assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
- ;;
- esac
- ;;
-esac
-])
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
-_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
- [0], [convert $build files to toolchain format])dnl
-])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/src/c/jerasure/m4/ltoptions.m4 b/src/c/jerasure/m4/ltoptions.m4
deleted file mode 100644
index 301b0a3..0000000
--- a/src/c/jerasure/m4/ltoptions.m4
+++ /dev/null
@@ -1,384 +0,0 @@
-# Helper functions for option handling. -*- Autoconf -*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 7 ltoptions.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-
-
-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-# ------------------------------------------
-m4_define([_LT_MANGLE_OPTION],
-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-
-
-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-# ---------------------------------------
-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-# matching handler defined, dispatch to it. Other OPTION-NAMEs are
-# saved as a flag.
-m4_define([_LT_SET_OPTION],
-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
- _LT_MANGLE_DEFUN([$1], [$2]),
- [m4_warning([Unknown $1 option `$2'])])[]dnl
-])
-
-
-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-# ------------------------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-m4_define([_LT_IF_OPTION],
-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-
-
-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-# -------------------------------------------------------
-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-# are set.
-m4_define([_LT_UNLESS_OPTIONS],
-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
- [m4_define([$0_found])])])[]dnl
-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-])[]dnl
-])
-
-
-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-# ----------------------------------------
-# OPTION-LIST is a space-separated list of Libtool options associated
-# with MACRO-NAME. If any OPTION has a matching handler declared with
-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-# the unknown option and exit.
-m4_defun([_LT_SET_OPTIONS],
-[# Set options
-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [_LT_SET_OPTION([$1], _LT_Option)])
-
-m4_if([$1],[LT_INIT],[
- dnl
- dnl Simply set some default values (i.e off) if boolean options were not
- dnl specified:
- _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
- ])
- _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
- ])
- dnl
- dnl If no reference was made to various pairs of opposing options, then
- dnl we run the default mode handler for the pair. For example, if neither
- dnl `shared' nor `disable-shared' was passed, we enable building of shared
- dnl archives by default:
- _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
- _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
- [_LT_ENABLE_FAST_INSTALL])
- ])
-])# _LT_SET_OPTIONS
-
-
-## --------------------------------- ##
-## Macros to handle LT_INIT options. ##
-## --------------------------------- ##
-
-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-# -----------------------------------------
-m4_define([_LT_MANGLE_DEFUN],
-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-
-
-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-# -----------------------------------------------
-m4_define([LT_OPTION_DEFINE],
-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-])# LT_OPTION_DEFINE
-
-
-# dlopen
-# ------
-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-])
-
-AU_DEFUN([AC_LIBTOOL_DLOPEN],
-[_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-
-
-# win32-dll
-# ---------
-# Declare package support for building win32 dll's.
-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-[enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
- AC_CHECK_TOOL(AS, as, false)
- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
- AC_CHECK_TOOL(OBJDUMP, objdump, false)
- ;;
-esac
-
-test -z "$AS" && AS=as
-_LT_DECL([], [AS], [1], [Assembler program])dnl
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
-])# win32-dll
-
-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-
-
-# _LT_ENABLE_SHARED([DEFAULT])
-# ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_SHARED],
-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([shared],
- [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
- [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-
- _LT_DECL([build_libtool_libs], [enable_shared], [0],
- [Whether or not to build shared libraries])
-])# _LT_ENABLE_SHARED
-
-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-
-AC_DEFUN([AC_DISABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-
-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-
-
-
-# _LT_ENABLE_STATIC([DEFAULT])
-# ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_STATIC],
-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([static],
- [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
- [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-
- _LT_DECL([build_old_libs], [enable_static], [0],
- [Whether or not to build static libraries])
-])# _LT_ENABLE_STATIC
-
-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-
-AC_DEFUN([AC_DISABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-
-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-
-
-
-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-# ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_FAST_INSTALL],
-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([fast-install],
- [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
- [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-
-_LT_DECL([fast_install], [enable_fast_install], [0],
- [Whether or not to optimize for fast installation])dnl
-])# _LT_ENABLE_FAST_INSTALL
-
-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-
-# Old names:
-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
-])
-
-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-
-
-# _LT_WITH_PIC([MODE])
-# --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
-# LT_INIT options.
-# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
-m4_define([_LT_WITH_PIC],
-[AC_ARG_WITH([pic],
- [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
- [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
- [lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for lt_pkg in $withval; do
- IFS="$lt_save_ifs"
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
-
-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-])# _LT_WITH_PIC
-
-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-
-# Old name:
-AU_DEFUN([AC_LIBTOOL_PICMODE],
-[_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-
-## ----------------- ##
-## LTDL_INIT Options ##
-## ----------------- ##
-
-m4_define([_LTDL_MODE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
- [m4_define([_LTDL_MODE], [nonrecursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
- [m4_define([_LTDL_MODE], [recursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
- [m4_define([_LTDL_MODE], [subproject])])
-
-m4_define([_LTDL_TYPE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [installable],
- [m4_define([_LTDL_TYPE], [installable])])
-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
- [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/src/c/jerasure/m4/ltsugar.m4 b/src/c/jerasure/m4/ltsugar.m4
deleted file mode 100644
index 9000a05..0000000
--- a/src/c/jerasure/m4/ltsugar.m4
+++ /dev/null
@@ -1,123 +0,0 @@
-# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltsugar.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-
-
-# lt_join(SEP, ARG1, [ARG2...])
-# -----------------------------
-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-# associated separator.
-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-# versions in m4sugar had bugs.
-m4_define([lt_join],
-[m4_if([$#], [1], [],
- [$#], [2], [[$2]],
- [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-m4_define([_lt_join],
-[m4_if([$#$2], [2], [],
- [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-
-
-# lt_car(LIST)
-# lt_cdr(LIST)
-# ------------
-# Manipulate m4 lists.
-# These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
-m4_define([lt_car], [[$1]])
-m4_define([lt_cdr],
-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
- [$#], 1, [],
- [m4_dquote(m4_shift($@))])])
-m4_define([lt_unquote], $1)
-
-
-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
-# Note that neither SEPARATOR nor STRING are expanded; they are appended
-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-# than defined and empty).
-#
-# This macro is needed until we can rely on Autoconf 2.62, since earlier
-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-m4_define([lt_append],
-[m4_define([$1],
- m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-
-
-
-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-# ----------------------------------------------------------
-# Produce a SEP delimited list of all paired combinations of elements of
-# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
-# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
-m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
- [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
- [m4_foreach([_Lt_suffix],
- ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
- [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-
-
-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-# -----------------------------------------------------------------------
-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-m4_define([lt_if_append_uniq],
-[m4_ifdef([$1],
- [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
- [lt_append([$1], [$2], [$3])$4],
- [$5])],
- [lt_append([$1], [$2], [$3])$4])])
-
-
-# lt_dict_add(DICT, KEY, VALUE)
-# -----------------------------
-m4_define([lt_dict_add],
-[m4_define([$1($2)], [$3])])
-
-
-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-# --------------------------------------------
-m4_define([lt_dict_add_subkey],
-[m4_define([$1($2:$3)], [$4])])
-
-
-# lt_dict_fetch(DICT, KEY, [SUBKEY])
-# ----------------------------------
-m4_define([lt_dict_fetch],
-[m4_ifval([$3],
- m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
- m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-
-
-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-# -----------------------------------------------------------------
-m4_define([lt_if_dict_fetch],
-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
- [$5],
- [$6])])
-
-
-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-# --------------------------------------------------------------
-m4_define([lt_dict_filter],
-[m4_if([$5], [], [],
- [lt_join(m4_quote(m4_default([$4], [[, ]])),
- lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
- [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-])
diff --git a/src/c/jerasure/m4/ltversion.m4 b/src/c/jerasure/m4/ltversion.m4
deleted file mode 100644
index 07a8602..0000000
--- a/src/c/jerasure/m4/ltversion.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# ltversion.m4 -- version numbers -*- Autoconf -*-
-#
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# @configure_input@
-
-# serial 3337 ltversion.m4
-# This file is part of GNU Libtool
-
-m4_define([LT_PACKAGE_VERSION], [2.4.2])
-m4_define([LT_PACKAGE_REVISION], [1.3337])
-
-AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.2'
-macro_revision='1.3337'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
diff --git a/src/c/jerasure/m4/lt~obsolete.m4 b/src/c/jerasure/m4/lt~obsolete.m4
deleted file mode 100644
index ffeab56..0000000
--- a/src/c/jerasure/m4/lt~obsolete.m4
+++ /dev/null
@@ -1,98 +0,0 @@
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004.
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 5 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else. This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
-m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
-m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
diff --git a/src/c/jerasure/src/Makefile.am b/src/c/jerasure/src/Makefile.am
deleted file mode 100644
index 070f545..0000000
--- a/src/c/jerasure/src/Makefile.am
+++ /dev/null
@@ -1,22 +0,0 @@
-# Jerasure AM file
-
-AM_CPPFLAGS = -I$(top_srcdir)/include
-AM_CFLAGS = $(SIMD_FLAGS)
-
-lib_LTLIBRARIES = libJerasure.la
-libJerasure_la_SOURCES = galois.c jerasure.c reed_sol.c cauchy.c liberation.c
-libJerasure_la_LDFLAGS = -version-info 2:0:0
-libJerasure_la_LIBADD = -lgf_complete
-include_HEADERS = ../include/jerasure.h
-
-# Install additional Jerasure header files in their own directory.
-jerasureincludedir = $(includedir)/jerasure
-jerasureinclude_HEADERS = \
- ../include/cauchy.h \
- ../include/galois.h \
- ../include/liberation.h \
- ../include/reed_sol.h
-
-noinst_HEADERS = ../include/timing.h
-noinst_LIBRARIES = libtiming.a
-libtiming_a_SOURCES = timing.c
diff --git a/src/c/jerasure/src/Makefile.in b/src/c/jerasure/src/Makefile.in
deleted file mode 100644
index 776d5c9..0000000
--- a/src/c/jerasure/src/Makefile.in
+++ /dev/null
@@ -1,729 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# Jerasure AM file
-
-
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/build-aux/depcomp $(include_HEADERS) \
- $(jerasureinclude_HEADERS) $(noinst_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_ext.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
- $(top_srcdir)/m4/ax_require_defined.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-ARFLAGS = cru
-AM_V_AR = $(am__v_AR_@AM_V@)
-am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
-am__v_AR_0 = @echo " AR " $@;
-am__v_AR_1 =
-libtiming_a_AR = $(AR) $(ARFLAGS)
-libtiming_a_LIBADD =
-am_libtiming_a_OBJECTS = timing.$(OBJEXT)
-libtiming_a_OBJECTS = $(am_libtiming_a_OBJECTS)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" \
- "$(DESTDIR)$(jerasureincludedir)"
-LTLIBRARIES = $(lib_LTLIBRARIES)
-libJerasure_la_DEPENDENCIES =
-am_libJerasure_la_OBJECTS = galois.lo jerasure.lo reed_sol.lo \
- cauchy.lo liberation.lo
-libJerasure_la_OBJECTS = $(am_libJerasure_la_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-libJerasure_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(AM_CFLAGS) $(CFLAGS) $(libJerasure_la_LDFLAGS) $(LDFLAGS) -o \
- $@
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
-depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(libtiming_a_SOURCES) $(libJerasure_la_SOURCES)
-DIST_SOURCES = $(libtiming_a_SOURCES) $(libJerasure_la_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-HEADERS = $(include_HEADERS) $(jerasureinclude_HEADERS) \
- $(noinst_HEADERS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIMD_FLAGS = @SIMD_FLAGS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AM_CPPFLAGS = -I$(top_srcdir)/include
-AM_CFLAGS = $(SIMD_FLAGS)
-lib_LTLIBRARIES = libJerasure.la
-libJerasure_la_SOURCES = galois.c jerasure.c reed_sol.c cauchy.c liberation.c
-libJerasure_la_LDFLAGS = -version-info 2:0:0
-libJerasure_la_LIBADD = -lgf_complete
-include_HEADERS = ../include/jerasure.h
-
-# Install additional Jerasure header files in their own directory.
-jerasureincludedir = $(includedir)/jerasure
-jerasureinclude_HEADERS = \
- ../include/cauchy.h \
- ../include/galois.h \
- ../include/liberation.h \
- ../include/reed_sol.h
-
-noinst_HEADERS = ../include/timing.h
-noinst_LIBRARIES = libtiming.a
-libtiming_a_SOURCES = timing.c
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu src/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-libtiming.a: $(libtiming_a_OBJECTS) $(libtiming_a_DEPENDENCIES) $(EXTRA_libtiming_a_DEPENDENCIES)
- $(AM_V_at)-rm -f libtiming.a
- $(AM_V_AR)$(libtiming_a_AR) libtiming.a $(libtiming_a_OBJECTS) $(libtiming_a_LIBADD)
- $(AM_V_at)$(RANLIB) libtiming.a
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- list2=; for p in $$list; do \
- if test -f $$p; then \
- list2="$$list2 $$p"; \
- else :; fi; \
- done; \
- test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
- }
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- for p in $$list; do \
- $(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
- done
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
- @list='$(lib_LTLIBRARIES)'; \
- locs=`for p in $$list; do echo $$p; done | \
- sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
- sort -u`; \
- test -z "$$locs" || { \
- echo rm -f $${locs}; \
- rm -f $${locs}; \
- }
-
-libJerasure.la: $(libJerasure_la_OBJECTS) $(libJerasure_la_DEPENDENCIES) $(EXTRA_libJerasure_la_DEPENDENCIES)
- $(AM_V_CCLD)$(libJerasure_la_LINK) -rpath $(libdir) $(libJerasure_la_OBJECTS) $(libJerasure_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cauchy.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/galois.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jerasure.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liberation.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reed_sol.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timing.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
- $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
-install-jerasureincludeHEADERS: $(jerasureinclude_HEADERS)
- @$(NORMAL_INSTALL)
- @list='$(jerasureinclude_HEADERS)'; test -n "$(jerasureincludedir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(jerasureincludedir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(jerasureincludedir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(jerasureincludedir)'"; \
- $(INSTALL_HEADER) $$files "$(DESTDIR)$(jerasureincludedir)" || exit $$?; \
- done
-
-uninstall-jerasureincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(jerasureinclude_HEADERS)'; test -n "$(jerasureincludedir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(jerasureincludedir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(jerasureincludedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
- clean-noinstLIBRARIES mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-includeHEADERS install-jerasureincludeHEADERS
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-libLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-includeHEADERS \
- uninstall-jerasureincludeHEADERS uninstall-libLTLIBRARIES
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool clean-noinstLIBRARIES \
- cscopelist-am ctags ctags-am distclean distclean-compile \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-includeHEADERS install-info install-info-am \
- install-jerasureincludeHEADERS install-libLTLIBRARIES \
- install-man install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
- uninstall-am uninstall-includeHEADERS \
- uninstall-jerasureincludeHEADERS uninstall-libLTLIBRARIES
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/jerasure/src/cauchy.c b/src/c/jerasure/src/cauchy.c
deleted file mode 100644
index 4b77882..0000000
--- a/src/c/jerasure/src/cauchy.c
+++ /dev/null
@@ -1,404 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "galois.h"
-#include "jerasure.h"
-#include "cauchy.h"
-
-static int PPs[33] = { -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1 };
-static int NOs[33];
-static int ONEs[33][33];
-
-static int *cbest_0;
-static int *cbest_1;
-static int cbest_2[3];
-static int cbest_3[7];
-static int cbest_4[15];
-static int cbest_5[31];
-static int cbest_6[63];
-static int cbest_7[127];
-static int cbest_8[255];
-static int cbest_9[511];
-static int cbest_10[1023];
-static int cbest_11[1023];
-static int *cbest_12, *cbest_13, *cbest_14, *cbest_15, *cbest_16, *cbest_17, *cbest_18, *cbest_19, *cbest_20,
- *cbest_21, *cbest_22, *cbest_23, *cbest_24, *cbest_25, *cbest_26, *cbest_27, *cbest_28, *cbest_29, *cbest_30,
- *cbest_31, *cbest_32;
-
-static int cbest_max_k[33] = { -1, -1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 1023, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1 };
-
-static int cbest_init = 0;
-
-static int *cbest_all[33];
-
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-int cauchy_n_ones(int n, int w)
-{
- int no;
- int cno;
- int nones;
- int i, j;
- int highbit;
-
- highbit = (1 << (w-1));
-
- if (PPs[w] == -1) {
- nones = 0;
- PPs[w] = galois_single_multiply(highbit, 2, w);
- for (i = 0; i < w; i++) {
- if (PPs[w] & (1 << i)) {
- ONEs[w][nones] = (1 << i);
- nones++;
- }
- }
- NOs[w] = nones;
- }
-
- no = 0;
- for (i = 0; i < w; i++) if (n & (1 << i)) no++;
- cno = no;
- for (i = 1; i < w; i++) {
- if (n & highbit) {
- n ^= highbit;
- n <<= 1;
- n ^= PPs[w];
- cno--;
- for (j = 0; j < NOs[w]; j++) {
- cno += (n & ONEs[w][j]) ? 1 : -1;
- }
- } else {
- n <<= 1;
- }
- no += cno;
- }
- return no;
-}
-
-int *cauchy_original_coding_matrix(int k, int m, int w)
-{
- int *matrix;
- int i, j, index;
-
- if (w < 31 && (k+m) > (1 << w)) return NULL;
- matrix = talloc(int, k*m);
- if (matrix == NULL) return NULL;
- index = 0;
- for (i = 0; i < m; i++) {
- for (j = 0; j < k; j++) {
- matrix[index] = galois_single_divide(1, (i ^ (m+j)), w);
- index++;
- }
- }
- return matrix;
-}
-
-int *cauchy_xy_coding_matrix(int k, int m, int w, int *X, int *Y)
-{
- int index, i, j;
- int *matrix;
-
- matrix = talloc(int, k*m);
- if (matrix == NULL) { return NULL; }
- index = 0;
- for (i = 0; i < m; i++) {
- for (j = 0; j < k; j++) {
- matrix[index] = galois_single_divide(1, (X[i] ^ Y[j]), w);
- index++;
- }
- }
- return matrix;
-}
-
-void cauchy_improve_coding_matrix(int k, int m, int w, int *matrix)
-{
- int index, i, j, x;
- int tmp;
- int bno, tno, bno_index;
-
- for (j = 0; j < k; j++) {
- if (matrix[j] != 1) {
- tmp = galois_single_divide(1, matrix[j], w);
- index = j;
- for (i = 0; i < m; i++) {
- matrix[index] = galois_single_multiply(matrix[index], tmp, w);
- index += k;
- }
- }
- }
- for (i = 1; i < m; i++) {
- bno = 0;
- index = i*k;
- for (j = 0; j < k; j++) bno += cauchy_n_ones(matrix[index+j], w);
- bno_index = -1;
- for (j = 0; j < k; j++) {
- if (matrix[index+j] != 1) {
- tmp = galois_single_divide(1, matrix[index+j], w);
- tno = 0;
- for (x = 0; x < k; x++) {
- tno += cauchy_n_ones(galois_single_multiply(matrix[index+x], tmp, w), w);
- }
- if (tno < bno) {
- bno = tno;
- bno_index = j;
- }
- }
- }
- if (bno_index != -1) {
- tmp = galois_single_divide(1, matrix[index+bno_index], w);
- for (j = 0; j < k; j++) {
- matrix[index+j] = galois_single_multiply(matrix[index+j], tmp, w);
- }
- }
- }
-}
-
-int *cauchy_good_general_coding_matrix(int k, int m, int w)
-{
- int *matrix, i;
-
- if (m == 2 && k <= cbest_max_k[w]) {
- matrix = talloc(int, k*m);
- if (matrix == NULL) return NULL;
- if (!cbest_init) {
- cbest_init = 1;
- cbest_all[0] = cbest_0; cbest_all[1] = cbest_1; cbest_all[2] = cbest_2; cbest_all[3] = cbest_3; cbest_all[4] =
- cbest_4; cbest_all[5] = cbest_5; cbest_all[6] = cbest_6; cbest_all[7] = cbest_7; cbest_all[8] = cbest_8;
- cbest_all[9] = cbest_9; cbest_all[10] = cbest_10; cbest_all[11] = cbest_11; cbest_all[12] = cbest_12;
- cbest_all[13] = cbest_13; cbest_all[14] = cbest_14; cbest_all[15] = cbest_15; cbest_all[16] = cbest_16;
- cbest_all[17] = cbest_17; cbest_all[18] = cbest_18; cbest_all[19] = cbest_19; cbest_all[20] = cbest_20;
- cbest_all[21] = cbest_21; cbest_all[22] = cbest_22; cbest_all[23] = cbest_23; cbest_all[24] = cbest_24;
- cbest_all[25] = cbest_25; cbest_all[26] = cbest_26; cbest_all[27] = cbest_27; cbest_all[28] = cbest_28;
- cbest_all[29] = cbest_29; cbest_all[30] = cbest_30; cbest_all[31] = cbest_31; cbest_all[32] = (int *) cbest_32;
- }
- for (i = 0; i < k; i++) {
- matrix[i] = 1;
- matrix[i+k] = cbest_all[w][i];
- }
- return matrix;
- } else {
- matrix = cauchy_original_coding_matrix(k, m, w);
- if (matrix == NULL) return NULL;
- cauchy_improve_coding_matrix(k, m, w, matrix);
- return matrix;
- }
-}
-
-static int cbest_2[3] = { 1, 2, 3 };
-static int cbest_3[7] = { 1, 2, 5, 4, 7, 3, 6 };
-
-static int cbest_4[15] = { 1, 2, 9, 4, 8, 13, 3, 6, 12, 5, 11, 15, 10, 14, 7 };
-
-static int cbest_5[31] = { 1, 2, 18, 4, 9, 8, 22, 16, 3, 11, 19, 5, 10, 6, 20, 27, 13, 23, 26, 12,
- 17, 25, 24, 31, 30, 7, 15, 21, 29, 14, 28 };
-
-static int cbest_6[63] = { 1, 2, 33, 4, 8, 49, 16, 32, 57, 3, 6, 12, 24, 48, 5, 35, 9, 37, 10, 17,
- 41, 51, 56, 61, 18, 28, 53, 14, 20, 34, 7, 13, 25, 36, 59, 26, 39, 40, 45, 50, 60, 52, 63,
- 11, 30, 55, 19, 22, 29, 43, 58, 15, 21, 38, 44, 47, 62, 27, 54, 42, 31, 23, 46 };
-
-static int cbest_7[127] = { 1, 2, 68, 4, 34, 8, 17, 16, 76, 32, 38, 3, 64, 69, 5, 19, 35, 70, 6, 9,
- 18, 102, 10, 36, 85, 12, 21, 42, 51, 72, 77, 84, 20, 25, 33, 50, 78, 98, 24, 39, 49, 100, 110
- , 48, 65, 93, 40, 66, 71, 92, 7, 46, 55, 87, 96, 103, 106, 11, 23, 37, 54, 81, 86, 108, 13,
- 22, 27, 43, 53, 73, 80, 14, 26, 52, 74, 79, 99, 119, 44, 95, 101, 104, 111, 118, 29, 59, 89,
- 94, 117, 28, 41, 58, 67, 88, 115, 116, 47, 57, 83, 97, 107, 114, 127, 56, 82, 109, 113, 126,
- 112, 125, 15, 63, 75, 123, 124, 31, 45, 62, 91, 105, 122, 30, 61, 90, 121, 60, 120 };
-
-static int cbest_8[255] = { 1, 2, 142, 4, 71, 8, 70, 173, 3, 35, 143, 16, 17, 67, 134, 140, 172, 6, 34
- , 69, 201, 216, 5, 33, 86, 12, 65, 138, 158, 159, 175, 10, 32, 43, 66, 108, 130, 193, 234, 9,
- 24, 25, 50, 68, 79, 100, 132, 174, 200, 217, 20, 21, 42, 48, 87, 169, 41, 54, 64, 84, 96, 117
- , 154, 155, 165, 226, 77, 82, 135, 136, 141, 168, 192, 218, 238, 7, 18, 19, 39, 40, 78, 113,
- 116, 128, 164, 180, 195, 205, 220, 232, 14, 26, 27, 58, 109, 156, 157, 203, 235, 13, 28, 29, 38
- , 51, 56, 75, 85, 90, 101, 110, 112, 139, 171, 11, 37, 49, 52, 76, 83, 102, 119, 131, 150, 151
- , 167, 182, 184, 188, 197, 219, 224, 45, 55, 80, 94, 97, 133, 170, 194, 204, 221, 227, 236, 36,
- 47, 73, 92, 98, 104, 118, 152, 153, 166, 202, 207, 239, 251, 22, 23, 44, 74, 91, 148, 149, 161
- , 181, 190, 233, 46, 59, 88, 137, 146, 147, 163, 196, 208, 212, 222, 250, 57, 81, 95, 106, 111,
- 129, 160, 176, 199, 243, 249, 15, 53, 72, 93, 103, 115, 125, 162, 183, 185, 189, 206, 225, 255,
- 186, 210, 230, 237, 242, 248, 30, 31, 62, 89, 99, 105, 114, 121, 124, 178, 209, 213, 223, 228,
- 241, 254, 60, 191, 198, 247, 120, 240, 107, 127, 144, 145, 177, 211, 214, 246, 245, 123, 126,
- 187, 231, 253, 63, 179, 229, 244, 61, 122, 215, 252 };
-
-static int cbest_9[511] = { 1, 2, 264, 4, 132, 8, 66, 16, 33, 32, 280, 64, 140, 128, 3, 70, 265, 5,
- 133, 256, 266, 6, 9, 35, 67, 134, 268, 396, 10, 17, 34, 330, 12, 18, 68, 198, 297, 20, 37, 74
- , 136, 148, 165, 281, 296, 24, 36, 41, 65, 82, 99, 164, 272, 282, 388, 40, 49, 98, 141, 194,
- 284, 328, 412, 48, 97, 129, 142, 196, 346, 71, 72, 96, 130, 313, 392, 80, 206, 257, 267, 312,
- 334, 7, 135, 156, 173, 192, 258, 269, 397, 404, 11, 78, 144, 161, 172, 260, 270, 299, 331, 344,
- 398, 13, 19, 39, 69, 86, 103, 160, 167, 199, 202, 298, 322, 384, 14, 21, 38, 43, 75, 102, 137,
- 149, 166, 204, 289, 332, 408, 462, 22, 25, 42, 51, 83, 101, 138, 150, 273, 283, 288, 301, 350,
- 389, 429, 26, 50, 76, 100, 195, 274, 285, 300, 329, 363, 390, 413, 428, 28, 45, 84, 143, 197,
- 200, 214, 231, 276, 286, 315, 320, 347, 362, 414, 458, 44, 53, 73, 90, 107, 131, 152, 169, 181,
- 230, 314, 338, 361, 393, 400, 454, 460, 52, 57, 81, 106, 115, 168, 175, 180, 207, 229, 305, 335
- , 348, 360, 394, 421, 478, 56, 105, 114, 157, 163, 174, 193, 210, 227, 228, 259, 304, 317, 326,
- 405, 420, 445, 79, 104, 113, 145, 158, 162, 212, 226, 261, 271, 316, 345, 379, 399, 406, 444,
- 450, 456, 87, 88, 112, 146, 203, 225, 262, 291, 323, 336, 378, 385, 425, 452, 474, 15, 205, 222
- , 224, 239, 290, 303, 333, 367, 377, 386, 409, 424, 431, 463, 470, 476, 23, 139, 151, 189, 208,
- 238, 302, 324, 351, 366, 376, 410, 430, 437, 27, 47, 77, 94, 111, 177, 188, 237, 275, 293, 342,
- 365, 391, 436, 448, 29, 46, 55, 85, 110, 119, 171, 176, 183, 201, 215, 218, 235, 236, 277, 287,
- 292, 321, 355, 364, 415, 417, 459, 466, 472, 30, 54, 59, 91, 109, 118, 153, 170, 182, 220, 234,
- 278, 307, 339, 354, 401, 416, 423, 441, 455, 461, 468, 495, 58, 108, 117, 154, 233, 306, 319,
- 349, 353, 383, 395, 402, 422, 440, 447, 479, 494, 92, 116, 211, 232, 318, 327, 340, 352, 382,
- 446, 493, 61, 159, 213, 216, 247, 309, 381, 407, 427, 451, 457, 464, 491, 492, 60, 89, 123, 147
- , 185, 246, 263, 308, 337, 371, 380, 426, 433, 453, 475, 487, 490, 122, 184, 191, 223, 245, 370,
- 387, 432, 439, 471, 477, 486, 489, 511, 121, 179, 190, 209, 243, 244, 295, 325, 359, 369, 411,
- 438, 485, 488, 510, 95, 120, 178, 242, 294, 343, 358, 368, 419, 449, 483, 484, 509, 219, 241,
- 357, 418, 443, 467, 473, 482, 507, 508, 31, 221, 240, 255, 279, 356, 442, 469, 481, 503, 506,
- 155, 254, 403, 480, 502, 505, 63, 93, 127, 253, 311, 341, 375, 501, 504, 62, 126, 187, 217, 251
- , 252, 310, 374, 435, 465, 499, 500, 125, 186, 250, 373, 434, 498, 124, 249, 372, 497, 248, 496
- };
-
-static int cbest_10[1023] = { 1, 2, 516, 4, 258, 8, 129, 16, 32, 580, 64, 128, 290, 145, 256, 3, 512,
- 517, 5, 259, 518, 588, 6, 9, 18, 36, 72, 144, 774, 10, 17, 131, 262, 288, 524, 645, 12, 33,
- 133, 266, 294, 387, 532, 576, 581, 20, 34, 65, 137, 274, 548, 582, 24, 66, 291, 838, 40, 68,
- 130, 147, 161, 322, 644, 709, 806, 48, 132, 193, 257, 386, 596, 80, 136, 298, 419, 612, 661, 772
- , 96, 149, 260, 272, 306, 403, 513, 146, 153, 160, 264, 292, 385, 514, 519, 544, 584, 589, 708,
- 870, 7, 19, 37, 73, 192, 354, 590, 770, 775, 11, 38, 74, 177, 263, 289, 418, 520, 525, 534, 641
- , 660, 725, 802, 836, 846, 13, 22, 76, 148, 209, 267, 295, 320, 330, 402, 526, 528, 533, 577,
- 647, 717, 804, 14, 21, 26, 35, 44, 135, 152, 165, 201, 275, 304, 384, 401, 435, 549, 578, 583,
- 604, 608, 782, 903, 25, 52, 67, 88, 139, 270, 296, 391, 417, 550, 620, 653, 790, 834, 839, 41,
- 50, 69, 104, 141, 176, 278, 302, 323, 395, 423, 540, 598, 640, 705, 724, 807, 866, 28, 42, 49,
- 70, 82, 100, 163, 208, 282, 310, 556, 592, 597, 646, 663, 677, 711, 716, 868, 878, 81, 134, 151
- , 164, 195, 200, 299, 326, 352, 362, 400, 434, 564, 613, 657, 768, 773, 902, 967, 97, 138, 155,
- 169, 197, 261, 273, 307, 358, 390, 416, 433, 451, 614, 652, 733, 800, 814, 844, 854, 935, 56, 84
- , 98, 140, 181, 217, 265, 293, 328, 338, 394, 422, 515, 545, 585, 704, 788, 822, 871, 919, 162,
- 179, 276, 355, 407, 427, 546, 586, 591, 616, 662, 669, 676, 710, 727, 741, 771, 780, 901, 39, 75
- , 150, 157, 194, 211, 225, 268, 280, 308, 314, 389, 411, 439, 521, 530, 535, 628, 656, 721, 803,
- 832, 837, 842, 847, 966, 23, 77, 112, 154, 168, 196, 300, 321, 331, 393, 421, 432, 450, 522, 527
- , 529, 552, 606, 643, 673, 693, 713, 732, 805, 864, 874, 934, 999, 15, 27, 45, 54, 78, 90, 108,
- 180, 216, 305, 483, 560, 579, 600, 605, 609, 719, 778, 783, 852, 876, 886, 899, 918, 983, 46, 53
- , 89, 167, 178, 185, 203, 213, 271, 297, 324, 334, 336, 360, 370, 406, 426, 467, 542, 551, 610,
- 621, 649, 668, 726, 740, 786, 791, 810, 820, 835, 900, 917, 931, 951, 965, 975, 30, 51, 105, 156
- , 205, 210, 224, 279, 303, 356, 366, 388, 405, 410, 438, 449, 459, 536, 541, 594, 599, 622, 655,
- 720, 812, 818, 862, 867, 933, 29, 43, 71, 83, 92, 101, 106, 143, 173, 283, 311, 312, 346, 392,
- 409, 420, 437, 443, 557, 566, 593, 642, 659, 672, 692, 707, 712, 737, 757, 869, 879, 911, 998,
- 60, 102, 241, 327, 353, 363, 399, 425, 482, 558, 565, 624, 679, 718, 735, 749, 769, 798, 898,
- 963, 982, 58, 86, 166, 183, 184, 202, 212, 219, 233, 286, 359, 431, 466, 615, 636, 648, 689, 729
- , 801, 815, 840, 845, 850, 855, 884, 916, 930, 950, 964, 974, 981, 995, 1015, 57, 85, 99, 120,
- 171, 199, 204, 229, 318, 329, 339, 368, 404, 448, 458, 465, 499, 654, 671, 685, 784, 789, 823,
- 872, 882, 915, 932, 949, 997, 1007, 116, 142, 159, 172, 277, 408, 436, 442, 455, 481, 491, 547,
- 572, 587, 617, 630, 658, 665, 706, 723, 736, 756, 776, 781, 816, 860, 894, 897, 910, 947, 991,
- 114, 221, 240, 269, 281, 309, 315, 332, 342, 344, 378, 398, 424, 441, 475, 487, 531, 618, 629,
- 678, 695, 734, 743, 748, 808, 833, 843, 929, 943, 962, 973, 113, 182, 189, 218, 227, 232, 301,
- 364, 374, 430, 457, 523, 553, 562, 602, 607, 688, 728, 753, 796, 830, 865, 875, 927, 980, 994,
- 1014, 55, 79, 91, 109, 170, 187, 198, 215, 228, 284, 415, 464, 498, 554, 561, 601, 670, 675, 684
- , 715, 745, 765, 779, 848, 853, 877, 887, 909, 914, 948, 979, 996, 1006, 1013, 47, 110, 158, 249
- , 316, 325, 335, 337, 361, 371, 397, 447, 454, 480, 490, 497, 538, 543, 611, 632, 664, 722, 787,
- 811, 821, 880, 896, 913, 946, 961, 971, 990, 1011, 31, 94, 220, 245, 357, 367, 429, 440, 474,
- 486, 537, 595, 623, 651, 681, 694, 701, 742, 759, 813, 819, 858, 863, 892, 928, 942, 945, 972,
- 989, 993, 1003, 1023, 62, 93, 107, 188, 207, 226, 237, 243, 313, 340, 347, 376, 456, 471, 473,
- 507, 567, 568, 626, 752, 890, 907, 926, 1005, 61, 103, 124, 175, 186, 214, 372, 414, 453, 463,
- 489, 503, 559, 625, 638, 674, 691, 714, 731, 739, 744, 764, 794, 799, 828, 908, 925, 939, 959,
- 978, 1012, 59, 87, 122, 248, 287, 350, 396, 413, 446, 485, 495, 496, 637, 751, 826, 841, 851,
- 885, 912, 941, 960, 970, 977, 1010, 118, 121, 235, 244, 319, 369, 382, 428, 445, 574, 650, 667,
- 680, 700, 758, 761, 785, 873, 883, 944, 988, 992, 1002, 1009, 1022, 117, 206, 223, 231, 236, 242
- , 470, 472, 506, 573, 631, 687, 777, 817, 856, 861, 895, 906, 987, 1004, 1021, 115, 174, 191, 333
- , 343, 345, 379, 452, 462, 469, 488, 502, 505, 619, 690, 697, 730, 738, 755, 809, 888, 924, 938,
- 958, 969, 1019, 253, 365, 375, 412, 484, 494, 501, 563, 603, 750, 767, 792, 797, 831, 923, 940,
- 957, 976, 1001, 234, 251, 285, 348, 444, 479, 555, 634, 666, 760, 824, 849, 905, 955, 1008, 111,
- 222, 230, 247, 317, 380, 461, 511, 539, 633, 686, 703, 747, 881, 937, 986, 1020, 95, 190, 468,
- 493, 504, 570, 696, 754, 859, 893, 968, 985, 1018, 63, 126, 252, 341, 377, 500, 569, 627, 683,
- 766, 891, 922, 956, 1000, 1017, 125, 239, 250, 373, 478, 639, 795, 829, 904, 921, 954, 123, 246,
- 351, 460, 477, 510, 702, 746, 763, 827, 936, 953, 119, 383, 492, 509, 575, 984, 682, 699, 857,
- 1016, 238, 255, 889, 920, 476, 762, 793, 952, 349, 508, 635, 825, 381, 698, 254, 571, 127 };
-
-static int cbest_11[1023] = { 1,
- 2, 1026, 4, 513, 8, 16, 1282, 32, 64, 641, 128, 256, 512, 1346, 1024, 3, 673, 1027, 5, 10, 20, 40, 80, 160, 320,
- 640, 6, 9, 515, 1030, 1280, 1539, 17, 517, 1034, 1283, 12, 18, 33, 521, 1042, 1362, 34, 65, 529, 1058, 1286, 1795,
- 24, 36, 66, 129, 545, 643, 1090, 1290, 1667, 68, 130, 257, 577, 645, 672, 1154, 1298, 1344, 48, 72, 132, 258, 336,
- 649, 681, 1314, 1347, 136, 168, 260, 514, 657, 769, 1538, 1923, 84, 96, 144, 264, 516, 1025, 1350, 1410, 1859, 42,
- 272, 520, 705, 1032, 1354, 11, 21, 41, 81, 161, 192, 288, 321, 528, 675, 1028, 1537, 1699, 1794, 7, 22, 82, 162,
- 322, 544, 642, 677, 897, 1031, 1046, 1066, 1106, 1186, 1281, 1366, 1378, 1666, 14, 44, 164, 324, 384, 523, 533,
- 553, 576, 593, 644, 833, 1035, 1040, 1288, 1360, 1987, 13, 19, 28, 88, 328, 519, 648, 680, 689, 1043, 1056, 1284,
- 1363, 1474, 1543, 1793, 1955, 26, 35, 56, 176, 656, 768, 1038, 1059, 1088, 1287, 1302, 1322, 1442, 1547, 1665,
- 1922, 25, 37, 52, 67, 112, 340, 352, 525, 531, 737, 1091, 1152, 1291, 1296, 1555, 1858, 1875, 38, 69, 74, 104, 131,
- 224, 547, 651, 661, 683, 704, 721, 961, 1050, 1062, 1155, 1299, 1312, 1345, 1370, 1571, 1799, 49, 70, 73, 133, 138,
- 148, 170, 208, 259, 337, 448, 537, 549, 579, 647, 674, 929, 1094, 1294, 1315, 1352, 1536, 1603, 1671, 1698, 1803,
- 1921, 50, 134, 137, 169, 261, 266, 276, 296, 338, 416, 581, 676, 896, 1074, 1098, 1158, 1348, 1394, 1408, 1675,
- 1707, 1811, 1857, 2019, 76, 85, 97, 145, 262, 265, 522, 532, 552, 561, 585, 592, 653, 659, 685, 771, 832, 849,
- 1064, 1162, 1194, 1306, 1318, 1351, 1386, 1411, 1506, 1683, 1827, 1986, 2003, 43, 86, 98, 140, 146, 172, 273, 344,
- 518, 688, 773, 1033, 1110, 1122, 1170, 1355, 1490, 1542, 1697, 1792, 1927, 1954, 100, 193, 268, 274, 289, 597, 609,
- 665, 697, 707, 777, 1029, 1044, 1104, 1184, 1330, 1364, 1376, 1414, 1546, 1664, 1731, 1863, 1931, 1963, 23, 46, 83,
- 92, 152, 163, 184, 194, 290, 323, 368, 524, 530, 555, 693, 709, 736, 753, 785, 993, 1036, 1047, 1067, 1107, 1187,
- 1218, 1320, 1358, 1367, 1379, 1418, 1450, 1545, 1554, 1867, 1874, 1939, 1985, 15, 30, 45, 60, 90, 120, 165, 180,
- 196, 240, 280, 292, 325, 330, 360, 385, 480, 546, 650, 660, 679, 682, 713, 720, 745, 801, 899, 960, 977, 1041,
- 1289, 1361, 1426, 1472, 1541, 1570, 1703, 1798, 1953, 29, 58, 89, 116, 166, 200, 232, 326, 329, 386, 464, 535, 536,
- 548, 578, 595, 646, 835, 901, 928, 1048, 1057, 1070, 1190, 1285, 1300, 1368, 1382, 1440, 1475, 1559, 1579, 1602,
- 1619, 1670, 1802, 1879, 1891, 1920, 27, 57, 177, 304, 388, 527, 557, 580, 691, 725, 837, 905, 937, 1039, 1054,
- 1089, 1114, 1292, 1303, 1323, 1374, 1443, 1553, 1674, 1706, 1715, 1801, 1810, 1856, 1873, 1991, 2018, 2035, 53,
- 106, 113, 178, 212, 332, 341, 353, 392, 424, 541, 560, 584, 601, 652, 658, 684, 770, 841, 848, 913, 1060, 1082,
- 1096, 1153, 1202, 1297, 1402, 1478, 1522, 1569, 1673, 1682, 1705, 1797, 1826, 1959, 1995, 2002, 2027, 39, 54, 75,
- 105, 114, 225, 342, 354, 400, 539, 569, 739, 772, 1051, 1063, 1078, 1092, 1138, 1160, 1192, 1304, 1313, 1326, 1371,
- 1384, 1398, 1446, 1482, 1514, 1551, 1601, 1669, 1696, 1763, 1815, 1835, 1926, 71, 139, 149, 171, 209, 226, 298,
- 356, 449, 565, 596, 608, 625, 663, 664, 696, 706, 723, 741, 776, 853, 865, 963, 1072, 1095, 1130, 1156, 1250, 1295,
- 1310, 1353, 1392, 1687, 1730, 1747, 1809, 1862, 1930, 1962, 1971, 2007, 2017, 51, 78, 108, 135, 150, 210, 228, 267,
- 277, 297, 339, 348, 417, 450, 551, 554, 587, 617, 655, 687, 692, 708, 752, 784, 931, 965, 992, 1009, 1075, 1099,
- 1159, 1174, 1234, 1316, 1338, 1349, 1395, 1409, 1458, 1494, 1504, 1544, 1563, 1575, 1681, 1825, 1866, 1883, 1929,
- 1938, 1961, 1984, 2001, 77, 142, 174, 263, 278, 346, 376, 418, 452, 496, 583, 669, 678, 701, 712, 729, 744, 761,
- 800, 898, 933, 969, 976, 1001, 1065, 1108, 1120, 1163, 1168, 1195, 1307, 1319, 1334, 1356, 1387, 1416, 1448, 1488,
- 1507, 1540, 1607, 1702, 1807, 1865, 1925, 1952, 87, 99, 141, 147, 156, 173, 188, 216, 248, 270, 300, 345, 372, 420,
- 456, 488, 534, 563, 594, 667, 699, 757, 779, 789, 809, 834, 851, 900, 1102, 1111, 1123, 1171, 1328, 1412, 1491,
- 1558, 1578, 1587, 1611, 1618, 1679, 1711, 1729, 1861, 1878, 1890, 1907, 1943, 2023, 94, 101, 124, 154, 186, 244,
- 269, 275, 284, 526, 556, 589, 690, 724, 775, 836, 904, 936, 945, 981, 1045, 1068, 1105, 1166, 1185, 1198, 1216,
- 1331, 1365, 1377, 1390, 1415, 1430, 1510, 1552, 1577, 1714, 1800, 1819, 1831, 1872, 1899, 1937, 1990, 2034, 47, 62,
- 93, 102, 122, 153, 185, 195, 282, 291, 312, 362, 369, 432, 468, 540, 599, 600, 611, 715, 747, 840, 857, 912, 1037,
- 1052, 1112, 1126, 1219, 1321, 1359, 1372, 1419, 1424, 1451, 1568, 1623, 1635, 1672, 1691, 1701, 1704, 1723, 1796,
- 1958, 1994, 2011, 2026, 2043, 31, 61, 91, 121, 181, 197, 202, 234, 241, 281, 293, 308, 331, 361, 370, 481, 538,
- 568, 613, 695, 711, 738, 755, 781, 787, 995, 1080, 1118, 1178, 1188, 1210, 1380, 1400, 1427, 1473, 1498, 1530,
- 1550, 1557, 1600, 1617, 1668, 1719, 1735, 1762, 1779, 1814, 1834, 1843, 1877, 1889, 1935, 1967, 1993, 2025, 2039,
- 59, 117, 167, 182, 198, 201, 233, 242, 294, 327, 387, 465, 482, 559, 564, 605, 624, 662, 722, 740, 803, 852, 864,
- 881, 907, 917, 939, 962, 979, 997, 1049, 1071, 1086, 1146, 1191, 1206, 1222, 1266, 1301, 1324, 1369, 1383, 1406,
- 1422, 1441, 1454, 1480, 1512, 1526, 1549, 1686, 1713, 1739, 1746, 1771, 1808, 1833, 1871, 1970, 1989, 2006, 2016,
- 2033, 118, 305, 334, 364, 389, 394, 404, 426, 466, 484, 543, 550, 573, 586, 603, 616, 633, 654, 686, 717, 749, 793,
- 805, 843, 873, 903, 930, 964, 1008, 1055, 1115, 1128, 1142, 1200, 1226, 1258, 1293, 1308, 1375, 1476, 1520, 1562,
- 1574, 1680, 1824 };
diff --git a/src/c/jerasure/src/cauchy_best_r6.c b/src/c/jerasure/src/cauchy_best_r6.c
deleted file mode 100644
index 2aab34e..0000000
--- a/src/c/jerasure/src/cauchy_best_r6.c
+++ /dev/null
@@ -1,1983 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "galois.h"
-#include "jerasure.h"
-#include "cauchy.h"
-
-static int PPs[33] = { -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1 };
-static int NOs[33];
-static int ONEs[33][33];
-
-static int *cbest_0;
-static int *cbest_1;
-static int cbest_2[3];
-static int cbest_3[7];
-static int cbest_4[15];
-static int cbest_5[31];
-static int cbest_6[63];
-static int cbest_7[127];
-static int cbest_8[255];
-static int cbest_9[511];
-static int cbest_10[1023];
-static int cbest_11[1023];
-static int cbest_12[1023], cbest_13[1023], cbest_14[1023], cbest_15[1023], cbest_16[1023], cbest_17[1023], cbest_18[1023],
- cbest_19[1023], cbest_20[1023], cbest_21[1023], cbest_22[1023], cbest_23[1023], cbest_24[1023], cbest_25[1023],
- cbest_26[1023], cbest_27[1023], cbest_28[1023], cbest_29[1023], cbest_30[1023], cbest_31[1023];
-static unsigned int cbest_32[1023];
-
-static int cbest_max_k[33] = { -1, -1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 1023,
- 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
- 1023, 1023, 1023, 1023 };
-
-static int cbest_init = 0;
-
-static int *cbest_all[33];
-
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-int cauchy_n_ones(int n, int w)
-{
- int no;
- int cno;
- int nones;
- int i, j;
- int highbit;
-
- highbit = (1 << (w-1));
-
- if (PPs[w] == -1) {
- nones = 0;
- PPs[w] = galois_single_multiply(highbit, 2, w);
- for (i = 0; i < w; i++) {
- if (PPs[w] & (1 << i)) {
- ONEs[w][nones] = (1 << i);
- nones++;
- }
- }
- NOs[w] = nones;
- }
-
- no = 0;
- for (i = 0; i < w; i++) if (n & (1 << i)) no++;
- cno = no;
- for (i = 1; i < w; i++) {
- if (n & highbit) {
- n ^= highbit;
- n <<= 1;
- n ^= PPs[w];
- cno--;
- for (j = 0; j < NOs[w]; j++) {
- cno += (n & ONEs[w][j]) ? 1 : -1;
- }
- } else {
- n <<= 1;
- }
- no += cno;
- }
- return no;
-}
-
-int *cauchy_original_coding_matrix(int k, int m, int w)
-{
- int *matrix;
- int i, j, index;
-
- if (w < 31 && (k+m) > (1 << w)) return NULL;
- matrix = talloc(int, k*m);
- if (matrix == NULL) return NULL;
- index = 0;
- for (i = 0; i < m; i++) {
- for (j = 0; j < k; j++) {
- matrix[index] = galois_single_divide(1, (i ^ (m+j)), w);
- index++;
- }
- }
- return matrix;
-}
-
-int *cauchy_xy_coding_matrix(int k, int m, int w, int *X, int *Y)
-{
- int index, i, j;
- int *matrix;
-
- matrix = talloc(int, k*m);
- if (matrix == NULL) { return NULL; }
- index = 0;
- for (i = 0; i < m; i++) {
- for (j = 0; j < k; j++) {
- matrix[index] = galois_single_divide(1, (X[i] ^ Y[j]), w);
- index++;
- }
- }
- return matrix;
-}
-
-void cauchy_improve_coding_matrix(int k, int m, int w, int *matrix)
-{
- int index, i, j, x;
- int tmp;
- int bno, tno, bno_index;
-
- for (j = 0; j < k; j++) {
- if (matrix[j] != 1) {
- tmp = galois_single_divide(1, matrix[j], w);
- index = j;
- for (i = 0; i < m; i++) {
- matrix[index] = galois_single_multiply(matrix[index], tmp, w);
- index += k;
- }
- }
- }
- for (i = 1; i < m; i++) {
- bno = 0;
- index = i*k;
- for (j = 0; j < k; j++) bno += cauchy_n_ones(matrix[index+j], w);
- bno_index = -1;
- for (j = 0; j < k; j++) {
- if (matrix[index+j] != 1) {
- tmp = galois_single_divide(1, matrix[index+j], w);
- tno = 0;
- for (x = 0; x < k; x++) {
- tno += cauchy_n_ones(galois_single_multiply(matrix[index+x], tmp, w), w);
- }
- if (tno < bno) {
- bno = tno;
- bno_index = j;
- }
- }
- }
- if (bno_index != -1) {
- tmp = galois_single_divide(1, matrix[index+bno_index], w);
- for (j = 0; j < k; j++) {
- matrix[index+j] = galois_single_multiply(matrix[index+j], tmp, w);
- }
- }
- }
-}
-
-int *cauchy_good_general_coding_matrix(int k, int m, int w)
-{
- int *matrix, i;
-
- if (m == 2 && k <= cbest_max_k[w]) {
- matrix = talloc(int, k*m);
- if (matrix == NULL) return NULL;
- if (!cbest_init) {
- cbest_init = 1;
- cbest_all[0] = cbest_0; cbest_all[1] = cbest_1; cbest_all[2] = cbest_2; cbest_all[3] = cbest_3; cbest_all[4] =
- cbest_4; cbest_all[5] = cbest_5; cbest_all[6] = cbest_6; cbest_all[7] = cbest_7; cbest_all[8] = cbest_8;
- cbest_all[9] = cbest_9; cbest_all[10] = cbest_10; cbest_all[11] = cbest_11; cbest_all[12] = cbest_12;
- cbest_all[13] = cbest_13; cbest_all[14] = cbest_14; cbest_all[15] = cbest_15; cbest_all[16] = cbest_16;
- cbest_all[17] = cbest_17; cbest_all[18] = cbest_18; cbest_all[19] = cbest_19; cbest_all[20] = cbest_20;
- cbest_all[21] = cbest_21; cbest_all[22] = cbest_22; cbest_all[23] = cbest_23; cbest_all[24] = cbest_24;
- cbest_all[25] = cbest_25; cbest_all[26] = cbest_26; cbest_all[27] = cbest_27; cbest_all[28] = cbest_28;
- cbest_all[29] = cbest_29; cbest_all[30] = cbest_30; cbest_all[31] = cbest_31; cbest_all[32] = (int *) cbest_32;
- }
- for (i = 0; i < k; i++) {
- matrix[i] = 1;
- matrix[i+k] = cbest_all[w][i];
- }
- return matrix;
- } else {
- matrix = cauchy_original_coding_matrix(k, m, w);
- if (matrix == NULL) return NULL;
- cauchy_improve_coding_matrix(k, m, w, matrix);
- return matrix;
- }
-}
-
-static int cbest_2[3] = { 1, 2, 3 };
-static int cbest_3[7] = { 1, 2, 5, 4, 7, 3, 6 };
-
-static int cbest_4[15] = { 1, 2, 9, 4, 8, 13, 3, 6, 12, 5, 11, 15, 10, 14, 7 };
-
-static int cbest_5[31] = { 1, 2, 18, 4, 9, 8, 22, 16, 3, 11, 19, 5, 10, 6, 20, 27, 13, 23, 26, 12,
- 17, 25, 24, 31, 30, 7, 15, 21, 29, 14, 28 };
-
-static int cbest_6[63] = { 1, 2, 33, 4, 8, 49, 16, 32, 57, 3, 6, 12, 24, 48, 5, 35, 9, 37, 10, 17,
- 41, 51, 56, 61, 18, 28, 53, 14, 20, 34, 7, 13, 25, 36, 59, 26, 39, 40, 45, 50, 60, 52, 63,
- 11, 30, 55, 19, 22, 29, 43, 58, 15, 21, 38, 44, 47, 62, 27, 54, 42, 31, 23, 46 };
-
-static int cbest_7[127] = { 1, 2, 68, 4, 34, 8, 17, 16, 76, 32, 38, 3, 64, 69, 5, 19, 35, 70, 6, 9,
- 18, 102, 10, 36, 85, 12, 21, 42, 51, 72, 77, 84, 20, 25, 33, 50, 78, 98, 24, 39, 49, 100, 110
- , 48, 65, 93, 40, 66, 71, 92, 7, 46, 55, 87, 96, 103, 106, 11, 23, 37, 54, 81, 86, 108, 13,
- 22, 27, 43, 53, 73, 80, 14, 26, 52, 74, 79, 99, 119, 44, 95, 101, 104, 111, 118, 29, 59, 89,
- 94, 117, 28, 41, 58, 67, 88, 115, 116, 47, 57, 83, 97, 107, 114, 127, 56, 82, 109, 113, 126,
- 112, 125, 15, 63, 75, 123, 124, 31, 45, 62, 91, 105, 122, 30, 61, 90, 121, 60, 120 };
-
-static int cbest_8[255] = { 1, 2, 142, 4, 71, 8, 70, 173, 3, 35, 143, 16, 17, 67, 134, 140, 172, 6, 34
- , 69, 201, 216, 5, 33, 86, 12, 65, 138, 158, 159, 175, 10, 32, 43, 66, 108, 130, 193, 234, 9,
- 24, 25, 50, 68, 79, 100, 132, 174, 200, 217, 20, 21, 42, 48, 87, 169, 41, 54, 64, 84, 96, 117
- , 154, 155, 165, 226, 77, 82, 135, 136, 141, 168, 192, 218, 238, 7, 18, 19, 39, 40, 78, 113,
- 116, 128, 164, 180, 195, 205, 220, 232, 14, 26, 27, 58, 109, 156, 157, 203, 235, 13, 28, 29, 38
- , 51, 56, 75, 85, 90, 101, 110, 112, 139, 171, 11, 37, 49, 52, 76, 83, 102, 119, 131, 150, 151
- , 167, 182, 184, 188, 197, 219, 224, 45, 55, 80, 94, 97, 133, 170, 194, 204, 221, 227, 236, 36,
- 47, 73, 92, 98, 104, 118, 152, 153, 166, 202, 207, 239, 251, 22, 23, 44, 74, 91, 148, 149, 161
- , 181, 190, 233, 46, 59, 88, 137, 146, 147, 163, 196, 208, 212, 222, 250, 57, 81, 95, 106, 111,
- 129, 160, 176, 199, 243, 249, 15, 53, 72, 93, 103, 115, 125, 162, 183, 185, 189, 206, 225, 255,
- 186, 210, 230, 237, 242, 248, 30, 31, 62, 89, 99, 105, 114, 121, 124, 178, 209, 213, 223, 228,
- 241, 254, 60, 191, 198, 247, 120, 240, 107, 127, 144, 145, 177, 211, 214, 246, 245, 123, 126,
- 187, 231, 253, 63, 179, 229, 244, 61, 122, 215, 252 };
-
-static int cbest_9[511] = { 1, 2, 264, 4, 132, 8, 66, 16, 33, 32, 280, 64, 140, 128, 3, 70, 265, 5,
- 133, 256, 266, 6, 9, 35, 67, 134, 268, 396, 10, 17, 34, 330, 12, 18, 68, 198, 297, 20, 37, 74
- , 136, 148, 165, 281, 296, 24, 36, 41, 65, 82, 99, 164, 272, 282, 388, 40, 49, 98, 141, 194,
- 284, 328, 412, 48, 97, 129, 142, 196, 346, 71, 72, 96, 130, 313, 392, 80, 206, 257, 267, 312,
- 334, 7, 135, 156, 173, 192, 258, 269, 397, 404, 11, 78, 144, 161, 172, 260, 270, 299, 331, 344,
- 398, 13, 19, 39, 69, 86, 103, 160, 167, 199, 202, 298, 322, 384, 14, 21, 38, 43, 75, 102, 137,
- 149, 166, 204, 289, 332, 408, 462, 22, 25, 42, 51, 83, 101, 138, 150, 273, 283, 288, 301, 350,
- 389, 429, 26, 50, 76, 100, 195, 274, 285, 300, 329, 363, 390, 413, 428, 28, 45, 84, 143, 197,
- 200, 214, 231, 276, 286, 315, 320, 347, 362, 414, 458, 44, 53, 73, 90, 107, 131, 152, 169, 181,
- 230, 314, 338, 361, 393, 400, 454, 460, 52, 57, 81, 106, 115, 168, 175, 180, 207, 229, 305, 335
- , 348, 360, 394, 421, 478, 56, 105, 114, 157, 163, 174, 193, 210, 227, 228, 259, 304, 317, 326,
- 405, 420, 445, 79, 104, 113, 145, 158, 162, 212, 226, 261, 271, 316, 345, 379, 399, 406, 444,
- 450, 456, 87, 88, 112, 146, 203, 225, 262, 291, 323, 336, 378, 385, 425, 452, 474, 15, 205, 222
- , 224, 239, 290, 303, 333, 367, 377, 386, 409, 424, 431, 463, 470, 476, 23, 139, 151, 189, 208,
- 238, 302, 324, 351, 366, 376, 410, 430, 437, 27, 47, 77, 94, 111, 177, 188, 237, 275, 293, 342,
- 365, 391, 436, 448, 29, 46, 55, 85, 110, 119, 171, 176, 183, 201, 215, 218, 235, 236, 277, 287,
- 292, 321, 355, 364, 415, 417, 459, 466, 472, 30, 54, 59, 91, 109, 118, 153, 170, 182, 220, 234,
- 278, 307, 339, 354, 401, 416, 423, 441, 455, 461, 468, 495, 58, 108, 117, 154, 233, 306, 319,
- 349, 353, 383, 395, 402, 422, 440, 447, 479, 494, 92, 116, 211, 232, 318, 327, 340, 352, 382,
- 446, 493, 61, 159, 213, 216, 247, 309, 381, 407, 427, 451, 457, 464, 491, 492, 60, 89, 123, 147
- , 185, 246, 263, 308, 337, 371, 380, 426, 433, 453, 475, 487, 490, 122, 184, 191, 223, 245, 370,
- 387, 432, 439, 471, 477, 486, 489, 511, 121, 179, 190, 209, 243, 244, 295, 325, 359, 369, 411,
- 438, 485, 488, 510, 95, 120, 178, 242, 294, 343, 358, 368, 419, 449, 483, 484, 509, 219, 241,
- 357, 418, 443, 467, 473, 482, 507, 508, 31, 221, 240, 255, 279, 356, 442, 469, 481, 503, 506,
- 155, 254, 403, 480, 502, 505, 63, 93, 127, 253, 311, 341, 375, 501, 504, 62, 126, 187, 217, 251
- , 252, 310, 374, 435, 465, 499, 500, 125, 186, 250, 373, 434, 498, 124, 249, 372, 497, 248, 496
- };
-
-static int cbest_10[1023] = { 1, 2, 516, 4, 258, 8, 129, 16, 32, 580, 64, 128, 290, 145, 256, 3, 512,
- 517, 5, 259, 518, 588, 6, 9, 18, 36, 72, 144, 774, 10, 17, 131, 262, 288, 524, 645, 12, 33,
- 133, 266, 294, 387, 532, 576, 581, 20, 34, 65, 137, 274, 548, 582, 24, 66, 291, 838, 40, 68,
- 130, 147, 161, 322, 644, 709, 806, 48, 132, 193, 257, 386, 596, 80, 136, 298, 419, 612, 661, 772
- , 96, 149, 260, 272, 306, 403, 513, 146, 153, 160, 264, 292, 385, 514, 519, 544, 584, 589, 708,
- 870, 7, 19, 37, 73, 192, 354, 590, 770, 775, 11, 38, 74, 177, 263, 289, 418, 520, 525, 534, 641
- , 660, 725, 802, 836, 846, 13, 22, 76, 148, 209, 267, 295, 320, 330, 402, 526, 528, 533, 577,
- 647, 717, 804, 14, 21, 26, 35, 44, 135, 152, 165, 201, 275, 304, 384, 401, 435, 549, 578, 583,
- 604, 608, 782, 903, 25, 52, 67, 88, 139, 270, 296, 391, 417, 550, 620, 653, 790, 834, 839, 41,
- 50, 69, 104, 141, 176, 278, 302, 323, 395, 423, 540, 598, 640, 705, 724, 807, 866, 28, 42, 49,
- 70, 82, 100, 163, 208, 282, 310, 556, 592, 597, 646, 663, 677, 711, 716, 868, 878, 81, 134, 151
- , 164, 195, 200, 299, 326, 352, 362, 400, 434, 564, 613, 657, 768, 773, 902, 967, 97, 138, 155,
- 169, 197, 261, 273, 307, 358, 390, 416, 433, 451, 614, 652, 733, 800, 814, 844, 854, 935, 56, 84
- , 98, 140, 181, 217, 265, 293, 328, 338, 394, 422, 515, 545, 585, 704, 788, 822, 871, 919, 162,
- 179, 276, 355, 407, 427, 546, 586, 591, 616, 662, 669, 676, 710, 727, 741, 771, 780, 901, 39, 75
- , 150, 157, 194, 211, 225, 268, 280, 308, 314, 389, 411, 439, 521, 530, 535, 628, 656, 721, 803,
- 832, 837, 842, 847, 966, 23, 77, 112, 154, 168, 196, 300, 321, 331, 393, 421, 432, 450, 522, 527
- , 529, 552, 606, 643, 673, 693, 713, 732, 805, 864, 874, 934, 999, 15, 27, 45, 54, 78, 90, 108,
- 180, 216, 305, 483, 560, 579, 600, 605, 609, 719, 778, 783, 852, 876, 886, 899, 918, 983, 46, 53
- , 89, 167, 178, 185, 203, 213, 271, 297, 324, 334, 336, 360, 370, 406, 426, 467, 542, 551, 610,
- 621, 649, 668, 726, 740, 786, 791, 810, 820, 835, 900, 917, 931, 951, 965, 975, 30, 51, 105, 156
- , 205, 210, 224, 279, 303, 356, 366, 388, 405, 410, 438, 449, 459, 536, 541, 594, 599, 622, 655,
- 720, 812, 818, 862, 867, 933, 29, 43, 71, 83, 92, 101, 106, 143, 173, 283, 311, 312, 346, 392,
- 409, 420, 437, 443, 557, 566, 593, 642, 659, 672, 692, 707, 712, 737, 757, 869, 879, 911, 998,
- 60, 102, 241, 327, 353, 363, 399, 425, 482, 558, 565, 624, 679, 718, 735, 749, 769, 798, 898,
- 963, 982, 58, 86, 166, 183, 184, 202, 212, 219, 233, 286, 359, 431, 466, 615, 636, 648, 689, 729
- , 801, 815, 840, 845, 850, 855, 884, 916, 930, 950, 964, 974, 981, 995, 1015, 57, 85, 99, 120,
- 171, 199, 204, 229, 318, 329, 339, 368, 404, 448, 458, 465, 499, 654, 671, 685, 784, 789, 823,
- 872, 882, 915, 932, 949, 997, 1007, 116, 142, 159, 172, 277, 408, 436, 442, 455, 481, 491, 547,
- 572, 587, 617, 630, 658, 665, 706, 723, 736, 756, 776, 781, 816, 860, 894, 897, 910, 947, 991,
- 114, 221, 240, 269, 281, 309, 315, 332, 342, 344, 378, 398, 424, 441, 475, 487, 531, 618, 629,
- 678, 695, 734, 743, 748, 808, 833, 843, 929, 943, 962, 973, 113, 182, 189, 218, 227, 232, 301,
- 364, 374, 430, 457, 523, 553, 562, 602, 607, 688, 728, 753, 796, 830, 865, 875, 927, 980, 994,
- 1014, 55, 79, 91, 109, 170, 187, 198, 215, 228, 284, 415, 464, 498, 554, 561, 601, 670, 675, 684
- , 715, 745, 765, 779, 848, 853, 877, 887, 909, 914, 948, 979, 996, 1006, 1013, 47, 110, 158, 249
- , 316, 325, 335, 337, 361, 371, 397, 447, 454, 480, 490, 497, 538, 543, 611, 632, 664, 722, 787,
- 811, 821, 880, 896, 913, 946, 961, 971, 990, 1011, 31, 94, 220, 245, 357, 367, 429, 440, 474,
- 486, 537, 595, 623, 651, 681, 694, 701, 742, 759, 813, 819, 858, 863, 892, 928, 942, 945, 972,
- 989, 993, 1003, 1023, 62, 93, 107, 188, 207, 226, 237, 243, 313, 340, 347, 376, 456, 471, 473,
- 507, 567, 568, 626, 752, 890, 907, 926, 1005, 61, 103, 124, 175, 186, 214, 372, 414, 453, 463,
- 489, 503, 559, 625, 638, 674, 691, 714, 731, 739, 744, 764, 794, 799, 828, 908, 925, 939, 959,
- 978, 1012, 59, 87, 122, 248, 287, 350, 396, 413, 446, 485, 495, 496, 637, 751, 826, 841, 851,
- 885, 912, 941, 960, 970, 977, 1010, 118, 121, 235, 244, 319, 369, 382, 428, 445, 574, 650, 667,
- 680, 700, 758, 761, 785, 873, 883, 944, 988, 992, 1002, 1009, 1022, 117, 206, 223, 231, 236, 242
- , 470, 472, 506, 573, 631, 687, 777, 817, 856, 861, 895, 906, 987, 1004, 1021, 115, 174, 191, 333
- , 343, 345, 379, 452, 462, 469, 488, 502, 505, 619, 690, 697, 730, 738, 755, 809, 888, 924, 938,
- 958, 969, 1019, 253, 365, 375, 412, 484, 494, 501, 563, 603, 750, 767, 792, 797, 831, 923, 940,
- 957, 976, 1001, 234, 251, 285, 348, 444, 479, 555, 634, 666, 760, 824, 849, 905, 955, 1008, 111,
- 222, 230, 247, 317, 380, 461, 511, 539, 633, 686, 703, 747, 881, 937, 986, 1020, 95, 190, 468,
- 493, 504, 570, 696, 754, 859, 893, 968, 985, 1018, 63, 126, 252, 341, 377, 500, 569, 627, 683,
- 766, 891, 922, 956, 1000, 1017, 125, 239, 250, 373, 478, 639, 795, 829, 904, 921, 954, 123, 246,
- 351, 460, 477, 510, 702, 746, 763, 827, 936, 953, 119, 383, 492, 509, 575, 984, 682, 699, 857,
- 1016, 238, 255, 889, 920, 476, 762, 793, 952, 349, 508, 635, 825, 381, 698, 254, 571, 127 };
-
-static int cbest_11[1023] = { 1,
- 2, 1026, 4, 513, 8, 16, 1282, 32, 64, 641, 128, 256, 512, 1346, 1024, 3, 673, 1027, 5, 10, 20, 40, 80, 160, 320,
- 640, 6, 9, 515, 1030, 1280, 1539, 17, 517, 1034, 1283, 12, 18, 33, 521, 1042, 1362, 34, 65, 529, 1058, 1286, 1795,
- 24, 36, 66, 129, 545, 643, 1090, 1290, 1667, 68, 130, 257, 577, 645, 672, 1154, 1298, 1344, 48, 72, 132, 258, 336,
- 649, 681, 1314, 1347, 136, 168, 260, 514, 657, 769, 1538, 1923, 84, 96, 144, 264, 516, 1025, 1350, 1410, 1859, 42,
- 272, 520, 705, 1032, 1354, 11, 21, 41, 81, 161, 192, 288, 321, 528, 675, 1028, 1537, 1699, 1794, 7, 22, 82, 162,
- 322, 544, 642, 677, 897, 1031, 1046, 1066, 1106, 1186, 1281, 1366, 1378, 1666, 14, 44, 164, 324, 384, 523, 533,
- 553, 576, 593, 644, 833, 1035, 1040, 1288, 1360, 1987, 13, 19, 28, 88, 328, 519, 648, 680, 689, 1043, 1056, 1284,
- 1363, 1474, 1543, 1793, 1955, 26, 35, 56, 176, 656, 768, 1038, 1059, 1088, 1287, 1302, 1322, 1442, 1547, 1665,
- 1922, 25, 37, 52, 67, 112, 340, 352, 525, 531, 737, 1091, 1152, 1291, 1296, 1555, 1858, 1875, 38, 69, 74, 104, 131,
- 224, 547, 651, 661, 683, 704, 721, 961, 1050, 1062, 1155, 1299, 1312, 1345, 1370, 1571, 1799, 49, 70, 73, 133, 138,
- 148, 170, 208, 259, 337, 448, 537, 549, 579, 647, 674, 929, 1094, 1294, 1315, 1352, 1536, 1603, 1671, 1698, 1803,
- 1921, 50, 134, 137, 169, 261, 266, 276, 296, 338, 416, 581, 676, 896, 1074, 1098, 1158, 1348, 1394, 1408, 1675,
- 1707, 1811, 1857, 2019, 76, 85, 97, 145, 262, 265, 522, 532, 552, 561, 585, 592, 653, 659, 685, 771, 832, 849,
- 1064, 1162, 1194, 1306, 1318, 1351, 1386, 1411, 1506, 1683, 1827, 1986, 2003, 43, 86, 98, 140, 146, 172, 273, 344,
- 518, 688, 773, 1033, 1110, 1122, 1170, 1355, 1490, 1542, 1697, 1792, 1927, 1954, 100, 193, 268, 274, 289, 597, 609,
- 665, 697, 707, 777, 1029, 1044, 1104, 1184, 1330, 1364, 1376, 1414, 1546, 1664, 1731, 1863, 1931, 1963, 23, 46, 83,
- 92, 152, 163, 184, 194, 290, 323, 368, 524, 530, 555, 693, 709, 736, 753, 785, 993, 1036, 1047, 1067, 1107, 1187,
- 1218, 1320, 1358, 1367, 1379, 1418, 1450, 1545, 1554, 1867, 1874, 1939, 1985, 15, 30, 45, 60, 90, 120, 165, 180,
- 196, 240, 280, 292, 325, 330, 360, 385, 480, 546, 650, 660, 679, 682, 713, 720, 745, 801, 899, 960, 977, 1041,
- 1289, 1361, 1426, 1472, 1541, 1570, 1703, 1798, 1953, 29, 58, 89, 116, 166, 200, 232, 326, 329, 386, 464, 535, 536,
- 548, 578, 595, 646, 835, 901, 928, 1048, 1057, 1070, 1190, 1285, 1300, 1368, 1382, 1440, 1475, 1559, 1579, 1602,
- 1619, 1670, 1802, 1879, 1891, 1920, 27, 57, 177, 304, 388, 527, 557, 580, 691, 725, 837, 905, 937, 1039, 1054,
- 1089, 1114, 1292, 1303, 1323, 1374, 1443, 1553, 1674, 1706, 1715, 1801, 1810, 1856, 1873, 1991, 2018, 2035, 53,
- 106, 113, 178, 212, 332, 341, 353, 392, 424, 541, 560, 584, 601, 652, 658, 684, 770, 841, 848, 913, 1060, 1082,
- 1096, 1153, 1202, 1297, 1402, 1478, 1522, 1569, 1673, 1682, 1705, 1797, 1826, 1959, 1995, 2002, 2027, 39, 54, 75,
- 105, 114, 225, 342, 354, 400, 539, 569, 739, 772, 1051, 1063, 1078, 1092, 1138, 1160, 1192, 1304, 1313, 1326, 1371,
- 1384, 1398, 1446, 1482, 1514, 1551, 1601, 1669, 1696, 1763, 1815, 1835, 1926, 71, 139, 149, 171, 209, 226, 298,
- 356, 449, 565, 596, 608, 625, 663, 664, 696, 706, 723, 741, 776, 853, 865, 963, 1072, 1095, 1130, 1156, 1250, 1295,
- 1310, 1353, 1392, 1687, 1730, 1747, 1809, 1862, 1930, 1962, 1971, 2007, 2017, 51, 78, 108, 135, 150, 210, 228, 267,
- 277, 297, 339, 348, 417, 450, 551, 554, 587, 617, 655, 687, 692, 708, 752, 784, 931, 965, 992, 1009, 1075, 1099,
- 1159, 1174, 1234, 1316, 1338, 1349, 1395, 1409, 1458, 1494, 1504, 1544, 1563, 1575, 1681, 1825, 1866, 1883, 1929,
- 1938, 1961, 1984, 2001, 77, 142, 174, 263, 278, 346, 376, 418, 452, 496, 583, 669, 678, 701, 712, 729, 744, 761,
- 800, 898, 933, 969, 976, 1001, 1065, 1108, 1120, 1163, 1168, 1195, 1307, 1319, 1334, 1356, 1387, 1416, 1448, 1488,
- 1507, 1540, 1607, 1702, 1807, 1865, 1925, 1952, 87, 99, 141, 147, 156, 173, 188, 216, 248, 270, 300, 345, 372, 420,
- 456, 488, 534, 563, 594, 667, 699, 757, 779, 789, 809, 834, 851, 900, 1102, 1111, 1123, 1171, 1328, 1412, 1491,
- 1558, 1578, 1587, 1611, 1618, 1679, 1711, 1729, 1861, 1878, 1890, 1907, 1943, 2023, 94, 101, 124, 154, 186, 244,
- 269, 275, 284, 526, 556, 589, 690, 724, 775, 836, 904, 936, 945, 981, 1045, 1068, 1105, 1166, 1185, 1198, 1216,
- 1331, 1365, 1377, 1390, 1415, 1430, 1510, 1552, 1577, 1714, 1800, 1819, 1831, 1872, 1899, 1937, 1990, 2034, 47, 62,
- 93, 102, 122, 153, 185, 195, 282, 291, 312, 362, 369, 432, 468, 540, 599, 600, 611, 715, 747, 840, 857, 912, 1037,
- 1052, 1112, 1126, 1219, 1321, 1359, 1372, 1419, 1424, 1451, 1568, 1623, 1635, 1672, 1691, 1701, 1704, 1723, 1796,
- 1958, 1994, 2011, 2026, 2043, 31, 61, 91, 121, 181, 197, 202, 234, 241, 281, 293, 308, 331, 361, 370, 481, 538,
- 568, 613, 695, 711, 738, 755, 781, 787, 995, 1080, 1118, 1178, 1188, 1210, 1380, 1400, 1427, 1473, 1498, 1530,
- 1550, 1557, 1600, 1617, 1668, 1719, 1735, 1762, 1779, 1814, 1834, 1843, 1877, 1889, 1935, 1967, 1993, 2025, 2039,
- 59, 117, 167, 182, 198, 201, 233, 242, 294, 327, 387, 465, 482, 559, 564, 605, 624, 662, 722, 740, 803, 852, 864,
- 881, 907, 917, 939, 962, 979, 997, 1049, 1071, 1086, 1146, 1191, 1206, 1222, 1266, 1301, 1324, 1369, 1383, 1406,
- 1422, 1441, 1454, 1480, 1512, 1526, 1549, 1686, 1713, 1739, 1746, 1771, 1808, 1833, 1871, 1970, 1989, 2006, 2016,
- 2033, 118, 305, 334, 364, 389, 394, 404, 426, 466, 484, 543, 550, 573, 586, 603, 616, 633, 654, 686, 717, 749, 793,
- 805, 843, 873, 903, 930, 964, 1008, 1055, 1115, 1128, 1142, 1200, 1226, 1258, 1293, 1308, 1375, 1476, 1520, 1562,
- 1574, 1680, 1824 };
-
-static int cbest_12[1023] = {
- 1, 2, 2089, 4, 8, 3133, 16, 2088, 1044, 3, 32, 522, 261, 3639, 5, 64, 65, 2057, 2091, 6, 130, 3132, 260,
- 2219, 9, 2093, 3117, 10, 128, 257, 2081, 3890, 12, 1566, 2217, 3129, 17, 514, 520, 3135, 18, 3196, 3637, 20,
- 256, 1028, 1045, 3638, 24, 33, 523, 783, 2105, 3197, 3647, 34, 1040, 1945, 2056, 2090, 2595, 3125, 3891, 36,
- 1046, 2348, 40, 1598, 2218, 3635, 7, 48, 66, 67, 131, 263, 269, 512, 538, 782, 1076, 1174, 1819, 2049, 2059,
- 2092, 2152, 3113, 3116, 3384, 3607, 3888, 68, 69, 277, 554, 1108, 1109, 1558, 1564, 1944, 2061, 2080, 2478,
- 3894, 72, 73, 134, 265, 293, 391, 526, 586, 587, 779, 2153, 2211, 2216, 2563, 3128, 4016, 11, 14, 80, 81,
- 129, 132, 138, 530, 1172, 1692, 2073, 2095, 2223, 2316, 3101, 3109, 3119, 3134, 3645, 3874, 13, 96, 97, 146,
- 259, 262, 268, 289, 799, 1052, 1060, 1158, 1567, 1818, 2083, 2221, 2344, 2349, 2476, 2980, 3045, 3192, 3368,
- 3636, 144, 162, 276, 389, 515, 521, 578, 579, 781, 972, 1024, 1156, 2085, 2120, 2235, 2282, 2312, 3131, 3623,
- 19, 22, 28, 160, 194, 195, 264, 292, 390, 778, 846, 1238, 1239, 1562, 1596, 1684, 1937, 1947, 2104, 2233,
- 2593, 3193, 3385, 3633, 3643, 3646, 3889, 21, 26, 324, 518, 536, 909, 1029, 1297, 2008, 2121, 2209, 2283,
- 2479, 2594, 2854, 3085, 3121, 3124, 3188, 3198, 3605, 3895, 25, 136, 258, 288, 528, 552, 798, 842, 1030,
- 1140, 1141, 1490, 1556, 2470, 2603, 2626, 2721, 3892, 3898, 4017, 35, 38, 44, 56, 320, 388, 423, 486, 524,
- 570, 584, 585, 618, 619, 648, 777, 780, 1041, 1594, 1817, 2097, 2107, 2317, 2561, 3105, 3164, 3189, 3199,
- 3263, 3634, 3875, 37, 42, 52, 285, 309, 421, 1036, 1042, 1047, 1056, 1072, 1170, 1313, 1427, 1823, 1936,
- 1946, 2048, 2053, 2058, 2065, 2109, 2280, 2345, 2477, 2579, 2627, 2981, 3041, 3044, 3112, 3127, 3369, 3388,
- 3603, 3606, 3631, 3765, 3872, 41, 192, 193, 273, 399, 775, 797, 908, 968, 1104, 1105, 1168, 1236, 1237, 1281,
- 1296, 1554, 1582, 1599, 1949, 2051, 2060, 2313, 2332, 2340, 2474, 3115, 3165, 3336, 3360, 3641, 4018, 49, 70,
- 71, 76, 77, 88, 89, 112, 113, 387, 454, 484, 513, 516, 539, 640, 744, 745, 1004, 1077, 1175, 1234, 1235,
- 1550, 1668, 1680, 1694, 1803, 2063, 2112, 2210, 2215, 2227, 2281, 2472, 2562, 2784, 3261, 3449, 3547, 3591,
- 3621, 84, 85, 104, 105, 142, 154, 178, 226, 227, 242, 243, 267, 271, 385, 422, 534, 555, 771, 776, 791, 834,
- 840, 844, 973, 1068, 1078, 1166, 1425, 1488, 1559, 1560, 1565, 1688, 1816, 2072, 2077, 2094, 2136, 2144,
- 2154, 2222, 2298, 2336, 2350, 2468, 2543, 2611, 2624, 2658, 2729, 2850, 2855, 2982, 3081, 3097, 3100, 3108,
- 3118, 3184, 3247, 3326, 3376, 3644, 3702, 4024, 82, 83, 135, 164, 170, 210, 211, 279, 284, 308, 328, 356,
- 372, 417, 420, 527, 542, 576, 577, 616, 617, 656, 795, 847, 1048, 1110, 1111, 1312, 1329, 1392, 1426, 1590,
- 1592, 1822, 2082, 2113, 2128, 2156, 2187, 2220, 2364, 2466, 2471, 2785, 2976, 3077, 3111, 3180, 3245, 3882,
- 3893, 3899, 3902, 4081, 15, 30, 50, 60, 98, 99, 120, 121, 133, 139, 166, 272, 291, 295, 325, 340, 398, 419,
- 531, 558, 582, 583, 712, 713, 774, 796, 838, 1064, 1084, 1173, 1182, 1232, 1233, 1280, 1522, 1542, 1676,
- 1693, 1811, 1948, 2009, 2084, 2137, 2145, 2155, 2185, 2213, 2225, 2234, 2286, 2299, 2599, 2601, 2625, 2659,
- 2745, 2870, 2988, 3047, 3130, 3185, 3194, 3327, 3352, 3386, 3545, 3601, 3619, 3622, 3629, 3703, 3733, 3773,
- 3896, 3955, 140, 147, 152, 176, 186, 198, 199, 224, 225, 281, 305, 332, 386, 397, 532, 546, 590, 591, 680,
- 696, 843, 901, 911, 974, 1026, 1032, 1053, 1061, 1116, 1117, 1159, 1164, 1491, 1552, 1802, 1941, 2069, 2087,
- 2122, 2129, 2157, 2168, 2232, 2296, 2314, 2318, 2446, 2567, 2592, 2737, 2852, 3040, 3073, 3093, 3103, 3156,
- 3181, 3389, 3627, 3632, 3642, 3858, 3873, 4020, 74, 75, 145, 163, 168, 208, 209, 266, 270, 321, 384, 395,
- 452, 487, 502, 664, 770, 790, 905, 1025, 1054, 1148, 1149, 1152, 1157, 1301, 1360, 1424, 1578, 1686, 1821,
- 1851, 1929, 1939, 2012, 2208, 2287, 2328, 2333, 2341, 2346, 2381, 2397, 2444, 2464, 2475, 2723, 2752, 3084,
- 3120, 3195, 3337, 3361, 3370, 3417, 3514, 3579, 3604, 3615, 3780, 3878, 3984, 4019, 23, 29, 46, 92, 93, 161,
- 240, 241, 278, 348, 416, 450, 562, 568, 610, 611, 650, 769, 773, 789, 794, 1154, 1222, 1223, 1328, 1376,
- 1494, 1520, 1563, 1597, 1685, 1951, 2010, 2075, 2123, 2169, 2284, 2297, 2473, 2511, 2541, 2602, 2619, 2666,
- 2720, 3107, 3123, 3157, 3294, 3324, 3372, 3448, 3453, 3546, 3587, 3670, 3710, 27, 196, 197, 290, 294, 418,
- 482, 519, 537, 540, 574, 688, 787, 793, 969, 1062, 1142, 1143, 1435, 1548, 1588, 1662, 1663, 1801, 1810,
- 1992, 2055, 2096, 2101, 2106, 2337, 2351, 2469, 2539, 2542, 2560, 2571, 2577, 2634, 2753, 2851, 2919, 2983,
- 3013, 3043, 3104, 3259, 3262, 3322, 3377, 3380, 3441, 3625, 3717, 3767, 3781, 3880, 3900, 3939, 4025, 4049,
- 137, 174, 280, 304, 322, 326, 344, 352, 393, 396, 455, 480, 485, 529, 553, 556, 760, 761, 832, 900, 910, 964,
- 970, 1005, 1031, 1124, 1125, 1180, 1289, 1317, 1333, 1540, 1557, 1574, 1580, 1586, 1690, 1724, 1921, 1940,
- 2052, 2064, 2099, 2108, 2250, 2266, 2285, 2304, 2365, 2467, 2578, 2583, 2609, 2656, 2667, 2848, 2977, 2996,
- 3126, 3166, 3176, 3215, 3239, 3257, 3295, 3325, 3512, 3602, 3617, 3630, 3671, 3700, 3711, 3761, 3764, 3842,
- 3883, 3903, 4080, 39, 45, 57, 148, 172, 184, 287, 297, 336, 394, 448, 525, 544, 571, 588, 589, 649, 746, 747,
- 835, 841, 845, 904, 996, 1006, 1038, 1074, 1080, 1092, 1093, 1178, 1220, 1221, 1300, 1489, 1492, 1538, 1595,
- 1670, 1682, 1756, 1757, 1795, 1815, 1820, 1835, 1850, 1928, 1938, 2050, 2111, 2179, 2356, 2440, 2509, 2565,
- 2587, 2635, 2871, 2915, 2978, 2984, 2989, 3046, 3053, 3114, 3148, 3172, 3207, 3292, 3323, 3340, 3353, 3356,
- 3364, 3387, 3401, 3445, 3544, 3589, 3640, 3729, 3757, 3769, 3796, 3897, 3954, 3959, 251, 373, 581, 1057,
- 1107, 1137, 1299, 1630, 1882, 2214, 2308, 2315, 2319, 2597, 2853, 3167, 3260, 3482, 3590, 3862 };
-
-static int cbest_13[1023] = {
- 1, 2, 4109, 4, 6155, 8, 7176, 16, 3588, 4108, 32, 2054, 3, 1027, 1794, 6, 64, 4620, 6154, 5, 897, 4111, 6153,
- 7177, 12, 2310, 3077, 4105, 128, 9, 24, 513, 1155, 10, 1026, 4101, 7689, 18, 48, 256, 896, 3589, 4365, 6159,
- 7178, 17, 448, 4557, 4621, 4684, 5647, 36, 96, 224, 1025, 1792, 20, 112, 512, 769, 1538, 1795, 2052, 3076,
- 3590, 6147, 6283, 7180, 33, 56, 72, 192, 2055, 2342, 3584, 4125, 6411, 7945, 28, 34, 577, 1154, 6922, 7240,
- 14, 144, 384, 2050, 4110, 4493, 5134, 5903, 6152, 7168, 7304, 7, 40, 65, 1171, 3620, 4104, 4141, 5004, 288,
- 768, 1153, 2308, 2567, 3652, 4097, 4107, 4397, 4685, 6157, 6171, 6379, 7688, 13, 68, 1024, 1810, 2311, 3461,
- 4676, 7179, 66, 129, 576, 1826, 3079, 3844, 4100, 4173, 4622, 5646, 6347, 8073, 25, 80, 899, 905, 1031, 1091,
- 1798, 2182, 2306, 2338, 2502, 3073, 3596, 4364, 4616, 5390, 5645, 6158, 6187, 7050, 7192, 11, 26, 913, 1922,
- 4117, 4556, 4652, 5262, 6151, 6299, 6443, 6923, 7181, 19, 49, 130, 136, 257, 1169, 1283, 1536, 1793, 2062,
- 2326, 2566, 2823, 4103, 4237, 6145, 7182, 7232, 7272, 7691, 7944, 50, 449, 515, 901, 961, 1035, 1163, 1170,
- 1539, 1802, 2048, 2340, 2695, 3586, 3591, 3604, 3616, 4553, 4612, 4680, 4748, 5005, 6146, 6219, 6282, 7208,
- 7241, 7288, 22, 37, 52, 97, 160, 225, 585, 1152, 1251, 1808, 2374, 2631, 3141, 3585, 4124, 4549, 4876, 5135,
- 5902, 6281, 6410, 7169, 7172, 7305, 7320, 7560, 21, 38, 98, 113, 132, 226, 258, 452, 545, 898, 904, 1187,
- 2053, 2070, 2278, 2438, 3205, 3460, 3525, 3636, 3972, 4127, 4137, 4157, 4367, 4677, 5132, 5839, 5901, 6163,
- 6169, 6409, 6666, 7693, 57, 73, 100, 114, 193, 228, 272, 450, 456, 517, 912, 1029, 1043, 1159, 1219, 1796,
- 2343, 3078, 3333, 4113, 4121, 4361, 4381, 4393, 4492, 4559, 4623, 4686, 5518, 6275, 6920, 7721, 8137, 29, 35,
- 44, 74, 104, 146, 641, 1030, 1090, 1730, 1824, 2246, 2318, 2822, 3072, 3085, 3592, 3621, 3660, 3780, 4099,
- 4140, 4149, 4165, 4205, 4333, 4617, 4700, 5454, 5643, 6149, 6377, 7051, 7170, 7244, 7753, 7947, 15, 30, 42,
- 60, 76, 120, 145, 196, 240, 260, 292, 320, 385, 480, 514, 771, 900, 960, 1123, 1411, 1818, 1986, 2051, 2086,
- 2304, 2694, 2951, 3622, 3648, 3653, 4096, 4106, 4221, 4396, 4429, 4589, 4636, 4653, 4716, 5422, 5679, 6156,
- 6170, 6378, 6603, 7184, 7242, 7681, 8072, 41, 58, 194, 200, 521, 581, 584, 785, 865, 1059, 1139, 1168, 1282,
- 1347, 1811, 2058, 2198, 2350, 2565, 2630, 3644, 4301, 4357, 4485, 4732, 5391, 5644, 5711, 6191, 6203, 6287,
- 6297, 7193, 7296, 7306, 70, 88, 148, 208, 289, 544, 579, 801, 1034, 1089, 1099, 1162, 1315, 1570, 1827, 1830,
- 1890, 2309, 2324, 2336, 2358, 2759, 3075, 3093, 3845, 4133, 4143, 4172, 4613, 4648, 4668, 4681, 4749, 4812,
- 4996, 5263, 5278, 5388, 5639, 5775, 6167, 6175, 6185, 6315, 6346, 6383, 6415, 6427, 6447, 7194, 7949, 7961,
- 69, 84, 116, 152, 264, 290, 386, 392, 516, 593, 773, 833, 909, 993, 1033, 1161, 1175, 1250, 1542, 1602, 1799,
- 1800, 1920, 2118, 2498, 2727, 3140, 3597, 3654, 4253, 4389, 4399, 4495, 4672, 4780, 4877, 5260, 6186, 6195,
- 6211, 6251, 6345, 6441, 6794, 6926, 6938, 7018, 7183, 7233, 7256, 7273, 7624, 7690, 7977, 67, 82, 400, 529,
- 609, 640, 929, 1041, 1157, 1179, 1186, 1249, 1281, 1666, 1858, 1923, 2060, 2180, 2334, 2406, 2500, 2563,
- 2711, 3173, 3204, 3463, 3524, 3598, 3628, 3716, 4036, 4116, 4169, 4489, 4509, 4608, 4618, 4660, 4678, 4764,
- 5006, 5130, 5899, 5919, 6150, 6267, 6298, 6351, 6442, 6475, 6667, 6730, 6954, 7048, 7174, 7209, 7212, 7224,
- 7289, 7308, 7400, 7432, 81, 140, 176, 232, 296, 416, 625, 770, 915, 945, 1028, 1042, 1158, 1185, 1218, 1537,
- 1814, 2068, 2183, 2307, 2322, 2339, 2390, 2503, 2950, 3109, 3189, 3332, 3397, 3457, 3606, 3612, 3846, 4102,
- 4236, 4525, 4687, 5000, 5020, 5582, 5641, 5871, 5935, 6144, 6339, 6403, 6539, 6921, 6986, 7173, 7188, 7196,
- 7321, 7336, 7561, 7705, 7937, 8065, 8075, 27, 54, 108, 168, 216, 304, 388, 432, 520, 561, 580, 705, 777, 784,
- 864, 907, 1039, 1167, 1203, 1546, 1803, 1806, 2314, 2366, 2382, 2564, 2639, 2821, 3081, 3084, 3149, 3221,
- 3365, 3469, 3587, 3600, 3605, 3617, 3668, 3840, 4373, 4413, 4541, 4552, 4701, 5133, 5198, 5838, 5900, 6179,
- 6218, 6303, 6395, 6914, 7042, 7216, 7234, 7274, 7322, 7368, 7692, 8169, 131, 137, 164, 464, 578, 673, 800,
- 903, 1095, 1122, 1195, 1410, 1475, 1762, 1809, 1822, 1834, 2056, 2063, 2078, 2082, 2178, 2276, 2327, 2330,
- 2370, 2599, 2627, 2693, 2758, 3137, 3477, 3594, 3618, 3684, 3812, 4119, 4175, 4548, 4555, 4573, 4637, 4644,
- 4654, 4682, 4692, 4717, 5068, 5126, 5254, 5446, 5486, 5519, 5663, 5837, 5895, 6031, 6161, 6217, 6279, 6280,
- 6291, 6435, 7210, 7236, 7276, 7290, 7695, 7720, 7725, 7737, 7745, 8136, 51, 138, 280, 352, 549, 592, 657,
- 772, 832, 908, 917, 992, 1051, 1058, 1121, 1138, 1191, 1217, 1346, 1816, 1842, 2018, 2049, 2066, 2190, 2274,
- 2341, 2346, 2372, 2510, 2629, 2726, 3493, 3521, 3608, 3632, 3637, 3700, 3860, 3973, 4126, 4136, 4156, 4189,
- 4229, 4366, 4405, 4421, 4461, 4628, 4696, 4733, 5276, 5420, 5455, 5470, 5516, 5642, 5677, 6162, 6168, 6223,
- 6273, 6363, 6408, 7171, 7245, 7264, 7752, 7946, 8077, 8089, 23, 53, 134, 161, 336, 454, 496, 528, 608, 921,
- 928, 1057, 1088, 1098, 1107, 1137, 1173, 1314, 1379, 1540, 1554, 1728, 1797, 1930, 2102, 2196, 2316, 2348,
- 2375, 2436, 2562, 2710, 2819, 3074, 3092, 3509, 3638, 3876, 4112, 4120, 4360, 4380, 4392, 4445, 4545, 4558,
- 4565, 4605, 4614, 4649, 4669, 4740, 4813, 4997, 5386, 5406, 5418, 5423, 5452, 5675, 5678, 5695, 5703, 6274,
- 6285, 6371, 6664, 7054, 7066, 7185, 7200, 7243, 7246, 7280, 7324, 7680, 7685, 7729, 7881, 39, 78, 133, 156,
- 162, 227, 274, 312, 328, 453, 519, 569, 624, 914, 965, 1032, 1037, 1075, 1097, 1165, 1313, 1363, 1409, 1825,
- 1828, 1938, 2074, 2084, 2214, 2242, 2279, 2439, 2534, 2691, 3143, 3593, 3650, 3656, 3661, 3781, 4123, 4148,
- 4153, 4239, 4353, 4363, 4481, 4551, 4673, 4781, 5128, 5258, 5358, 5637, 5710, 5807, 5835, 5897, 5917, 6173,
- 6355, 6413, 6419, 6425, 6459, 6795, 6858, 6927, 7019, 7297, 7300, 7307, 7312, 7562, 7723, 7953 };
-
-static int cbest_14[1023] = {
- 1, 2, 8737, 4, 8, 13105, 16, 8736, 32, 4368, 3, 2184, 17, 1092, 15289, 34, 546, 5, 64, 68, 273, 8739, 8745,
- 6, 136, 13104, 272, 9, 8741, 128, 8873, 12, 6552, 13109, 10, 544, 13107, 256, 18, 24, 3276, 8753, 33, 1088,
- 4369, 15288, 16381, 2185, 8705, 13089, 13173, 20, 512, 1093, 2186, 4372, 8195, 8738, 8744, 13113, 35, 66,
- 547, 1094, 1638, 2188, 4370, 4376, 8752, 8865, 12832, 15291, 36, 48, 65, 69, 257, 2176, 6416, 8707, 10921, 7,
- 19, 25, 70, 137, 3208, 8740, 9008, 9829, 13088, 13169, 15281, 96, 132, 138, 277, 554, 1024, 1108, 1604, 6544,
- 8749, 8872, 50, 140, 275, 281, 562, 802, 819, 3272, 4504, 7644, 8747, 8801, 8805, 12833, 13073, 13108, 21,
- 100, 129, 192, 276, 401, 1636, 4352, 4436, 8743, 12563, 13106, 15257, 15293, 13, 38, 40, 72, 130, 200, 264,
- 274, 280, 514, 550, 818, 2216, 2252, 6553, 8193, 8875, 9009, 15259, 11, 14, 49, 384, 400, 545, 1124, 2048,
- 2218, 6554, 8761, 8877, 13075, 13111, 15273, 409, 1100, 1126, 14197, 15153, 15839, 42, 528, 768, 1109, 4097,
- 4432, 8937, 9144, 15016, 16377, 16380, 51, 76, 98, 102, 204, 408, 552, 563, 803, 1090, 2200, 2248, 3277,
- 8203, 8704, 10785, 13172, 144, 260, 548, 560, 800, 817, 1028, 1089, 1536, 3822, 4096, 4353, 8194, 8760,
- 13112, 13117, 13241, 15272, 16365, 28, 258, 265, 1606, 1634, 4380, 6556, 8864, 8869, 8993, 9136, 10913,
- 12561, 12836, 15290, 26, 80, 84, 196, 385, 513, 816, 1056, 2180, 2187, 2190, 3072, 3268, 3278, 4373, 4400,
- 4496, 6145, 7508, 8706, 8755, 8941, 9016, 9145, 9287, 10920, 12013, 12290, 13175, 15017, 22, 67, 152, 1095,
- 1639, 2189, 3212, 3292, 4371, 4374, 4377, 4568, 4572, 6418, 6536, 6584, 8225, 8929, 9825, 9828, 12849, 13093,
- 13141, 13168, 13233, 14129, 14747, 15280, 16373, 16383, 37, 529, 570, 769, 1104, 1600, 1632, 2177, 5460,
- 6144, 6417, 6586, 7636, 8466, 8713, 8748, 8867, 13091, 13097, 13171, 15837, 16313, 16364, 71, 134, 168, 285,
- 392, 520, 530, 770, 1026, 1058, 1096, 2056, 2178, 2201, 2284, 3209, 4233, 4360, 4402, 4508, 4914, 6424, 7640,
- 8709, 8721, 8746, 8757, 8800, 8804, 8992, 9121, 9137, 10923, 11809, 12837, 13072, 13115, 13137, 14193, 15566,
- 97, 133, 139, 142, 145, 261, 288, 305, 337, 555, 561, 785, 801, 1025, 1120, 1140, 1605, 1646, 2112, 2116,
- 2730, 3210, 3264, 3754, 4378, 6420, 6545, 8201, 8211, 8451, 8742, 8754, 8803, 8809, 8841, 8889, 9001, 9017,
- 9831, 10925, 12291, 12562, 12834, 12840, 15161, 15256, 15283, 15292, 29, 56, 141, 259, 268, 279, 284, 674,
- 1110, 1142, 1538, 1570, 1911, 2280, 2457, 3273, 3820, 4232, 4505, 6281, 6546, 7628, 7645, 8192, 8715, 8751,
- 8769, 8874, 9012, 9285, 9317, 12848, 12960, 13057, 13077, 13092, 14880, 15258, 15265, 15285, 15295, 27, 52,
- 74, 81, 85, 101, 160, 193, 304, 336, 516, 558, 784, 1060, 1348, 1365, 1540, 1637, 2052, 2254, 2286, 3140,
- 3200, 3274, 3818, 4225, 4437, 4506, 4560, 6480, 6528, 6548, 7440, 8190, 8199, 8467, 8723, 8807, 8876, 9010,
- 9129, 9837, 11945, 12307, 12547, 13074, 13090, 13096, 13110, 13143, 13655, 14745, 14777, 15241, 15353, 15357,
- 15831, 23, 39, 41, 44, 73, 131, 153, 194, 201, 278, 290, 307, 403, 515, 536, 551, 610, 614, 806, 823, 1116,
- 1122, 1228, 1612, 1910, 2050, 2217, 2220, 2253, 2456, 2696, 3224, 3240, 3293, 3720, 4105, 4438, 6280, 6537,
- 8331, 8720, 8756, 8773, 8879, 8881, 9120, 9761, 9845, 10849, 10853, 12288, 12593, 13157, 13297, 13617, 14196,
- 15008, 15152, 15243, 15567, 15835, 15838, 16245, 15, 58, 112, 170, 202, 283, 341, 405, 571, 682, 810, 1040,
- 1105, 1125, 1364, 1568, 1620, 1860, 1877, 2049, 2192, 2219, 2250, 3076, 4101, 4112, 4224, 4356, 4500, 5392,
- 6448, 6555, 7504, 7646, 8210, 8227, 8450, 8711, 8813, 8888, 8936, 9000, 10889, 12009, 12567, 12835, 12841,
- 12968, 13059, 13177, 13181, 13305, 13309, 14888, 15155, 16108, 16376, 104, 306, 386, 393, 402, 531, 568, 771,
- 822, 930, 1030, 1101, 1127, 1602, 1644, 2120, 2728, 3080, 3288, 3752, 3814, 4104, 4354, 4361, 4434, 4440,
- 4444, 6153, 7576, 8202, 8219, 8464, 8602, 8843, 8933, 9013, 9797, 10784, 10789, 10891, 11877, 12571, 12896,
- 12900, 12961, 13056, 13237, 14097, 14181, 14474, 14881, 15249, 15264, 15275, 16357, 16369, 43, 116, 148, 224,
- 266, 282, 289, 340, 388, 404, 411, 465, 522, 576, 580, 608, 672, 1072, 1102, 1141, 1220, 1876, 1909, 2208,
- 2222, 2240, 2244, 2282, 3136, 4100, 4433, 4468, 4564, 4912, 5456, 6273, 6400, 6484, 7444, 7620, 7632, 8323,
- 8722, 8765, 9011, 9128, 9799, 9965, 10787, 10989, 12306, 12546, 13079, 13116, 13139, 13240, 13245, 14199,
- 15033, 15240, 15251, 15261, 15564, 15869, 16317, 16361, 54, 57, 77, 99, 103, 162, 205, 232, 269, 518, 553,
- 556, 566, 787, 1062, 1091, 1111, 1143, 1542, 2060, 2210, 2232, 2249, 3788, 3816, 6152, 6450, 7629, 7783,
- 8182, 8197, 8209, 8241, 8449, 8481, 8587, 8763, 8868, 8880, 8939, 9146, 9295, 9844, 10912, 10917, 11471,
- 11813, 12005, 12289, 12560, 13153, 13156, 13301, 13653, 13685, 15009, 15018, 15157, 15242, 15562, 16379, 46,
- 53, 78, 208, 320, 410, 448, 464, 549, 612, 772, 804, 821, 938, 955, 1029, 1349, 1537, 1642, 1908, 2202, 2234,
- 3242, 3284, 3722, 3823, 4240, 4464, 6160, 6272, 6529, 6558, 6576, 7098, 7237, 8233, 8329, 8771, 8775, 8871,
- 8905, 8940, 9020, 9283, 9286, 10793, 12012, 12294, 12844, 12857, 12969, 13058, 13174, 13587, 14099, 14521,
- 14739, 14761, 14889, 15020, 15321, 15430, 15833, 16109, 16349, 82, 88, 146, 262, 291, 537, 578, 680, 776,
- 786, 807, 1032, 1074, 1117, 1160, 1574, 1607, 1635, 1654, 1894, 1907, 2124, 2182, 2204, 2440, 3084, 3225,
- 3308, 3810, 4099, 4120, 4301, 4381, 4488, 4643, 6147, 6557, 6578, 6616, 6620, 7782, 8188, 8207, 8218, 8224,
- 8465, 8603, 8833, 8928, 9249, 9824, 11873, 12305, 12337, 12545, 12565, 12577, 12853, 12897, 12901, 12977,
- 13119, 13140, 13232, 13243, 14128, 14133, 14180, 14475, 14746, 15121, 15217, 15263, 15274, 15771, 15829,
- 16177, 16356, 16372, 16382, 30, 59, 113, 197, 206, 469, 811, 820, 827, 896, 928, 954, 1041, 1057, 1136, 1216,
- 1344, 1361, 1572, 1621, 1861, 2080, 2144, 2181, 2193, 2321, 3073, 3204, 3214, 3269, 3279, 4113, 4357, 4384,
- 4404, 4420, 4497, 4922, 7236, 7492, 7509, 8579, 8600, 8712, 8729, 8866, 9138, 9319, 9827, 9833, 10915, 10985,
- 11267, 12595, 12631, 12838, 13101, 13170, 13382, 13619, 13651, 14131, 14472, 14504, 15032, 15325, 15565,
- 15827, 16125, 16312 };
-
-static int cbest_15[1023] = {
- 1, 2, 16385, 4, 8, 24577, 16, 32, 64, 28673, 128, 256, 512, 1024, 30721, 2048, 4096, 8192, 16384, 31745, 3,
- 6, 12, 24, 48, 96, 192, 384, 768, 1536, 3072, 6144, 12288, 24576, 5, 16387, 9, 16389, 10, 17, 16393, 24579,
- 28672, 18, 33, 14336, 16401, 24581, 20, 34, 65, 7168, 16417, 24585, 32257, 36, 66, 129, 3584, 16449, 24593,
- 28675, 40, 68, 130, 257, 1792, 16513, 24609, 28677, 30720, 72, 132, 258, 513, 896, 16641, 24641, 28681, 80,
- 136, 260, 448, 514, 1025, 15360, 16897, 24705, 28689, 144, 224, 264, 516, 1026, 2049, 17409, 24833, 28705,
- 30723, 112, 160, 272, 520, 1028, 2050, 4097, 7680, 18433, 25089, 28737, 30725, 56, 288, 528, 1032, 2052,
- 4098, 8193, 20481, 25601, 28801, 30729, 31744, 32513, 28, 320, 544, 1040, 2056, 3840, 4100, 8194, 26625,
- 28929, 30737, 14, 576, 1056, 2064, 4104, 8196, 16386, 29185, 30753, 7, 13, 25, 49, 97, 193, 385, 640, 769,
- 1088, 1537, 1920, 2080, 3073, 4112, 6145, 8200, 12289, 15872, 16388, 29697, 30785, 31747, 26, 50, 98, 194,
- 386, 770, 1152, 1538, 2112, 3074, 4128, 6146, 8208, 12290, 16391, 16392, 16397, 16409, 16433, 16481, 16577,
- 16769, 17153, 17921, 19457, 22529, 24578, 30849, 31749, 52, 100, 196, 388, 772, 960, 1280, 1540, 2176, 3076,
- 4160, 6148, 8224, 12292, 16400, 24580, 30977, 31753, 11, 104, 200, 392, 776, 1544, 2304, 3080, 4224, 6152,
- 7936, 8256, 12296, 16416, 24583, 24584, 24589, 24601, 24625, 24673, 24769, 24961, 25345, 26113, 27649, 31233,
- 31761, 32256, 19, 22, 208, 400, 480, 784, 1552, 2560, 3088, 4352, 6160, 8320, 12304, 14337, 16395, 16448,
- 24592, 28674, 31777, 21, 35, 38, 44, 416, 800, 1568, 3104, 4608, 6176, 7169, 8448, 12320, 14338, 16403,
- 16512, 24608, 28676, 31809, 32641, 37, 67, 70, 76, 88, 240, 832, 1600, 3136, 3585, 3968, 5120, 6208, 7170,
- 8704, 12352, 14340, 16405, 16419, 16640, 23553, 24587, 24640, 28679, 28680, 28685, 28697, 28721, 28769,
- 28865, 29057, 29441, 30209, 31873, 32259, 41, 69, 131, 134, 140, 152, 176, 1664, 1793, 3200, 3586, 6272,
- 7172, 9216, 12416, 14344, 16128, 16421, 16451, 16896, 19969, 24595, 24704, 28688, 32001, 32261, 42, 73, 120,
- 133, 259, 262, 268, 280, 304, 352, 897, 1794, 3328, 3588, 6400, 7176, 10240, 12544, 14352, 16425, 16453,
- 16515, 17408, 18177, 24597, 24611, 24832, 28704, 30722, 32265, 74, 81, 137, 261, 449, 515, 518, 524, 536,
- 560, 608, 704, 898, 1796, 1984, 3592, 6656, 7184, 12800, 14368, 15361, 16457, 16517, 16643, 17281, 18432,
- 24613, 24643, 25088, 28161, 28683, 28736, 30724, 32273, 60, 82, 138, 145, 225, 265, 450, 517, 900, 1027,
- 1030, 1036, 1048, 1072, 1120, 1216, 1408, 1800, 3600, 7200, 13312, 14400, 15362, 16465, 16521, 16645, 16833,
- 16899, 20480, 24617, 24645, 24707, 25600, 26369, 28691, 28800, 30727, 30728, 30733, 30745, 30769, 30817,
- 30913, 31105, 31489, 32289, 32512, 84, 113, 146, 161, 226, 266, 273, 452, 521, 904, 1029, 1808, 2051, 2054,
- 2060, 2072, 2096, 2144, 2240, 2432, 2816, 3616, 7232, 7681, 8064, 14464, 15364, 16529, 16609, 16649, 16901,
- 17411, 24649, 24709, 24835, 25473, 26624, 28693, 28707, 28928, 30736, 32321, 30, 57, 114, 148, 162, 228, 274,
- 289, 456, 522, 529, 912, 992, 1033, 1824, 2053, 3648, 4099, 4102, 4108, 4120, 4144, 4192, 4288, 4480, 4864,
- 5632, 7296, 7682, 14592, 15368, 16497, 16545, 16657, 16905, 17413, 18435, 24065, 24657, 24713, 24837, 25025,
- 25091, 28709, 28739, 29184, 30752, 32385, 29, 58, 116, 164, 232, 276, 290, 321, 464, 530, 545, 928, 1034,
- 1041, 1856, 2057, 3712, 3841, 4101, 7424, 7684, 8195, 8198, 8204, 8216, 8240, 8288, 8384, 8576, 8960, 9728,
- 11264, 14848, 15376, 16441, 16673, 16913, 17417, 18437, 20483, 24721, 24801, 24841, 25093, 25603, 28713,
- 28741, 28803, 29696, 30465, 30731, 30784, 31746, 32515, 15, 168, 292, 322, 532, 546, 577, 1042, 1057, 2058,
- 2065, 3842, 4105, 7688, 8197, 15392, 16390, 16396, 16408, 16413, 16432, 16480, 16576, 16705, 16768, 16929,
- 17152, 17425, 17920, 18441, 19456, 20225, 20485, 22528, 24689, 24737, 24849, 25097, 25605, 26627, 28745,
- 28805, 28931, 29569, 30739, 30848, 31748, 32517, 32705, 296, 324, 496, 548, 578, 641, 1044, 1058, 1089, 1921,
- 2066, 2081, 3844, 4032, 4106, 4113, 7696, 8201, 15424, 15873, 16256, 16399, 16961, 17441, 18449, 20489,
- 24633, 24865, 25105, 25609, 26629, 28753, 28809, 28933, 29121, 29187, 30741, 30755, 30976, 31751, 31752,
- 31757, 31769, 31793, 31841, 31937, 32129, 32521, 27, 51, 54, 99, 102, 108, 195, 198, 204, 216, 328, 387, 390,
- 396, 408, 432, 552, 580, 642, 771, 774, 780, 792, 816, 864, 1060, 1090, 1153, 1539, 1542, 1548, 1560, 1584,
- 1632, 1728, 1922, 2068, 2082, 2113, 3075, 3078, 3084, 3096, 3120, 3168, 3264, 3456, 3848, 4114, 4129, 6147,
- 6150, 6156, 6168, 6192, 6240, 6336, 6528, 6912, 7712, 8202, 8209, 12291, 12294, 12300, 12312, 12336, 12384,
- 12480, 12672, 13056, 13824, 15488, 15874, 17025, 17473, 18305, 18465, 20497, 24582, 24588, 24600, 24605,
- 24624, 24672, 24768, 24897, 24960, 25121, 25344, 25617, 26112, 26633, 27648, 28417, 28817, 28897, 28937,
- 29189, 29699, 30757, 30787, 31232, 31760, 32529, 53, 101, 197, 336, 389, 584, 644, 773, 961, 1064, 1092,
- 1154, 1281, 1541, 1924, 2084, 2114, 2177, 3077, 3856, 4116, 4130, 4161, 6149, 7744, 8210, 8225, 12293, 15616,
- 15876, 16394, 16411, 16435, 16483, 16579, 16771, 17155, 17537, 17923, 18497, 19459, 20513, 22531, 24591,
- 25153, 25633, 26641, 28785, 28833, 28945, 29193, 29701, 30761, 30789, 30851, 31776, 32545, 105, 201, 248,
- 393, 592, 648, 777, 962, 1096, 1156, 1282, 1545, 1928, 2088, 2116, 2178, 2305, 3081, 3872, 4132, 4162, 4225,
- 6153, 7808, 7937, 8212, 8226, 8257, 12297, 15880, 16402, 16437, 16485, 16581, 16773, 17157, 17345, 17665,
- 17925, 18561, 19461, 20545, 22533, 25217, 25665, 26497, 26657, 28729, 28961, 29201, 29705, 30793, 30853,
- 30979, 31617, 31755, 31808, 32577, 32640, 23, 46, 92, 106, 184, 202, 209, 368, 394, 401, 481, 656, 736, 778,
- 785, 964, 1104, 1160, 1284, 1472, 1546, 1553, 1936, 2016, 2120, 2180, 2306, 2561, 2944, 3082, 3089, 3904,
- 4136, 4164, 4226, 4353, 5888, 6154, 6161, 7938, 8228, 8258, 8321, 11776, 12298, 12305, 15888, 16404, 16418,
- 16489, 16585, 16777, 17161, 17929, 18689, 19465, 20609, 22537, 23552, 24321, 24586, 24603, 24627, 24675,
- 24771, 24963, 25347, 25729, 26115, 26689, 27651, 28678, 28684, 28696, 28701, 28720, 28768, 28864, 28993,
- 29056, 29217, 29440, 29713, 30208, 30801, 30857, 30981, 31169, 31235, 31763, 31872, 32258, 45, 78, 156, 312,
- 624, 672, 801, 1554, 2562, 14384, 16593, 16785, 17937, 24677, 31237, 31765 };
-
-static int cbest_16[1023] = {
- 1, 2, 34821, 4, 8, 52231, 16, 60934, 34820, 32, 17410, 3, 8705, 17, 34, 5, 68, 34823, 34829, 6, 136, 30467,
- 34817, 39173, 52230, 64, 272, 52229, 9, 544, 52227, 10, 1088, 12, 2176, 26115, 4352, 50311, 60935, 18, 8704,
- 45956, 60932, 20, 128, 24, 34837, 47876, 17408, 30466, 33, 36, 17411, 52239, 59974, 40, 22978, 48, 256, 8707,
- 17414, 34822, 34828, 43524, 60930, 65286, 19, 35, 8709, 17418, 23938, 26114, 34816, 34836, 34853, 39172,
- 52247, 21, 69, 15233, 21762, 30465, 34825, 52225, 52228, 7, 25, 38, 72, 137, 13057, 19586, 34831, 34881,
- 52226, 42, 65, 80, 273, 10881, 26113, 29987, 34819, 34855, 39175, 50, 66, 70, 76, 545, 9793, 11489, 45957,
- 60933, 60942, 11, 14, 84, 96, 138, 1089, 11969, 34957, 37253, 50310, 52261, 13, 152, 274, 1090, 2177, 34885,
- 34949, 35093, 39169, 50309, 52246, 52263, 49, 144, 257, 546, 4353, 8713, 32643, 32901, 34845, 35365, 38341,
- 47877, 60950, 22, 28, 140, 512, 2180, 4354, 25155, 30471, 35909, 40261, 45716, 52291, 52295, 100, 129, 160,
- 276, 2178, 8706, 17426, 26123, 39717, 49351, 52235, 59975, 44, 98, 130, 168, 548, 4360, 8708, 8721, 34833,
- 51271, 52237, 60928, 81, 132, 192, 304, 514, 1092, 15232, 30464, 30475, 34839, 34861, 39181, 43525, 45958,
- 47872, 50307, 52238, 52367, 53703, 60931, 60951, 60966, 65287, 51, 88, 102, 204, 280, 408, 816, 1632, 3264,
- 6528, 8720, 13056, 17409, 17412, 26119, 45952, 47396, 52243, 52503, 59972, 60964, 26, 37, 85, 170, 196, 288,
- 340, 552, 680, 1360, 2720, 4356, 5440, 10880, 17416, 22858, 22976, 23936, 26112, 29986, 34844, 40565, 40805,
- 52245, 52775, 54663, 41, 56, 153, 162, 200, 306, 612, 1096, 1224, 2448, 4896, 7616, 8737, 9792, 11488, 17422,
- 17440, 21760, 22979, 30483, 34849, 34852, 39189, 47044, 47878, 49895, 50855, 59494, 60454, 65284, 145, 320,
- 336, 1028, 2184, 8711, 11968, 17415, 17442, 34824, 34889, 34893, 43520, 50583, 52224, 60940, 60994, 23, 29,
- 258, 392, 560, 608, 17419, 23698, 23939, 30482, 34827, 34830, 34832, 34863, 34880, 43526, 50319, 52259,
- 56583, 60943, 64806, 46, 58, 74, 176, 260, 324, 384, 1024, 1104, 3808, 8225, 8712, 14993, 17427, 17474,
- 19584, 21763, 32642, 34818, 34838, 34854, 39174, 45964, 52257, 57574, 59970, 39, 73, 82, 92, 264, 290, 2192,
- 5744, 5984, 8769, 11429, 19587, 25154, 26131, 29985, 30227, 30470, 34869, 35077, 38933, 39205, 41604, 43532,
- 52242, 52359, 58054, 60948, 61070, 63366, 65294, 43, 52, 112, 116, 400, 2056, 4368, 8739, 12577, 16450,
- 17478, 20802, 21766, 26122, 29747, 30497, 34841, 34851, 34956, 37252, 42212, 50327, 52244, 52255, 52260,
- 60998, 61206, 65282, 67, 71, 77, 89, 178, 184, 576, 672, 1904, 8773, 10401, 10883, 11425, 11849, 13061,
- 15235, 15241, 17546, 18626, 22850, 22982, 26121, 26130, 30499, 34884, 34948, 34965, 35092, 39168, 39188,
- 42692, 45700, 45717, 45972, 47884, 50191, 50308, 52233, 52262, 59014, 60938, 15, 27, 78, 97, 139, 148, 164,
- 289, 352, 356, 1120, 1216, 2992, 8717, 8841, 9313, 13059, 13065, 17538, 17682, 19594, 23522, 30469, 30474,
- 32900, 34857, 34883, 35364, 37013, 37249, 38340, 39171, 44612, 45836, 52293, 59906, 60246, 57, 86, 232, 275,
- 640, 784, 1091, 2872, 8715, 8977, 9797, 17424, 17434, 17954, 23942, 26118, 26147, 29953, 32641, 34897, 34901,
- 34945, 34981, 35908, 37255, 38221, 39233, 40260, 49349, 51127, 52290, 52294, 59766, 59982, 60110, 60929,
- 60949, 154, 224, 321, 368, 547, 648, 712, 952, 4112, 4384, 9795, 11491, 15237, 16321, 17430, 22986, 25153,
- 26117, 26145, 28787, 29027, 29955, 32403, 32897, 34871, 34887, 34951, 38337, 39207, 39716, 40533, 45596,
- 45959, 47873, 47892, 49350, 51007, 51269, 52234, 52241, 52271, 52289, 52303, 60946, 60967, 104, 118, 141,
- 156, 259, 328, 393, 513, 516, 561, 580, 704, 768, 800, 1496, 2181, 2208, 4355, 8725, 8736, 11393, 11457,
- 11971, 19590, 21106, 21346, 22306, 22918, 29507, 30473, 30535, 34868, 34917, 34959, 35009, 35013, 35076,
- 40021, 45701, 45953, 45973, 47397, 49231, 50305, 50341, 51270, 52236, 52269, 52279, 52311, 52487, 59973,
- 60965, 30, 59, 101, 142, 161, 177, 186, 261, 277, 325, 385, 464, 520, 578, 786, 1105, 1344, 1424, 2179, 2182,
- 4362, 8710, 8723, 10885, 17420, 19170, 20130, 23946, 24675, 25635, 29991, 30603, 31683, 32647, 34835, 34840,
- 34860, 34909, 34953, 34973, 35095, 35101, 35911, 39180, 39309, 39477, 40517, 40549, 40737, 50306, 50326,
- 50343, 52254, 52277, 52366, 53702, 59910, 59990, 60962, 61062, 45, 54, 83, 93, 99, 114, 131, 134, 146, 169,
- 172, 194, 236, 265, 278, 291, 358, 476, 528, 549, 650, 736, 1094, 1122, 1436, 1572, 2048, 2193, 2240, 2432,
- 2856, 4361, 8724, 8741, 11493, 17450, 17482, 19858, 21770, 22786, 22914, 22994, 30531, 32903, 32909, 34847,
- 34913, 34964, 35089, 35367, 35373, 38343, 39183, 39237, 39719, 40535, 45988, 47045, 47879, 49827, 51267,
- 52327, 52365, 52502, 53583, 53701, 54661, 59426, 59495, 60455, 60958, 65285, 53, 113, 117, 133, 193, 234,
- 305, 308, 372, 448, 468, 515, 550, 582, 642, 716, 748, 936, 1093, 1152, 1300, 1408, 1428, 2210, 2848, 3144,
- 4369, 8224, 8722, 11153, 11459, 11841, 11973, 14992, 17446, 17448, 22798, 25163, 26127, 30481, 34877, 34983,
- 35333, 35361, 35917, 39177, 39685, 40263, 40564, 40804, 43521, 43540, 45236, 45476, 45580, 45718, 47636,
- 47893, 49893, 50183, 50371, 50567, 50991, 52251, 52299, 52325, 52363, 52501, 52774, 53575, 54662, 60452,
- 60941, 60947, 60995, 65302, 103, 166, 179, 185, 205, 281, 296, 312, 354, 370, 409, 472, 714, 740, 817, 928,
- 1164, 1432, 1480, 1568, 1633, 1872, 2244, 2600, 3265, 4358, 4364, 4386, 5712, 6288, 6529, 8768, 8833, 9729,
- 10065, 10673, 10889, 11397, 11428, 11761, 17413, 17444, 22790, 22856, 23682, 23954, 26183, 29713, 29984,
- 29995, 30123, 30226, 34848, 34859, 34896, 34900, 35905, 40257, 43527, 45116, 45572, 45712, 45828, 46016,
- 47156, 47392, 47874, 49894, 50854, 50983, 52307, 52499, 52773, 60960, 60974, 60992, 64807, 90, 149, 171, 197,
- 208, 238, 282, 341, 353, 357, 518, 553, 681, 744, 770, 1098, 1156, 1280, 1296, 1361, 1472, 1634, 2188, 2328,
- 2721, 2864, 3266, 3744, 4357, 4420, 5200, 5441, 6530, 7496, 8729, 8738, 9585, 9801, 9929, 10553, 11395,
- 11497, 12576, 14977, 15249, 17417, 21778, 22794, 22859, 22977, 23696, 23818, 23937, 26129, 26251, 29715,
- 29746, 30055, 30479, 30480, 30496, 33989, 34870, 34888, 34892, 34905, 34915, 34919, 34989, 35017, 38213,
- 39191, 39713, 40741, 45954, 45965, 45990, 46924, 47908, 49347, 50317, 50582, 50735, 50853, 52240, 52267,
- 52771, 54423, 56581, 57506, 57510, 57575, 59492, 59971, 59991, 60102, 60936, 60982, 198, 374, 1097, 1225,
- 7488, 15113, 17441, 17472, 26387, 29883, 30211, 34879, 35205, 50463, 50999, 52258, 61071 };
-
-
-static int cbest_17[1023] = {
- 1, 2, 65540, 4, 32770, 8, 16385, 16, 32, 73732, 64, 128, 36866, 256, 512, 18433, 1024, 2048, 4096, 74756,
- 8192, 16384, 37378, 32768, 3, 18689, 65536, 65541, 5, 32771, 65542, 6, 9, 18, 36, 72, 144, 288, 576, 1152,
- 2304, 4608, 9216, 18432, 98310, 10, 17, 16387, 32774, 36864, 65548, 81925, 12, 33, 16389, 32778, 49155,
- 65556, 73728, 73733, 74884, 20, 34, 65, 16393, 32786, 65572, 73734, 24, 66, 129, 16401, 32802, 36867, 65604,
- 106502, 40, 68, 130, 257, 16417, 32834, 65668, 73740, 90117, 102406, 48, 132, 258, 513, 16449, 32898, 36870,
- 37442, 65796, 73748, 80, 136, 260, 514, 1025, 16513, 18435, 33026, 36874, 53251, 66052, 73764, 83973, 96,
- 264, 516, 1026, 2049, 16641, 18437, 33282, 36882, 51203, 66564, 73796, 160, 272, 520, 1028, 2050, 4097,
- 16897, 18441, 18688, 33794, 36898, 37376, 67588, 73860, 74752, 74757, 110598, 192, 528, 1032, 2052, 4098,
- 8193, 9344, 17409, 18449, 18721, 34818, 36930, 69636, 73988, 74758, 320, 544, 1040, 2056, 4100, 4672, 8194,
- 18465, 36994, 74244, 92165, 107526, 384, 1056, 2064, 2336, 4104, 8196, 16386, 18497, 20481, 37122, 37379,
- 40962, 74764, 81924, 91141, 640, 1088, 1168, 2080, 4112, 8200, 16388, 18561, 24577, 32769, 49154, 55299,
- 74772, 75780, 102918, 584, 768, 2112, 4128, 8208, 16392, 37382, 37890, 74788, 77828, 98308, 292, 1280, 2176,
- 4160, 8224, 16400, 18945, 32772, 32784, 37386, 38914, 53763, 65537, 74820, 74900, 146, 1536, 4224, 8256,
- 16416, 18691, 19457, 32776, 37394, 49153, 65538, 65543, 65568, 84229, 90116, 111622, 7, 19, 37, 73, 145, 289,
- 577, 1153, 2305, 2560, 4352, 4609, 8320, 9217, 16448, 18693, 37410, 45058, 51459, 75012, 98306, 98311,
- 111110, 11, 38, 74, 290, 578, 1154, 2306, 3072, 4610, 8448, 9218, 16512, 18434, 18697, 22529, 32775, 32800,
- 36865, 53250, 65544, 65549, 65558, 65612, 65684, 65828, 66116, 66692, 67844, 70148, 75268, 81921, 83972,
- 93189, 106500, 13, 22, 76, 148, 580, 1156, 2308, 4612, 5120, 8704, 9220, 16640, 18436, 18705, 26625, 32779,
- 32806, 32832, 32842, 32914, 33058, 33346, 33922, 35074, 37506, 41986, 51202, 65550, 65552, 65557, 73729,
- 74880, 74885, 81927, 102404, 14, 21, 26, 35, 44, 152, 296, 1160, 2312, 4616, 6144, 9224, 16391, 16403, 16421,
- 16457, 16529, 16673, 16896, 16961, 17537, 18440, 20993, 25601, 32787, 32896, 36868, 36880, 37440, 37450,
- 37634, 65573, 73730, 73735, 73760, 74886, 76804, 92421, 98318, 114695, 25, 52, 67, 88, 304, 592, 2320, 4624,
- 9232, 10240, 16395, 17408, 18448, 18720, 18753, 32782, 32803, 33024, 36872, 49159, 53249, 55811, 65574,
- 65600, 65605, 78852, 81933, 98326, 106498, 106503, 107654, 41, 50, 69, 104, 131, 176, 608, 1184, 4640, 9248,
- 12288, 16397, 18464, 18817, 32790, 32835, 33280, 38402, 49163, 51201, 55555, 65564, 65606, 65664, 65669,
- 73736, 73741, 73750, 73804, 73876, 74020, 74308, 74892, 76036, 78340, 81941, 90113, 91269, 92164, 98342,
- 102402, 102407, 28, 42, 49, 70, 82, 100, 133, 208, 259, 352, 1216, 2368, 9280, 9360, 16405, 16419, 18496,
- 20480, 32794, 32899, 33792, 36871, 36896, 37443, 39426, 49171, 65580, 65670, 65792, 65797, 73742, 73744,
- 73749, 81957, 90119, 91140, 98374, 110596, 81, 134, 137, 164, 200, 261, 416, 515, 704, 2432, 4736, 16409,
- 16451, 18560, 19201, 24576, 32810, 32838, 33027, 34816, 36875, 36902, 36928, 36938, 37010, 37154, 38018,
- 39170, 46082, 49187, 55298, 65588, 65798, 66048, 66053, 73765, 74916, 81989, 83969, 98438, 102982, 106510,
- 112134, 122887, 97, 138, 262, 265, 274, 328, 400, 517, 832, 1027, 1408, 4680, 4864, 9472, 16425, 16453,
- 16515, 18725, 19713, 32818, 32902, 33283, 36883, 36992, 37446, 45570, 49219, 65620, 65676, 66054, 66560,
- 66565, 73766, 73792, 73797, 74948, 82053, 83975, 90125, 98566, 102414, 106518, 107524, 118791, 56, 84, 98,
- 140, 161, 266, 273, 518, 521, 530, 548, 656, 800, 1029, 1664, 2051, 2816, 9728, 16433, 16517, 16643, 18439,
- 18451, 18469, 18505, 18577, 18944, 19009, 19585, 23041, 27649, 32850, 32906, 33030, 33795, 36878, 36899,
- 37120, 37377, 40960, 49283, 53255, 53762, 53827, 65636, 65804, 66566, 67584, 67589, 73756, 73798, 73856,
- 73861, 74753, 82181, 90133, 98822, 102422, 106534, 110594, 110599, 111750, 116743, 162, 193, 268, 522, 529,
- 1030, 1033, 1042, 1060, 1096, 1312, 1600, 2053, 2340, 3328, 4099, 5632, 9345, 16465, 16521, 16645, 16899,
- 18443, 18690, 19456, 22785, 32866, 33034, 33286, 34819, 36886, 36931, 37458, 49152, 49411, 51207, 53259,
- 55297, 65700, 65812, 66060, 67590, 69632, 69637, 73772, 73862, 73984, 73989, 74754, 74759, 74784, 75140,
- 82437, 83981, 84228, 90149, 93445, 99334, 102438, 102916, 106566, 194, 276, 321, 524, 545, 1034, 1041, 2054,
- 2057, 2066, 2084, 2120, 2192, 2624, 3200, 4101, 4673, 6656, 8195, 9346, 11264, 16481, 16649, 16901, 17411,
- 18445, 18692, 18723, 26881, 32930, 33042, 33290, 33798, 36890, 36995, 37380, 37392, 37474, 37888, 49667,
- 51211, 51458, 53267, 65732, 66068, 66572, 69638, 73780, 73990, 74240, 74245, 75396, 82949, 83989, 84261,
- 90181, 92161, 93317, 100358, 102470, 106630, 107522, 107527, 111174, 112, 168, 196, 280, 322, 385, 532, 546,
- 1036, 1057, 1170, 2058, 2065, 2337, 4102, 4105, 4114, 4132, 4168, 4240, 4384, 4674, 5248, 6400, 8197, 9348,
- 13312, 16545, 16657, 16905, 17413, 18453, 18467, 18696, 22528, 32962, 33298, 33802, 34822, 36906, 36934,
- 37123, 37384, 38912, 40963, 42114, 50179, 51219, 51491, 53283, 53761, 65860, 66084, 66580, 67596, 70212,
- 73812, 73868, 74246, 74760, 74765, 74774, 74828, 75044, 75332, 77060, 79364, 81920, 84005, 90245, 91137,
- 92167, 93188, 102534, 106758, 110606, 126983, 324, 386, 536, 641, 1044, 1058, 1089, 1169, 2060, 2081, 2338,
- 4106, 4113, 4676, 8198, 8201, 8210, 8228, 8264, 8336, 8480, 8768, 9352, 10496, 12800, 16577, 16913, 17417,
- 18457, 18499, 18704, 18729, 20483, 25729, 26624, 33090, 33314, 33810, 34826, 36914, 36998, 37570, 51235,
- 53315, 56067, 65924, 66596, 67604, 67876, 69644, 73828, 73996, 74766, 74768, 74773, 75776, 75781, 76932,
- 81926, 84037, 86021, 90373, 91143, 102662, 102914, 102919, 107014, 110614, 111620, 124935, 388, 552, 585,
- 642, 769, 1048, 1090, 2068, 2082, 2113, 4108, 4129, 8202, 8209, 16390, 16402, 16420, 16456, 16528, 16672,
- 16705, 16929, 16960, 17425, 17536, 18473, 18501, 18563, 18737, 20485, 20992, 21057, 24579, 25600, 32912,
- 33154, 33826, 34834, 35106, 36946, 37002, 37126, 37383, 37408, 37698, 37891, 40966, 45056, 51267, 51457,
- 53379, 65824, 66180, 66628, 66708, 67620, 69652, 73892, 74004, 74252, 74789, 74902, 75782, 77824, 77829,
- 78980, 84101, 90629, 92173, 92420, 98304, 98309, 107534, 110630, 111108, 114694, 120839, 123911, 392, 644,
- 770, 1281, 2072, 2114, 2177, 4116, 4130, 4161, 8204, 8225, 16769, 17441, 18565, 24581, 33410, 33938, 34850,
- 36962, 37130, 38530, 38915, 40970, 46594, 49158, 53248, 55303, 55810, 69668, 73924, 74260, 74790, 74821,
- 74896, 74901, 77830, 91149, 92181, 92453, 107542, 110662 };
-
-static int cbest_18[1023] = {
- 1, 2, 131136, 4, 65568, 8, 32784, 16, 16392, 32, 8196, 64, 4098, 128, 2049, 256, 512, 132160, 1024, 2048,
- 66080, 4096, 33040, 8192, 16520, 8260, 16384, 3, 4130, 32768, 131137, 5, 65569, 131138, 6, 9, 2065, 32785,
- 65536, 65570, 131140, 196704, 10, 17, 16393, 32786, 65572, 131144, 163920, 12, 18, 33, 8197, 16394, 32788,
- 65576, 98352, 131072, 131152, 147528, 20, 34, 65, 4099, 8198, 16396, 32792, 65584, 81960, 131168, 132168,
- 139332, 24, 36, 66, 129, 258, 516, 1032, 2064, 49176, 73764, 135234, 40, 68, 130, 257, 2051, 4102, 4128,
- 8204, 16408, 32816, 40980, 65632, 69666, 131264, 133185, 48, 72, 132, 513, 2053, 4106, 8212, 8256, 16424,
- 24588, 32848, 36882, 65696, 66084, 67617, 131392, 132161, 80, 136, 260, 514, 1025, 2057, 4114, 8228, 16456,
- 16512, 20490, 32912, 34833, 65824, 131648, 132162, 96, 144, 264, 1026, 12294, 18441, 33024, 66081, 132164,
- 197728, 160, 272, 520, 1028, 2050, 2081, 4162, 8324, 10245, 16648, 33042, 33296, 66048, 66082, 66592, 133184,
- 164944, 197216, 192, 288, 528, 2052, 2113, 4097, 4226, 6147, 8452, 16904, 33041, 33808, 67616, 132096,
- 132176, 148552, 320, 544, 1040, 2056, 2177, 4354, 8708, 17416, 34832, 66088, 98864, 132192, 135232, 140356,
- 164176, 384, 576, 1056, 2305, 4100, 4610, 8193, 9220, 16521, 18440, 33044, 66096, 69664, 82472, 98608,
- 136258, 640, 1088, 2080, 2561, 4104, 5122, 8194, 10244, 16522, 33048, 36880, 74276, 132288, 134209, 139268,
- 139328, 147656, 768, 1152, 2112, 3073, 4112, 6146, 8261, 16385, 16524, 20488, 49432, 66144, 69634, 70178,
- 73760, 82088, 132416, 1280, 2176, 8200, 8262, 12292, 16386, 33072, 34817, 40976, 41236, 49304, 66208, 68129,
- 132672, 147520, 1536, 2304, 4131, 4160, 4352, 8208, 16388, 16536, 24584, 32769, 33104, 37138, 66336, 73828,
- 81952, 2560, 4224, 6145, 8224, 8268, 8704, 16552, 24716, 32770, 33168, 35089, 41044, 49168, 131139, 134208,
- 135266, 148544, 163904, 198240, 7, 3072, 4134, 8276, 12290, 16400, 16584, 17408, 20618, 24652, 32772, 65537,
- 65571, 67104, 98336, 131141, 196705, 11, 2067, 4138, 4608, 8292, 8320, 10241, 16416, 18569, 24580, 32776,
- 32787, 33552, 34816, 36914, 65538, 65573, 68128, 74272, 131142, 131145, 133201, 136256, 163921, 165200,
- 196672, 196706, 13, 19, 2069, 4146, 5120, 8448, 12358, 16395, 16448, 16776, 20482, 20522, 32789, 34064,
- 49160, 65540, 65574, 65577, 67633, 98353, 131073, 131146, 131153, 147529, 163922, 196708, 14, 21, 35, 2073,
- 6144, 8199, 8388, 10309, 12326, 16397, 17032, 18433, 32790, 32793, 32800, 35088, 37136, 40964, 65544, 65578,
- 65585, 69632, 70176, 81961, 98320, 98354, 99120, 131074, 131148, 131154, 131169, 132169, 139333, 140292,
- 140352, 147530, 148680, 163924, 196712, 229488, 22, 25, 37, 67, 259, 517, 1033, 4194, 8516, 9216, 16398,
- 16640, 17544, 18457, 32794, 32832, 36866, 49177, 65552, 65580, 65586, 73765, 81928, 81962, 98356, 131076,
- 131156, 131170, 132170, 135235, 139334, 147532, 163928, 196640, 196720, 213096, 26, 38, 41, 69, 131, 518,
- 1034, 2066, 2097, 4103, 4129, 4258, 6179, 8205, 8772, 10240, 10261, 16409, 16896, 18568, 32796, 32817, 32896,
- 40981, 49178, 65588, 65633, 69667, 70146, 73732, 73766, 81964, 82600, 98360, 131080, 131160, 131172, 131265,
- 131394, 131652, 132172, 133200, 139264, 163856, 180312, 197736, 204900, 28, 42, 49, 70, 73, 133, 262, 1036,
- 2068, 2129, 4107, 4386, 6163, 8206, 8213, 8257, 9284, 16410, 16425, 24589, 32818, 32849, 36883, 40982, 49180,
- 65592, 65600, 65634, 65697, 65826, 66085, 66600, 67632, 114744, 131088, 131176, 131266, 131393, 133187,
- 135238, 135264, 139340, 147464, 147544, 163952, 164952, 172116, 200802, 44, 50, 74, 81, 134, 137, 261, 266,
- 515, 524, 2055, 2072, 2193, 4115, 4132, 4642, 8214, 8229, 8258, 10308, 12288, 16412, 16426, 16457, 16513,
- 18432, 20491, 20616, 24590, 32820, 32850, 32913, 33026, 33280, 33300, 33816, 35073, 41232, 49560, 65636,
- 65664, 65698, 65825, 66052, 66086, 67585, 67619, 69670, 73772, 74340, 81976, 82464, 106548, 131104, 131184,
- 131268, 131649, 132104, 132163, 132184, 133189, 135242, 136290, 139348, 147560, 155724, 164928, 168018,
- 196832, 197220, 198753, 52, 76, 82, 97, 138, 145, 265, 274, 532, 1027, 1048, 2059, 2321, 4110, 4136, 5154,
- 8230, 12295, 16428, 16458, 16514, 16650, 16908, 18456, 32824, 32852, 32914, 33025, 33792, 34835, 36886,
- 36912, 40988, 65640, 65700, 65792, 67621, 69674, 73780, 73824, 90156, 98416, 102450, 131272, 131396, 131650,
- 132165, 132200, 133193, 135170, 135250, 139364, 140364, 147648, 151626, 164048, 165969, 196960, 197729, 56,
- 84, 98, 140, 146, 161, 273, 290, 521, 548, 1029, 1064, 2061, 2096, 2577, 4118, 4144, 4163, 6178, 8220, 8264,
- 8325, 8454, 9228, 10260, 12356, 16460, 16516, 16649, 18443, 20480, 20494, 20520, 24712, 32856, 32916, 33043,
- 33297, 34837, 36890, 41040, 41300, 49208, 49424, 57372, 65648, 65704, 65828, 66049, 66083, 66092, 66593,
- 67625, 69682, 82024, 82080, 86058, 98480, 98848, 98868, 100401, 131200, 131280, 131400, 132166, 133121,
- 134225, 136266, 143430, 149577, 164160, 164945, 197217, 197696, 197730, 88, 100, 148, 162, 193, 268, 289,
- 322, 522, 529, 580, 1030, 1096, 2083, 2128, 3089, 4122, 4227, 4614, 5130, 6162, 8236, 8272, 8326, 8453,
- 10247, 12324, 16440, 16905, 18445, 24604, 24648, 32920, 33028, 33298, 33809, 34841, 41012, 49240, 49296,
- 53274, 65712, 65832, 66050, 66100, 66560, 66594, 77862, 82476, 84009, 98592, 131296, 131328, 131408, 131656,
- 132097, 132177, 132296, 133186, 133217, 134217, 139460, 141381, 147784, 148553, 148672, 164178, 164432,
- 164946, 197184, 197218, 197732, 104, 152, 164, 194, 276, 321, 386, 530, 545, 644, 1041, 1160, 2054, 2085,
- 2115, 2192, 2307, 2565, 3081, 4166, 4192, 4355, 4384, 8244, 8288, 8709, 8768, 12302, 16472, 16528, 16652,
- 16906, 17417, 17536, 20506, 24576, 24620, 24780, 32880, 33032, 33046, 33810, 35072, 36864, 37170, 45078,
- 51225, 65840, 66089, 66596, 67584, 67618, 68145, 69730, 73892, 75813, 82216, 98610, 98865, 131424, 131584,
- 131664, 132098, 132178, 132193, 132424, 133188, 135233, 135362, 137283, 139588, 140357, 148040, 148554,
- 164177, 164948, 198752, 230512, 112, 168, 196, 280, 292, 385, 546, 577, 772, 1042, 1057, 1288, 2058, 2089,
- 2117, 2179, 2320, 4101, 4170, 4230, 4256, 4611, 6151, 6177, 8332, 8710, 9221, 10253, 12310, 12354, 16488,
- 16544, 17418, 24708, 28686, 32944, 33045, 33050, 33304, 33812, 34834, 34865, 36946, 41108, 43029, 49416,
- 65760, 66056, 66090, 66097, 66148, 67620, 67681, 69665, 69794, 70144, 70182, 71715, 74020, 82473, 98609,
- 98832, 98866, 99376, 131680, 132100, 132180, 132194, 132680, 133192, 133313, 135490, 136259, 139844, 140358,
- 148556, 165968, 197224, 197664, 197744, 214120, 230000, 176, 200, 296, 324, 536, 641, 770, 1044, 1058, 1089,
- 1544, 2060, 2121, 2181, 4105, 4178, 4234, 4358, 8460, 9222, 10305, 16576, 17420, 18442, 18473, 20554, 20610,
- 32976, 33049, 33056, 34836, 34897, 38931, 41220, 65888, 66098, 66608, 67624, 67745, 68133, 74277, 74336,
- 82440, 82474, 131520, 132196, 132418, 133120, 133441, 134224, 135746, 164880, 181336, 197232, 205924, 229744 };
-
-
-static int cbest_19[1023] = {
- 1, 2, 262163, 4, 393242, 8, 196621, 16, 32, 360469, 64, 262162, 128, 131081, 3, 442393, 262161, 6, 256,
- 393243, 5, 327703, 12, 196620, 512, 393240, 9, 24, 98310, 262167, 426008, 10, 458782, 48, 1024, 49155,
- 196617, 17, 213004, 262171, 393234, 483359, 18, 96, 262147, 360471, 393246, 20, 2048, 16385, 196623, 286738,
- 360468, 442392, 33, 192, 32770, 106502, 229391, 34, 65540, 196613, 270355, 360465, 36, 384, 4096, 131080,
- 143369, 180234, 393226, 40, 65, 53251, 221196, 262195, 66, 768, 376852, 397338, 442395, 68, 8192, 24577,
- 49154, 90117, 503836, 72, 129, 1536, 262160, 262227, 80, 110598, 198669, 288786, 393274, 132, 3072, 16384,
- 98308, 188426, 196637, 274451, 327702, 333847, 483358, 7, 130, 136, 257, 131083, 262291, 307217, 144, 6144,
- 49153, 163851, 213005, 262165, 286739, 327699, 360477, 393241, 393306, 426010, 13, 160, 55299, 131073,
- 144393, 196616, 196653, 262166, 327701, 360453, 361493, 426009, 14, 26, 258, 264, 513, 12288, 53250, 94213,
- 131085, 196609, 262419, 399386, 442385, 458783, 25, 52, 272, 26625, 98306, 98311, 251918, 344086, 360467,
- 393370, 429080, 442397, 11, 104, 288, 24576, 32768, 90116, 106500, 196619, 196622, 196685, 229389, 262155,
- 262170, 262175, 311312, 368661, 393218, 393235, 393238, 393244, 405530, 458778, 22, 28, 49, 208, 260, 320,
- 514, 1025, 45058, 155656, 180235, 229390, 241679, 262146, 262169, 262675, 360470, 376853, 393232, 393247,
- 442394, 458780, 44, 416, 528, 22529, 77828, 172043, 180232, 196612, 199693, 213000, 221197, 262145, 262179,
- 289810, 360501, 393498, 415771, 442905, 483355, 491548, 19, 88, 97, 544, 832, 38914, 53249, 143368, 196749,
- 275475, 309265, 442377, 475167, 483357, 21, 38, 50, 56, 176, 516, 576, 1026, 1664, 2049, 19457, 71684,
- 114695, 131097, 135177, 202765, 214540, 263187, 270354, 288787, 334359, 360464, 426000, 76, 193, 352, 640,
- 3328, 32771, 35842, 49152, 106498, 106503, 139273, 213006, 229387, 262151, 278546, 286736, 327711, 352278,
- 360533, 393227, 393754, 426012, 446489, 458774, 35, 98, 152, 194, 704, 1056, 6656, 17921, 55298, 65536,
- 65541, 196629, 196877, 245774, 262194, 262259, 273427, 294929, 319504, 327687, 348182, 376854, 393224,
- 393258, 450585, 37, 42, 70, 112, 304, 385, 520, 1028, 1088, 1408, 2050, 4097, 13312, 16387, 49159, 94212,
- 110596, 125959, 131113, 144905, 188427, 196615, 212996, 262193, 264211, 270353, 315408, 329751, 360473,
- 362005, 372757, 382996, 397339, 483351, 503838, 41, 140, 608, 1152, 2816, 26624, 27649, 98318, 159752,
- 188424, 198668, 221192, 262355, 271891, 331799, 360597, 394266, 399898, 442425, 499740, 503837, 67, 100, 280,
- 388, 769, 1216, 1280, 5632, 47106, 65542, 98304, 99334, 107270, 157704, 176139, 196633, 196636, 197133,
- 262226, 363541, 376848, 393230, 406554, 409627, 425992, 427032, 442384, 69, 74, 84, 224, 386, 560, 1032,
- 2052, 2112, 2432, 4098, 8193, 11264, 16389, 49163, 49667, 79876, 90113, 122887, 131082, 131145, 143371,
- 163849, 174091, 229383, 262199, 262225, 262547, 266259, 271123, 286742, 344087, 360479, 393275, 393338,
- 397336, 428056, 429336, 442396, 458766, 470046, 483615, 503832, 73, 196, 1120, 1537, 2176, 4864, 22528,
- 23553, 32774, 55297, 78852, 81925, 98326, 163850, 213516, 221198, 262203, 274450, 307219, 311313, 327735,
- 333846, 360455, 360725, 393266, 393272, 395290, 398874, 416795, 442399, 442457, 460830, 81, 134, 770, 776,
- 2240, 2304, 9728, 39938, 53248, 110594, 110599, 131072, 137225, 143361, 144392, 180226, 196649, 196652,
- 196669, 197645, 198665, 214028, 251919, 262290, 262931, 270359, 286994, 303121, 307216, 327697, 356374,
- 360449, 393434, 434200, 442387, 483343, 133, 148, 168, 448, 1040, 2056, 2560, 3073, 4100, 4480, 8194, 16393,
- 16897, 19456, 24579, 39426, 49171, 90119, 98309, 106758, 114694, 131084, 131209, 143373, 180238, 191498,
- 196608, 199949, 221188, 249870, 251916, 262164, 262211, 262231, 275987, 286746, 288784, 289811, 323600,
- 327698, 333843, 360461, 360476, 361495, 393307, 398106, 415770, 426011, 442904, 443161, 448537, 466974,
- 483354, 485407, 131, 137, 200, 1538, 4224, 8960, 17409, 19969, 32778, 53255, 53635, 57347, 72196, 98342,
- 106510, 107014, 131077, 143497, 153608, 155657, 196639, 196717, 203277, 213020, 217100, 262235, 263699,
- 270611, 274449, 286722, 325136, 327700, 327767, 333845, 350230, 360452, 360981, 361492, 393278, 393298,
- 393304, 393626, 397330, 426040, 442376, 442521, 475166, 483356, 487455, 82, 138, 145, 268, 772, 1552, 4352,
- 6145, 17920, 18433, 19713, 33794, 45056, 53379, 65548, 106496, 166923, 180233, 196618, 196645, 196681,
- 196684, 198671, 213001, 229385, 229388, 230415, 241677, 262289, 262418, 270363, 270867, 317456, 334615,
- 349206, 360485, 397342, 397722, 399387, 417819, 429082, 442369, 442389, 443929, 458814, 503828, 146, 161,
- 296, 336, 392, 896, 2064, 3074, 4104, 4608, 8196, 16386, 16401, 20481, 24581, 34818, 36098, 49158, 49187,
- 53507, 76804, 108550, 125958, 131087, 131089, 131337, 161800, 172041, 180746, 196813, 199437, 214668, 221452,
- 241678, 262153, 262275, 262295, 265235, 270339, 271379, 273939, 278547, 286737, 290834, 311314, 327707,
- 330775, 352279, 360466, 360503, 361489, 368663, 393216, 393371, 394010, 397466, 413723, 429081, 446488,
- 458770, 458776, 15, 27, 54, 108, 162, 216, 259, 265, 432, 864, 1540, 1728, 3456, 5120, 6912, 12289, 13824,
- 27648, 32786, 36866, 38912, 49157, 53259, 67588, 94209, 98374, 106518, 131075, 172042, 178187, 196655,
- 198661, 199692, 213036, 214541, 229407, 233487, 262154, 262174, 262299, 272403, 319505, 327831, 348183,
- 360497, 368660, 376855, 393219, 393239, 393245, 393290, 393310, 393362, 397594, 401434, 405531, 426014,
- 426072, 442379, 442649, 450584, 458779, 483391, 503964, 514077, 53, 266, 273, 536, 3104, 6146, 8448, 18049,
- 24833, 38402, 40962, 54275, 65556, 69636, 86021, 90373, 98307, 114693, 124935, 145417, 158728, 188418,
- 196611, 196677, 196745, 196748, 197005, 198733, 199053, 200717, 207885, 212992, 213007, 235023, 237583,
- 251914, 262168, 262173, 262417, 262674, 268307, 288790, 288850, 315409, 339991, 344082, 376860, 377364,
- 382997, 393233, 393236, 394778, 397850, 399384, 426002, 442907, 458781, 458846, 483347, 483350, 483353,
- 491550, 30, 105, 262, 274, 289, 400, 592, 672, 1792, 2080, 3076, 4112, 8200, 8704, 16388, 16417, 24585,
- 32769, 35840, 49162, 49219, 49666, 73732, 80900, 90112, 90125, 95749, 98314, 99846, 106501, 110726, 122886,
- 131096, 131593, 135176, 143385, 144395, 175115, 180250, 184330, 188430, 198797, 202764, 223244, 245775,
- 262144, 262149, 262178, 262183, 262323, 262403, 272147, 274455, 286770, 288914, 309267, 333911, 344084,
- 360500, 360535, 360565, 362133, 368657, 376836, 388116, 393368, 393499, 397322, 398362, 400154, 407066,
- 427544, 438296, 442424, 491549, 23, 29, 46, 92, 106, 184, 209, 261, 276, 290, 321, 368, 515, 736, 1472, 1544,
- 2944, 5888, 9216, 11776, 12290, 19201, 23552, 32802, 45059, 53267, 55296, 81924, 94215, 98316, 98438, 106534,
- 139272, 163843, 174603, 196687, 197389, 198861, 198925, 212997, 213002, 213068, 221212, 225292, 229386,
- 229423, 241675, 245772, 262427, 272019, 274579, 275474, 288978, 305169, 307221, 309264, 327959, 345622,
- 360529, 362517, 363797, 376849, 378900, 393354, 393374, 393490, 396314, 405528, 409626, 426136, 436248,
- 461854, 470558, 471070, 483423, 503820, 504860, 417, 529, 1072, 6148, 10240, 92165, 101382, 125957, 144425,
- 147464, 196741, 204813, 262159, 262339, 262673, 263186, 286743, 288794, 307345, 327683, 425984, 426001,
- 432152, 442409, 458910, 505884 };
-
-static int cbest_20[1023] = {
- 1, 2, 524292, 4, 262146, 8, 131073, 16, 32, 589828, 64, 128, 294914, 256, 512, 147457, 1024, 2048, 4096,
- 598020, 8192, 16384, 32768, 299010, 65536, 131072, 149505, 262144, 3, 524288, 524293, 5, 262147, 524294,
- 599044, 6, 9, 18, 36, 72, 144, 288, 576, 1152, 2304, 4608, 9216, 18432, 36864, 73728, 147456, 786438, 10, 17,
- 131075, 262150, 294912, 524300, 655365, 12, 33, 131077, 262154, 393219, 524308, 589824, 589829, 20, 34, 65,
- 131081, 262162, 299522, 524324, 589830, 24, 66, 129, 131089, 262178, 294915, 524356, 851974, 40, 68, 130,
- 257, 131105, 262210, 524420, 589836, 720901, 819206, 48, 132, 258, 513, 131137, 262274, 294918, 524548,
- 589844, 80, 136, 260, 514, 1025, 131201, 147459, 149761, 262402, 294922, 425987, 524804, 589860, 671749, 96,
- 264, 516, 1026, 2049, 131329, 147461, 262658, 294930, 409603, 525316, 589892, 160, 272, 520, 1028, 2050,
- 4097, 131585, 147465, 149504, 263170, 294946, 299008, 526340, 589956, 598016, 598021, 884742, 192, 528, 1032,
- 2052, 4098, 8193, 74752, 132097, 147473, 264194, 294978, 528388, 590084, 598022, 320, 544, 1040, 2056, 4100,
- 8194, 16385, 37376, 133121, 147489, 266242, 295042, 532484, 590340, 737285, 860166, 384, 1056, 2064, 4104,
- 8196, 16386, 18688, 32769, 135169, 147521, 270338, 295170, 299011, 540676, 590852, 598028, 599172, 729093,
- 640, 1088, 2080, 4112, 8200, 9344, 16388, 32770, 65537, 139265, 147585, 278530, 295426, 442371, 557060,
- 591876, 598036, 823302, 768, 2112, 4128, 4672, 8208, 16392, 32772, 65538, 147713, 295938, 299014, 593924,
- 598052, 1280, 2176, 2336, 4160, 8224, 16400, 32776, 65540, 131074, 147969, 163841, 296962, 299018, 327682,
- 430083, 598084, 655364, 1168, 1536, 4224, 8256, 16416, 32784, 65544, 131076, 148481, 149507, 196609, 262145,
- 299026, 393218, 598148, 606212, 673797, 892934, 584, 2560, 4352, 8320, 16448, 32800, 65552, 131080, 149509,
- 299042, 299586, 303106, 411651, 598276, 622596, 786436, 888838, 292, 3072, 8448, 16512, 32832, 65568, 131088,
- 149513, 151553, 262148, 262160, 299074, 311298, 524289, 598532, 745477, 146, 5120, 8704, 16640, 32896, 65600,
- 131104, 149521, 155649, 262152, 299138, 393217, 524290, 524295, 524320, 599040, 599045, 720900, 7, 19, 37,
- 73, 145, 289, 577, 1153, 2305, 4609, 6144, 9217, 16896, 18433, 33024, 36865, 65664, 73729, 131136, 149537,
- 299266, 299520, 360450, 599046, 600068, 739333, 786434, 786439, 11, 38, 74, 290, 578, 1154, 2306, 4610, 9218,
- 10240, 17408, 18434, 33280, 36866, 65792, 73730, 131200, 147458, 149569, 149760, 180225, 262151, 262176,
- 294913, 425986, 446467, 524296, 524301, 524310, 524364, 524436, 524580, 524868, 525444, 526596, 528900,
- 533508, 542724, 561156, 602116, 655361, 671748, 851972, 861190, 13, 22, 76, 148, 580, 1156, 2308, 4612, 9220,
- 12288, 18436, 33792, 36868, 66048, 73732, 131328, 147460, 149633, 149793, 212993, 262155, 262182, 262208,
- 262218, 262290, 262434, 262722, 263298, 264450, 266754, 271362, 280578, 300034, 335874, 409602, 444419,
- 524302, 524304, 524309, 589825, 599052, 655367, 730117, 819204, 14, 21, 26, 35, 44, 152, 296, 1160, 2312,
- 4616, 9224, 18440, 20480, 34816, 36872, 66560, 73736, 74880, 131079, 131091, 131109, 131145, 131217, 131361,
- 131584, 131649, 132225, 133377, 135681, 140289, 147464, 167937, 204801, 262163, 262272, 294916, 294928,
- 299523, 301058, 524325, 589826, 589831, 589856, 599060, 614404, 786446, 917511, 25, 52, 67, 88, 304, 592,
- 2320, 4624, 9232, 18448, 24576, 36880, 67584, 73744, 131083, 132096, 147472, 150017, 262158, 262179, 262400,
- 294920, 393223, 425985, 524326, 524352, 524357, 599076, 630788, 655373, 786454, 823814, 851970, 851975,
- 897030, 41, 50, 69, 104, 131, 176, 608, 1184, 4640, 9248, 18464, 36896, 37440, 40960, 69632, 73760, 131085,
- 133120, 147488, 150529, 262166, 262211, 262656, 299526, 307202, 393227, 409601, 524316, 524358, 524416,
- 524421, 589832, 589837, 589846, 589900, 589972, 590116, 590404, 590980, 592132, 594436, 599108, 608260,
- 626692, 655381, 720897, 737284, 786470, 819202, 819207, 28, 42, 49, 70, 82, 100, 133, 208, 259, 352, 1216,
- 2368, 9280, 18496, 36928, 49152, 73792, 131093, 131107, 135168, 147520, 262170, 262275, 263168, 294919,
- 294944, 299530, 315394, 393235, 430595, 524332, 524422, 524544, 524549, 589838, 589840, 589845, 655397,
- 720903, 729092, 786502, 884740, 893958, 81, 134, 137, 164, 200, 261, 416, 515, 704, 2432, 4736, 18560, 18720,
- 36992, 73856, 81920, 131097, 131139, 139264, 147584, 153601, 262186, 262214, 262403, 264192, 294923, 294950,
- 294976, 294986, 295058, 295202, 295490, 296066, 297218, 299538, 304130, 313346, 368642, 393251, 442370,
- 524340, 524550, 524800, 524805, 589861, 599300, 655429, 671745, 747525, 786566, 851982, 983047, 97, 138, 262,
- 265, 274, 328, 400, 517, 832, 1027, 1408, 4864, 9472, 37120, 73984, 98304, 131113, 131141, 131203, 147712,
- 149763, 157697, 262194, 262278, 262659, 266240, 294931, 295040, 299554, 364546, 393283, 524372, 524428,
- 524806, 525312, 525317, 589862, 589888, 589893, 599188, 599556, 655493, 671751, 674053, 720909, 746501,
- 786694, 819214, 851990, 860164, 889350, 950279, 56, 84, 98, 140, 161, 266, 273, 518, 521, 530, 548, 656, 800,
- 1029, 1664, 2051, 2816, 9360, 9728, 18944, 74240, 131121, 131205, 131331, 147463, 147475, 147493, 147529,
- 147601, 147745, 147968, 148033, 148609, 149765, 152065, 156673, 163840, 184321, 221185, 262226, 262282,
- 262406, 263171, 270336, 294926, 294947, 295168, 299009, 393347, 411907, 425991, 430082, 524388, 524556,
- 525318, 526336, 526341, 589852, 589894, 589952, 589957, 598017, 655621, 720917, 786950, 819222, 852006,
- 884738, 884743, 933895, 162, 193, 268, 522, 529, 1030, 1033, 1042, 1060, 1096, 1312, 1600, 2053, 3328, 4099,
- 5632, 19456, 37888, 74753, 131153, 131209, 131333, 131587, 147467, 148480, 149506, 149769, 182273, 196608,
- 262242, 262410, 262662, 264195, 278528, 294934, 294979, 295424, 299650, 393475, 409607, 425995, 442369,
- 448515, 524452, 524564, 524812, 526342, 528384, 528389, 589868, 589958, 590080, 590085, 598018, 598023,
- 598048, 601092, 655877, 671757, 673796, 720933, 787462, 819238, 823300, 852038, 194, 276, 321, 524, 545,
- 1034, 1041, 2054, 2057, 2066, 2084, 2120, 2192, 2624, 3200, 4101, 4680, 6656, 8195, 11264, 37377, 38912,
- 74754, 75776, 131169, 131337, 131589, 132099, 147469, 149508, 149777, 215041, 262306, 262418, 262666, 263174,
- 266243, 294938, 295043, 295936, 299012, 299024, 299778, 393731, 409611, 411650, 426003, 524484, 524820,
- 525324, 528390, 532480, 532485, 589876, 590086, 590336, 590341, 603140, 656389, 671765, 720965, 737281,
- 788486, 819270, 852102, 860162, 860167, 112, 168, 196, 280, 322, 385, 532, 546, 1036, 1057, 2058, 2065, 4102,
- 4105, 4114, 4132, 4168, 4240, 4384, 5248, 6400, 8197, 13312, 16387, 18689, 22528, 37378, 74756, 77824,
- 131233, 131345, 131593, 132101, 133123, 147477, 147491, 149512, 151552, 262338, 262674, 263178, 264198,
- 270339, 294954, 294982, 295171, 296960, 299016, 327680, 336898, 394243, 409619, 426019, 430081, 446979,
- 524612, 524836, 525332, 526348, 532486, 540672, 540677, 561668, 589908, 589964, 590342, 590848, 590853,
- 598024, 598029, 598038, 598092, 598164, 598308, 598596, 599168, 599173, 600324, 602628, 616452, 634884,
- 657413, 671781, 721029, 729089, 737287, 739589, 745476, 790534, 819334, 852230, 884750, 1015815, 386, 1089,
- 4106, 8228, 8264, 8336, 10496, 131601, 147481, 147523, 149825, 155648, 262466, 263186, 295046, 300546,
- 393216, 426051, 590092, 599174, 615428, 729095, 823303 };
-
-static int cbest_21[1023] = {
- 1, 2, 1048578, 4, 524289, 8, 16, 1310722, 32, 64, 655361, 128, 256, 512, 1376258, 1024, 2048, 4096, 688129,
- 8192, 16384, 32768, 65536, 1392642, 131072, 262144, 524288, 696321, 1048576, 3, 1048579, 5, 10, 20, 40, 80,
- 160, 320, 640, 1280, 2560, 5120, 10240, 20480, 40960, 81920, 163840, 327680, 655360, 6, 9, 524291, 1048582,
- 1310720, 1572867, 17, 524293, 1048586, 1310723, 1396738, 12, 18, 33, 524297, 1048594, 34, 65, 524305,
- 1048610, 1310726, 1835011, 24, 36, 66, 129, 524321, 655363, 1048642, 1310730, 1703939, 68, 130, 257, 524353,
- 655365, 688128, 1048706, 1310738, 1376256, 48, 72, 132, 258, 513, 344064, 524417, 655369, 698369, 1048834,
- 1310754, 1376259, 136, 260, 514, 1025, 172032, 524545, 655377, 1049090, 1310786, 1966083, 96, 144, 264, 516,
- 1026, 2049, 86016, 524801, 655393, 1049602, 1310850, 1376262, 1900547, 272, 520, 1028, 2050, 4097, 43008,
- 525313, 655425, 1050626, 1310978, 1376266, 192, 288, 528, 1032, 2052, 4098, 8193, 21504, 526337, 655489,
- 688131, 1052674, 1311234, 1376274, 1736707, 544, 1040, 2056, 4100, 8194, 10752, 16385, 528385, 655617,
- 688133, 1056770, 1311746, 1376290, 384, 576, 1056, 2064, 4104, 5376, 8196, 16386, 32769, 532481, 655873,
- 688137, 1064962, 1312770, 1376322, 1392640, 1397762, 2031619, 1088, 2080, 2688, 4112, 8200, 16388, 32770,
- 65537, 540673, 656385, 688145, 696320, 1081346, 1314818, 1376386, 1392643, 1998851, 768, 1152, 1344, 2112,
- 4128, 8208, 16392, 32772, 65538, 131073, 557057, 657409, 688161, 1114114, 1318914, 1376514, 672, 2176, 4160,
- 8224, 16400, 32776, 65540, 131074, 262145, 348160, 589825, 659457, 688193, 1179650, 1327106, 1376770,
- 1392646, 1916931, 336, 1536, 2304, 4224, 8256, 16416, 32784, 65544, 131076, 262146, 663553, 688257, 1343490,
- 1377282, 1392650, 168, 4352, 8320, 16448, 32800, 65552, 131080, 174080, 262148, 524290, 671745, 688385,
- 786433, 1378306, 1392658, 1572866, 84, 3072, 4608, 8448, 16512, 32832, 65568, 131088, 262152, 524292, 688641,
- 696323, 698881, 1048577, 1380354, 1392674, 1441794, 1744899, 2064387, 42, 8704, 16640, 32896, 65600, 87040,
- 131104, 262160, 524296, 689153, 696325, 720897, 1048584, 1384450, 1392706, 2048003, 11, 21, 41, 81, 161, 321,
- 641, 1281, 2561, 5121, 6144, 9216, 10241, 16896, 20481, 33024, 40961, 65664, 81921, 131136, 163841, 262176,
- 327681, 524304, 690177, 696329, 1048580, 1392770, 1572865, 1835010, 7, 22, 82, 162, 322, 642, 1282, 2562,
- 5122, 10242, 17408, 20482, 33280, 40962, 43520, 65792, 81922, 131200, 163842, 262208, 327682, 524320, 655362,
- 692225, 696337, 917505, 1048583, 1048598, 1048618, 1048658, 1048738, 1048898, 1049218, 1049858, 1051138,
- 1053698, 1058818, 1069058, 1089538, 1130498, 1212418, 1310721, 1392898, 1396736, 1409026, 1703938, 2007043,
- 14, 44, 164, 324, 644, 1284, 2564, 5124, 10244, 12288, 18432, 20484, 33792, 40964, 66048, 81924, 131328,
- 163844, 262272, 327684, 524299, 524309, 524329, 524352, 524369, 524449, 524609, 524929, 525569, 526849,
- 529409, 534529, 544769, 565249, 606209, 655364, 696353, 851969, 1048587, 1048592, 1310728, 1393154, 1396739,
- 13, 19, 28, 88, 328, 648, 1288, 2568, 5128, 10248, 20488, 21760, 34816, 40968, 66560, 81928, 131584, 163848,
- 262400, 327688, 524295, 524416, 655368, 696385, 698368, 704513, 1048595, 1048608, 1310724, 1393666, 1507330,
- 1572871, 1835009, 26, 35, 56, 176, 656, 1296, 2576, 5136, 10256, 20496, 24576, 36864, 40976, 67584, 81936,
- 132096, 163856, 262656, 327696, 524544, 655376, 696449, 1048590, 1048611, 1048640, 1310727, 1310742, 1310762,
- 1310802, 1310882, 1311042, 1311362, 1312002, 1313282, 1315842, 1320962, 1331202, 1351682, 1394690, 1396742,
- 1474562, 1572875, 1703937, 1921027, 1966082, 25, 37, 52, 67, 112, 352, 1312, 2592, 5152, 10272, 10880, 20512,
- 40992, 69632, 81952, 133120, 163872, 263168, 327712, 524301, 524307, 524800, 655392, 696577, 753665, 1048643,
- 1048704, 1310731, 1310736, 1396746, 1398018, 1572883, 1900546, 2080771, 38, 69, 74, 104, 131, 224, 704, 2624,
- 5184, 10304, 20544, 41024, 49152, 73728, 81984, 135168, 163904, 264192, 327744, 349184, 524323, 525312,
- 655371, 655381, 655401, 655424, 655441, 655521, 655681, 656001, 656641, 657921, 660481, 665601, 675841,
- 696833, 737281, 983041, 1048602, 1048614, 1048707, 1048832, 1310739, 1310752, 1376257, 1396754, 1400834,
- 1572899, 1835015, 2072579, 49, 70, 73, 133, 138, 148, 208, 259, 448, 1408, 5248, 5440, 10368, 20608, 41088,
- 82048, 139264, 163968, 266240, 327808, 344065, 524313, 524325, 524355, 526336, 655367, 655488, 688130,
- 697345, 950273, 1048646, 1048835, 1049088, 1310734, 1310755, 1310784, 1376264, 1396770, 1572931, 1703943,
- 1736706, 1835019, 1966081, 50, 134, 137, 261, 266, 276, 296, 416, 515, 896, 2816, 10496, 20736, 41216, 82176,
- 98304, 147456, 164096, 172033, 270336, 327936, 344066, 524357, 524419, 528384, 655616, 688132, 698371,
- 1048626, 1048650, 1048710, 1049091, 1049600, 1310787, 1310848, 1376260, 1396802, 1425410, 1572995, 1703947,
- 1746947, 1835027, 1900545, 2052099, 76, 97, 145, 262, 265, 517, 522, 532, 552, 592, 832, 1027, 1792, 2720,
- 5632, 20992, 41472, 82432, 86017, 164352, 172034, 174592, 278528, 328192, 344068, 524337, 524361, 524421,
- 524547, 532480, 655373, 655379, 655872, 688136, 698373, 700417, 868353, 1048714, 1048838, 1049603, 1050624,
- 1220610, 1310746, 1310758, 1310851, 1310976, 1376263, 1376278, 1376298, 1376338, 1376418, 1376578, 1376898,
- 1377538, 1378818, 1381378, 1386498, 1396866, 1417218, 1540098, 1573123, 1703955, 1835043, 2031618, 98, 140,
- 146, 273, 518, 521, 1029, 1034, 1044, 1064, 1104, 1184, 1664, 2051, 3584, 11264, 41984, 43009, 82944, 86018,
- 164864, 172036, 196608, 294912, 328704, 344072, 524425, 524549, 524803, 540672, 655395, 656384, 688144,
- 698377, 1048674, 1048722, 1048842, 1049094, 1050627, 1052672, 1134594, 1310790, 1310979, 1311232, 1376267,
- 1376272, 1396994, 1523714, 1573379, 1703971, 1736705, 1835075, 1966087, 1998850, 100, 193, 268, 274, 289,
- 529, 1030, 1033, 1360, 2053, 2058, 2068, 2088, 2128, 2208, 2368, 3328, 4099, 7168, 21505, 22528, 43010,
- 83968, 86020, 165888, 172040, 329728, 344080, 524385, 524433, 524553, 524805, 525315, 557056, 610305, 655385,
- 655397, 655427, 657408, 688160, 698385, 712705, 1048850, 1049098, 1049606, 1052675, 1056768, 1091586,
- 1310770, 1310794, 1310854, 1311235, 1311744, 1376275, 1376288, 1397250, 1573891, 1704003, 1835139, 1900551,
- 1966091, 2009091, 152, 194, 290, 524, 530, 545, 1041, 2054, 2057, 4101, 4106, 4116, 4136, 4176, 4256, 4416,
- 4736, 6656, 8195, 10753, 14336, 21506, 43012, 45056, 86024, 87296, 167936, 172048, 331776, 344096, 393216,
- 524561, 524809, 525317, 526339, 567297, 589824, 655429, 655491, 659456, 688139, 688149, 688169, 688192,
- 688209, 688289, 688449, 688769, 689409, 690689, 693249, 698401, 699009, 708609, 770049, 1015809, 1048770,
- 1048866, 1049106, 1049610, 1050630, 1056771, 1064960, 1070082, 1310858, 1310982, 1311747, 1312768, 1376270,
- 1376291, 1376320, 1397760, 1482754, 1574915, 1704067, 1835267, 1900555, 1916930, 1966099, 2031617, 196, 280,
- 292, 385, 546, 577, 680, 1036, 1042, 1057, 2065, 4102, 4105, 5377, 8197, 8202, 8212, 8232, 8272, 8352, 8512,
- 8832, 9472, 10754, 13312, 16387, 21508, 28672, 43016, 86032, 90112, 172064, 335872, 344128, 524481, 524577,
- 524817, 525321, 526341, 528387, 545793, 655409, 655433, 655493, 655619, 663552, 688135, 688256, 698433,
- 761857, 999425, 1049122, 1049618, 1050634, 1052678, 1059330, 1064963, 1081344, 1310818, 1310866, 1310986,
- 1311238, 1312771, 1314816, 1376323, 1376384, 1392641, 1397763, 1398786, 1576963, 1704195, 1736711, 1835523,
- 1900563, 1966115, 1998849, 2088963, 200, 386, 548, 1058, 16394, 16424, 16544, 17664, 18944, 57344, 180224,
- 535041, 671744, 698497, 1052682, 1056774, 1353730, 1392648, 1836035 };
-
-static int cbest_22[1023] = {
- 1, 2, 2097153, 4, 8, 3145729, 16, 32, 64, 3670017, 128, 256, 512, 1024, 3932161, 2048, 4096, 8192, 16384,
- 32768, 4063233, 65536, 131072, 262144, 524288, 1048576, 2097152, 4128769, 3, 6, 12, 24, 48, 96, 192, 384,
- 768, 1536, 3072, 6144, 12288, 24576, 49152, 98304, 196608, 393216, 786432, 1572864, 3145728, 5, 2097155, 9,
- 2097157, 10, 17, 2097161, 3145731, 3670016, 18, 33, 1835008, 2097169, 3145733, 20, 34, 65, 917504, 2097185,
- 3145737, 4161537, 36, 66, 129, 458752, 2097217, 3145745, 3670019, 40, 68, 130, 257, 229376, 2097281, 3145761,
- 3670021, 3932160, 72, 132, 258, 513, 114688, 2097409, 3145793, 3670025, 80, 136, 260, 514, 1025, 57344,
- 1966080, 2097665, 3145857, 3670033, 144, 264, 516, 1026, 2049, 28672, 2098177, 3145985, 3670049, 3932163,
- 160, 272, 520, 1028, 2050, 4097, 14336, 983040, 2099201, 3146241, 3670081, 3932165, 288, 528, 1032, 2052,
- 4098, 7168, 8193, 2101249, 3146753, 3670145, 3932169, 4063232, 320, 544, 1040, 2056, 3584, 4100, 8194, 16385,
- 491520, 2105345, 3147777, 3670273, 3932177, 4177921, 576, 1056, 1792, 2064, 4104, 8196, 16386, 32769,
- 2113537, 3149825, 3670529, 3932193, 640, 896, 1088, 2080, 4112, 8200, 16388, 32770, 65537, 245760, 2031616,
- 2129921, 3153921, 3671041, 3932225, 4063235, 448, 1152, 2112, 4128, 8208, 16392, 32772, 65538, 131073,
- 2162689, 3162113, 3672065, 3932289, 4063237, 224, 1280, 2176, 4160, 8224, 16400, 32776, 65540, 122880,
- 131074, 262145, 2228225, 3178497, 3674113, 3932417, 4063241, 112, 2304, 4224, 8256, 16416, 32784, 65544,
- 131076, 262146, 524289, 1015808, 2359297, 3211265, 3678209, 3932673, 4063249, 4128768, 56, 2560, 4352, 8320,
- 16448, 32800, 61440, 65552, 131080, 262148, 524290, 1048577, 2621441, 3276801, 3686401, 3933185, 4063265, 28,
- 4608, 8448, 16512, 32832, 65568, 131088, 262152, 524292, 1048578, 3407873, 3702785, 3934209, 4063297, 14,
- 5120, 8704, 16640, 30720, 32896, 65600, 131104, 262160, 507904, 524296, 1048580, 2097154, 3735553, 3936257,
- 4063361, 4128771, 7, 13, 25, 49, 97, 193, 385, 769, 1537, 3073, 6145, 9216, 12289, 16896, 24577, 33024,
- 49153, 65664, 98305, 131136, 196609, 262176, 393217, 524304, 786433, 1048584, 1572865, 2064384, 2097156,
- 3801089, 3940353, 4063489, 4128773, 4186113, 26, 50, 98, 194, 386, 770, 1538, 3074, 6146, 10240, 12290,
- 15360, 17408, 24578, 33280, 49154, 65792, 98306, 131200, 196610, 262208, 393218, 524320, 786434, 1048592,
- 1572866, 2097159, 2097160, 2097165, 2097177, 2097201, 2097249, 2097345, 2097537, 2097921, 2098689, 2100225,
- 2103297, 2109441, 2121729, 2146305, 2195457, 2293761, 2490369, 2883585, 3145730, 3948545, 4063745, 4128777,
- 52, 100, 196, 388, 772, 1540, 3076, 6148, 12292, 18432, 24580, 33792, 49156, 66048, 98308, 131328, 196612,
- 253952, 262272, 393220, 524352, 786436, 1048608, 1572868, 2097168, 3145732, 3964929, 4064257, 4128785, 11,
- 104, 200, 392, 776, 1544, 3080, 6152, 7680, 12296, 20480, 24584, 34816, 49160, 66560, 98312, 131584, 196616,
- 262400, 393224, 524416, 786440, 1048640, 1572872, 2097184, 3145735, 3145736, 3145741, 3145753, 3145777,
- 3145825, 3145921, 3146113, 3146497, 3147265, 3148801, 3151873, 3158017, 3170305, 3194881, 3244033, 3342337,
- 3538945, 3997697, 4065281, 4128801, 4161536, 19, 22, 208, 400, 784, 1552, 3088, 6160, 12304, 24592, 36864,
- 49168, 67584, 98320, 132096, 196624, 262656, 393232, 524544, 786448, 1032192, 1048704, 1572880, 1835009,
- 2097163, 2097216, 3145744, 3670018, 4067329, 4128833, 21, 35, 38, 44, 416, 800, 1568, 3104, 3840, 6176,
- 12320, 24608, 40960, 49184, 69632, 98336, 126976, 133120, 196640, 263168, 393248, 524800, 786464, 917505,
- 1048832, 1572896, 1835010, 2097171, 2097280, 3145760, 3670020, 4071425, 4128897, 37, 67, 70, 76, 88, 832,
- 1600, 3136, 6208, 12352, 24640, 49216, 73728, 98368, 135168, 196672, 264192, 393280, 458753, 525312, 786496,
- 917506, 1049088, 1572928, 1835012, 2097173, 2097187, 2097408, 3014657, 3145739, 3145792, 3670023, 3670024,
- 3670029, 3670041, 3670065, 3670113, 3670209, 3670401, 3670785, 3671553, 3673089, 3676161, 3682305, 3694593,
- 3719169, 3768321, 3866625, 4079617, 4129025, 4161539, 41, 69, 131, 134, 140, 152, 176, 1664, 1920, 3200,
- 6272, 12416, 24704, 49280, 81920, 98432, 139264, 196736, 229377, 266240, 393344, 458754, 526336, 786560,
- 917508, 1049600, 1572992, 1835016, 2097189, 2097219, 2097664, 2555905, 3145747, 3145856, 3670032, 4096001,
- 4129281, 4161541, 42, 73, 133, 259, 262, 268, 280, 304, 352, 3328, 6400, 12544, 24832, 49408, 63488, 98560,
- 114689, 147456, 196864, 229378, 270336, 393472, 458756, 516096, 528384, 786688, 917512, 1050624, 1573120,
- 1835024, 2080768, 2097193, 2097221, 2097283, 2098176, 2326529, 3145749, 3145763, 3145984, 3670048, 3932162,
- 4129793, 4161545, 74, 81, 137, 261, 515, 518, 524, 536, 560, 608, 704, 960, 6656, 12800, 25088, 49664, 57345,
- 98816, 114690, 163840, 197120, 229380, 278528, 393728, 458760, 532480, 786944, 917520, 1052672, 1573376,
- 1835040, 1966081, 2097225, 2097285, 2097411, 2099200, 2211841, 3145765, 3145795, 3146240, 3604481, 3670027,
- 3670080, 3932164, 4130817, 4161553, 82, 138, 145, 265, 517, 1027, 1030, 1036, 1048, 1072, 1120, 1216, 1408,
- 13312, 25600, 28673, 50176, 57346, 99328, 114692, 197632, 229384, 294912, 394240, 458768, 540672, 787456,
- 917536, 1056768, 1573888, 1835072, 1966082, 2097233, 2097289, 2097413, 2097667, 2101248, 2154497, 3145769,
- 3145797, 3145859, 3146752, 3375105, 3670035, 3670144, 3932167, 3932168, 3932173, 3932185, 3932209, 3932257,
- 3932353, 3932545, 3932929, 3933697, 3935233, 3938305, 3944449, 3956737, 3981313, 4030465, 4132865, 4161569,
- 4190209, 84, 146, 161, 266, 273, 480, 521, 1029, 2051, 2054, 2060, 2072, 2096, 2144, 2240, 2432, 2816, 14337,
- 26624, 28674, 31744, 51200, 57348, 100352, 114696, 198656, 229392, 327680, 395264, 458784, 557056, 788480,
- 917568, 983041, 1064960, 1574912, 1835136, 1966084, 2097297, 2097417, 2097669, 2098179, 2105344, 2125825,
- 3145801, 3145861, 3145987, 3147776, 3260417, 3670037, 3670051, 3670272, 3932176, 4136961, 4161601, 4177920,
- 148, 162, 274, 289, 522, 529, 1033, 2053, 4099, 4102, 4108, 4120, 4144, 4192, 4288, 4480, 4864, 5632, 7169,
- 14338, 28676, 53248, 57352, 102400, 114704, 200704, 229408, 258048, 397312, 458816, 589824, 790528, 917632,
- 983042, 1081344, 1576960, 1835264, 1966088, 2097313, 2097425, 2097673, 2098181, 2099203, 2111489, 2113536,
- 3080193, 3145809, 3145865, 3145989, 3146243, 3149824, 3203073, 3670053, 3670083, 3670528, 3932192, 4145153,
- 4161665, 164, 240, 276, 290, 321, 530, 545, 1034, 1041, 2057, 3585, 4101, 7170, 8195, 8198, 8204, 8216, 8240,
- 8288, 8384, 8576, 8960, 9728, 11264, 14340, 28680, 57360, 106496, 114720, 204800, 229440, 401408, 458880,
- 491521, 655360, 794624, 917760, 983044, 1040384, 1114112, 1581056, 1835520, 1966096, 2097441, 2097681,
- 2098185, 2099205, 2101251, 2104321, 2129920, 3145873, 3145993, 3146245, 3146755, 3153920, 3174401, 3670057,
- 3670085, 3670147, 3671040, 3899393, 3932171, 3932224, 4063234, 4161793, 168, 292, 322, 532, 546, 577, 1042,
- 1057, 1793, 2058, 2065, 3586, 4105, 7172, 8197, 14344, 15872, 16387, 16390, 16396, 16408, 16432, 16480,
- 16576, 16768, 17152, 17920, 19456, 22528, 28688, 57376, 114752, 212992, 229504, 409600, 459008, 491522,
- 802816, 918016, 983048, 1179648, 1589248, 1836032, 1966112, 2097473, 2097697, 2098193, 2099209, 2100737,
- 2101253, 2105347, 2162688, 2588673, 3145889, 3146001, 3146249, 3146757, 3147779, 3160065, 3162112, 3670089,
- 3670149, 3670275, 3672064, 3784705, 3932179, 3932288, 4063236, 4162049, 4177923, 120, 296, 897, 1058, 1089,
- 2081, 4106, 4113, 8201, 32774, 32780, 33536, 34304, 45056, 491524, 983056, 1605632, 1966144, 2031617,
- 2098209, 2098945, 2099217, 2228224, 3146257, 3146761, 3178496, 3670153, 3670277, 3670531, 3932181, 3932416,
- 4063329, 4063425, 4069377, 4075521 };
-
-static int cbest_23[1023] = {
- 1, 2, 4194320, 4, 2097160, 8, 1048580, 16, 524290, 32, 262145, 64, 128, 4325392, 256, 512, 2162696, 1024,
- 2048, 1081348, 4096, 8192, 540674, 16384, 32768, 270337, 65536, 131072, 262144, 4329488, 524288, 2164744,
- 1048576, 3, 1082372, 2097152, 4194321, 5, 2097161, 4194322, 6, 9, 1048581, 2097162, 4194304, 4194324,
- 6291480, 10, 17, 524291, 541186, 1048582, 2097164, 4194328, 5242900, 12, 18, 33, 66, 132, 264, 528, 1056,
- 2112, 4224, 8448, 16896, 33792, 67584, 135168, 270336, 3145740, 4718610, 20, 34, 65, 262147, 524294, 540672,
- 1048588, 2097176, 2621450, 4194352, 4456465, 24, 36, 129, 262149, 270593, 524298, 1048596, 1081344, 1572870,
- 2097192, 2359305, 4194384, 4325393, 40, 68, 130, 257, 262153, 524306, 1048612, 1310725, 2097224, 2162688,
- 4194448, 4325394, 48, 72, 258, 513, 262161, 524322, 786435, 1048644, 2097288, 2162697, 4194576, 4325376,
- 4325396, 6422552, 80, 136, 260, 514, 1025, 262177, 524354, 1048708, 2097416, 2162698, 4194832, 4325400,
- 5373972, 6357016, 96, 144, 516, 1026, 2049, 262209, 524418, 1048836, 1081349, 2097672, 2162700, 4195344,
- 4329616, 4849682, 160, 272, 520, 1028, 2050, 4097, 262273, 524546, 1049092, 1081350, 2098184, 3211276,
- 4196368, 4325424, 4587537, 5275668, 192, 288, 1032, 2052, 4098, 8193, 262401, 524802, 540675, 1049604,
- 2099208, 2162712, 2686986, 3178508, 4198416, 4325456, 320, 544, 1040, 2056, 4100, 8194, 16385, 262657,
- 525314, 1050628, 1081356, 2101256, 2162728, 2424841, 4202512, 4325520, 4734994, 384, 576, 2064, 4104, 8196,
- 16386, 32769, 263169, 526338, 540678, 1052676, 1081364, 1605638, 2105352, 2162760, 2164808, 2637834, 4210704,
- 4325648, 640, 1088, 2080, 4112, 8200, 16388, 32770, 65537, 264193, 270339, 528386, 540682, 1056772, 1081380,
- 1343493, 1589254, 2113544, 2162824, 4227088, 4325904, 4464657, 6488088, 768, 1152, 4128, 8208, 16392, 32772,
- 65538, 131073, 266241, 270341, 532482, 540690, 1064964, 1081412, 2129928, 2162952, 2367497, 4259856, 4326416,
- 1280, 2176, 4160, 8224, 16400, 32776, 65540, 131074, 270345, 540706, 802819, 1081476, 1318917, 2163208,
- 4327440, 4329489, 5406740, 1536, 2304, 8256, 16416, 32784, 65544, 131076, 262146, 270353, 278529, 540738,
- 557058, 794627, 1081604, 1082404, 1114116, 2163720, 2228232, 4329490, 4456464, 2560, 4352, 8320, 16448,
- 32800, 65552, 131080, 262148, 270369, 270592, 294913, 524289, 540802, 541184, 589826, 1081860, 1082368,
- 1179652, 2164736, 2359304, 3244044, 4329472, 4329492, 4333584, 4866066, 6426648, 3072, 4608, 16512, 32832,
- 65568, 131088, 135296, 262152, 270401, 327681, 540930, 655362, 1310724, 2164745, 2166792, 4329496, 4341776,
- 4718608, 5378068, 5120, 8704, 16640, 32896, 65600, 67648, 131104, 262160, 270465, 393217, 524292, 786434,
- 1048577, 1083396, 2164746, 2170888, 2621448, 2703370, 4358160, 4595729, 4853778, 6359064, 6144, 9216, 33024,
- 33824, 65664, 131136, 262176, 524296, 541202, 541698, 1048578, 1085444, 1572868, 2164748, 2179080, 4329520,
- 4390928, 4591633, 5242896, 10240, 16912, 17408, 33280, 65792, 131200, 262208, 270849, 524304, 524352, 542722,
- 1082373, 1089540, 1622022, 2097153, 2195464, 2433033, 3145736, 3213324, 4329552, 8456, 12288, 18432, 66048,
- 131328, 262272, 271361, 524320, 544770, 786433, 1048584, 1048704, 1082374, 1097732, 2097154, 2164760,
- 2689034, 4194323, 4587536, 5276692, 6291472, 7, 4228, 20480, 34816, 66560, 131584, 262400, 272385, 548866,
- 1048592, 1351685, 1572866, 2097156, 2097163, 2097408, 2164776, 2293768, 2426889, 3179532, 4194305, 4194325,
- 4329744, 6291481, 11, 2114, 24576, 36864, 132096, 262656, 270601, 274433, 524416, 541187, 1048583, 1048608,
- 1082380, 1146884, 1310721, 2097165, 2424840, 3145732, 4194306, 4194326, 4194329, 4194816, 4330000, 4849680,
- 5242901, 6291482, 6492184, 13, 19, 67, 133, 265, 529, 1057, 2113, 4225, 8449, 16897, 33793, 40960, 67585,
- 69632, 133120, 135169, 263168, 524544, 573442, 811011, 1048640, 1082388, 1212420, 1606662, 2097166, 2097168,
- 2164872, 2621442, 3145741, 4194308, 4194330, 4330512, 4718611, 4735506, 5242902, 6291464, 6291484, 6490136,
- 14, 21, 35, 134, 266, 530, 1058, 4226, 8450, 16898, 33794, 49152, 67586, 73728, 135170, 264192, 270338,
- 286721, 524295, 524800, 540673, 541190, 606210, 1048589, 1343492, 1344517, 2097177, 2097184, 2165000,
- 2359297, 2621451, 2638346, 2686984, 3145742, 4194312, 4194332, 4194353, 4194386, 4194452, 4194584, 4195376,
- 4196432, 4198544, 4202768, 4211216, 4228112, 4261904, 4331536, 4464656, 5242884, 5373968, 5410836, 7340060,
- 22, 25, 37, 70, 268, 532, 1060, 2116, 8452, 16900, 33796, 67588, 81920, 135172, 139264, 266240, 270340,
- 303105, 524299, 525312, 541194, 671746, 1048590, 1048597, 1048832, 1081345, 1082436, 1572871, 1589766,
- 2097178, 2097193, 2097216, 2097226, 2097292, 2097688, 2098216, 2099272, 2101384, 2105608, 2114056, 2130952,
- 2165256, 2232328, 2367496, 4194354, 4194385, 4456467, 4718594, 4718614, 4734992, 5242908, 6815770, 26, 38,
- 41, 69, 74, 131, 140, 536, 1064, 2120, 4232, 16904, 33800, 67592, 98304, 135176, 147456, 262151, 270344,
- 270595, 335873, 524307, 526336, 540676, 802818, 1048598, 1048613, 1048646, 1048844, 1049088, 1049108,
- 1049636, 1050692, 1052804, 1057028, 1065476, 1081346, 1082500, 1116164, 1183748, 1318916, 1605636, 2097180,
- 2097194, 2097225, 2097280, 2162689, 2165768, 2359307, 2621454, 2637832, 3211272, 4194336, 4194356, 4194449,
- 4325395, 4337680, 4456449, 4456469, 4464913, 4718618, 4870162, 5275664, 5407764, 5767190, 6291512, 6422544,
- 6553625, 28, 42, 49, 73, 82, 148, 259, 280, 1072, 2128, 4240, 8464, 33808, 67600, 135184, 163840, 262155,
- 270352, 270597, 278528, 401409, 524302, 524323, 524422, 524554, 524818, 525346, 526402, 528384, 528514,
- 532738, 540680, 541218, 558082, 591874, 659458, 794626, 803331, 1048614, 1048645, 1049600, 1082628, 1310727,
- 1589252, 2097196, 2097289, 2162690, 2359309, 2367753, 3145756, 3178504, 3246092, 3670030, 4194360, 4194368,
- 4194388, 4194450, 4194577, 4325377, 4325397, 4329620, 4345872, 4456473, 5242932, 5505045, 6291544, 6357008,
- 6422553, 44, 50, 81, 98, 137, 164, 261, 296, 515, 560, 2144, 4256, 8480, 16928, 67616, 135200, 196608,
- 262157, 262163, 262211, 262277, 262409, 262673, 263201, 264257, 266369, 270368, 279041, 294912, 295937,
- 329729, 397313, 524310, 524355, 532480, 540688, 540736, 541250, 1048604, 1048709, 1050624, 1081352, 1081472,
- 1082884, 1319173, 1572878, 2097228, 2097290, 2097417, 2097664, 2162692, 2162699, 2162944, 2168840, 2621466,
- 3145772, 3245068, 3407885, 4194392, 4194432, 4194578, 4194833, 4325378, 4325398, 4325401, 4325888, 4362256,
- 4599825, 4718642, 4980755, 5242964, 5373973, 6291608, 6357017, 6422554, 52, 76, 97, 138, 145, 196, 262, 328,
- 517, 592, 1027, 1120, 4288, 8512, 16960, 33856, 135232, 262165, 262179, 270400, 270609, 327680, 524314,
- 524326, 524419, 540704, 541314, 786439, 794883, 802817, 1048620, 1048710, 1048837, 1052672, 1081360, 1310733,
- 1572886, 1605634, 2097208, 2097418, 2097673, 2098176, 2162701, 2172936, 2359321, 2621482, 2705418, 2883595,
- 3145804, 3211268, 4194456, 4194560, 4194580, 4194834, 4195345, 4325380, 4325402, 4329617, 4395024, 4456497,
- 4718674, 4849683, 4866578, 5243028, 5373974, 6291736, 6357018, 6422536, 6422556, 56, 84, 146, 161, 194, 273,
- 392, 518, 521, 656, 1029, 1184, 2051, 2240, 8576, 17024, 33920, 67712, 262169, 262181, 270464, 270625,
- 393216, 524330, 524358, 524547, 541442, 557056, 786443, 794625, 1048628, 1048652, 1048838, 1049093, 1056768,
- 1081351, 1081376, 1084420, 1310741, 1343489, 1572902, 1589250, 1835015, 2097240, 2097420, 2097674, 2098185,
- 2099200, 2162702, 2162704, 2181128, 2359337, 2621514, 2686978, 3145868, 3178500, 3211277, 4194416, 4194836,
- 4195346, 4196369, 4325384, 4325404, 4325425, 4325458, 4325524, 4325656, 4326448, 4327504, 4329618, 4333840,
- 4342288, 4359184, 4392976, 4456529, 4595728, 4718738, 5243156, 5275669, 5373956, 6291992, 6357000, 6357020,
- 7471132, 162, 193, 289, 1030, 1312, 2053, 4099, 34048, 262185, 262213, 524338, 524362, 524803, 786451,
- 1048716, 1049605, 1064960, 1086468, 1310757, 2097256, 2097304, 2097676, 2098186, 2099209, 2101248, 2162713,
- 2424833, 2621578, 2703882, 3145996, 3178509, 4194480, 4198417, 4325426, 4456593, 4587539, 4718866, 4849666,
- 6292504, 6426776, 7405596 };
-
-static int cbest_24[1023] = {
- 1, 2, 8388675, 4, 12583010, 8, 6291505, 16, 32, 64, 11534427, 128, 256, 8388674, 4194337, 14155886, 3, 512,
- 8388673, 6, 12583011, 5, 1024, 10485843, 12, 6291504, 12583008, 9, 24, 2048, 3145752, 8388679, 10, 7077943,
- 14680178, 48, 1572876, 13631594, 17, 4096, 8388683, 96, 786438, 12583014, 20, 6291507, 18, 33, 192, 8192,
- 393219, 7340089, 8388691, 6815797, 11534426, 12583018, 384, 131073, 6291489, 6291509, 11927640, 34, 40, 65,
- 16384, 262146, 8388707, 8585282, 12582978, 66, 768, 524292, 8388611, 8454211, 11534419, 11534425, 12583026,
- 1048584, 6291513, 36, 129, 1536, 32768, 2097168, 4292641, 5767213, 80, 130, 4194336, 6291473, 11796569,
- 12615778, 14155882, 132, 3072, 12058719, 12582946, 68, 257, 65536, 5963820, 8388803, 11534411, 11534431,
- 14155887, 258, 6144, 196609, 393218, 6307889, 7077941, 160, 260, 8388672, 72, 264, 513, 12288, 131072,
- 8388931, 10534995, 11272277, 14155878, 14155884, 786436, 8486979, 10485842, 12583138, 7, 516, 24576, 4194339,
- 6291569, 11927641, 136, 320, 514, 520, 1025, 393217, 5242921, 7077939, 7077942, 8388677, 8389187, 8585283,
- 12583009, 14418028, 13, 528, 49152, 1572872, 2981910, 8388678, 10485841, 11542619, 12583266, 14286959,
- 15466612, 14, 4194341, 6291633, 12632162, 14680179, 25, 144, 1026, 1032, 2049, 98304, 262144, 786434,
- 3145753, 8389699, 11534459, 13631595, 11, 26, 640, 1040, 3145744, 6291506, 8388682, 8388687, 11534363,
- 11927642, 12583012, 12583522, 12681314, 13656170, 14024809, 28, 49, 1056, 196608, 1572877, 4194345, 6291761,
- 7340088, 8388681, 11010135, 12583015, 14680176, 272, 1028, 2050, 4097, 1572868, 3145754, 3538971, 6291457,
- 6316081, 6815793, 6815796, 8388699, 8390723, 10485827, 10485847, 13631586, 13631592, 22, 52, 97, 2064,
- 786439, 4194305, 6291488, 6291508, 7209014, 8388690, 11534403, 12584034, 14155854, 21, 50, 56, 98, 1280,
- 2080, 1490955, 1572878, 3670044, 4194353, 5963821, 6291497, 6292017, 6340657, 7733306, 8388643, 8388723,
- 8781888, 9175109, 9961551, 12582914, 12582994, 12583019, 12583022, 14155902, 14159982, 15728762, 19, 193,
- 288, 2052, 2112, 4098, 8193, 524288, 3145736, 3145756, 3407898, 4390944, 8392771, 10485851, 11534555,
- 11796571, 12583016, 13893736, 14155874, 14352495, 15204470, 15532148, 44, 104, 393216, 2195472, 6291511,
- 6291512, 7077927, 7340081, 8388689, 8388706, 8388739, 12582979, 12583034, 12585058, 14680162, 14680182, 112,
- 196, 385, 4128, 1097736, 1835022, 4227105, 4292640, 5767209, 5767212, 6292529, 6828085, 7077937, 8388610,
- 8388695, 8454210, 11534418, 11534423, 11534424, 12583027, 13631598, 35, 41, 194, 544, 2056, 2560, 4100, 4160,
- 8194, 16385, 262147, 548868, 1703949, 2146320, 4259873, 6291472, 6291517, 7340091, 8388609, 8396867, 8519746,
- 11534417, 11534683, 11927632, 12976225, 13369444, 14155822, 42, 67, 88, 100, 208, 769, 4224, 274434, 524293,
- 1073160, 6291493, 6815799, 6946868, 7077951, 8388705, 8585280, 8650817, 10158158, 11546715, 12058715,
- 12582976, 12587106, 14155880, 14286958, 14680186, 38, 134, 224, 386, 392, 770, 131075, 137217, 536580,
- 786432, 917511, 1048585, 2883606, 3604507, 4194401, 5963816, 6291491, 6291537, 6293553, 7864381, 8389059,
- 8454209, 10502227, 11272279, 11796568, 12583024, 12583074, 12615779, 14155883, 15401079, 37, 70, 268, 576,
- 1537, 4104, 8196, 8256, 16386, 32769, 268290, 393223, 1048576, 2097169, 3866653, 6291515, 6307888, 7077911,
- 7077940, 7079991, 7340073, 7340093, 7602235, 8388715, 8405059, 10485875, 10518611, 11534429, 11534939,
- 11559003, 12058718, 12582947, 12582986, 12583030, 14680146, 81, 131, 176, 416, 536, 5120, 8320, 134145,
- 524294, 786446, 2981908, 3153944, 3538970, 5767205, 6684722, 6815781, 8388802, 8389443, 8847424, 8912967,
- 9134150, 9240645, 10485779, 11370581, 11534410, 11534430, 11927643, 12582944, 12591202, 12714083, 13631562,
- 14024808, 82, 133, 262, 388, 448, 784, 1072, 1540, 3073, 8448, 131077, 1048586, 1441803, 1572892, 1576972,
- 3473434, 4194465, 6295601, 7766074, 8388627, 8388801, 9437259, 11272273, 11534443, 11796561, 11927624,
- 11927644, 12615776, 12845152, 13631610, 14156014, 14418030, 69, 84, 140, 200, 524, 1088, 1538, 2144, 4112,
- 8200, 16388, 32770, 65537, 262150, 393227, 788486, 1490954, 1572864, 2097170, 3145784, 4292643, 4423712,
- 5767215, 5898284, 6422576, 8388711, 8390211, 8421443, 8457283, 8585286, 11535451, 12058711, 12058717,
- 12582982, 12583394, 13639786, 14696562, 15466614, 15564916, 76, 259, 352, 772, 832, 1048, 4288, 6145, 16512,
- 394243, 786454, 3211288, 4194338, 5963812, 6291475, 6291481, 6291568, 6815805, 8388615, 8388930, 8454215,
- 10534994, 11272276, 11534409, 11802713, 12599394, 13647978, 14155879, 14155885, 14876787, 74, 161, 261, 266,
- 896, 1568, 2096, 3074, 3080, 8576, 10240, 16640, 131081, 655365, 1048588, 1310730, 1572908, 1605644, 1769485,
- 2211856, 2621460, 3342361, 4194593, 5079079, 5242920, 6291697, 6299697, 7077938, 7143479, 7340057, 8388807,
- 8388929, 8391747, 8455747, 8486978, 8781889, 11534415, 12583139, 12583778, 13107302, 14155876, 14156142,
- 14418024, 14680114, 14745714, 73, 162, 265, 280, 1152, 4192, 8208, 12289, 16392, 16896, 17152, 32772, 65538,
- 132097, 262154, 393235, 802822, 1736717, 2097152, 2097172, 2981906, 3145816, 3538969, 4243489, 4292645,
- 5963822, 6029359, 6291553, 6815765, 7012404, 7209015, 8585290, 8585794, 8716353, 9109574, 10485971, 11536475,
- 11928664, 12320861, 12582962, 12583136, 13008993, 13631530, 14024811, 14155894, 14162030, 14286955, 14352494,
- 15466608, 164, 518, 704, 776, 1664, 6146, 8384, 34304, 133121, 196611, 401411, 524300, 786437, 786470,
- 1105928, 1703948, 2949142, 3145728, 4194340, 6291477, 6291632, 6291889, 6307891, 6819893, 7078007, 7209012,
- 7348281, 7733307, 8388619, 8388676, 8389186, 8394819, 8454219, 8454723, 10190926, 10534993, 11534451,
- 11796553, 11796573, 12189790, 12584546, 12615782, 14418029, 138, 168, 400, 517, 532, 1792, 3076, 3136, 6160,
- 16768, 24577, 33024, 68608, 131089, 135169, 264194, 745477, 851974, 1490953, 1572940, 4194849, 4292897,
- 4390945, 5267497, 5636138, 6553651, 6823989, 7733304, 8388835, 8388935, 8455235, 8486977, 10321997, 10485840,
- 11534395, 11542618, 12058703, 12582950, 12583106, 12583267, 12617314, 14156398, 14168174, 15466613, 16089208,
- 137, 152, 321, 515, 521, 560, 1544, 2176, 8224, 12290, 16400, 20480, 32776, 33280, 33536, 65540, 131074,
- 137216, 262162, 266242, 393251, 425987, 552964, 917510, 1572874, 2097176, 3145880, 3407896, 3604506, 4292649,
- 4567075, 6291571, 6292273, 7372857, 8388939, 8400963, 8456259, 8519747, 8585298, 8589378, 10486099, 11538523,
- 11927633, 12583142, 12583264, 12586082, 12616034, 12632163, 12779619, 12976224, 14155898, 148, 522, 529,
- 1036, 1408, 3328, 6148, 33792, 49153, 67072, 196613, 270338, 393222, 458755, 524308, 528388, 786502, 1572873,
- 2981911, 3866652, 3883037, 4194343, 4194344, 4554787, 5242913, 6291760, 6307873, 6307893, 7077925, 7077947,
- 7078071, 8388867, 8389185, 8389698, 8454227, 8585281, 8781890, 9175111, 9273413, 10158159, 10510419,
- 11010131, 11534458, 11534491, 12615786, 12616290, 12616546, 12648546, 12746851, 14073961, 14418020, 14680306,
- 15, 324, 1064, 3584, 6272, 12320, 24578, 131105, 134144, 163841, 276482, 393221, 532484, 1048600, 1474571,
- 1573004, 1835020, 3145748, 3506202, 4195361, 4292609, 4294689, 5767181, 6291456, 6293041, 6308017, 6316080,
- 6324273, 6488112, 6815792, 7077923, 7077949, 8388686, 8389191, 8413251, 8601666, 9257029, 10928208, 11403348,
- 11534347, 11534362, 11542611, 11542617, 11927672, 11960408, 12582954, 12583013, 12583523, 12589154, 12616802,
- 12681315, 13631722, 13656171, 13893738, 14155846, 14156910, 14286951, 14286957, 15401078, 15532150, 145, 322,
- 328, 1027, 1033, 1120, 1552, 2304, 12292, 16416, 32784, 65544, 66048, 98305, 131076, 262145, 262178, 393283,
- 540676, 786435, 1056776, 1441802, 2818069, 3146008, 4194304, 4194321, 4194349, 4292657, 5242923, 5767229,
- 5771309, 5964332, 6291601, 6291635, 6308145, 6946869, 7209010, 7340153, 7782458, 8388680, 8388685, 8388811,
- 8389195, 8470595, 8585314, 8618050, 10059855, 10485835, 10485845, 10486355, 10534979, 10534999, 10584147,
- 11010134, 11272261, 11534361, 11665498, 11798617, 11927576, 11927634, 11993176, 12583270, 12615746, 12632160,
- 14155790, 14155850, 14155870, 14680177, 15827066, 146, 276, 336, 641, 800, 1034, 2816, 6656, 49154, 66560,
- 196617, 197121, 524324, 720901, 786442, 786566, 3158040, 3670040, 5963817, 6291637, 6292016, 6294577,
- 6307897, 6308657, 6340656, 6815861, 7078199, 8389203, 8390722, 8454243, 8486983, 8585218, 8847425, 9134151,
- 10485846, 10535123, 12583274, 12615794, 13631587, 14159978 };
-
-static int cbest_25[1023] = {
- 1, 2, 16777220, 4, 8388610, 8, 4194305, 16, 32, 18874372, 64, 128, 9437186, 256, 512, 4718593, 1024, 2048,
- 4096, 19136516, 8192, 16384, 32768, 9568258, 65536, 131072, 262144, 4784129, 524288, 1048576, 2097152,
- 4194304, 19169284, 8388608, 3, 9584642, 16777216, 16777221, 5, 8388611, 16777222, 6, 9, 18, 36, 72, 144, 288,
- 576, 1152, 2304, 4608, 9216, 18432, 36864, 73728, 147456, 294912, 589824, 1179648, 2359296, 4718592,
- 25165830, 10, 17, 4194307, 8388614, 9437184, 16777228, 20971525, 12, 33, 4194309, 4792321, 8388618, 12582915,
- 16777236, 18874368, 18874373, 20, 34, 65, 4194313, 8388626, 16777252, 18874374, 24, 66, 129, 4194321,
- 8388642, 9437187, 16777284, 27262982, 40, 68, 130, 257, 4194337, 8388674, 16777348, 18874380, 23068677,
- 26214406, 48, 132, 258, 513, 4194369, 8388738, 9437190, 16777476, 18874388, 80, 136, 260, 514, 1025, 4194433,
- 4718595, 8388866, 9437194, 13631491, 16777732, 18874404, 19173380, 21495813, 96, 264, 516, 1026, 2049,
- 4194561, 4718597, 8389122, 9437202, 13107203, 16778244, 18874436, 160, 272, 520, 1028, 2050, 4097, 4194817,
- 4718601, 4784128, 8389634, 9437218, 9568256, 16779268, 18874500, 19136512, 19136517, 28311558, 192, 528,
- 1032, 2052, 4098, 8193, 2392064, 4195329, 4718609, 8390658, 9437250, 16781316, 18874628, 19136518, 320, 544,
- 1040, 2056, 4100, 8194, 16385, 1196032, 4196353, 4718625, 8392706, 9437314, 16785412, 18874884, 23592965,
- 27525126, 384, 1056, 2064, 4104, 8196, 16386, 32769, 598016, 4198401, 4718657, 8396802, 9437442, 9568259,
- 9586690, 16793604, 18875396, 19136524, 23330821, 640, 1088, 2080, 4112, 8200, 16388, 32770, 65537, 299008,
- 4202497, 4718721, 8404994, 9437698, 14155779, 16809988, 18876420, 19136532, 26345478, 768, 2112, 4128, 8208,
- 16392, 32772, 65538, 131073, 149504, 4210689, 4718849, 8421378, 9438210, 9568262, 16842756, 18878468,
- 19136548, 1280, 2176, 4160, 8224, 16400, 32776, 65540, 74752, 131074, 262145, 4227073, 4719105, 8454146,
- 9439234, 9568266, 13762563, 16908292, 18882564, 19136580, 1536, 4224, 8256, 16416, 32784, 37376, 65544,
- 131076, 262146, 524289, 4259841, 4719617, 4784131, 8519682, 9441282, 9568274, 17039364, 18890756, 19136644,
- 21561349, 28573702, 2560, 4352, 8320, 16448, 18688, 32800, 65552, 131080, 262148, 524290, 1048577, 4325377,
- 4720641, 4784133, 4793345, 8650754, 9445378, 9568290, 13172739, 17301508, 18907140, 19136772, 28442630, 3072,
- 8448, 9344, 16512, 32832, 65568, 131088, 262152, 524292, 1048578, 2097153, 4456449, 4722689, 4784137,
- 8912898, 9453570, 9568322, 17825796, 18939908, 19137028, 23855109, 4672, 5120, 8704, 16640, 32896, 65600,
- 131104, 262160, 524296, 1048580, 2097154, 4726785, 4784145, 9469954, 9568386, 19005444, 19137540, 19169280,
- 19169285, 2336, 6144, 16896, 33024, 65664, 131136, 262176, 524304, 1048584, 2097156, 4194306, 4734977,
- 4784161, 5242881, 9502722, 9568514, 9584640, 10485762, 19138564, 19169286, 20971524, 23658501, 1168, 10240,
- 17408, 33280, 65792, 131200, 262208, 524320, 1048592, 2097160, 4194308, 4751361, 4784193, 4792320, 6291457,
- 8388609, 9568770, 12582914, 14286851, 19140612, 19398660, 27557894, 584, 12288, 33792, 66048, 131328, 262272,
- 524352, 1048608, 2097168, 4194312, 4784257, 9569282, 9699330, 14221315, 19144708, 19169292, 19922948,
- 23363589, 25165828, 292, 20480, 34816, 66560, 131584, 262400, 524416, 1048640, 2097184, 2396160, 4194320,
- 4784385, 4849665, 8388612, 8388624, 9570306, 9584643, 9961474, 16777217, 19152900, 19169300, 19173892, 146,
- 24576, 67584, 132096, 262656, 524544, 1048704, 2097216, 4194336, 4784641, 4980737, 8388616, 9572354,
- 12582913, 16777218, 16777223, 16777248, 19169316, 23068676, 26361862, 28704774, 7, 19, 37, 73, 145, 289, 577,
- 1153, 2305, 4609, 9217, 18433, 36865, 40960, 69632, 73729, 133120, 147457, 263168, 294913, 524800, 589825,
- 1048832, 1179649, 1198080, 2097280, 2359297, 4194368, 4785153, 9576450, 9584646, 11534338, 19169348,
- 19202052, 25165826, 25165831, 11, 38, 74, 290, 578, 1154, 2306, 4610, 9218, 18434, 36866, 49152, 73730,
- 135168, 147458, 264192, 294914, 525312, 589826, 1049088, 1179650, 2097408, 2359298, 4194432, 4718594,
- 4786177, 5767169, 8388615, 8388640, 9437185, 9584650, 13631490, 13778947, 16777224, 16777229, 16777238,
- 16777292, 16777364, 16777508, 16777796, 16778372, 16779524, 16781828, 16786436, 16795652, 16814084, 16850948,
- 16924676, 17072132, 17367044, 17956868, 19169412, 19267588, 20971521, 21495812, 27262980, 28606470, 13, 22,
- 76, 148, 580, 1156, 2308, 4612, 9220, 18436, 36868, 73732, 81920, 139264, 147460, 266240, 294916, 526336,
- 589828, 599040, 1049600, 1179652, 2097664, 2359300, 4194560, 4718596, 4788225, 6815745, 8388619, 8388646,
- 8388672, 8388682, 8388754, 8388898, 8389186, 8389762, 8390914, 8393218, 8397826, 8407042, 8425474, 8462338,
- 8536066, 8683522, 8978434, 9584658, 9601026, 10747906, 13107202, 16777230, 16777232, 16777237, 18874369,
- 19169540, 20971527, 23920645, 26214404, 14, 21, 26, 35, 44, 152, 296, 1160, 2312, 4616, 9224, 18440, 36872,
- 73736, 98304, 147464, 270336, 294920, 528384, 589832, 1050624, 1179656, 2098176, 2359304, 4194311, 4194323,
- 4194341, 4194377, 4194449, 4194593, 4194816, 4194881, 4195457, 4196609, 4198913, 4203521, 4212737, 4231169,
- 4268033, 4341761, 4489217, 4718600, 4792323, 5373953, 6553601, 8388627, 8388736, 9437188, 9437200, 9584674,
- 9633794, 16777253, 18874370, 18874375, 18874400, 19169796, 19660804, 21569541, 23887877, 25165838, 28459014,
- 29360135, 25, 52, 67, 88, 304, 592, 2320, 4624, 9232, 18448, 36880, 73744, 147472, 163840, 278528, 294928,
- 299520, 532480, 589840, 1052672, 1179664, 2099200, 2359312, 4194315, 4195328, 4718608, 4792325, 4800513,
- 8388622, 8388643, 8388864, 9437192, 9584706, 9586946, 12582919, 13180931, 13631489, 16777254, 16777280,
- 16777285, 19170308, 20185092, 20971533, 25165846, 27262978, 27262983, 41, 50, 69, 104, 131, 176, 608, 1184,
- 4640, 9248, 18464, 36896, 73760, 147488, 196608, 294944, 540672, 589856, 1056768, 1179680, 2101248, 2359328,
- 4194317, 4196352, 4718624, 4792329, 4816897, 8388630, 8388675, 8389120, 9584770, 9830402, 12582923, 13107201,
- 14352387, 16777244, 16777286, 16777344, 16777349, 18874376, 18874381, 18874390, 18874444, 18874516, 18874660,
- 18874948, 18875524, 18876676, 18878980, 18883588, 18892804, 18911236, 18948100, 19021828, 19171332, 19464196,
- 20054020, 20971541, 23068673, 23592964, 25165862, 26214402, 26214407, 28, 42, 49, 70, 82, 100, 133, 208, 259,
- 352, 1216, 2368, 9280, 18496, 36928, 73792, 147520, 149760, 294976, 327680, 557056, 589888, 1064960, 1179712,
- 2105344, 2359360, 4194325, 4194339, 4198400, 4718656, 4792337, 8388634, 8388739, 8389632, 9437191, 9437216,
- 9584898, 10092546, 12582931, 16777260, 16777350, 16777472, 16777477, 18874382, 18874384, 18874389, 20971557,
- 23068679, 23330820, 25165894, 28311556, 81, 134, 137, 164, 200, 261, 416, 515, 704, 2432, 4736, 18560, 36992,
- 73856, 147584, 295040, 393216, 589952, 1081344, 1179776, 2113536, 2359424, 4194329, 4194371, 4202496,
- 4718720, 4792353, 4915201, 8388650, 8388678, 8388867, 8390656, 9437195, 9437222, 9437248, 9437258, 9437330,
- 9437474, 9437762, 9438338, 9439490, 9441794, 9446402, 9455618, 9474050, 9510914, 9585154, 9732098, 10027010,
- 11796482, 12582947, 14155778, 14303235, 16777268, 16777478, 16777728, 16777733, 18874405, 19173376, 19173381,
- 19177476, 20971589, 21495809, 23666693, 25165958, 27262990, 31457287, 97, 138, 262, 265, 274, 328, 400, 517,
- 832, 1027, 1408, 4864, 9472, 37120, 73984, 74880, 147712, 295168, 590080, 655360, 1114112, 1179904, 2129920,
- 2359552, 4194345, 4194373, 4194435, 4210688, 4718848, 4792385, 5046273, 8388658, 8388742, 8389123, 8392704,
- 9437203, 9437312, 9585666, 11665410, 12582979, 16777300, 16777356, 16777734, 16778240, 16778245, 18874406,
- 18874432, 18874437, 19173382, 19185668, 20971653, 21495815, 23068685, 25166086, 26214414, 27262998, 27525124,
- 30408711, 56, 84, 98, 140, 161, 266, 518, 521, 530, 656, 800, 1029, 1664, 2051, 9728, 18944, 74240, 147968,
- 295424, 590336, 786432, 1180160, 2162688, 2359808, 4194353, 4194437, 4194563, 4227072, 4718599, 4718611,
- 4718629, 4718665, 4718737, 4718881, 4719104, 4719169, 4720897, 4723201, 4727809, 4737025, 4755457, 4792449,
- 4866049, 5013505, 5898241, 7077889, 8388690, 8388870, 8389635, 8396800, 9437198, 9437219, 9437440, 9568257,
- 12583043, 13631495, 13762562, 14229507, 16777316, 16777484, 16778246, 16779264, 16779269, 18874396, 18874438,
- 18874496, 18874501, 19136513, 20971781, 23068693, 25166342, 26214422, 27263014, 27561990, 28311554, 28311559,
- 28737542, 29884423 };
-
-static int cbest_26[1023] = {
- 1, 2, 33554467, 4, 50331698, 8, 25165849, 16, 32, 64, 46137391, 128, 256, 56623156, 512, 33554466, 16777233,
- 3, 1024, 28311578, 33554465, 6, 50331699, 5, 41943083, 12, 2048, 25165848, 50331696, 9, 24, 12582924,
- 33554471, 10, 4096, 14155789, 58720314, 48, 6291462, 54526006, 17, 33554475, 96, 8192, 3145731, 50331702, 20,
- 25165841, 25165851, 18, 33, 192, 29360157, 33554483, 50331682, 34, 16384, 27263003, 33554435, 35127330,
- 46137387, 46137390, 50331706, 384, 25165853, 40632357, 40, 65, 66, 768, 32768, 17563665, 25165833, 46137389,
- 56623158, 68, 1048577, 50331666, 36, 129, 1536, 2097154, 23068695, 33554531, 46137383, 48234541, 80, 130,
- 65536, 4194308, 28311579, 34078755, 47185966, 56623152, 56623157, 132, 3072, 8388616, 28311576, 136, 257,
- 14155788, 16777232, 33554595, 6144, 131072, 42336299, 45088808, 50331762, 50593842, 53870641, 160, 260,
- 25165881, 72, 258, 264, 513, 12288, 1572865, 3145730, 33554723, 272, 262144, 7077894, 23592983, 25296921,
- 33554464, 50331826, 57671733, 24576, 22544404, 25165913, 47710254, 61866041, 320, 514, 520, 1025, 6291460,
- 33554979, 34340899, 41943082, 46137407, 7, 528, 49152, 524288, 16777235, 46137359, 50331954, 544, 3145729,
- 3538947, 20971541, 25165977, 33554469, 35127331, 50331697, 54722614, 56623140, 13, 144, 516, 1026, 2049,
- 98304, 11272202, 12582920, 28311570, 33554470, 33555491, 41943081, 45350952, 56623164, 14, 640, 1040,
- 1048576, 14155785, 16777237, 46202927, 50332210, 50724914, 58720315, 25, 1056, 196608, 6291458, 12582925,
- 25166105, 27263001, 41943075, 44040233, 54526002, 54526007, 11, 26, 1028, 1088, 2050, 4097, 16777217,
- 23855127, 25165825, 25165840, 25165850, 28311582, 33554474, 33554479, 33556515, 46137455, 50331700, 51118130,
- 60489787, 62390329, 28, 49, 393216, 5636101, 6291463, 16777241, 29360156, 33554473, 35323938, 46137379,
- 50331703, 50332722, 56623124, 58720312, 50, 1280, 2080, 12582916, 12582926, 22675476, 25165845, 25166361,
- 25362457, 27263002, 28311562, 33554451, 33554491, 36700192, 39845925, 40632359, 41943087, 47185967, 50331650,
- 50331690, 54526004, 22, 52, 97, 288, 1032, 2052, 2112, 4098, 8193, 786432, 14155781, 14155791, 18350096,
- 25165852, 27361307, 29360153, 33554482, 33558563, 46137385, 46137519, 50331683, 56623154, 56655924, 58720306,
- 60817464, 64487487, 21, 56, 2176, 2097152, 9175048, 14680078, 23068693, 25559065, 33554434, 33554499,
- 46137386, 50331707, 50331710, 50333746, 62914622, 19, 100, 193, 1572864, 4587524, 13631501, 17563664,
- 25165832, 25165843, 25166873, 28311577, 33554433, 40632353, 40632356, 45088809, 50331704, 53870640, 55574583,
- 35, 44, 98, 104, 2056, 2560, 4100, 4160, 8194, 16385, 2293762, 8781832, 17661969, 25165855, 33554481,
- 33562659, 36372513, 45482024, 46137647, 48234543, 50331680, 53477425, 56623220, 58720318, 42, 70, 112, 385,
- 4224, 1146881, 4390916, 7340039, 11337738, 16777265, 23068694, 30408732, 33554487, 35127328, 46137388,
- 50331686, 50335794, 56623159, 57147444, 38, 41, 140, 194, 200, 386, 4352, 2195458, 25165865, 25167897,
- 28327962, 29360149, 29360159, 33554659, 41943099, 50331667, 50331730, 57671732, 58720298, 67, 88, 208, 280,
- 576, 769, 2064, 4104, 8196, 16386, 32769, 1097729, 3145735, 23068691, 27262995, 28311610, 33554443, 33554530,
- 33570851, 37224480, 40370213, 41943051, 46137382, 46137903, 46235695, 47710255, 48234537, 48234540, 50331664,
- 54525990, 56623284, 61866040, 69, 84, 134, 224, 560, 5120, 8320, 3145728, 3538946, 4194304, 6291470,
- 11534347, 16777297, 17039377, 20316178, 31457311, 33554529, 33554851, 34078754, 45088810, 46137381, 47185962,
- 50339890, 53870643, 54526014, 56623153, 61341752, 37, 76, 196, 268, 400, 772, 1120, 1537, 8448, 2097155,
- 7077892, 12582940, 15204366, 17301521, 18612240, 22544405, 23592981, 25165837, 25169945, 26935320, 34127907,
- 34603042, 46137399, 46333999, 47235118, 64749631, 81, 131, 176, 416, 536, 770, 2240, 4112, 8200, 8704, 16388,
- 32770, 65537, 1769473, 3145739, 4194309, 5668869, 14155784, 14155805, 17563667, 22741012, 25165835, 25165880,
- 27263007, 28311642, 28573722, 33554439, 33554594, 33555235, 33587235, 35127334, 35651617, 46138415, 50331890,
- 56098871, 56623412, 63799358, 65798204, 82, 133, 138, 168, 388, 448, 1072, 3073, 4480, 1048579, 6291478,
- 8388617, 9306120, 14163981, 16777361, 24117270, 25165873, 28835866, 29360141, 33554535, 33554593, 34078753,
- 34103331, 42074155, 42336298, 45350953, 47185964, 50331674, 50331763, 50348082, 50593843, 56623160, 57671735,
- 58720282, 60293179, 137, 152, 800, 1538, 1544, 2144, 8960, 10240, 16640, 6291456, 12582956, 23592982,
- 25165945, 25174041, 25296920, 27262987, 28311568, 30933020, 33556003, 39321638, 41943147, 42205227, 42385451,
- 46137403, 48234533, 50331760, 50332082, 51740723, 53739569, 54525974, 61866043, 262, 352, 832, 1152, 4128,
- 4288, 6145, 8208, 16392, 16896, 17920, 32772, 65538, 131073, 3145747, 3538945, 4194310, 4653060, 5636100,
- 7602183, 10158089, 12648460, 14155821, 17563669, 25165912, 28311571, 28311580, 28311706, 30670876, 33554547,
- 33554722, 33620003, 35127338, 37748775, 46139439, 47185958, 49283116, 50331746, 51380275, 56623668, 56672308,
- 57409588, 74, 161, 261, 276, 336, 392, 896, 3074, 8576, 17408, 35840, 1048581, 6291494, 6324230, 7077890,
- 8388608, 8388618, 11272200, 16777489, 23592979, 25166041, 33554599, 33557539, 40632365, 42336297, 44826665,
- 50331670, 50331827, 50332466, 50364466, 50593840, 50618418, 52428848, 56623136, 56623166, 57671729, 60489786,
- 62390328, 73, 259, 265, 304, 1540, 1600, 3088, 12289, 17152, 71680, 2097158, 2326530, 2818050, 3162115,
- 12058635, 12582988, 13467660, 14155780, 14155790, 14286861, 16777234, 17563649, 21168149, 22544400, 25165883,
- 25182233, 26214424, 33554563, 33554603, 34439203, 35323939, 41943211, 46137375, 47710250, 50331766, 50331824,
- 54591542, 56623142, 56721460, 58851386, 164, 266, 273, 524, 704, 776, 1664, 6146, 8224, 16400, 20480, 32776,
- 33280, 34304, 65540, 131074, 143360, 262145, 3145763, 5242885, 7077895, 10485770, 11370506, 11796491,
- 12582912, 13107212, 14155853, 14417933, 17563673, 19660819, 20971540, 25165976, 25166233, 28311583, 28311834,
- 33554721, 33554978, 33560611, 33685539, 34078759, 34340898, 35127346, 36388897, 36700193, 37355552, 42336291,
- 45088800, 45350954, 46137351, 46137406, 46141487, 50333234, 50606130, 54657078, 56624180, 58720378, 61603896,
- 162, 552, 672, 1792, 3076, 24577, 33792, 68608, 286720, 1048585, 1163265, 1409025, 6291526, 6553606, 8388620,
- 13631500, 14155777, 15466510, 16777745, 17170449, 23068679, 23617559, 23855125, 25165897, 25165969, 28311554,
- 33554727, 35127298, 35135522, 36175905, 40632373, 40636453, 46137355, 46137358, 46137423, 50331955, 50397234,
- 54526070, 56623108, 56623148, 59244602, 64487486, 321, 515, 521, 608, 3200, 6176, 12290, 34816, 137216,
- 573440, 1572867, 2097162, 3276803, 6291461, 6815750, 12583052, 15335438, 16777236, 20971537, 22675477,
- 23068703, 24641558, 25165915, 25166617, 25198617, 28311563, 29360189, 33554468, 33554539, 33554731, 33566755,
- 40632325, 41943339, 44040235, 46137357, 46137451, 47710252, 50331830, 50334770, 54722610, 54722615, 56623126,
- 56623141, 148, 274, 322, 522, 529, 784, 1048, 1408, 2304, 3328, 6148, 8256, 16416, 32784, 49153, 65544,
- 131076, 262146, 274432, 524289, 1146880, 3145795, 3407875, 4194316, 7340038, 14155917, 17567761, 18350097,
- 18677776, 25165917, 25166104, 25296913, 25296923, 25309209, 27263000, 27263035, 27295771, 28311560, 28311574,
- 28312090, 28336154, 28704794, 29425693, 32899102, 33554739, 33554977, 33555490, 33816611, 34078763, 34340897,
- 37093408, 41943080, 42336303, 45088812, 46137405, 46145583, 50331794, 50331834, 50331938, 50593846, 53870645,
- 55574582, 56229943, 56623165, 56625204, 58720442, 62390331, 63701054, 65929276, 518, 545, 1104, 1344, 3080,
- 3584, 24578, 40960, 66560, 548864, 1048593, 3670019, 6291590, 12582922, 16777216, 16778257, 22544406,
- 23855126, 25165824, 25165885, 25165905, 25166097, 25167385, 27328539, 27361305, 31195164, 33579043, 35192866,
- 39583782, 40632355, 44138537, 45482025, 46202923, 46202926, 47710246, 50331952, 50332211, 50337842, 50462770,
- 50724915, 51904563, 53477424, 54526000, 54526134, 60424251, 61866033, 145, 328, 517, 532, 546, 1027, 1216,
- 1552, 6400, 12292, 12352, 67584, 98305, 1097728, 1572869, 2097170, 3145734, 6733830, 11272203, 12582921,
- 12583180, 14155787, 14680076, 16777225, 16777239, 16777240, 25165979, 25231385, 25303065, 28360730, 29360221,
- 29622301, 33554787, 33554947, 33554987, 35127329, 35258402, 36700194, 38633511, 39452710, 39845927, 40697893,
- 41943074, 41943079, 41943595, 42139691, 43384874, 44040232, 46137515, 46137583, 48234557, 50331958, 50593826,
- 50774066, 51216434, 51642419, 53870625, 54526003, 54722612, 54747190, 59424826, 15, 641, 6152, 6656, 49154,
- 69632, 131080, 4194324, 11534346, 14156045, 17596433, 25168921, 25296925, 25362456, 27263067, 33556514,
- 35389474, 41943073, 50331701, 50331770, 50332194, 50343986, 50593850, 60817466 };
-
-static int cbest_27[1023] = {
- 1, 2, 67108883, 4, 100663322, 8, 50331661, 16, 32, 92274709, 64, 128, 113246233, 256, 512, 67108882,
- 33554441, 3, 1024, 67108881, 123731999, 6, 100663323, 5, 2048, 83886103, 12, 50331660, 100663320, 9, 24,
- 4096, 25165830, 67108887, 109051928, 10, 117440542, 48, 12582915, 50331657, 17, 8192, 54525964, 67108891,
- 100663314, 128974876, 18, 96, 67108867, 92274711, 100663326, 20, 50331663, 73400338, 92274708, 113246232, 33,
- 192, 16384, 27262982, 58720271, 34, 50331653, 92274705, 36, 384, 36700169, 46137354, 100663306, 40, 65,
- 32768, 13631491, 56623116, 67108915, 66, 768, 96469012, 113246235, 68, 23068677, 64487438, 72, 129, 1536,
- 65536, 67108947, 80, 4194305, 28311558, 73924626, 100663354, 132, 3072, 8388610, 48234506, 50331677,
- 85458967, 123731998, 130, 136, 257, 131072, 16777220, 67109011, 69206035, 78643217, 144, 6144, 33554440,
- 92274717, 100663386, 160, 14155779, 36962313, 50331693, 92274693, 258, 264, 513, 12288, 262144, 24117253,
- 67109139, 101711898, 113246225, 272, 6291457, 12582914, 32243719, 100663450, 109838360, 113246237, 288,
- 24576, 50331725, 67108880, 260, 320, 514, 1025, 524288, 50855949, 61865999, 67109395, 528, 49152, 25165828,
- 70254611, 74186770, 83886102, 92274741, 100663578, 106430491, 123731995, 7, 544, 33554443, 50331789,
- 79167505, 113246217, 123731997, 516, 576, 1026, 2049, 98304, 1048576, 12582913, 41943051, 54525965, 54919180,
- 67108885, 67109907, 73400339, 83886099, 85590039, 100663321, 109051930, 13, 640, 33554433, 50331656,
- 67108886, 83886101, 92274773, 92536853, 100663834, 109051929, 14, 26, 1056, 196608, 13631490, 33554445,
- 50331649, 50331917, 83230736, 102236186, 117440543, 25, 52, 520, 1028, 1088, 2050, 4097, 2097152, 6815745,
- 25165826, 25165831, 37093385, 67110931, 88080406, 92274707, 98041876, 123731991, 128974878, 11, 104, 1152,
- 393216, 23068676, 27262980, 50331659, 50331662, 58720269, 67108875, 67108890, 67108895, 79691792, 92274837,
- 94371861, 100663298, 100663315, 100663318, 100663324, 100664346, 103809050, 113246265, 117440538, 128974877,
- 22, 28, 49, 208, 1280, 11534338, 27459590, 39845896, 46137355, 50332173, 58720270, 67108866, 67108889,
- 92274710, 96469013, 100663312, 100663327, 113246234, 117440540, 44, 416, 1032, 2052, 2112, 4098, 8193,
- 786432, 4194304, 5767169, 19922948, 44040203, 46137352, 50331652, 51118093, 54525960, 56623117, 67108865,
- 67108899, 67112979, 109903896, 113377305, 120324126, 125829148, 128974872, 19, 88, 97, 832, 2176, 9961474,
- 13631489, 36700168, 70516755, 92274965, 100665370, 106692635, 113246297, 121634847, 21, 38, 50, 56, 176,
- 1664, 2304, 1572864, 4980737, 18350084, 29360135, 33554457, 50332685, 51904525, 64487439, 73924627, 92274704,
- 109051920, 123731983, 76, 193, 352, 1040, 2056, 2560, 3328, 4100, 8194, 16385, 9175042, 27262978, 27262983,
- 41615368, 49020938, 54525966, 58720267, 64487436, 67108871, 67117075, 73400336, 83886111, 90177558,
- 100663307, 109051932, 114294809, 117440534, 35, 98, 152, 194, 704, 4224, 6656, 3145728, 4587521, 13729795,
- 14155778, 50331669, 62914574, 67108914, 67108979, 69992467, 81788944, 83886087, 89128982, 92275221, 96469014,
- 100663304, 100663338, 100667418, 113246361, 115343385, 37, 42, 70, 112, 304, 385, 1408, 4352, 13312,
- 12582919, 24117252, 28311556, 33554473, 48234507, 50331655, 50333709, 54525956, 67108913, 80740368, 85655575,
- 92274713, 92667925, 95420437, 128974868, 41, 140, 608, 2064, 2816, 4104, 4608, 8196, 16386, 26624, 32769,
- 6291456, 7077889, 8388608, 25165838, 32243718, 40894472, 48234504, 54951948, 56623112, 67109075, 67125267,
- 69599251, 102367258, 127926300, 67, 100, 280, 388, 769, 1216, 5120, 5632, 53248, 12058626, 40370184,
- 45088779, 50331673, 50331676, 67108946, 92275733, 93061141, 96469008, 100663310, 100671514, 104071194,
- 109051912, 113246224, 113246489, 123732031, 131596317, 69, 74, 84, 224, 386, 560, 2432, 8448, 11264, 106496,
- 12582923, 20447236, 23068673, 31457287, 33554505, 36700171, 44564491, 50335757, 58720263, 60162063, 64487434,
- 67108919, 67108945, 67109267, 69402643, 73400342, 92274719, 100663355, 100663418, 113246236, 117440526,
- 123797535, 73, 196, 1120, 1537, 2080, 4112, 4864, 8200, 8704, 16388, 22528, 32770, 65537, 212992, 6029313,
- 14155777, 20185092, 24510469, 25165846, 56623118, 67108923, 67141651, 78643219, 83886135, 85458966, 92274695,
- 99352596, 100663346, 100663352, 102105114, 113246239, 81, 134, 770, 776, 2240, 9216, 9728, 45056, 425984,
- 10223618, 20807684, 28311554, 28311559, 34603017, 36700161, 36962312, 46137346, 50331689, 50331692, 50331709,
- 67109010, 67109651, 69206034, 73973778, 78643216, 91226134, 92274689, 92276757, 100663514, 100679706,
- 113246227, 113246745, 120455198, 123732063, 128974860, 133, 148, 168, 448, 3073, 4480, 10240, 19456, 90112,
- 851968, 8388611, 10092546, 12582912, 12582931, 23068679, 32243717, 33554569, 35651593, 36700173, 46137358,
- 50339853, 51183629, 56623108, 63963150, 67108931, 67108951, 70647827, 71303186, 73400346, 73924624, 74186771,
- 82837520, 85458963, 92274701, 92274716, 100663387, 101908506, 106430490, 113442841, 114819097, 123731994,
- 124256287, 131, 137, 200, 1538, 4128, 8208, 8960, 16392, 16896, 32772, 38912, 65538, 131073, 180224, 1703936,
- 5111809, 13631495, 16121859, 16777216, 16777221, 18481156, 25165862, 27262990, 27475974, 39321608, 50331679,
- 50331757, 52035597, 54525980, 67108955, 67110419, 67174419, 73400322, 75497489, 83886167, 85458965, 89653270,
- 92274692, 100663358, 100663378, 100663384, 100663706, 109051960, 109936664, 113246216, 123731996, 124780575,
- 82, 138, 145, 268, 772, 1552, 6145, 17408, 17920, 77824, 360448, 3407872, 4194307, 5046273, 42729483,
- 50331685, 50331721, 50331724, 61865997, 64487430, 67109009, 67109138, 69206033, 81264656, 84410391, 89391126,
- 92274725, 92278805, 100696090, 101711899, 101810202, 109838362, 113246209, 113246229, 113247257, 113639449,
- 117440574, 123732127, 146, 161, 296, 336, 392, 896, 3074, 18432, 35840, 155648, 720896, 6815744, 9240578,
- 12582947, 19660804, 33554697, 41418760, 50331853, 50348045, 50855948, 51052557, 61865998, 67108995, 67109015,
- 67111955, 70123539, 84934679, 92274743, 100663451, 100664090, 109838361, 162, 259, 265, 1540, 4160, 8224,
- 12289, 16400, 20480, 32776, 65540, 71680, 131074, 262145, 311296, 1441792, 13631499, 16777222, 24117249,
- 25165824, 25165894, 25427974, 27262998, 45613067, 50331695, 54525996, 54919181, 58720287, 67109019, 67239955,
- 83230737, 83886231, 92274737, 97189908, 100663370, 100663390, 100663442, 104857627, 109051992, 109314072,
- 113246219, 128974908, 129007644, 266, 273, 536, 3104, 6146, 33792, 143360, 622592, 2883584, 4194309, 4620289,
- 9830402, 12713987, 31981575, 32243715, 33554442, 36986889, 40632328, 41943049, 48234498, 49676298, 50331717,
- 50331785, 50331788, 50332045, 50954253, 53215245, 67109137, 67109394, 67115027, 73924630, 79364113, 88080407,
- 92282901, 96469020, 98041877, 100664858, 100728858, 101711896, 109576216, 113248281, 117440606, 123731987,
- 123731990, 123731993, 123732255, 262, 274, 289, 400, 592, 672, 1792, 3076, 24577, 34816, 286720, 1245184,
- 5767168, 8388614, 10403842, 12582979, 20709380, 20971525, 23068685, 33554953, 36700185, 36962315, 41943050,
- 44826635, 46137370, 48234510, 50364429, 54657036, 67109043, 67109123, 69664787, 70254610, 73400370, 79167507,
- 79691793, 92274740, 92274775, 92274805, 92700693, 96468996, 100663448, 100663579, 102432794, 104202266,
- 113246264, 117964830, 132907037, 261, 276, 290, 321, 515, 1544, 8256, 12290, 16416, 32784, 36864, 65544,
- 131076, 262146, 524289, 573440, 2490368, 4915201, 13631488, 13631507, 13737987, 24117255, 25165958, 27263014,
- 33554432, 35127305, 44695563, 50331727, 50332429, 50855945, 50905101, 54526028, 54788108, 56623132, 58720303,
- 61865995, 67109147, 67121171, 67371027, 69206039, 69632019, 73465874, 77594641, 78643221, 79167504, 83886097,
- 83886359, 88473622, 92274769, 93126677, 100663434, 100663454, 100663570, 100666394, 109052056, 111149080,
- 128974940, 129237020, 292, 322, 529, 784, 1072, 6148, 6208, 40960, 49153, 1146880, 4194313, 4980736, 6291459,
- 20316164, 25165829, 27328518, 28311566, 29360134, 30932999, 33554444, 36962305, 50331648, 50331781, 50331916,
- 54968332, 60227599, 67108884, 67109393, 67109906, 73924634, 75169810, 83886098, 85590038, 92274901, 92291093,
- 92536855, 100794394, 109051931, 113246249, 113250329, 113377304, 117440670, 119537694, 123732511, 129499164,
- 164, 324, 518, 530, 545, 1184, 1344, 3080, 3584, 24578, 67584, 2293760, 8388618, 10354690, 12583043,
- 14155783, 14680067, 23068693, 27394054, 33554437, 33555465, 36700201, 36732937, 36962317, 37093384, 39845897,
- 46137386, 50333197, 50397197, 55574540, 64487454, 67109171, 67109379, 67133459, 70254609, 73400402, 73924610,
- 74186768, 83099664, 83230738, 83886100, 85458975, 92274772, 92536852, 92635157, 100663576, 100663835,
- 100669466, 101711890, 102170650, 106430489, 106692634, 113246267, 113246296, 121634846, 123830303, 124518431,
- 128974874, 517, 532, 16448, 69632, 524290, 1048577, 4587520, 27262976, 46137353, 50331658, 50331741,
- 54525961, 56623148, 58720268, 58982415, 67109143, 67109203, 67633171, 78643225, 100663482, 102236187,
- 106954779, 123731982 };
-
-static int cbest_28[1023] = {
- 1, 2, 134217732, 4, 67108866, 8, 33554433, 16, 32, 150994948, 64, 128, 75497474, 256, 512, 37748737, 1024,
- 2048, 4096, 153092100, 8192, 16384, 32768, 76546050, 65536, 131072, 262144, 38273025, 524288, 1048576,
- 2097152, 4194304, 153354244, 8388608, 16777216, 33554432, 76677122, 67108864, 3, 134217728, 134217733, 5,
- 38338561, 67108867, 134217734, 6, 9, 18, 36, 72, 144, 288, 576, 1152, 2304, 4608, 9216, 18432, 36864, 73728,
- 147456, 294912, 589824, 1179648, 2359296, 4718592, 9437184, 18874368, 37748736, 201326598, 10, 17, 33554435,
- 67108870, 75497472, 134217740, 167772165, 12, 33, 33554437, 67108874, 100663299, 134217748, 150994944,
- 150994949, 20, 34, 65, 33554441, 67108882, 134217764, 150994950, 24, 66, 129, 33554449, 67108898, 75497475,
- 134217796, 153387012, 218103814, 40, 68, 130, 257, 33554465, 67108930, 134217860, 150994956, 184549381,
- 209715206, 48, 132, 258, 513, 33554497, 67108994, 75497478, 134217988, 150994964, 80, 136, 260, 514, 1025,
- 33554561, 37748739, 67109122, 75497482, 109051907, 134218244, 150994980, 171966469, 96, 264, 516, 1026, 2049,
- 33554689, 37748741, 67109378, 75497490, 104857603, 134218756, 150995012, 160, 272, 520, 1028, 2050, 4097,
- 33554945, 37748745, 38273024, 67109890, 75497506, 76546048, 76693506, 134219780, 150995076, 153092096,
- 153092101, 226492422, 192, 528, 1032, 2052, 4098, 8193, 19136512, 33555457, 37748753, 67110914, 75497538,
- 134221828, 150995204, 153092102, 320, 544, 1040, 2056, 4100, 8194, 16385, 9568256, 33556481, 37748769,
- 67112962, 75497602, 134225924, 150995460, 188743685, 220200966, 384, 1056, 2064, 4104, 8196, 16386, 32769,
- 4784128, 33558529, 37748801, 67117058, 75497730, 76546051, 134234116, 150995972, 153092108, 186646533, 640,
- 1088, 2080, 4112, 8200, 16388, 32770, 65537, 2392064, 33562625, 37748865, 67125250, 75497986, 113246211,
- 134250500, 150996996, 153092116, 210763782, 768, 2112, 4128, 8208, 16392, 32772, 65538, 131073, 1196032,
- 33570817, 37748993, 38346753, 67141634, 75498498, 76546054, 134283268, 150999044, 153092132, 1280, 2176,
- 4160, 8224, 16400, 32776, 65540, 131074, 262145, 598016, 33587201, 37749249, 67174402, 75499522, 76546058,
- 110100483, 134348804, 151003140, 153092164, 1536, 4224, 8256, 16416, 32784, 65544, 131076, 262146, 299008,
- 524289, 33619969, 37749761, 38273027, 67239938, 75501570, 76546066, 134479876, 151011332, 153092228,
- 172490757, 228589574, 2560, 4352, 8320, 16448, 32800, 65552, 131080, 149504, 262148, 524290, 1048577,
- 33685505, 37750785, 38273029, 67371010, 75505666, 76546082, 105381891, 134742020, 151027716, 153092356,
- 227540998, 3072, 8448, 16512, 32832, 65568, 74752, 131088, 262152, 524292, 1048578, 2097153, 33816577,
- 37752833, 38273033, 67633154, 75513858, 76546114, 135266308, 151060484, 153092612, 190840837, 5120, 8704,
- 16640, 32896, 37376, 65600, 131104, 262160, 524296, 1048580, 2097154, 4194305, 34078721, 37756929, 38273041,
- 68157442, 75530242, 76546178, 136314884, 151126020, 153093124, 153354240, 153354245, 6144, 16896, 18688,
- 33024, 65664, 131136, 262176, 524304, 1048584, 2097156, 4194306, 8388609, 34603009, 37765121, 38273057,
- 69206018, 75563010, 76546306, 76677120, 138412036, 151257092, 153094148, 153354246, 153391108, 189267973,
- 9344, 10240, 17408, 33280, 65792, 131200, 262208, 524320, 1048592, 2097160, 4194308, 8388610, 16777217,
- 35651585, 37781505, 38273089, 38338560, 71303170, 75628546, 76546562, 114294787, 142606340, 151519236,
- 153096196, 220463110, 4672, 12288, 33792, 66048, 131328, 262272, 524352, 1048608, 2097168, 4194312, 8388612,
- 16777218, 37814273, 38273153, 75759618, 76547074, 113770499, 152043524, 153100292, 153354252, 186908677,
- 2336, 20480, 34816, 66560, 131584, 262400, 524416, 1048640, 2097184, 4194320, 8388616, 16777220, 19169280,
- 33554434, 37879809, 38273281, 41943041, 76021762, 76548098, 76677123, 83886082, 153108484, 153354260,
- 167772164, 1168, 24576, 67584, 132096, 262656, 524544, 1048704, 2097216, 4194336, 8388624, 16777224,
- 33554436, 38010881, 38273537, 50331649, 67108865, 76550146, 100663298, 153124868, 153354276, 155189252,
- 210894854, 229638150, 584, 40960, 69632, 133120, 263168, 524800, 1048832, 2097280, 4194368, 8388640, 9584640,
- 16777232, 33554440, 38274049, 76554242, 76677126, 77594626, 153157636, 153354308, 159383556, 201326596, 292,
- 49152, 135168, 264192, 525312, 1049088, 2097408, 4194432, 8388672, 16777248, 33554448, 38275073, 38797313,
- 67108868, 67108880, 76562434, 76677130, 76695554, 79691778, 110231555, 134217729, 153223172, 153354372,
- 228851718, 146, 81920, 139264, 266240, 526336, 1049600, 2097664, 4194560, 4792320, 8388736, 16777280,
- 33554464, 38277121, 39845889, 67108872, 76578818, 76677138, 100663297, 134217730, 134217735, 134217760,
- 153354500, 184549380, 191365125, 7, 19, 37, 73, 145, 289, 577, 1153, 2305, 4609, 9217, 18433, 36865, 73729,
- 98304, 147457, 270336, 294913, 528384, 589825, 1050624, 1179649, 2098176, 2359297, 4194816, 4718593, 8388864,
- 9437185, 16777344, 18874369, 33554496, 38281217, 38338563, 76611586, 76677154, 92274690, 153354756,
- 153616388, 172556293, 191102981, 201326594, 201326599, 227672070, 11, 38, 74, 290, 578, 1154, 2306, 4610,
- 9218, 18434, 36866, 73730, 147458, 163840, 278528, 294914, 532480, 589826, 1052672, 1179650, 2099200,
- 2359298, 2396160, 4195328, 4718594, 8389120, 9437186, 16777472, 18874370, 33554560, 37748738, 38289409,
- 38338565, 46137345, 67108871, 67108896, 75497473, 76677186, 105447427, 109051906, 134217736, 134217741,
- 134217750, 134217804, 134217876, 134218020, 134218308, 134218884, 134220036, 134222340, 134226948, 134236164,
- 134254596, 134291460, 134365188, 134512644, 134807556, 135397380, 136577028, 138936324, 143654916, 153355268,
- 154140676, 167772161, 171966468, 218103812, 13, 22, 76, 148, 580, 1156, 2308, 4612, 9220, 18436, 36868,
- 73732, 147460, 196608, 294916, 540672, 589828, 1056768, 1179652, 2101248, 2359300, 4196352, 4718596, 8389632,
- 9437188, 16777728, 18874372, 33554688, 37748740, 38305793, 38338569, 54525953, 67108875, 67108902, 67108928,
- 67108938, 67109010, 67109154, 67109442, 67110018, 67111170, 67113474, 67118082, 67127298, 67145730, 67182594,
- 67256322, 67403778, 67698690, 68288514, 69468162, 71827458, 76677250, 76808194, 85983234, 104857602,
- 114819075, 134217742, 134217744, 134217749, 150994945, 153356292, 167772167, 209715204, 14, 21, 26, 35, 44,
- 152, 296, 1160, 2312, 4616, 9224, 18440, 36872, 73736, 147464, 294920, 327680, 557056, 589832, 1064960,
- 1179656, 1198080, 2105344, 2359304, 4198400, 4718600, 8390656, 9437192, 16778240, 18874376, 33554439,
- 33554451, 33554469, 33554505, 33554577, 33554721, 33554944, 33555009, 33555585, 33556737, 33559041, 33563649,
- 33572865, 33591297, 33628161, 33701889, 33849345, 34144257, 34734081, 35913729, 37748744, 38338577, 42991617,
- 52428801, 67108883, 67108992, 75497476, 75497488, 76677378, 77070338, 134217765, 150994946, 150994951,
- 150994976, 153358340, 157286404, 201326606, 234881031, 25, 52, 67, 88, 304, 592, 2320, 4624, 9232, 18448,
- 36880, 73744, 147472, 294928, 393216, 589840, 1081344, 1179664, 2113536, 2359312, 4202496, 4718608, 8392704,
- 9437200, 16779264, 18874384, 33554443, 33555456, 37748752, 38338593, 38347777, 38404097, 67108878, 67108899,
- 67109120, 75497480, 76677634, 100663303, 109051905, 114425859, 134217766, 134217792, 134217797, 153362436,
- 153387008, 153387013, 161480708, 167772173, 189333509, 201326614, 218103810, 218103815, 41, 50, 69, 104, 131,
- 176, 608, 1184, 4640, 9248, 18464, 36896, 73760, 147488, 294944, 589856, 599040, 655360, 1114112, 1179680,
- 2129920, 2359328, 4210688, 4718624, 8396800, 9437216, 16781312, 18874400, 33554445, 33556480, 37748768,
- 38338625, 38535169, 67108886, 67108931, 67109376, 76678146, 78643202, 100663307, 104857601, 134217756,
- 134217798, 134217856, 134217861, 150994952, 150994957, 150994966, 150995020, 150995092, 150995236, 150995524,
- 150996100, 150997252, 150999556, 151004164, 151013380, 151031812, 151068676, 151142404, 151289860, 151584772,
- 152174596, 153370628, 153387014, 155713540, 160432132, 167772181, 184549377, 188743684, 201326630, 209715202,
- 209715207, 28, 42, 49, 70, 82, 100, 133, 208, 259, 352, 1216, 2368, 9280, 18496, 36928, 73792, 147520,
- 294976, 589888, 786432, 1179712, 2162688, 2359360, 4227072, 4718656, 8404992, 9437248, 16785408, 18874432,
- 33554453, 33554467, 33558528, 37748800, 38338689, 67108890, 67108995, 67109888, 75497479, 75497504, 76679170,
- 76693504, 80740354, 100663315, 113836035, 134217772, 134217862, 134217984, 134217989, 150994958, 150994960,
- 150994965, 167772197, 184549383, 186646532, 201326662, 220495878, 226492420, 229900294, 81, 134, 137, 164,
- 200, 261, 416, 515, 704, 4736, 36992, 73856, 147584, 295040, 299520, 1179776, 2228224, 2359424, 8421376,
- 9437312, 18874496, 33554457, 33554499, 33562624, 37748864, 67108906, 67108934, 67109123, 67110912, 75497483,
- 75497510, 75497536, 75497546, 75497762, 75498050, 75499778, 75502082, 75506690, 75515906, 75534338, 75571202,
- 75644930, 75792386, 76087298, 76681218, 77856770, 80216066, 94371842, 100663331, 113246210, 134217780,
- 134217990, 134218240, 150994981, 153419780, 167772229, 171966465, 201326726, 218103822, 229769222, 251658247 };
-
-static int cbest_29[1023] = {
- 1, 2, 268435458, 4, 134217729, 8, 16, 335544322, 32, 64, 167772161, 128, 256, 512, 352321538, 1024, 2048,
- 4096, 176160769, 8192, 16384, 32768, 65536, 356515842, 131072, 262144, 524288, 1048576, 178257921, 2097152,
- 4194304, 8388608, 16777216, 33554432, 357564418, 67108864, 134217728, 268435456, 3, 178782209, 268435459, 5,
- 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 20480, 40960, 81920, 163840, 327680, 655360, 1310720,
- 2621440, 5242880, 10485760, 20971520, 41943040, 83886080, 167772160, 6, 9, 134217731, 268435462, 335544320,
- 402653187, 17, 134217733, 268435466, 335544323, 12, 18, 33, 134217737, 268435474, 34, 65, 134217745,
- 268435490, 335544326, 469762051, 24, 36, 66, 129, 134217761, 167772163, 268435522, 335544330, 357826562,
- 436207619, 68, 130, 257, 134217793, 167772165, 176160768, 268435586, 335544338, 352321536, 48, 72, 132, 258,
- 513, 88080384, 134217857, 167772169, 268435714, 335544354, 352321539, 136, 260, 514, 1025, 44040192,
- 134217985, 167772177, 268435970, 335544386, 503316483, 96, 144, 264, 516, 1026, 2049, 22020096, 134218241,
- 167772193, 268436482, 335544450, 352321542, 486539267, 272, 520, 1028, 2050, 4097, 11010048, 134218753,
- 167772225, 268437506, 335544578, 352321546, 192, 288, 528, 1032, 2052, 4098, 8193, 5505024, 134219777,
- 167772289, 176160771, 178913281, 268439554, 335544834, 352321554, 444596227, 544, 1040, 2056, 4100, 8194,
- 16385, 2752512, 134221825, 167772417, 176160773, 268443650, 335545346, 352321570, 384, 576, 1056, 2064, 4104,
- 8196, 16386, 32769, 1376256, 134225921, 167772673, 176160777, 268451842, 335546370, 352321602, 356515840,
- 520093699, 1088, 2080, 4112, 8200, 16388, 32770, 65537, 688128, 134234113, 167773185, 176160785, 178257920,
- 268468226, 335548418, 352321666, 356515843, 511705091, 768, 1152, 2112, 4128, 8208, 16392, 32772, 65538,
- 131073, 344064, 134250497, 167774209, 176160801, 268500994, 335552514, 352321794, 2176, 4160, 8224, 16400,
- 32776, 65540, 131074, 172032, 262145, 89128960, 134283265, 167776257, 176160833, 268566530, 335560706,
- 352322050, 356515846, 490733571, 1536, 2304, 4224, 8256, 16416, 32784, 65544, 86016, 131076, 262146, 524289,
- 134348801, 167780353, 176160897, 268697602, 335577090, 352322562, 356515850, 4352, 8320, 16448, 32800, 43008,
- 65552, 131080, 262148, 524290, 1048577, 44564480, 134479873, 167788545, 176161025, 268959746, 335609858,
- 352323586, 356515858, 357892098, 3072, 4608, 8448, 16512, 21504, 32832, 65568, 131088, 262152, 524292,
- 1048578, 2097153, 134742017, 167804929, 176161281, 178257923, 269484034, 335675394, 352325634, 356515874,
- 446693379, 528482307, 8704, 10752, 16640, 32896, 65600, 131104, 262160, 524296, 1048580, 2097154, 4194305,
- 22282240, 135266305, 167837697, 176161793, 178257925, 270532610, 335806466, 352329730, 356515906, 524288003,
- 5376, 6144, 9216, 16896, 33024, 65664, 131136, 262176, 524304, 1048584, 2097156, 4194306, 8388609, 136314881,
- 167903233, 176162817, 178257929, 272629762, 336068610, 352337922, 356515970, 2688, 17408, 33280, 65792,
- 131200, 262208, 524320, 1048592, 2097160, 4194308, 8388610, 11141120, 16777217, 138412033, 168034305,
- 176164865, 178257937, 276824066, 336592898, 352354306, 356516098, 357564416, 513802243, 1344, 12288, 18432,
- 33792, 66048, 131328, 262272, 524352, 1048608, 2097168, 4194312, 8388612, 16777218, 33554433, 142606337,
- 168296449, 176168961, 178257953, 285212674, 337641474, 352387074, 356516354, 357564419, 672, 34816, 66560,
- 131584, 262400, 524416, 1048640, 2097184, 4194320, 5570560, 8388616, 16777220, 33554434, 67108865, 150994945,
- 168820737, 176177153, 178257985, 178782208, 301989890, 339738626, 352452610, 356516866, 336, 24576, 36864,
- 67584, 132096, 262656, 524544, 1048704, 2097216, 4194336, 8388624, 16777224, 33554436, 67108866, 169869313,
- 176193537, 178258049, 178946049, 343932930, 352583682, 356517890, 357564422, 491782147, 168, 69632, 133120,
- 263168, 524800, 1048832, 2097280, 2785280, 4194368, 8388640, 16777232, 33554440, 67108868, 134217730,
- 171966465, 176226305, 178258177, 201326593, 352845826, 356519938, 357564426, 402653186, 532676611, 84, 49152,
- 73728, 135168, 264192, 525312, 1049088, 2097408, 4194432, 8388672, 16777248, 33554448, 67108872, 89391104,
- 134217732, 176291841, 178258433, 268435457, 353370114, 356524034, 357564434, 369098754, 530579459, 42,
- 139264, 266240, 526336, 1049600, 1392640, 2097664, 4194560, 8388736, 16777280, 33554464, 67108880, 134217736,
- 176422913, 178258945, 184549377, 268435464, 354418690, 356532226, 357564450, 11, 21, 41, 81, 161, 321, 641,
- 1281, 2561, 5121, 10241, 20481, 40961, 81921, 98304, 147456, 163841, 270336, 327681, 528384, 655361, 1050624,
- 1310721, 2098176, 2621441, 4194816, 5242881, 8388864, 10485761, 16777344, 20971521, 33554496, 41943041,
- 67108896, 83886081, 134217744, 176685057, 178259969, 178782211, 268435460, 356548610, 357564482, 402653185,
- 447217667, 469762050, 525336579, 7, 22, 82, 162, 322, 642, 1282, 2562, 5122, 10242, 20482, 40962, 81922,
- 163842, 278528, 327682, 532480, 655362, 696320, 1052672, 1310722, 2099200, 2621442, 4195328, 5242882,
- 8389120, 10485762, 16777472, 20971522, 33554560, 41943042, 44695552, 67108928, 83886082, 134217760,
- 167772162, 177209345, 178262017, 178782213, 234881025, 268435463, 268435478, 268435498, 268435538, 268435618,
- 268435778, 268436098, 268436738, 268438018, 268440578, 268445698, 268455938, 268476418, 268517378, 268599298,
- 268763138, 269090818, 269746178, 271056898, 273678338, 278921218, 289406978, 310378498, 335544321, 356581378,
- 357564546, 360710146, 436207618, 14, 44, 164, 324, 644, 1284, 2564, 5124, 10244, 20484, 40964, 81924, 163844,
- 196608, 294912, 327684, 540672, 655364, 1056768, 1310724, 2101248, 2621444, 4196352, 5242884, 8389632,
- 10485764, 16777728, 20971524, 33554688, 41943044, 67108992, 83886084, 134217739, 134217749, 134217769,
- 134217792, 134217809, 134217889, 134218049, 134218369, 134219009, 134220289, 134222849, 134227969, 134238209,
- 134258689, 134299649, 134381569, 134545409, 134873089, 135528449, 136839169, 139460609, 144703489, 155189249,
- 167772164, 178266113, 178782217, 218103809, 268435467, 268435472, 335544328, 356646914, 357564674, 13, 19,
- 28, 88, 328, 648, 1288, 2568, 5128, 10248, 20488, 40968, 81928, 163848, 327688, 348160, 557056, 655368,
- 1064960, 1310728, 2105344, 2621448, 4198400, 5242888, 8390656, 10485768, 16778240, 20971528, 33554944,
- 41943048, 67109120, 83886088, 134217735, 134217856, 167772168, 178274305, 178782225, 180355073, 268435475,
- 268435488, 335544324, 356777986, 357564930, 385875970, 402653191, 469762049, 514326531, 26, 35, 56, 176, 656,
- 1296, 2576, 5136, 10256, 20496, 40976, 81936, 163856, 327696, 393216, 589824, 655376, 1081344, 1310736,
- 2113536, 2621456, 4202496, 5242896, 8392704, 10485776, 16779264, 20971536, 22347776, 33555456, 41943056,
- 67109376, 83886096, 134217984, 167772176, 178290689, 178782241, 268435470, 268435491, 268435520, 335544327,
- 335544342, 335544362, 335544402, 335544482, 335544642, 335544962, 335545602, 335546882, 335549442, 335554562,
- 335564802, 335585282, 335626242, 335708162, 335872002, 336199682, 336855042, 338165762, 340787202, 346030082,
- 357040130, 357565442, 357826560, 357908482, 377487362, 402653195, 436207617, 503316482, 25, 37, 52, 67, 112,
- 352, 1312, 2592, 5152, 10272, 20512, 40992, 81952, 163872, 174080, 327712, 655392, 1114112, 1310752, 2129920,
- 2621472, 4210688, 5242912, 8396800, 10485792, 16781312, 20971552, 33556480, 41943072, 67109888, 83886112,
- 134217741, 134217747, 134218240, 167772192, 178323457, 178782273, 192937985, 268435523, 268435584, 335544331,
- 335544336, 357566466, 357826563, 402653203, 486539266, 534773763, 38, 69, 74, 104, 131, 224, 704, 2624, 5184,
- 10304, 20544, 41024, 81984, 163904, 327744, 655424, 786432, 1179648, 1310784, 2162688, 2621504, 4227072,
- 5242944, 8404992, 10485824, 16785408, 20971584, 33558528, 41943104, 67110912, 83886144, 134217763, 134218752,
- 167772171, 167772181, 167772201, 167772224, 167772241, 167772321, 167772481, 167772801, 167773441, 167774721,
- 167777281, 167782401, 167792641, 167813121, 167854081, 167936001, 168099841, 168427521, 169082881, 170393601,
- 173015041, 178388993, 178782337, 188743681, 251658241, 268435482, 268435494, 268435587, 268435712, 335544339,
- 335544352, 352321537, 357568514, 358612994, 402653219, 469762055, 533725187, 49, 70, 73, 133, 138, 148, 208,
- 259, 448, 1408, 5248, 10368, 20608, 41088, 82048, 87040, 163968, 327808, 655488, 1310848, 2228224, 2621568,
- 4259840, 5243008, 8421376, 10485888, 11173888, 16793600, 20971648, 33562624, 41943168, 67112960, 83886208,
- 88080385, 134217753, 134217765, 134217795, 134219776, 167772167, 167772288, 176160770, 178520065, 178782465,
- 178913280, 243269633, 268435526, 268435715, 268435968, 335544334, 335544355, 335544384, 352321544, 357572610,
- 357826566, 402653251, 436207623, 444596226, 469762059, 492044291, 503316481, 50, 134, 137, 261, 266, 296,
- 416, 515, 896, 2816, 20736, 41216, 82176, 164096, 327936, 655616, 1310976, 1572864, 2359296, 2621696,
- 8454144, 10486016, 16809984, 20971776, 33570816, 44040193, 67117056, 83886336, 134217797, 167772416,
- 178782721, 268435506, 268435530, 268435590, 268435971, 268436480, 335544387, 335544448, 352321540, 357826570,
- 364904450, 402653315, 436207627, 469762067, 486539265 };
-
-static int cbest_30[1023] = {
- 1, 2, 541065219, 4, 811597826, 8, 405798913, 16, 32, 64, 743964675, 128, 913047554, 256, 541065218,
- 270532609, 3, 512, 456523777, 541065217, 6, 811597827, 5, 676331523, 12, 129, 405798912, 258, 811597824, 9,
- 24, 516, 1024, 202899456, 541065223, 541065283, 10, 1032, 946864130, 48, 2064, 101449728, 879230978, 17,
- 4128, 541065227, 811597858, 96, 8256, 50724864, 811597830, 20, 16512, 405798915, 18, 33, 192, 2048, 33024,
- 25362432, 405798929, 473432065, 541065235, 769327107, 66048, 439615489, 743964674, 811597834, 132096,
- 12681216, 405798917, 34, 40, 65, 264192, 541065251, 528384, 6340608, 743964673, 811597842, 384, 1056768,
- 405798921, 36, 66, 4096, 2113536, 3170304, 371982337, 743964683, 80, 4227072, 1585152, 8454144, 777781251,
- 68, 130, 768, 16908288, 541065347, 743964679, 760872963, 913047555, 792576, 33816576, 811597890, 917340162,
- 160, 67633152, 405798945, 72, 132, 257, 8192, 396288, 135266304, 913047552, 1536, 270532608, 811597954,
- 913047558, 260, 198144, 405798977, 727056387, 136, 456523776, 541065475, 743964691, 193, 386, 99072, 514,
- 3072, 405799041, 541065216, 929955842, 144, 320, 513, 16384, 49536, 743964707, 921501698, 997588994, 264,
- 520, 772, 541065315, 676331522, 811598082, 7, 24768, 270532611, 456523779, 458670081, 913047562, 385, 6144,
- 228261888, 338165761, 541065221, 541065411, 541065731, 743964739, 811597825, 13, 1028, 1544, 12384,
- 270532641, 541065222, 541065282, 676331521, 14, 259, 270532613, 270532673, 405799169, 541065346, 811597874,
- 904593410, 913047570, 946864131, 25, 272, 517, 770, 1025, 1040, 6192, 202899457, 541065473, 743964803,
- 879230979, 11, 26, 131, 640, 1026, 1033, 3088, 12288, 405798914, 456523781, 541065226, 541065231, 541065281,
- 676331539, 811597828, 811597859, 811597922, 811598338, 28, 49, 528, 2065, 3096, 101449729, 270532617,
- 405798928, 464977921, 473432064, 541065225, 676331555, 710148099, 811597831, 913047586, 946864128, 161, 288,
- 518, 1540, 2056, 4129, 32768, 114130944, 202899458, 202899464, 405798937, 439615488, 460750849, 498794497,
- 541065243, 541065735, 541066243, 676331527, 811597955, 879230976, 22, 52, 97, 133, 1034, 1548, 6176, 8257,
- 50724865, 101449732, 405798916, 456523785, 541065234, 541065299, 541066251, 769327106, 811597856, 811598080,
- 21, 50, 56, 262, 322, 2066, 2080, 16513, 24576, 50724866, 101449730, 236716032, 270532625, 405798961,
- 405799040, 405799425, 541065267, 541067283, 642514947, 811597835, 811597838, 879230986, 913047618, 946864146,
- 1014497282, 19, 774, 2049, 3080, 4130, 33025, 25362433, 202899460, 202899520, 219807744, 541065287,
- 541069347, 676331531, 743964931, 811597832, 811597866, 879230994, 980680706, 44, 98, 104, 137, 644, 1036,
- 8258, 12352, 66049, 101449760, 405798919, 405798920, 456523793, 541065233, 541065250, 541073475, 591790083,
- 769327105, 811597850, 811598342, 811598850, 946864134, 946864194, 112, 266, 387, 2052, 2068, 4112, 16514,
- 132097, 12681217, 50724880, 118358016, 371982336, 405798933, 452296705, 541065239, 541081731, 743964672,
- 811597843, 811598858, 879230982, 896139266, 913047682, 35, 41, 194, 524, 544, 1056, 1280, 2050, 4132, 6160,
- 33026, 264193, 25362434, 25362440, 57065472, 109903872, 405798925, 405798931, 405800961, 439615493,
- 473432067, 473432073, 541065291, 541067267, 541073411, 541098243, 545357827, 566427651, 770400259, 811597862,
- 811599890, 811601922, 42, 88, 100, 145, 208, 4160, 8260, 16385, 24704, 66050, 528385, 6340609, 12681220,
- 50724868, 405799171, 439615491, 439615497, 456523809, 541065249, 541131267, 743964682, 743964687, 811601954,
- 946864138, 38, 224, 274, 2072, 16516, 132098, 1056769, 6340610, 12681218, 59179008, 101449736, 185991168,
- 405799429, 405799937, 473432097, 507248641, 539017219, 541065410, 541197315, 743964681, 805355522, 811597840,
- 811606082, 862322690, 37, 67, 196, 532, 576, 1288, 4097, 4136, 12320, 33028, 49152, 65536, 264194, 2113537,
- 3170305, 25362436, 54951936, 202899472, 405798923, 405799945, 473432069, 490340353, 541065259, 541329411,
- 743964677, 743964699, 743965187, 743965699, 765165571, 769327111, 777781250, 811597846, 811614338, 81, 176,
- 388, 1048, 8224, 8264, 49408, 66052, 528386, 4227073, 50724872, 384663553, 402677761, 405798944, 405800977,
- 456523841, 541593603, 743964678, 760872962, 782073859, 811598018, 811599874, 811630850, 815890434, 836960258,
- 70, 290, 16520, 32770, 132100, 1056770, 1585153, 4227074, 8454145, 29589504, 92995584, 101449744, 270532705,
- 270532737, 371982341, 405803041, 448069633, 536903683, 541065603, 542121987, 743964802, 760872961, 811597891,
- 811597986, 811663874, 913047810, 917340163, 69, 84, 200, 548, 769, 4098, 4104, 4144, 8320, 24640, 33032,
- 264196, 2113538, 3170306, 8454146, 16908289, 27475968, 28532736, 202899488, 371982339, 405799009, 405807169,
- 541065255, 541065539, 541069315, 543178755, 544235523, 676331587, 743964929, 769327115, 771440643, 777781249,
- 809517058, 810573826, 811729922, 76, 82, 416, 1064, 2112, 8272, 66056, 528388, 792577, 6340612, 8454148,
- 16908290, 33816577, 404758529, 405798976, 405798993, 405815425, 456523905, 541065345, 777781255, 811862018,
- 913047553, 913047556, 913048066, 946864162, 134, 448, 641, 2096, 2560, 2576, 16528, 132104, 1056772, 1585154,
- 12681224, 14794752, 16908292, 46497792, 67633153, 405799105, 405831937, 407945217, 431161345, 542650371,
- 549519363, 760872967, 811597888, 812126210, 879231010, 913047559, 917340160, 73, 392, 580, 776, 1088, 4100,
- 8193, 16448, 33040, 65540, 98304, 264200, 396289, 2113540, 3170308, 13737984, 16908296, 25362448, 33816580,
- 135266305, 371982401, 388890625, 405864961, 473432081, 541065987, 557973507, 676331651, 727056386, 742404099,
- 743965191, 758824963, 769327123, 777781267, 807436290, 811598210, 812654594, 74, 140, 352, 1096, 1537, 8288,
- 66064, 98816, 528392, 792578, 4227076, 6340616, 33816578, 33816584, 50724896, 380436481, 403718145,
- 405286913, 405931009, 418480129, 439615505, 541065474, 541857795, 574881795, 727056385, 743964690, 743965707,
- 162, 168, 261, 1538, 2128, 16544, 132112, 198145, 1056776, 1585156, 7397376, 12681232, 23248896, 33816592,
- 67633154, 67633160, 101449792, 270532865, 405798947, 405798953, 406063105, 456524033, 541065379, 608698371,
- 676331571, 743444483, 743964723, 743966739, 794689539, 811597906, 811597952, 879231042, 913047566, 152, 832,
- 1152, 4192, 8194, 24577, 33056, 49280, 131072, 264208, 396290, 2113544, 3170312, 6868992, 14266368, 25362464,
- 67633168, 135266306, 202899584, 371982345, 406327297, 541065351, 541461507, 743964715, 743968803, 756711427,
- 769327139, 786235395, 813182978, 820051970, 915259394, 917876738, 929955843, 138, 896, 1160, 1282, 5152,
- 8208, 66080, 99073, 131080, 528400, 792580, 4227080, 6340624, 50724928, 67633184, 135266320, 270532610,
- 405799297, 439615521, 456523778, 458670080, 541066755, 541077507, 743964689, 743964706, 743964771, 743972931,
- 811597894, 811598594, 828506114, 913047683, 917340166, 921501699, 923713538, 929955840, 946864258, 997588995,
- 164, 268, 400, 515, 645, 784, 1290, 1552, 2192, 2580, 3073, 4224, 5160, 10320, 16576, 16640, 20640, 41280,
- 49154, 82560, 132128, 165120, 198146, 330240, 660480, 1056784, 1320960, 1585160, 2641920, 3698688, 5283840,
- 8454152, 10567680, 11624448, 12681248, 21135360, 42270720, 67633156, 84541440, 101449856, 135266336,
- 169082880, 338165760, 405798949, 405798979, 405803009, 541065314, 541065479, 541065601, 541263363, 725008387,
- 742924291, 743964695, 743981187, 777781259, 811598083, 812390402, 845414402, 879231106, 913047808, 921501696,
- 991346690, 997588992, 321, 3074, 4256, 8196, 33088, 49537, 196608, 264224, 396292, 2113552, 3170320, 3434496,
- 25362496, 135266308, 135266368, 270532640, 270532657, 363528193, 371982353, 410025985, 473432129, 541065355,
- 541065537, 541065729, 676331779, 743964867, 743966723, 743997699, 745037827, 748257283, 760872971, 769327171,
- 811603970, 912267266, 913047563, 195, 265, 280, 521, 704, 773, 3076, 5120, 8384, 66112, 99074, 197632,
- 528416, 792584, 4227088, 6340640, 50724992, 270532612, 270532672, 405799168, 414253057, 439615553, 541065220,
- 541065730, 541164291, 727056419, 743964705, 743964738, 744030723, 811597898, 811597958, 811606018, 811994114,
- 912787458, 913047560, 917340170, 148, 209, 324, 522, 1664, 24769, 32896, 132160, 198148, 262160, 1056800,
- 1585168, 1849344, 5812224, 8454160, 12681280, 270532736, 270532801, 270533121, 405798981, 405799043,
- 405799681, 405801985, 422707201, 541065313, 541068291, 541089795, 676331520, 722894851, 727056391, 741916675,
- 743708675, 744096771, 811599362, 913047578, 913048070, 913048578, 918396930, 929955850, 146, 225, 418, 1546,
- 2176, 2564, 6145, 8200, 10304, 16386, 33152, 49538, 98560, 264256, 396296, 1717248, 2113568, 3170336,
- 7133184, 16908304, 25362560, 135266312, 202899712, 228261889, 371982369, 405799057, 406591489, 456523780,
- 473432193, 541065363, 541081603, 541114755, 735510531, 744228867, 760872979, 769327235, 811597875, 811598019,
- 811598086, 811598208, 811795970, 879231002, 904593411, 913047571, 913047574, 913048586, 197, 336, 1029, 1545,
- 1568, 1792, 12385, 49153, 66176, 98308, 99076, 792592, 4227104, 270532615, 270532616, 456524289, 464977920,
- 541065409, 541065472, 541065602, 541065991, 676331547, 743964737, 811597962, 811597987, 811598336, 811610114,
- 912527362, 913049618, 917340178, 946864386 };
-
-static int cbest_31[1023] = {
- 1, 2, 1073741828, 4, 536870914, 8, 268435457, 16, 32, 1207959556, 64, 128, 603979778, 256, 512, 301989889,
- 1024, 2048, 4096, 1224736772, 8192, 16384, 32768, 612368386, 65536, 131072, 262144, 306184193, 524288,
- 1048576, 2097152, 4194304, 1226833924, 8388608, 16777216, 33554432, 67108864, 613416962, 134217728,
- 268435456, 306708481, 536870912, 3, 1073741824, 1073741829, 5, 536870915, 1073741830, 6, 9, 18, 36, 72, 144,
- 288, 576, 1152, 2304, 4608, 9216, 18432, 36864, 73728, 147456, 294912, 589824, 1179648, 2359296, 4718592,
- 9437184, 18874368, 37748736, 75497472, 150994944, 301989888, 1610612742, 10, 17, 268435459, 536870918,
- 603979776, 1073741836, 1227096068, 1342177285, 12, 33, 268435461, 536870922, 805306371, 1073741844,
- 1207959552, 1207959557, 20, 34, 65, 268435465, 536870930, 1073741860, 1207959558, 24, 66, 129, 268435473,
- 536870946, 603979779, 1073741892, 1744830470, 40, 68, 130, 257, 268435489, 536870978, 1073741956, 1207959564,
- 1476395013, 1677721606, 48, 132, 258, 513, 268435521, 536871042, 603979782, 613548034, 1073742084,
- 1207959572, 80, 136, 260, 514, 1025, 268435585, 301989891, 536871170, 603979786, 872415235, 1073742340,
- 1207959588, 1375731717, 96, 264, 516, 1026, 2049, 268435713, 301989893, 536871426, 603979794, 838860803,
- 1073742852, 1207959620, 160, 272, 520, 1028, 2050, 4097, 268435969, 301989897, 306184192, 536871938,
- 603979810, 612368384, 1073743876, 1207959684, 1224736768, 1224736773, 1811939334, 192, 528, 1032, 2052, 4098,
- 8193, 153092096, 268436481, 301989905, 536872962, 603979842, 1073745924, 1207959812, 1224736774, 320, 544,
- 1040, 2056, 4100, 8194, 16385, 76546048, 268437505, 301989921, 306774017, 536875010, 603979906, 1073750020,
- 1207960068, 1509949445, 1761607686, 384, 1056, 2064, 4104, 8196, 16386, 32769, 38273024, 268439553,
- 301989953, 536879106, 603980034, 612368387, 1073758212, 1207960580, 1224736780, 1493172229, 640, 1088, 2080,
- 4112, 8200, 16388, 32770, 65537, 19136512, 268443649, 301990017, 536887298, 603980290, 905969667, 1073774596,
- 1207961604, 1224736788, 1686110214, 768, 2112, 4128, 8208, 16392, 32772, 65538, 131073, 9568256, 268451841,
- 301990145, 536903682, 603980802, 612368390, 1073807364, 1207963652, 1224736804, 1280, 2176, 4160, 8224,
- 16400, 32776, 65540, 131074, 262145, 4784128, 268468225, 301990401, 536936450, 603981826, 612368394,
- 880803843, 1073872900, 1207967748, 1224736836, 1536, 4224, 8256, 16416, 32784, 65544, 131076, 262146, 524289,
- 2392064, 268500993, 301990913, 306184195, 537001986, 603983874, 612368402, 1074003972, 1207975940,
- 1224736900, 1379926021, 1828716550, 2560, 4352, 8320, 16448, 32800, 65552, 131080, 262148, 524290, 1048577,
- 1196032, 268566529, 301991937, 306184197, 537133058, 603987970, 612368418, 843055107, 1074266116, 1207992324,
- 1224737028, 1227128836, 1820327942, 3072, 8448, 16512, 32832, 65568, 131088, 262152, 524292, 598016, 1048578,
- 2097153, 268697601, 301993985, 306184201, 537395202, 603996162, 612368450, 1074790404, 1208025092,
- 1224737284, 1526726661, 5120, 8704, 16640, 32896, 65600, 131104, 262160, 299008, 524296, 1048580, 2097154,
- 4194305, 268959745, 301998081, 306184209, 537919490, 604012546, 612368514, 1075838980, 1208090628,
- 1224737796, 1226833920, 1226833925, 6144, 16896, 33024, 65664, 131136, 149504, 262176, 524304, 1048584,
- 2097156, 4194306, 8388609, 269484033, 302006273, 306184225, 538968066, 604045314, 612368642, 613416960,
- 1077936132, 1208221700, 1224738820, 1226833926, 1514143749, 10240, 17408, 33280, 65792, 74752, 131200,
- 262208, 524320, 1048592, 2097160, 4194308, 8388610, 16777217, 270532609, 302022657, 306184257, 306708480,
- 541065218, 604110850, 612368898, 914358275, 1082130436, 1208483844, 1224740868, 1763704838, 12288, 33792,
- 37376, 66048, 131328, 262272, 524352, 1048608, 2097168, 4194312, 8388612, 16777218, 33554433, 272629761,
- 302055425, 306184321, 545259522, 604241922, 612369410, 910163971, 1090519044, 1209008132, 1224744964,
- 1226833932, 1495269381, 18688, 20480, 34816, 66560, 131584, 262400, 524416, 1048640, 2097184, 4194320,
- 8388616, 16777220, 33554434, 67108865, 153354240, 276824065, 302120961, 306184449, 553648130, 604504066,
- 612370434, 613416963, 613564418, 1107296260, 1210056708, 1224753156, 1226833940, 9344, 24576, 67584, 132096,
- 262656, 524544, 1048704, 2097216, 4194336, 8388624, 16777224, 33554436, 67108866, 134217729, 285212673,
- 302252033, 306184705, 570425346, 605028354, 612372482, 1140850692, 1212153860, 1224769540, 1226833956,
- 1687158790, 1837105158, 4672, 40960, 69632, 133120, 263168, 524800, 1048832, 2097280, 4194368, 8388640,
- 16777232, 33554440, 67108868, 76677120, 134217730, 302514177, 306185217, 606076930, 612376578, 613416966,
- 1216348164, 1224802308, 1226833988, 2336, 49152, 135168, 264192, 525312, 1049088, 2097408, 4194432, 8388672,
- 16777248, 33554448, 67108872, 134217732, 268435458, 303038465, 306186241, 335544321, 608174082, 612384770,
- 613416970, 671088642, 881852419, 1224867844, 1226834052, 1342177284, 1830813702, 1168, 81920, 139264, 266240,
- 526336, 1049600, 2097664, 4194560, 8388736, 16777280, 33554464, 38338560, 67108880, 134217736, 268435460,
- 304087041, 306188289, 402653185, 536870913, 612401154, 613416978, 805306370, 1224998916, 1226834180,
- 1241513988, 1530920965, 584, 98304, 270336, 528384, 1050624, 2098176, 4194816, 8388864, 16777344, 33554496,
- 67108896, 134217744, 268435464, 306192385, 306708483, 612433922, 613416994, 620756994, 1225261060,
- 1226834436, 1275068420, 1380450309, 1528823813, 1610612740, 1821376518, 292, 163840, 278528, 532480, 1052672,
- 2099200, 4195328, 8389120, 16777472, 19169280, 33554560, 67108928, 134217760, 268435472, 306200577,
- 306708485, 306782209, 310378497, 536870916, 536870928, 612499458, 613417026, 637534210, 843579395,
- 1073741825, 1225785348, 1226834948, 146, 196608, 540672, 1056768, 2101248, 4196352, 8389632, 16777728,
- 33554688, 67108992, 134217792, 268435488, 306216961, 306708489, 318767105, 536870920, 612630530, 613417090,
- 805306369, 918552579, 1073741826, 1073741831, 1073741856, 1226835972, 1476395012, 7, 19, 37, 73, 145, 289,
- 577, 1153, 2305, 4609, 9217, 18433, 36865, 73729, 147457, 294913, 327680, 557056, 589825, 1064960, 1179649,
- 2105344, 2359297, 4198400, 4718593, 8390656, 9437185, 9584640, 16778240, 18874369, 33554944, 37748737,
- 67109120, 75497473, 134217856, 150994945, 268435520, 306249729, 306708497, 612892674, 613417218, 738197506,
- 1226838020, 1228931076, 1610612738, 1610612743, 11, 38, 74, 290, 578, 1154, 2306, 4610, 9218, 18434, 36866,
- 73730, 147458, 294914, 393216, 589826, 1081344, 1179650, 2113536, 2359298, 4202496, 4718594, 8392704,
- 9437186, 16779264, 18874370, 33555456, 37748738, 67109376, 75497474, 134217984, 150994946, 268435584,
- 301989890, 306315265, 306708513, 369098753, 536870919, 536870944, 603979777, 613417474, 872415234, 915406851,
- 1073741832, 1073741837, 1073741846, 1073741900, 1073741972, 1073742116, 1073742404, 1073742980, 1073744132,
- 1073746436, 1073751044, 1073760260, 1073778692, 1073815556, 1073889284, 1074036740, 1074331652, 1074921476,
- 1076101124, 1078460420, 1083179012, 1092616196, 1111490564, 1149239300, 1226842116, 1227096064, 1227096069,
- 1233125380, 1342177281, 1375731716, 1514668037, 1744830468, 13, 22, 76, 148, 580, 1156, 2308, 4612, 9220,
- 18436, 36868, 73732, 147460, 294916, 589828, 655360, 1114112, 1179652, 2129920, 2359300, 4210688, 4718596,
- 4792320, 8396800, 9437188, 16781312, 18874372, 33556480, 37748740, 67109888, 75497476, 134218240, 150994948,
- 268435712, 301989892, 306446337, 306708545, 436207617, 536870923, 536870950, 536870976, 536870986, 536871058,
- 536871202, 536871490, 536872066, 536873218, 536875522, 536880130, 536889346, 536907778, 536944642, 537018370,
- 537165826, 537460738, 538050562, 539230210, 541589506, 546308098, 555745282, 574619650, 613417986, 614465538,
- 687865858, 838860802, 1073741838, 1073741840, 1073741845, 1207959553, 1226850308, 1227096070, 1342177287,
- 1677721604, 14, 21, 26, 35, 44, 152, 296, 1160, 2312, 4616, 9224, 18440, 36872, 73736, 147464, 294920,
- 589832, 786432, 1179656, 2162688, 2359304, 4227072, 4718600, 8404992, 9437192, 16785408, 18874376, 33558528,
- 37748744, 67110912, 75497480, 134218752, 150994952, 268435463, 268435475, 268435493, 268435529, 268435601,
- 268435745, 268435968, 268436033, 268436609, 268437761, 268440065, 268444673, 268453889, 268472321, 268509185,
- 268582913, 268730369, 269025281, 269615105, 270794753, 273154049, 277872641, 287309825, 301989896, 306708609,
- 343932929, 419430401, 536870931, 536871040, 603979780, 603979792, 613419010, 613548032, 616562690, 910688259,
- 1073741861, 1207959554, 1207959559, 1207959584, 1226866692, 1258291204, 1610612750, 1763966982, 1839202310,
- 1879048199, 25, 52, 67, 88, 304, 592, 2320, 4624, 9232, 18448, 36880, 73744, 147472, 294928, 589840, 1179664,
- 1310720, 2228224, 2359312, 2396160, 4259840, 4718608, 8421376, 9437200, 16793600, 18874384, 33562624,
- 37748752, 67112960, 75497488, 134219776, 150994960, 268435467, 268436480, 301989904, 306708737, 307232769,
- 536870926, 536870947, 536871168, 603979784, 613421058, 805306375, 872415233, 1073741862, 1073741888,
- 1073741893, 1226899460, 1227096076, 1291845636, 1342177293, 1495531525, 1610612758, 1744830466, 1744830471,
- 1838153734, 41, 50, 69, 104, 131, 176, 608, 18464, 73760, 147488, 589856, 1179680, 1572864, 2359328, 4325376,
- 4718624, 8454144, 9437216, 16809984, 18874400, 33570816, 67117056, 75497504, 134221824, 301989920, 306708993,
- 306774016, 308281345, 536870934, 536870979, 629145602, 805306379, 1073741894, 1073741952, 1207959560,
- 1207959700, 1207959844, 1207960708, 1207961860, 1207964164, 1207968772, 1207977988, 1207996420, 1208033284,
- 1208107012, 1208549380, 1209139204, 1210318852, 1212678148, 1217396740, 1226964996, 1283457028, 1342177301,
- 1476395009, 1509949444, 1610612774, 1677721607 };
-
-static unsigned int cbest_32[1023] = {
- 1, 2149580803, 2, 4, 3224371202, 8, 1612185601, 16, 32, 2955673603, 64, 128, 256, 3627417602, 512, 1024,
- 2149580802, 1074790401, 1813708801, 3, 2149580801, 2048, 3224371203, 6, 2686976003, 5, 12, 1612185600,
- 3224371200, 2149580807, 9, 24, 806092800, 3761766402, 10, 1025, 4096, 3493068802, 48, 2050, 403046400,
- 2149580811, 2149581315, 17, 4100, 3056435203, 3224371206, 96, 8200, 201523200, 20, 16400, 1612185603,
- 2149580819, 3224371458, 18, 33, 192, 32800, 100761600, 1880883201, 2955673602, 3224371210, 8192, 65600,
- 1746534401, 384, 131200, 50380800, 1612185605, 2149580835, 34, 40, 65, 262400, 1612185729, 2955673601,
- 3224371218, 768, 524800, 25190400, 1049600, 1612185609, 2149580867, 36, 66, 129, 1536, 2099200, 12595200,
- 1477836801, 3224371234, 80, 16384, 4198400, 3090022403, 6297600, 8396800, 1612185617, 2149580931, 2955673607,
- 2955673667, 3022848003, 3627417603, 68, 130, 257, 16793600, 3224371266, 3677798402, 3148800, 33587200, 160,
- 3072, 67174400, 1612185633, 2149581059, 2955673611, 3627417600, 72, 132, 258, 513, 1574400, 134348800,
- 3224371330, 32768, 268697600, 2888499203, 787200, 537395200, 1612185665, 2955673619, 136, 260, 320, 514,
- 6144, 1074790400, 1813708800, 3627417634, 393600, 3627417606, 3694592002, 2149581827, 2955673635, 3661004802,
- 3963289602, 144, 264, 516, 1026, 1537, 3074, 196800, 2149580800, 3224371714, 640, 12288, 65536, 3627417610,
- 98400, 1612185857, 2149581571, 2686976002, 272, 520, 1028, 2049, 6148, 906854400, 3224372226, 7, 49200,
- 1074790403, 1813708803, 1838899201, 2149580805, 2149582339, 3224371201, 3593830402, 3627417618, 1280, 2052,
- 3073, 24576, 1343488001, 1612186113, 1813708817, 2149580806, 2149582851, 2686976001, 2955673731, 13, 288,
- 528, 1032, 12296, 24600, 3224371586, 3761766403, 14, 131072, 1074790405, 1813708805, 3493068803, 25, 4098,
- 6146, 12300, 806092801, 1612186625, 1847296001, 2149580810, 2149580815, 2149581314, 2955673859, 3224371204,
- 3224371970, 11, 26, 544, 1040, 4097, 24592, 49152, 453427200, 1074790657, 1612185602, 1830502401, 1981644801,
- 2149580809, 2149581826, 2821324803, 3056435202, 3224371207, 3224373250, 3761766400, 28, 49, 2051, 2056, 4104,
- 6150, 403046401, 1074790409, 1074790913, 1813708809, 1880883200, 2149580827, 2149582849, 2686976007,
- 3493068800, 3627417666, 4101, 12292, 806092802, 1612185793, 1746534400, 2149580818, 2149581313, 2149584899,
- 2686976131, 2955674115, 3224371459, 22, 52, 97, 576, 1027, 1056, 2560, 3075, 8201, 49184, 201523201,
- 1612185604, 2149580851, 2552627203, 2686976259, 3056435201, 3224371211, 3224371214, 4030464002, 21, 50, 56,
- 8196, 16401, 98304, 262144, 403046402, 940441600, 1074790417, 1612185728, 1612185985, 2149584903, 2686976011,
- 3224371208, 3224372227, 3627417730, 3896115202, 19, 193, 4102, 24584, 32801, 100761601, 806092804, 806092864,
- 873267200, 1612187649, 1796915201, 2149580817, 2149580834, 2149580899, 2149582338, 2149589003, 2351104003,
- 2955674627, 3056435211, 3224371226, 3224371456, 3224373248, 3761766406, 44, 98, 104, 1029, 1088, 2064, 8193,
- 8202, 8208, 65601, 98368, 201523202, 226713600, 403046432, 1612185607, 1612185608, 2149580823, 2149597203,
- 2955673600, 3224371219, 3224375298, 3493068806, 3493068866, 3560243202, 3761766530, 112, 385, 2054, 8194,
- 16402, 131201, 50380801, 201523216, 403046404, 470220800, 1074790433, 1477836800, 1612186624, 1813708833,
- 2149580995, 2149581319, 2149613603, 2250342403, 2686976019, 3224371250, 3493068930, 3627417858, 35, 41, 194,
- 1281, 4112, 32802, 49168, 196608, 262401, 100761602, 100761608, 436633600, 806092808, 806093312, 1612185613,
- 1880883203, 2149580833, 2149580866, 2149581443, 2149588995, 2149646403, 2955673699, 3056435207, 3224375302,
- 3761766410, 3761766914, 42, 88, 100, 208, 769, 1033, 1152, 2080, 8204, 16392, 65602, 196736, 524801,
- 25190401, 50380804, 201523204, 403046656, 1074791169, 1612185616, 1746534403, 2149581187, 2149712003,
- 2199961603, 3069030403, 3224371216, 3224371235, 3224371298, 3224379402, 3425894402, 3493068810, 38, 224, 386,
- 2058, 2562, 5120, 16404, 131202, 524288, 1049601, 25190402, 50380802, 201523328, 235110400, 403046408,
- 738918400, 1074790465, 1528217601, 1612185625, 1813708865, 2015232001, 2149580843, 2149581323, 2149843203,
- 2686976035, 2955673605, 2955673795, 3073228803, 3090022402, 3224371222, 3224371462, 3224371522, 3224387602,
- 3627418114, 37, 67, 196, 4108, 16416, 32804, 98336, 262402, 2099201, 12595201, 100761604, 100761664,
- 218316800, 806092816, 1612185611, 1612185731, 1612189697, 1746534433, 1880883205, 1880883265, 1948057601,
- 2147485699, 2149580865, 2149580930, 2150105603, 2174771203, 2955673606, 2955673666, 2955675651, 3022848002,
- 3064832003, 3140403203, 3224371394, 3224404002, 3325132802, 3761766418, 81, 176, 416, 770, 1041, 2112, 5124,
- 16385, 65604, 393216, 393472, 524802, 2099202, 4198401, 50380832, 113356800, 201523208, 1612185632,
- 1612185649, 1612187651, 1746534405, 1746534465, 2150630403, 3223323650, 3224371232, 3224371267, 3224379394,
- 3224436802, 3493068818, 3677798403, 70, 388, 448, 2066, 16408, 131204, 1049602, 4198402, 6297601, 8396801,
- 25190416, 117555200, 369459200, 403046416, 1074790529, 1612185761, 1612189701, 1780121601, 1813708929,
- 1880883457, 2149580839, 2149581331, 2151684099, 2162176003, 2686976067, 3090022401, 3224371466, 3224502402,
- 3274752002, 3627418626, 69, 84, 131, 200, 1538, 4116, 16388, 32784, 32808, 196672, 262404, 4198404, 8396802,
- 12595202, 12595208, 16793601, 109158400, 806092832, 1477836803, 1611661825, 1612185697, 1612185733,
- 1612193801, 1880883209, 2149580883, 2149580929, 2149581058, 2149597187, 2153779203, 2686976387, 2955673610,
- 2955673615, 2955673665, 3022848001, 3056435219, 3224371242, 3224633602, 3627417601, 3761766434, 76, 82, 352,
- 772, 832, 1057, 2176, 4128, 8216, 8224, 16386, 65608, 524804, 786944, 3148801, 6297604, 8396804, 25190404,
- 33587201, 1612185621, 1612185664, 1612202001, 1746534409, 2148535299, 2157977603, 2955673609, 2955674626,
- 3221228546, 3222276098, 3224371264, 3224371331, 3224896002, 3249561602, 3493068834, 3677798400, 134, 161,
- 392, 896, 2082, 32832, 131208, 786432, 1048576, 1049604, 3148802, 6297602, 8396808, 16793604, 50380808,
- 58777600, 67174401, 184729600, 1477836833, 1612185619, 1612218401, 1712947201, 1813709057, 2149580871,
- 2149581347, 2166374403, 2888499202, 2955673627, 2955675649, 3048038403, 3224371474, 3627417650, 3677798406,
- 73, 133, 259, 1540, 4132, 10248, 32816, 262408, 393344, 1574401, 2099204, 12595204, 16793602, 16793608,
- 54579200, 100761616, 134348801, 1477836805, 1545011201, 1611138049, 1612185737, 1612193793, 1612251201,
- 1880883217, 2149581057, 2183168003, 2955411715, 2955673618, 2955673683, 2955677699, 3022848019, 3056435235,
- 3090022435, 3224371238, 3224372738, 3226474498, 3236966402, 3761766466, 74, 140, 704, 776, 1089, 1664, 2304,
- 3076, 4160, 8232, 10240, 32769, 65616, 524808, 1573888, 16793616, 25190408, 33587202, 33587208, 56678400,
- 201523232, 268697601, 1511424001, 1610614273, 1612316801, 1662566401, 1746534417, 2149580963, 2149583875,
- 2216755203, 2955673651, 3022848035, 3090022407, 3157196803, 3224371282, 3224371328, 3224372482, 3224387586,
- 3228569602, 3627417604, 3627417635, 3627417698, 162, 168, 262, 400, 1792, 2114, 16432, 65568, 131216, 787201,
- 1049608, 29388800, 33587216, 50380816, 67174402, 92364800, 403046464, 537395201, 1612185635, 1612185641,
- 1612448001, 1813709313, 2149580875, 2149580935, 2149581379, 2149583363, 2151155203, 2283929603, 2888499201,
- 2955673671, 2955677703, 3022848007, 3090022531, 3123609603, 3223848450, 3224371490, 3232768002, 3627417607,
- 3627419650, 3694592003, 137, 152, 261, 321, 515, 1544, 4164, 6145, 262416, 786688, 1572864, 1574402, 2099208,
- 27289600, 33587232, 67174416, 100761632, 134348802, 806092928, 1477836809, 1477837313, 1612185745,
- 1612186369, 1637376001, 1880883233, 2149613571, 2418278403, 2955149827, 2955673617, 2955673634, 2955681803,
- 3056435267, 3224371270, 3241164802, 3661004803, 3963289603, 138, 268, 784, 1153, 1408, 4224, 8264, 32770,
- 32776, 65632, 65664, 393601, 524816, 3147776, 3148804, 4198408, 33587204, 67174432, 201523264, 268697602,
- 1612185856, 1612186241, 2150368003, 2913689603, 2955673623, 2955690003, 3039641603, 3090022411, 3224371715,
- 3257958402, 3493068994, 3627417632, 164, 518, 2178, 5121, 16448, 16464, 20496, 131232, 787202, 1049616,
- 6297608, 14694400, 46182400, 67174404, 67174464, 134348832, 403046528, 537395202, 1074791425, 1612185637,
- 1612185667, 1612187137, 1613237249, 1614284801, 1624780801, 1813709825, 2149580939, 2149581063, 2149581123,
- 2149586947, 2686976515, 2888499219, 2954887939, 2955673675, 2955706403, 3022848011, 3224371362, 3224374274,
- 3291545602, 3627286658, 3627417611, 3627417614, 3694592000, 145, 265, 280, 322, 517, 1552, 3080, 4228, 6152,
- 32864, 196801, 262432, 1573376, 1574404, 2097152, 2099216, 12595216, 13644800, 134348804, 134348864,
- 806093056, 1074790402, 1444249601, 1477836817, 1612185681, 1612201985, 1616384001, 1813708802, 1838899200,
- 2149581570, 2149581825, 2149583873, 2149974403, 2955673633, 2955681795, 2955739203, 3056435331, 3224371274,
- 3224371334, 3358720002, 3627417608, 3627417642, 3627418627, 3661004800, 3677798410, 3679901698, 3686195202,
- 3761766658, 3963289600, 266, 336, 524, 641, 800, 3328, 4352, 5125, 8256, 8328, 10250, 12289, 20500, 32772,
- 41000, 65537, 82000, 131136, 164000, 328000, 393602, 524832, 656000, 1312000, 2624000, 3148808, 4198416,
- 5248000, 10496000, 20992000, 25190432, 28339200, 41984000, 83968000, 134348928, 167936000, 268697604,
- 268697664, 335872000, 671744000, 1343488000, 1611924225, 1612186112, 1618483201, 1620582401, 1813708816,
- 2149583361, 2955673987, 2955804803, 3006054403, 3090022419, 3224371712, 3224403970, 3493069058, 3627417626,
- 3627419648, 3681996802, 3719782402, 148, 304, 2306, 3584, 12290, 16528, 98401, 131264, 787204, 1049632,
- 3145728, 6297616, 8396816, 23091200, 50380864, 67174408, 268697728, 1074790785, 1612185669, 1813708825 };
diff --git a/src/c/jerasure/src/galois.c b/src/c/jerasure/src/galois.c
deleted file mode 100644
index 35c3567..0000000
--- a/src/c/jerasure/src/galois.c
+++ /dev/null
@@ -1,377 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <assert.h>
-
-#include "galois.h"
-
-#define MAX_GF_INSTANCES 64
-gf_t *gfp_array[MAX_GF_INSTANCES] = { 0 };
-int gfp_is_composite[MAX_GF_INSTANCES] = { 0 };
-
-gf_t *galois_get_field_ptr(int w)
-{
- if (gfp_array[w] != NULL) {
- return gfp_array[w];
- }
-
- return NULL;
-}
-
-gf_t* galois_init_field(int w,
- int mult_type,
- int region_type,
- int divide_type,
- uint64_t prim_poly,
- int arg1,
- int arg2)
-{
- int scratch_size;
- void *scratch_memory;
- gf_t *gfp;
-
- if (w <= 0 || w > 32) {
- fprintf(stderr, "ERROR -- cannot init default Galois field for w=%d\n", w);
- assert(0);
- }
-
- gfp = (gf_t *) malloc(sizeof(gf_t));
- if (!gfp) {
- fprintf(stderr, "ERROR -- cannot allocate memory for Galois field w=%d\n", w);
- assert(0);
- }
-
- scratch_size = gf_scratch_size(w, mult_type, region_type, divide_type, arg1, arg2);
- if (!scratch_size) {
- fprintf(stderr, "ERROR -- cannot get scratch size for base field w=%d\n", w);
- assert(0);
- }
-
- scratch_memory = malloc(scratch_size);
- if (!scratch_memory) {
- fprintf(stderr, "ERROR -- cannot get scratch memory for base field w=%d\n", w);
- assert(0);
- }
-
- if(!gf_init_hard(gfp,
- w,
- mult_type,
- region_type,
- divide_type,
- prim_poly,
- arg1,
- arg2,
- NULL,
- scratch_memory))
- {
- fprintf(stderr, "ERROR -- cannot init default Galois field for w=%d\n", w);
- assert(0);
- }
-
- gfp_is_composite[w] = 0;
- return gfp;
-}
-
-gf_t* galois_init_composite_field(int w,
- int region_type,
- int divide_type,
- int degree,
- gf_t* base_gf)
-{
- int scratch_size;
- void *scratch_memory;
- gf_t *gfp;
-
- if (w <= 0 || w > 32) {
- fprintf(stderr, "ERROR -- cannot init composite field for w=%d\n", w);
- assert(0);
- }
-
- gfp = (gf_t *) malloc(sizeof(gf_t));
- if (!gfp) {
- fprintf(stderr, "ERROR -- cannot allocate memory for Galois field w=%d\n", w);
- assert(0);
- }
-
- scratch_size = gf_scratch_size(w, GF_MULT_COMPOSITE, region_type, divide_type, degree, 0);
- if (!scratch_size) {
- fprintf(stderr, "ERROR -- cannot get scratch size for composite field w=%d\n", w);
- assert(0);
- }
-
- scratch_memory = malloc(scratch_size);
- if (!scratch_memory) {
- fprintf(stderr, "ERROR -- cannot get scratch memory for composite field w=%d\n", w);
- assert(0);
- }
-
- if(!gf_init_hard(gfp,
- w,
- GF_MULT_COMPOSITE,
- region_type,
- divide_type,
- 0,
- degree,
- 0,
- base_gf,
- scratch_memory))
- {
- fprintf(stderr, "ERROR -- cannot init default composite field for w=%d\n", w);
- assert(0);
- }
- gfp_is_composite[w] = 1;
- return gfp;
-}
-
-int galois_init_default_field(int w)
-{
- if (gfp_array[w] == NULL) {
- gfp_array[w] = (gf_t*)malloc(sizeof(gf_t));
- if(gfp_array[w] == NULL)
- return ENOMEM;
- if (!gf_init_easy(gfp_array[w], w))
- return EINVAL;
- }
- return 0;
-}
-
-int galois_uninit_field(int w)
-{
- int ret = 0;
- if (gfp_array[w] != NULL) {
- int recursive = 1;
- ret = gf_free(gfp_array[w], recursive);
- free(gfp_array[w]);
- gfp_array[w] = NULL;
- }
- return ret;
-}
-
-static void galois_init(int w)
-{
- if (w <= 0 || w > 32) {
- fprintf(stderr, "ERROR -- cannot init default Galois field for w=%d\n", w);
- assert(0);
- }
-
- switch (galois_init_default_field(w)) {
- case ENOMEM:
- fprintf(stderr, "ERROR -- cannot allocate memory for Galois field w=%d\n", w);
- assert(0);
- break;
- case EINVAL:
- fprintf(stderr, "ERROR -- cannot init default Galois field for w=%d\n", w);
- assert(0);
- break;
- }
-}
-
-
-static int is_valid_gf(gf_t *gf, int w)
-{
- // TODO: I assume we may eventually
- // want to do w=64 and 128, so w
- // will be needed to perform this check
- (void)w;
-
- if (gf == NULL) {
- return 0;
- }
- if (gf->multiply.w32 == NULL) {
- return 0;
- }
- if (gf->multiply_region.w32 == NULL) {
- return 0;
- }
- if (gf->divide.w32 == NULL) {
- return 0;
- }
- if (gf->inverse.w32 == NULL) {
- return 0;
- }
- if (gf->extract_word.w32 == NULL) {
- return 0;
- }
-
- return 1;
-}
-
-void galois_change_technique(gf_t *gf, int w)
-{
- if (w <= 0 || w > 32) {
- fprintf(stderr, "ERROR -- cannot support Galois field for w=%d\n", w);
- assert(0);
- }
-
- if (!is_valid_gf(gf, w)) {
- fprintf(stderr, "ERROR -- overriding with invalid Galois field for w=%d\n", w);
- assert(0);
- }
-
- if (gfp_array[w] != NULL) {
- gf_free(gfp_array[w], gfp_is_composite[w]);
- }
-
- gfp_array[w] = gf;
-}
-
-int galois_single_multiply(int x, int y, int w)
-{
- if (x == 0 || y == 0) return 0;
-
- if (gfp_array[w] == NULL) {
- galois_init(w);
- }
-
- if (w <= 32) {
- return gfp_array[w]->multiply.w32(gfp_array[w], x, y);
- } else {
- fprintf(stderr, "ERROR -- Galois field not implemented for w=%d\n", w);
- return 0;
- }
-}
-
-int galois_single_divide(int x, int y, int w)
-{
- if (x == 0) return 0;
- if (y == 0) return -1;
-
- if (gfp_array[w] == NULL) {
- galois_init(w);
- }
-
- if (w <= 32) {
- return gfp_array[w]->divide.w32(gfp_array[w], x, y);
- } else {
- fprintf(stderr, "ERROR -- Galois field not implemented for w=%d\n", w);
- return 0;
- }
-}
-
-void galois_w08_region_multiply(char *region, /* Region to multiply */
- int multby, /* Number to multiply by */
- int nbytes, /* Number of bytes in region */
- char *r2, /* If r2 != NULL, products go here */
- int add)
-{
- if (gfp_array[8] == NULL) {
- galois_init(8);
- }
- gfp_array[8]->multiply_region.w32(gfp_array[8], region, r2, multby, nbytes, add);
-}
-
-void galois_w16_region_multiply(char *region, /* Region to multiply */
- int multby, /* Number to multiply by */
- int nbytes, /* Number of bytes in region */
- char *r2, /* If r2 != NULL, products go here */
- int add)
-{
- if (gfp_array[16] == NULL) {
- galois_init(16);
- }
- gfp_array[16]->multiply_region.w32(gfp_array[16], region, r2, multby, nbytes, add);
-}
-
-
-void galois_w32_region_multiply(char *region, /* Region to multiply */
- int multby, /* Number to multiply by */
- int nbytes, /* Number of bytes in region */
- char *r2, /* If r2 != NULL, products go here */
- int add)
-{
- if (gfp_array[32] == NULL) {
- galois_init(32);
- }
- gfp_array[32]->multiply_region.w32(gfp_array[32], region, r2, multby, nbytes, add);
-}
-
-void galois_w8_region_xor(void *src, void *dest, int nbytes)
-{
- if (gfp_array[8] == NULL) {
- galois_init(8);
- }
- gfp_array[8]->multiply_region.w32(gfp_array[32], src, dest, 1, nbytes, 1);
-}
-
-void galois_w16_region_xor(void *src, void *dest, int nbytes)
-{
- if (gfp_array[16] == NULL) {
- galois_init(16);
- }
- gfp_array[16]->multiply_region.w32(gfp_array[16], src, dest, 1, nbytes, 1);
-}
-
-void galois_w32_region_xor(void *src, void *dest, int nbytes)
-{
- if (gfp_array[32] == NULL) {
- galois_init(32);
- }
- gfp_array[32]->multiply_region.w32(gfp_array[32], src, dest, 1, nbytes, 1);
-}
-
-void galois_region_xor(char *src, char *dest, int nbytes)
-{
- if (nbytes >= 16) {
- galois_w32_region_xor(src, dest, nbytes);
- } else {
- int i = 0;
- for (i = 0; i < nbytes; i++) {
- *dest ^= *src;
- dest++;
- src++;
- }
- }
-}
-
-int galois_inverse(int y, int w)
-{
- if (y == 0) return -1;
- return galois_single_divide(1, y, w);
-}
diff --git a/src/c/jerasure/src/jerasure.c b/src/c/jerasure/src/jerasure.c
deleted file mode 100644
index c9a1253..0000000
--- a/src/c/jerasure/src/jerasure.c
+++ /dev/null
@@ -1,1484 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-#include "galois.h"
-#include "jerasure.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-static double jerasure_total_xor_bytes = 0;
-static double jerasure_total_gf_bytes = 0;
-static double jerasure_total_memcpy_bytes = 0;
-
-void jerasure_print_matrix(int *m, int rows, int cols, int w)
-{
- int i, j;
- int fw;
- char s[30];
- unsigned int w2;
-
- if (w == 32) {
- fw = 10;
- } else {
- w2 = (1 << w);
- sprintf(s, "%u", w2-1);
- fw = strlen(s);
- }
-
- for (i = 0; i < rows; i++) {
- for (j = 0; j < cols; j++) {
- if (j != 0) printf(" ");
- printf("%*u", fw, m[i*cols+j]);
- }
- printf("\n");
- }
-}
-
-void jerasure_print_bitmatrix(int *m, int rows, int cols, int w)
-{
- int i, j;
-
- for (i = 0; i < rows; i++) {
- if (i != 0 && i%w == 0) printf("\n");
- for (j = 0; j < cols; j++) {
- if (j != 0 && j%w == 0) printf(" ");
- printf("%d", m[i*cols+j]);
- }
- printf("\n");
- }
-}
-
-int jerasure_make_decoding_matrix(int k, int m, int w, int *matrix, int *erased, int *decoding_matrix, int *dm_ids)
-{
- int i, j, *tmpmat;
-
- j = 0;
- for (i = 0; j < k; i++) {
- if (erased[i] == 0) {
- dm_ids[j] = i;
- j++;
- }
- }
-
- tmpmat = talloc(int, k*k);
- if (tmpmat == NULL) { return -1; }
- for (i = 0; i < k; i++) {
- if (dm_ids[i] < k) {
- for (j = 0; j < k; j++) tmpmat[i*k+j] = 0;
- tmpmat[i*k+dm_ids[i]] = 1;
- } else {
- for (j = 0; j < k; j++) {
- tmpmat[i*k+j] = matrix[(dm_ids[i]-k)*k+j];
- }
- }
- }
-
- i = jerasure_invert_matrix(tmpmat, decoding_matrix, k, w);
- free(tmpmat);
- return i;
-}
-
-/* Internal Routine */
-int jerasure_make_decoding_bitmatrix(int k, int m, int w, int *matrix, int *erased, int *decoding_matrix, int *dm_ids)
-{
- int i, j, *tmpmat;
- int index, mindex;
-
- j = 0;
- for (i = 0; j < k; i++) {
- if (erased[i] == 0) {
- dm_ids[j] = i;
- j++;
- }
- }
-
- tmpmat = talloc(int, k*k*w*w);
- if (tmpmat == NULL) { return -1; }
- for (i = 0; i < k; i++) {
- if (dm_ids[i] < k) {
- index = i*k*w*w;
- for (j = 0; j < k*w*w; j++) tmpmat[index+j] = 0;
- index = i*k*w*w+dm_ids[i]*w;
- for (j = 0; j < w; j++) {
- tmpmat[index] = 1;
- index += (k*w+1);
- }
- } else {
- index = i*k*w*w;
- mindex = (dm_ids[i]-k)*k*w*w;
- for (j = 0; j < k*w*w; j++) {
- tmpmat[index+j] = matrix[mindex+j];
- }
- }
- }
-
- i = jerasure_invert_bitmatrix(tmpmat, decoding_matrix, k*w);
- free(tmpmat);
- return i;
-}
-
-int jerasure_matrix_decode(int k, int m, int w, int *matrix, int row_k_ones, int *erasures,
- char **data_ptrs, char **coding_ptrs, int size)
-{
- int i, edd, lastdrive;
- int *tmpids;
- int *erased, *decoding_matrix, *dm_ids;
-
- if (w != 8 && w != 16 && w != 32) return -1;
-
- erased = jerasure_erasures_to_erased(k, m, erasures);
- if (erased == NULL) return -1;
-
- /* Find the number of data drives failed */
-
- lastdrive = k;
-
- edd = 0;
- for (i = 0; i < k; i++) {
- if (erased[i]) {
- edd++;
- lastdrive = i;
- }
- }
-
- /* You only need to create the decoding matrix in the following cases:
-
- 1. edd > 0 and row_k_ones is false.
- 2. edd > 0 and row_k_ones is true and coding device 0 has been erased.
- 3. edd > 1
-
- We're going to use lastdrive to denote when to stop decoding data.
- At this point in the code, it is equal to the last erased data device.
- However, if we can't use the parity row to decode it (i.e. row_k_ones=0
- or erased[k] = 1, we're going to set it to k so that the decoding
- pass will decode all data.
- */
-
- if (!row_k_ones || erased[k]) lastdrive = k;
-
- dm_ids = NULL;
- decoding_matrix = NULL;
-
- if (edd > 1 || (edd > 0 && (!row_k_ones || erased[k]))) {
- dm_ids = talloc(int, k);
- if (dm_ids == NULL) {
- free(erased);
- return -1;
- }
-
- decoding_matrix = talloc(int, k*k);
- if (decoding_matrix == NULL) {
- free(erased);
- free(dm_ids);
- return -1;
- }
-
- if (jerasure_make_decoding_matrix(k, m, w, matrix, erased, decoding_matrix, dm_ids) < 0) {
- free(erased);
- free(dm_ids);
- free(decoding_matrix);
- return -1;
- }
- }
-
- /* Decode the data drives.
- If row_k_ones is true and coding device 0 is intact, then only decode edd-1 drives.
- This is done by stopping at lastdrive.
- We test whether edd > 0 so that we can exit the loop early if we're done.
- */
-
- for (i = 0; edd > 0 && i < lastdrive; i++) {
- if (erased[i]) {
- jerasure_matrix_dotprod(k, w, decoding_matrix+(i*k), dm_ids, i, data_ptrs, coding_ptrs, size);
- edd--;
- }
- }
-
- /* Then if necessary, decode drive lastdrive */
-
- if (edd > 0) {
- tmpids = talloc(int, k);
- if (!tmpids) {
- free(erased);
- free(dm_ids);
- free(decoding_matrix);
- return -1;
- }
- for (i = 0; i < k; i++) {
- tmpids[i] = (i < lastdrive) ? i : i+1;
- }
- jerasure_matrix_dotprod(k, w, matrix, tmpids, lastdrive, data_ptrs, coding_ptrs, size);
- free(tmpids);
- }
-
- /* Finally, re-encode any erased coding devices */
-
- for (i = 0; i < m; i++) {
- if (erased[k+i]) {
- jerasure_matrix_dotprod(k, w, matrix+(i*k), NULL, i+k, data_ptrs, coding_ptrs, size);
- }
- }
-
- free(erased);
- if (dm_ids != NULL) free(dm_ids);
- if (decoding_matrix != NULL) free(decoding_matrix);
-
- return 0;
-}
-
-
-int *jerasure_matrix_to_bitmatrix(int k, int m, int w, int *matrix)
-{
- int *bitmatrix;
- int rowelts, rowindex, colindex, elt, i, j, l, x;
-
- if (matrix == NULL) { return NULL; }
-
- bitmatrix = talloc(int, k*m*w*w);
- if (!bitmatrix) return NULL;
-
- rowelts = k * w;
- rowindex = 0;
-
- for (i = 0; i < m; i++) {
- colindex = rowindex;
- for (j = 0; j < k; j++) {
- elt = matrix[i*k+j];
- for (x = 0; x < w; x++) {
- for (l = 0; l < w; l++) {
- bitmatrix[colindex+x+l*rowelts] = ((elt & (1 << l)) ? 1 : 0);
- }
- elt = galois_single_multiply(elt, 2, w);
- }
- colindex += w;
- }
- rowindex += rowelts * w;
- }
- return bitmatrix;
-}
-
-void jerasure_matrix_encode(int k, int m, int w, int *matrix,
- char **data_ptrs, char **coding_ptrs, int size)
-{
- int i;
-
- if (w != 8 && w != 16 && w != 32) {
- fprintf(stderr, "ERROR: jerasure_matrix_encode() and w is not 8, 16 or 32\n");
- assert(0);
- }
-
- for (i = 0; i < m; i++) {
- jerasure_matrix_dotprod(k, w, matrix+(i*k), NULL, k+i, data_ptrs, coding_ptrs, size);
- }
-}
-
-void jerasure_bitmatrix_dotprod(int k, int w, int *bitmatrix_row,
- int *src_ids, int dest_id,
- char **data_ptrs, char **coding_ptrs, int size, int packetsize)
-{
- int j, sindex, pstarted, index, x, y;
- char *dptr, *pptr, *bdptr, *bpptr;
-
- if (size%(w*packetsize) != 0) {
- fprintf(stderr, "jerasure_bitmatrix_dotprod - size%c(w*packetsize)) must = 0\n", '%');
- assert(0);
- }
-
- bpptr = (dest_id < k) ? data_ptrs[dest_id] : coding_ptrs[dest_id-k];
-
- for (sindex = 0; sindex < size; sindex += (packetsize*w)) {
- index = 0;
- for (j = 0; j < w; j++) {
- pstarted = 0;
- pptr = bpptr + sindex + j*packetsize;
- for (x = 0; x < k; x++) {
- if (src_ids == NULL) {
- bdptr = data_ptrs[x];
- } else if (src_ids[x] < k) {
- bdptr = data_ptrs[src_ids[x]];
- } else {
- bdptr = coding_ptrs[src_ids[x]-k];
- }
- for (y = 0; y < w; y++) {
- if (bitmatrix_row[index]) {
- dptr = bdptr + sindex + y*packetsize;
- if (!pstarted) {
- memcpy(pptr, dptr, packetsize);
- jerasure_total_memcpy_bytes += packetsize;
- pstarted = 1;
- } else {
- galois_region_xor(dptr, pptr, packetsize);
- jerasure_total_xor_bytes += packetsize;
- }
- }
- index++;
- }
- }
- }
- }
-}
-
-void jerasure_do_parity(int k, char **data_ptrs, char *parity_ptr, int size)
-{
- int i;
-
- memcpy(parity_ptr, data_ptrs[0], size);
- jerasure_total_memcpy_bytes += size;
-
- for (i = 1; i < k; i++) {
- galois_region_xor(data_ptrs[i], parity_ptr, size);
- jerasure_total_xor_bytes += size;
- }
-}
-
-int jerasure_invert_matrix(int *mat, int *inv, int rows, int w)
-{
- int cols, i, j, k, x, rs2;
- int row_start, tmp, inverse;
-
- cols = rows;
-
- k = 0;
- for (i = 0; i < rows; i++) {
- for (j = 0; j < cols; j++) {
- inv[k] = (i == j) ? 1 : 0;
- k++;
- }
- }
-
- /* First -- convert into upper triangular */
- for (i = 0; i < cols; i++) {
- row_start = cols*i;
-
- /* Swap rows if we ave a zero i,i element. If we can't swap, then the
- matrix was not invertible */
-
- if (mat[row_start+i] == 0) {
- for (j = i+1; j < rows && mat[cols*j+i] == 0; j++) ;
- if (j == rows) return -1;
- rs2 = j*cols;
- for (k = 0; k < cols; k++) {
- tmp = mat[row_start+k];
- mat[row_start+k] = mat[rs2+k];
- mat[rs2+k] = tmp;
- tmp = inv[row_start+k];
- inv[row_start+k] = inv[rs2+k];
- inv[rs2+k] = tmp;
- }
- }
-
- /* Multiply the row by 1/element i,i */
- tmp = mat[row_start+i];
- if (tmp != 1) {
- inverse = galois_single_divide(1, tmp, w);
- for (j = 0; j < cols; j++) {
- mat[row_start+j] = galois_single_multiply(mat[row_start+j], inverse, w);
- inv[row_start+j] = galois_single_multiply(inv[row_start+j], inverse, w);
- }
- }
-
- /* Now for each j>i, add A_ji*Ai to Aj */
- k = row_start+i;
- for (j = i+1; j != cols; j++) {
- k += cols;
- if (mat[k] != 0) {
- if (mat[k] == 1) {
- rs2 = cols*j;
- for (x = 0; x < cols; x++) {
- mat[rs2+x] ^= mat[row_start+x];
- inv[rs2+x] ^= inv[row_start+x];
- }
- } else {
- tmp = mat[k];
- rs2 = cols*j;
- for (x = 0; x < cols; x++) {
- mat[rs2+x] ^= galois_single_multiply(tmp, mat[row_start+x], w);
- inv[rs2+x] ^= galois_single_multiply(tmp, inv[row_start+x], w);
- }
- }
- }
- }
- }
-
- /* Now the matrix is upper triangular. Start at the top and multiply down */
-
- for (i = rows-1; i >= 0; i--) {
- row_start = i*cols;
- for (j = 0; j < i; j++) {
- rs2 = j*cols;
- if (mat[rs2+i] != 0) {
- tmp = mat[rs2+i];
- mat[rs2+i] = 0;
- for (k = 0; k < cols; k++) {
- inv[rs2+k] ^= galois_single_multiply(tmp, inv[row_start+k], w);
- }
- }
- }
- }
- return 0;
-}
-
-int jerasure_invertible_matrix(int *mat, int rows, int w)
-{
- int cols, i, j, k, x, rs2;
- int row_start, tmp, inverse;
-
- cols = rows;
-
- /* First -- convert into upper triangular */
- for (i = 0; i < cols; i++) {
- row_start = cols*i;
-
- /* Swap rows if we ave a zero i,i element. If we can't swap, then the
- matrix was not invertible */
-
- if (mat[row_start+i] == 0) {
- for (j = i+1; j < rows && mat[cols*j+i] == 0; j++) ;
- if (j == rows) return 0;
- rs2 = j*cols;
- for (k = 0; k < cols; k++) {
- tmp = mat[row_start+k];
- mat[row_start+k] = mat[rs2+k];
- mat[rs2+k] = tmp;
- }
- }
-
- /* Multiply the row by 1/element i,i */
- tmp = mat[row_start+i];
- if (tmp != 1) {
- inverse = galois_single_divide(1, tmp, w);
- for (j = 0; j < cols; j++) {
- mat[row_start+j] = galois_single_multiply(mat[row_start+j], inverse, w);
- }
- }
-
- /* Now for each j>i, add A_ji*Ai to Aj */
- k = row_start+i;
- for (j = i+1; j != cols; j++) {
- k += cols;
- if (mat[k] != 0) {
- if (mat[k] == 1) {
- rs2 = cols*j;
- for (x = 0; x < cols; x++) {
- mat[rs2+x] ^= mat[row_start+x];
- }
- } else {
- tmp = mat[k];
- rs2 = cols*j;
- for (x = 0; x < cols; x++) {
- mat[rs2+x] ^= galois_single_multiply(tmp, mat[row_start+x], w);
- }
- }
- }
- }
- }
- return 1;
-}
-
-/* Converts a list-style version of the erasures into an array of k+m elements
- where the element = 1 if the index has been erased, and zero otherwise */
-
-int *jerasure_erasures_to_erased(int k, int m, int *erasures)
-{
- int td;
- int t_non_erased;
- int *erased;
- int i;
-
- td = k+m;
- erased = talloc(int, td);
- if (erased == NULL) return NULL;
- t_non_erased = td;
-
- for (i = 0; i < td; i++) erased[i] = 0;
-
- for (i = 0; erasures[i] != -1; i++) {
- if (erased[erasures[i]] == 0) {
- erased[erasures[i]] = 1;
- t_non_erased--;
- if (t_non_erased < k) {
- free(erased);
- return NULL;
- }
- }
- }
- return erased;
-}
-
-void jerasure_free_schedule(int **schedule)
-{
- int i;
-
- for (i = 0; schedule[i][0] >= 0; i++) free(schedule[i]);
- free(schedule[i]);
- free(schedule);
-}
-
-void jerasure_free_schedule_cache(int k, int m, int ***cache)
-{
- int e1, e2;
-
- if (m != 2) {
- fprintf(stderr, "jerasure_free_schedule_cache(): m must equal 2\n");
- assert(0);
- }
-
- for (e1 = 0; e1 < k+m; e1++) {
- for (e2 = 0; e2 < e1; e2++) {
- jerasure_free_schedule(cache[e1*(k+m)+e2]);
- }
- jerasure_free_schedule(cache[e1*(k+m)+e1]);
- }
- free(cache);
-}
-
-void jerasure_matrix_dotprod(int k, int w, int *matrix_row,
- int *src_ids, int dest_id,
- char **data_ptrs, char **coding_ptrs, int size)
-{
- int init;
- char *dptr, *sptr;
- int i;
-
- if (w != 1 && w != 8 && w != 16 && w != 32) {
- fprintf(stderr, "ERROR: jerasure_matrix_dotprod() called and w is not 1, 8, 16 or 32\n");
- assert(0);
- }
-
- init = 0;
-
- dptr = (dest_id < k) ? data_ptrs[dest_id] : coding_ptrs[dest_id-k];
-
- /* First copy or xor any data that does not need to be multiplied by a factor */
-
- for (i = 0; i < k; i++) {
- if (matrix_row[i] == 1) {
- if (src_ids == NULL) {
- sptr = data_ptrs[i];
- } else if (src_ids[i] < k) {
- sptr = data_ptrs[src_ids[i]];
- } else {
- sptr = coding_ptrs[src_ids[i]-k];
- }
- if (init == 0) {
- memcpy(dptr, sptr, size);
- jerasure_total_memcpy_bytes += size;
- init = 1;
- } else {
- galois_region_xor(sptr, dptr, size);
- jerasure_total_xor_bytes += size;
- }
- }
- }
-
- /* Now do the data that needs to be multiplied by a factor */
-
- for (i = 0; i < k; i++) {
- if (matrix_row[i] != 0 && matrix_row[i] != 1) {
- if (src_ids == NULL) {
- sptr = data_ptrs[i];
- } else if (src_ids[i] < k) {
- sptr = data_ptrs[src_ids[i]];
- } else {
- sptr = coding_ptrs[src_ids[i]-k];
- }
- switch (w) {
- case 8: galois_w08_region_multiply(sptr, matrix_row[i], size, dptr, init); break;
- case 16: galois_w16_region_multiply(sptr, matrix_row[i], size, dptr, init); break;
- case 32: galois_w32_region_multiply(sptr, matrix_row[i], size, dptr, init); break;
- }
- jerasure_total_gf_bytes += size;
- init = 1;
- }
- }
-}
-
-
-int jerasure_bitmatrix_decode(int k, int m, int w, int *bitmatrix, int row_k_ones, int *erasures,
- char **data_ptrs, char **coding_ptrs, int size, int packetsize)
-{
- int i;
- int *erased;
- int *decoding_matrix;
- int *dm_ids;
- int edd, *tmpids, lastdrive;
-
- erased = jerasure_erasures_to_erased(k, m, erasures);
- if (erased == NULL) return -1;
-
- /* See jerasure_matrix_decode for the logic of this routine. This one works just like
- it, but calls the bitmatrix ops instead */
-
- lastdrive = k;
-
- edd = 0;
- for (i = 0; i < k; i++) {
- if (erased[i]) {
- edd++;
- lastdrive = i;
- }
- }
-
- if (row_k_ones != 1 || erased[k]) lastdrive = k;
-
- dm_ids = NULL;
- decoding_matrix = NULL;
-
- if (edd > 1 || (edd > 0 && (row_k_ones != 1 || erased[k]))) {
-
- dm_ids = talloc(int, k);
- if (dm_ids == NULL) {
- free(erased);
- return -1;
- }
-
- decoding_matrix = talloc(int, k*k*w*w);
- if (decoding_matrix == NULL) {
- free(erased);
- free(dm_ids);
- return -1;
- }
-
- if (jerasure_make_decoding_bitmatrix(k, m, w, bitmatrix, erased, decoding_matrix, dm_ids) < 0) {
- free(erased);
- free(dm_ids);
- free(decoding_matrix);
- return -1;
- }
- }
-
- for (i = 0; edd > 0 && i < lastdrive; i++) {
- if (erased[i]) {
- jerasure_bitmatrix_dotprod(k, w, decoding_matrix+i*k*w*w, dm_ids, i, data_ptrs, coding_ptrs, size, packetsize);
- edd--;
- }
- }
-
- if (edd > 0) {
- tmpids = talloc(int, k);
- if (!tmpids) {
- free(erased);
- free(dm_ids);
- free(decoding_matrix);
- return -1;
- }
- for (i = 0; i < k; i++) {
- tmpids[i] = (i < lastdrive) ? i : i+1;
- }
- jerasure_bitmatrix_dotprod(k, w, bitmatrix, tmpids, lastdrive, data_ptrs, coding_ptrs, size, packetsize);
- free(tmpids);
- }
-
- for (i = 0; i < m; i++) {
- if (erased[k+i]) {
- jerasure_bitmatrix_dotprod(k, w, bitmatrix+i*k*w*w, NULL, k+i, data_ptrs, coding_ptrs, size, packetsize);
- }
- }
-
- free(erased);
- if (dm_ids != NULL) free(dm_ids);
- if (decoding_matrix != NULL) free(decoding_matrix);
-
- return 0;
-}
-
-static char **set_up_ptrs_for_scheduled_decoding(int k, int m, int *erasures, char **data_ptrs, char **coding_ptrs)
-{
- int ddf, cdf;
- int *erased;
- char **ptrs;
- int i, j, x;
-
- ddf = 0;
- cdf = 0;
- for (i = 0; erasures[i] != -1; i++) {
- if (erasures[i] < k) ddf++; else cdf++;
- }
-
- erased = jerasure_erasures_to_erased(k, m, erasures);
- if (erased == NULL) return NULL;
-
- /* Set up ptrs. It will be as follows:
-
- - If data drive i has not failed, then ptrs[i] = data_ptrs[i].
- - If data drive i has failed, then ptrs[i] = coding_ptrs[j], where j is the
- lowest unused non-failed coding drive.
- - Elements k to k+ddf-1 are data_ptrs[] of the failed data drives.
- - Elements k+ddf to k+ddf+cdf-1 are coding_ptrs[] of the failed data drives.
-
- The array row_ids contains the ids of ptrs.
- The array ind_to_row_ids contains the row_id of drive i.
-
- However, we're going to set row_ids and ind_to_row in a different procedure.
- */
-
- ptrs = talloc(char *, k+m);
- if (!ptrs) {
- free(erased);
- return NULL;
- }
-
- j = k;
- x = k;
- for (i = 0; i < k; i++) {
- if (erased[i] == 0) {
- ptrs[i] = data_ptrs[i];
- } else {
- while (erased[j]) j++;
- ptrs[i] = coding_ptrs[j-k];
- j++;
- ptrs[x] = data_ptrs[i];
- x++;
- }
- }
- for (i = k; i < k+m; i++) {
- if (erased[i]) {
- ptrs[x] = coding_ptrs[i-k];
- x++;
- }
- }
- free(erased);
- return ptrs;
-}
-
-static int set_up_ids_for_scheduled_decoding(int k, int m, int *erasures, int *row_ids, int *ind_to_row)
-{
- int ddf, cdf;
- int *erased;
- int i, j, x;
-
- ddf = 0;
- cdf = 0;
- for (i = 0; erasures[i] != -1; i++) {
- if (erasures[i] < k) ddf++; else cdf++;
- }
-
- erased = jerasure_erasures_to_erased(k, m, erasures);
- if (erased == NULL) return -1;
-
- /* See set_up_ptrs_for_scheduled_decoding for how these are set */
-
- j = k;
- x = k;
- for (i = 0; i < k; i++) {
- if (erased[i] == 0) {
- row_ids[i] = i;
- ind_to_row[i] = i;
- } else {
- while (erased[j]) j++;
- row_ids[i] = j;
- ind_to_row[j] = i;
- j++;
- row_ids[x] = i;
- ind_to_row[i] = x;
- x++;
- }
- }
- for (i = k; i < k+m; i++) {
- if (erased[i]) {
- row_ids[x] = i;
- ind_to_row[i] = x;
- x++;
- }
- }
- free(erased);
- return 0;
-}
-
-static int **jerasure_generate_decoding_schedule(int k, int m, int w, int *bitmatrix, int *erasures, int smart)
-{
- int i, j, x, drive, y, index, z;
- int *decoding_matrix, *inverse, *real_decoding_matrix;
- int *ptr;
- int *row_ids;
- int *ind_to_row;
- int ddf, cdf;
- int **schedule;
- int *b1, *b2;
-
- /* First, figure out the number of data drives that have failed, and the
- number of coding drives that have failed: ddf and cdf */
-
- ddf = 0;
- cdf = 0;
- for (i = 0; erasures[i] != -1; i++) {
- if (erasures[i] < k) ddf++; else cdf++;
- }
-
- row_ids = talloc(int, k+m);
- if (!row_ids) return NULL;
- ind_to_row = talloc(int, k+m);
- if (!ind_to_row) {
- free(row_ids);
- return NULL;
- }
-
- if (set_up_ids_for_scheduled_decoding(k, m, erasures, row_ids, ind_to_row) < 0) {
- free(row_ids);
- free(ind_to_row);
- return NULL;
- }
-
- /* Now, we're going to create one decoding matrix which is going to
- decode everything with one call. The hope is that the scheduler
- will do a good job. This matrix has w*e rows, where e is the
- number of erasures (ddf+cdf) */
-
- real_decoding_matrix = talloc(int, k*w*(cdf+ddf)*w);
- if (!real_decoding_matrix) {
- free(row_ids);
- free(ind_to_row);
- return NULL;
- }
-
- /* First, if any data drives have failed, then initialize the first
- ddf*w rows of the decoding matrix from the standard decoding
- matrix inversion */
-
- if (ddf > 0) {
-
- decoding_matrix = talloc(int, k*k*w*w);
- if (!decoding_matrix) {
- free(row_ids);
- free(ind_to_row);
- return NULL;
- }
- ptr = decoding_matrix;
- for (i = 0; i < k; i++) {
- if (row_ids[i] == i) {
- bzero(ptr, k*w*w*sizeof(int));
- for (x = 0; x < w; x++) {
- ptr[x+i*w+x*k*w] = 1;
- }
- } else {
- memcpy(ptr, bitmatrix+k*w*w*(row_ids[i]-k), k*w*w*sizeof(int));
- }
- ptr += (k*w*w);
- }
- inverse = talloc(int, k*k*w*w);
- if (!inverse) {
- free(row_ids);
- free(ind_to_row);
- free(decoding_matrix);
- return NULL;
- }
- jerasure_invert_bitmatrix(decoding_matrix, inverse, k*w);
-
-/* printf("\nMatrix to invert\n");
- jerasure_print_bitmatrix(decoding_matrix, k*w, k*w, w);
- printf("\n");
- printf("\nInverse\n");
- jerasure_print_bitmatrix(inverse, k*w, k*w, w);
- printf("\n"); */
-
- free(decoding_matrix);
- ptr = real_decoding_matrix;
- for (i = 0; i < ddf; i++) {
- memcpy(ptr, inverse+k*w*w*row_ids[k+i], sizeof(int)*k*w*w);
- ptr += (k*w*w);
- }
- free(inverse);
- }
-
- /* Next, here comes the hard part. For each coding node that needs
- to be decoded, you start by putting its rows of the distribution
- matrix into the decoding matrix. If there were no failed data
- nodes, then you're done. However, if there have been failed
- data nodes, then you need to modify the columns that correspond
- to the data nodes. You do that by first zeroing them. Then
- whereever there is a one in the distribution matrix, you XOR
- in the corresponding row from the failed data node's entry in
- the decoding matrix. The whole process kind of makes my head
- spin, but it works.
- */
-
- for (x = 0; x < cdf; x++) {
- drive = row_ids[x+ddf+k]-k;
- ptr = real_decoding_matrix + k*w*w*(ddf+x);
- memcpy(ptr, bitmatrix+drive*k*w*w, sizeof(int)*k*w*w);
-
- for (i = 0; i < k; i++) {
- if (row_ids[i] != i) {
- for (j = 0; j < w; j++) {
- bzero(ptr+j*k*w+i*w, sizeof(int)*w);
- }
- }
- }
-
- /* There's the yucky part */
-
- index = drive*k*w*w;
- for (i = 0; i < k; i++) {
- if (row_ids[i] != i) {
- b1 = real_decoding_matrix+(ind_to_row[i]-k)*k*w*w;
- for (j = 0; j < w; j++) {
- b2 = ptr + j*k*w;
- for (y = 0; y < w; y++) {
- if (bitmatrix[index+j*k*w+i*w+y]) {
- for (z = 0; z < k*w; z++) {
- b2[z] = b2[z] ^ b1[z+y*k*w];
- }
- }
- }
- }
- }
- }
- }
-
-/*
- printf("\n\nReal Decoding Matrix\n\n");
- jerasure_print_bitmatrix(real_decoding_matrix, (ddf+cdf)*w, k*w, w);
- printf("\n"); */
- if (smart) {
- schedule = jerasure_smart_bitmatrix_to_schedule(k, ddf+cdf, w, real_decoding_matrix);
- } else {
- schedule = jerasure_dumb_bitmatrix_to_schedule(k, ddf+cdf, w, real_decoding_matrix);
- }
- free(row_ids);
- free(ind_to_row);
- free(real_decoding_matrix);
- return schedule;
-}
-
-int jerasure_schedule_decode_lazy(int k, int m, int w, int *bitmatrix, int *erasures,
- char **data_ptrs, char **coding_ptrs, int size, int packetsize,
- int smart)
-{
- int i, tdone;
- char **ptrs;
- int **schedule;
-
- ptrs = set_up_ptrs_for_scheduled_decoding(k, m, erasures, data_ptrs, coding_ptrs);
- if (ptrs == NULL) return -1;
-
- schedule = jerasure_generate_decoding_schedule(k, m, w, bitmatrix, erasures, smart);
- if (schedule == NULL) {
- free(ptrs);
- return -1;
- }
-
- for (tdone = 0; tdone < size; tdone += packetsize*w) {
- jerasure_do_scheduled_operations(ptrs, schedule, packetsize);
- for (i = 0; i < k+m; i++) ptrs[i] += (packetsize*w);
- }
-
- jerasure_free_schedule(schedule);
- free(ptrs);
-
- return 0;
-}
-
-int jerasure_schedule_decode_cache(int k, int m, int w, int ***scache, int *erasures,
- char **data_ptrs, char **coding_ptrs, int size, int packetsize)
-{
- int i, tdone;
- char **ptrs;
- int **schedule;
- int index;
-
- if (erasures[1] == -1) {
- index = erasures[0]*(k+m) + erasures[0];
- } else if (erasures[2] == -1) {
- index = erasures[0]*(k+m) + erasures[1];
- } else {
- return -1;
- }
-
- schedule = scache[index];
-
- ptrs = set_up_ptrs_for_scheduled_decoding(k, m, erasures, data_ptrs, coding_ptrs);
- if (ptrs == NULL) return -1;
-
-
- for (tdone = 0; tdone < size; tdone += packetsize*w) {
- jerasure_do_scheduled_operations(ptrs, schedule, packetsize);
- for (i = 0; i < k+m; i++) ptrs[i] += (packetsize*w);
- }
-
- free(ptrs);
-
- return 0;
-}
-
-/* This only works when m = 2 */
-
-int ***jerasure_generate_schedule_cache(int k, int m, int w, int *bitmatrix, int smart)
-{
- int ***scache;
- int erasures[3];
- int e1, e2;
-
- /* Ok -- this is yucky, but it's how I'm doing it. You will make an index out
- of erasures, which will be e1*(k+m)+(e2). If there is no e2, then e2 = e1.
- Isn't that clever and confusing. Sorry.
-
- We're not going to worry about ordering -- in other words, the schedule for
- e1,e2 will be the same as e2,e1. They will have the same pointer -- the
- schedule will not be duplicated. */
-
- if (m != 2) return NULL;
-
- scache = talloc(int **, (k+m)*(k+m+1));
- if (scache == NULL) return NULL;
-
- for (e1 = 0; e1 < k+m; e1++) {
- erasures[0] = e1;
- for (e2 = 0; e2 < e1; e2++) {
- erasures[1] = e2;
- erasures[2] = -1;
- scache[e1*(k+m)+e2] = jerasure_generate_decoding_schedule(k, m, w, bitmatrix, erasures, smart);
- scache[e2*(k+m)+e1] = scache[e1*(k+m)+e2];
- }
- erasures[1] = -1;
- scache[e1*(k+m)+e1] = jerasure_generate_decoding_schedule(k, m, w, bitmatrix, erasures, smart);
- }
- return scache;
-
-}
-
-int jerasure_invert_bitmatrix(int *mat, int *inv, int rows)
-{
- int cols, i, j, k;
- int tmp;
-
- cols = rows;
-
- k = 0;
- for (i = 0; i < rows; i++) {
- for (j = 0; j < cols; j++) {
- inv[k] = (i == j) ? 1 : 0;
- k++;
- }
- }
-
- /* First -- convert into upper triangular */
-
- for (i = 0; i < cols; i++) {
-
- /* Swap rows if we have a zero i,i element. If we can't swap, then the
- matrix was not invertible */
-
- if ((mat[i*cols+i]) == 0) {
- for (j = i+1; j < rows && (mat[j*cols+i]) == 0; j++) ;
- if (j == rows) return -1;
- for (k = 0; k < cols; k++) {
- tmp = mat[i*cols+k]; mat[i*cols+k] = mat[j*cols+k]; mat[j*cols+k] = tmp;
- tmp = inv[i*cols+k]; inv[i*cols+k] = inv[j*cols+k]; inv[j*cols+k] = tmp;
- }
- }
-
- /* Now for each j>i, add A_ji*Ai to Aj */
- for (j = i+1; j != rows; j++) {
- if (mat[j*cols+i] != 0) {
- for (k = 0; k < cols; k++) {
- mat[j*cols+k] ^= mat[i*cols+k];
- inv[j*cols+k] ^= inv[i*cols+k];
- }
- }
- }
- }
-
- /* Now the matrix is upper triangular. Start at the top and multiply down */
-
- for (i = rows-1; i >= 0; i--) {
- for (j = 0; j < i; j++) {
- if (mat[j*cols+i]) {
- for (k = 0; k < cols; k++) {
- mat[j*cols+k] ^= mat[i*cols+k];
- inv[j*cols+k] ^= inv[i*cols+k];
- }
- }
- }
- }
- return 0;
-}
-
-int jerasure_invertible_bitmatrix(int *mat, int rows)
-{
- int cols, i, j, k;
- int tmp;
-
- cols = rows;
-
- /* First -- convert into upper triangular */
-
- for (i = 0; i < cols; i++) {
-
- /* Swap rows if we have a zero i,i element. If we can't swap, then the
- matrix was not invertible */
-
- if ((mat[i*cols+i]) == 0) {
- for (j = i+1; j < rows && (mat[j*cols+i]) == 0; j++) ;
- if (j == rows) return 0;
- for (k = 0; k < cols; k++) {
- tmp = mat[i*cols+k]; mat[i*cols+k] = mat[j*cols+k]; mat[j*cols+k] = tmp;
- }
- }
-
- /* Now for each j>i, add A_ji*Ai to Aj */
- for (j = i+1; j != rows; j++) {
- if (mat[j*cols+i] != 0) {
- for (k = 0; k < cols; k++) {
- mat[j*cols+k] ^= mat[i*cols+k];
- }
- }
- }
- }
- return 1;
-}
-
-
-int *jerasure_matrix_multiply(int *m1, int *m2, int r1, int c1, int r2, int c2, int w)
-{
- int *product, i, j, k;
-
- product = (int *) malloc(sizeof(int)*r1*c2);
- for (i = 0; i < r1*c2; i++) product[i] = 0;
-
- for (i = 0; i < r1; i++) {
- for (j = 0; j < c2; j++) {
- for (k = 0; k < r2; k++) {
- product[i*c2+j] ^= galois_single_multiply(m1[i*c1+k], m2[k*c2+j], w);
- }
- }
- }
- return product;
-}
-
-void jerasure_get_stats(double *fill_in)
-{
- fill_in[0] = jerasure_total_xor_bytes;
- fill_in[1] = jerasure_total_gf_bytes;
- fill_in[2] = jerasure_total_memcpy_bytes;
- jerasure_total_xor_bytes = 0;
- jerasure_total_gf_bytes = 0;
- jerasure_total_memcpy_bytes = 0;
-}
-
-void jerasure_do_scheduled_operations(char **ptrs, int **operations, int packetsize)
-{
- char *sptr;
- char *dptr;
- int op;
-
- for (op = 0; operations[op][0] >= 0; op++) {
- sptr = ptrs[operations[op][0]] + operations[op][1]*packetsize;
- dptr = ptrs[operations[op][2]] + operations[op][3]*packetsize;
- if (operations[op][4]) {
-/* printf("%d,%d %d,%d\n", operations[op][0],
- operations[op][1],
- operations[op][2],
- operations[op][3]);
- printf("xor(0x%x, 0x%x -> 0x%x, %d)\n", sptr, dptr, dptr, packetsize); */
- galois_region_xor(sptr, dptr, packetsize);
- jerasure_total_xor_bytes += packetsize;
- } else {
-/* printf("memcpy(0x%x <- 0x%x)\n", dptr, sptr); */
- memcpy(dptr, sptr, packetsize);
- jerasure_total_memcpy_bytes += packetsize;
- }
- }
-}
-
-void jerasure_schedule_encode(int k, int m, int w, int **schedule,
- char **data_ptrs, char **coding_ptrs, int size, int packetsize)
-{
- char **ptr_copy;
- int i, tdone;
-
- ptr_copy = talloc(char *, (k+m));
- for (i = 0; i < k; i++) ptr_copy[i] = data_ptrs[i];
- for (i = 0; i < m; i++) ptr_copy[i+k] = coding_ptrs[i];
- for (tdone = 0; tdone < size; tdone += packetsize*w) {
- jerasure_do_scheduled_operations(ptr_copy, schedule, packetsize);
- for (i = 0; i < k+m; i++) ptr_copy[i] += (packetsize*w);
- }
- free(ptr_copy);
-}
-
-int **jerasure_dumb_bitmatrix_to_schedule(int k, int m, int w, int *bitmatrix)
-{
- int **operations;
- int op;
- int index, optodo, i, j;
-
- operations = talloc(int *, k*m*w*w+1);
- if (!operations) return NULL;
- op = 0;
-
- index = 0;
- for (i = 0; i < m*w; i++) {
- optodo = 0;
- for (j = 0; j < k*w; j++) {
- if (bitmatrix[index]) {
- operations[op] = talloc(int, 5);
- if (!operations[op]) {
- // -ENOMEM
- goto error;
- }
- operations[op][4] = optodo;
- operations[op][0] = j/w;
- operations[op][1] = j%w;
- operations[op][2] = k+i/w;
- operations[op][3] = i%w;
- optodo = 1;
- op++;
-
- }
- index++;
- }
- }
- operations[op] = talloc(int, 5);
- if (!operations[op]) {
- // -ENOMEM
- goto error;
- }
- operations[op][0] = -1;
- return operations;
-
-error:
- for (i = 0; i <= op; i++) {
- free(operations[op]);
- }
- free(operations);
- return NULL;
-}
-
-int **jerasure_smart_bitmatrix_to_schedule(int k, int m, int w, int *bitmatrix)
-{
- int **operations;
- int op;
- int i, j;
- int *diff, *from, *b1, *flink, *blink;
- int *ptr, no, row;
- int optodo;
- int bestrow = 0, bestdiff, top;
-
-/* printf("Scheduling:\n\n");
- jerasure_print_bitmatrix(bitmatrix, m*w, k*w, w); */
-
- operations = talloc(int *, k*m*w*w+1);
- if (!operations) return NULL;
- op = 0;
-
- diff = talloc(int, m*w);
- if (!diff) {
- free(operations);
- return NULL;
- }
- from = talloc(int, m*w);
- if (!from) {
- free(operations);
- free(diff);
- return NULL;
- }
- flink = talloc(int, m*w);
- if (!flink) {
- free(operations);
- free(diff);
- free(from);
- return NULL;
- }
- blink = talloc(int, m*w);
- if (!blink) {
- free(operations);
- free(diff);
- free(from);
- free(flink);
- return NULL;
- }
-
- ptr = bitmatrix;
-
- bestdiff = k*w+1;
- top = 0;
- for (i = 0; i < m*w; i++) {
- no = 0;
- for (j = 0; j < k*w; j++) {
- no += *ptr;
- ptr++;
- }
- diff[i] = no;
- from[i] = -1;
- flink[i] = i+1;
- blink[i] = i-1;
- if (no < bestdiff) {
- bestdiff = no;
- bestrow = i;
- }
- }
-
- flink[m*w-1] = -1;
-
- while (top != -1) {
- row = bestrow;
- /* printf("Doing row %d - %d from %d\n", row, diff[row], from[row]); */
-
- if (blink[row] == -1) {
- top = flink[row];
- if (top != -1) blink[top] = -1;
- } else {
- flink[blink[row]] = flink[row];
- if (flink[row] != -1) {
- blink[flink[row]] = blink[row];
- }
- }
-
- ptr = bitmatrix + row*k*w;
- if (from[row] == -1) {
- optodo = 0;
- for (j = 0; j < k*w; j++) {
- if (ptr[j]) {
- operations[op] = talloc(int, 5);
- if (!operations[op]) goto error;
- operations[op][4] = optodo;
- operations[op][0] = j/w;
- operations[op][1] = j%w;
- operations[op][2] = k+row/w;
- operations[op][3] = row%w;
- optodo = 1;
- op++;
- }
- }
- } else {
- operations[op] = talloc(int, 5);
- if (!operations[op]) goto error;
- operations[op][4] = 0;
- operations[op][0] = k+from[row]/w;
- operations[op][1] = from[row]%w;
- operations[op][2] = k+row/w;
- operations[op][3] = row%w;
- op++;
- b1 = bitmatrix + from[row]*k*w;
- for (j = 0; j < k*w; j++) {
- if (ptr[j] ^ b1[j]) {
- operations[op] = talloc(int, 5);
- if (!operations[op]) goto error;
- operations[op][4] = 1;
- operations[op][0] = j/w;
- operations[op][1] = j%w;
- operations[op][2] = k+row/w;
- operations[op][3] = row%w;
- optodo = 1;
- op++;
- }
- }
- }
- bestdiff = k*w+1;
- for (i = top; i != -1; i = flink[i]) {
- no = 1;
- b1 = bitmatrix + i*k*w;
- for (j = 0; j < k*w; j++) no += (ptr[j] ^ b1[j]);
- if (no < diff[i]) {
- from[i] = row;
- diff[i] = no;
- }
- if (diff[i] < bestdiff) {
- bestdiff = diff[i];
- bestrow = i;
- }
- }
- }
-
- operations[op] = talloc(int, 5);
- if (!operations[op]) goto error;
- operations[op][0] = -1;
- free(from);
- free(diff);
- free(blink);
- free(flink);
-
- return operations;
-
-error:
- for (i = 0; i <= op; i++) {
- free(operations[op]);
- }
- free(operations);
- free(from);
- free(diff);
- free(blink);
- free(flink);
- return NULL;
-}
-
-void jerasure_bitmatrix_encode(int k, int m, int w, int *bitmatrix,
- char **data_ptrs, char **coding_ptrs, int size, int packetsize)
-{
- int i;
-
- if (packetsize%sizeof(long) != 0) {
- fprintf(stderr, "jerasure_bitmatrix_encode - packetsize(%d) %c sizeof(long) != 0\n", packetsize, '%');
- assert(0);
- }
- if (size%(packetsize*w) != 0) {
- fprintf(stderr, "jerasure_bitmatrix_encode - size(%d) %c (packetsize(%d)*w(%d))) != 0\n",
- size, '%', packetsize, w);
- assert(0);
- }
-
- for (i = 0; i < m; i++) {
- jerasure_bitmatrix_dotprod(k, w, bitmatrix+i*k*w*w, NULL, k+i, data_ptrs, coding_ptrs, size, packetsize);
- }
-}
-
-/*
- * Exported function for use by autoconf to perform quick
- * spot-check.
- */
-int jerasure_autoconf_test()
-{
- int x = galois_single_multiply(1, 2, 8);
- if (x != 2) {
- return -1;
- }
- return 0;
-}
diff --git a/src/c/jerasure/src/liberation.c b/src/c/jerasure/src/liberation.c
deleted file mode 100644
index e4d2048..0000000
--- a/src/c/jerasure/src/liberation.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "galois.h"
-#include "jerasure.h"
-#include "liberation.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-int *liberation_coding_bitmatrix(int k, int w)
-{
- int *matrix, i, j, index;
-
- if (k > w) return NULL;
- matrix = talloc(int, 2*k*w*w);
- if (matrix == NULL) return NULL;
- bzero(matrix, sizeof(int)*2*k*w*w);
-
- /* Set up identity matrices */
-
- for(i = 0; i < w; i++) {
- index = i*k*w+i;
- for (j = 0; j < k; j++) {
- matrix[index] = 1;
- index += w;
- }
- }
-
- /* Set up liberation matrices */
-
- for (j = 0; j < k; j++) {
- index = k*w*w+j*w;
- for (i = 0; i < w; i++) {
- matrix[index+(j+i)%w] = 1;
- index += (k*w);
- }
- if (j > 0) {
- i = (j*((w-1)/2))%w;
- matrix[k*w*w+j*w+i*k*w+(i+j-1)%w] = 1;
- }
- }
- return matrix;
-}
-
-
-int *liber8tion_coding_bitmatrix(int k)
-{
- int *matrix, i, j, index;
- int w;
-
- w = 8;
- if (k > w) return NULL;
- matrix = talloc(int, 2*k*w*w);
- if (matrix == NULL) return NULL;
- bzero(matrix, sizeof(int)*2*k*w*w);
-
- /* Set up identity matrices */
-
- for(i = 0; i < w; i++) {
- index = i*k*w+i;
- for (j = 0; j < k; j++) {
- matrix[index] = 1;
- index += w;
- }
- }
-
- /* Set up liber8tion matrices */
-
- index = k*w*w;
-
- if (k == 0) return matrix;
- matrix[index+0*k*w+0*w+0] = 1;
- matrix[index+1*k*w+0*w+1] = 1;
- matrix[index+2*k*w+0*w+2] = 1;
- matrix[index+3*k*w+0*w+3] = 1;
- matrix[index+4*k*w+0*w+4] = 1;
- matrix[index+5*k*w+0*w+5] = 1;
- matrix[index+6*k*w+0*w+6] = 1;
- matrix[index+7*k*w+0*w+7] = 1;
-
- if (k == 1) return matrix;
- matrix[index+0*k*w+1*w+7] = 1;
- matrix[index+1*k*w+1*w+3] = 1;
- matrix[index+2*k*w+1*w+0] = 1;
- matrix[index+3*k*w+1*w+2] = 1;
- matrix[index+4*k*w+1*w+6] = 1;
- matrix[index+5*k*w+1*w+1] = 1;
- matrix[index+6*k*w+1*w+5] = 1;
- matrix[index+7*k*w+1*w+4] = 1;
- matrix[index+4*k*w+1*w+7] = 1;
-
- if (k == 2) return matrix;
- matrix[index+0*k*w+2*w+6] = 1;
- matrix[index+1*k*w+2*w+2] = 1;
- matrix[index+2*k*w+2*w+4] = 1;
- matrix[index+3*k*w+2*w+0] = 1;
- matrix[index+4*k*w+2*w+7] = 1;
- matrix[index+5*k*w+2*w+3] = 1;
- matrix[index+6*k*w+2*w+1] = 1;
- matrix[index+7*k*w+2*w+5] = 1;
- matrix[index+1*k*w+2*w+3] = 1;
-
- if (k == 3) return matrix;
- matrix[index+0*k*w+3*w+2] = 1;
- matrix[index+1*k*w+3*w+5] = 1;
- matrix[index+2*k*w+3*w+7] = 1;
- matrix[index+3*k*w+3*w+6] = 1;
- matrix[index+4*k*w+3*w+0] = 1;
- matrix[index+5*k*w+3*w+3] = 1;
- matrix[index+6*k*w+3*w+4] = 1;
- matrix[index+7*k*w+3*w+1] = 1;
- matrix[index+5*k*w+3*w+4] = 1;
-
- if (k == 4) return matrix;
- matrix[index+0*k*w+4*w+5] = 1;
- matrix[index+1*k*w+4*w+6] = 1;
- matrix[index+2*k*w+4*w+1] = 1;
- matrix[index+3*k*w+4*w+7] = 1;
- matrix[index+4*k*w+4*w+2] = 1;
- matrix[index+5*k*w+4*w+4] = 1;
- matrix[index+6*k*w+4*w+3] = 1;
- matrix[index+7*k*w+4*w+0] = 1;
- matrix[index+2*k*w+4*w+0] = 1;
-
- if (k == 5) return matrix;
- matrix[index+0*k*w+5*w+1] = 1;
- matrix[index+1*k*w+5*w+2] = 1;
- matrix[index+2*k*w+5*w+3] = 1;
- matrix[index+3*k*w+5*w+4] = 1;
- matrix[index+4*k*w+5*w+5] = 1;
- matrix[index+5*k*w+5*w+6] = 1;
- matrix[index+6*k*w+5*w+7] = 1;
- matrix[index+7*k*w+5*w+0] = 1;
- matrix[index+7*k*w+5*w+2] = 1;
-
- if (k == 6) return matrix;
- matrix[index+0*k*w+6*w+3] = 1;
- matrix[index+1*k*w+6*w+0] = 1;
- matrix[index+2*k*w+6*w+6] = 1;
- matrix[index+3*k*w+6*w+5] = 1;
- matrix[index+4*k*w+6*w+1] = 1;
- matrix[index+5*k*w+6*w+7] = 1;
- matrix[index+6*k*w+6*w+4] = 1;
- matrix[index+7*k*w+6*w+2] = 1;
- matrix[index+6*k*w+6*w+5] = 1;
-
- if (k == 7) return matrix;
- matrix[index+0*k*w+7*w+4] = 1;
- matrix[index+1*k*w+7*w+7] = 1;
- matrix[index+2*k*w+7*w+1] = 1;
- matrix[index+3*k*w+7*w+5] = 1;
- matrix[index+4*k*w+7*w+3] = 1;
- matrix[index+5*k*w+7*w+2] = 1;
- matrix[index+6*k*w+7*w+0] = 1;
- matrix[index+7*k*w+7*w+6] = 1;
- matrix[index+3*k*w+7*w+1] = 1;
-
- return matrix;
-}
-
-int *blaum_roth_coding_bitmatrix(int k, int w)
-{
- int *matrix, i, j, index, l, m, p;
-
- if (k > w) return NULL ;
-
- matrix = talloc(int, 2*k*w*w);
- if (matrix == NULL) return NULL;
- bzero(matrix, sizeof(int)*2*k*w*w);
-
- /* Set up identity matrices */
-
- for(i = 0; i < w; i++) {
- index = i*k*w+i;
- for (j = 0; j < k; j++) {
- matrix[index] = 1;
- index += w;
- }
- }
-
- /* Set up blaum_roth matrices -- Ignore identity */
-
- p = w+1;
- for (j = 0; j < k; j++) {
- index = k*w*w+j*w;
- if (j == 0) {
- for (l = 0; l < w; l++) {
- matrix[index+l] = 1;
- index += k*w;
- }
- } else {
- i = j;
- for (l = 1; l <= w; l++) {
- if (l != p-i) {
- m = l+i;
- if (m >= p) m -= p;
- m--;
- matrix[index+m] = 1;
- } else {
- matrix[index+i-1] = 1;
- if (i%2 == 0) {
- m = i/2;
- } else {
- m = (p/2) + 1 + (i/2);
- }
- m--;
- matrix[index+m] = 1;
- }
- index += k*w;
- }
- }
- }
-
- return matrix;
-}
diff --git a/src/c/jerasure/src/reed_sol.c b/src/c/jerasure/src/reed_sol.c
deleted file mode 100644
index a9bffed..0000000
--- a/src/c/jerasure/src/reed_sol.c
+++ /dev/null
@@ -1,301 +0,0 @@
-/* *
- * Copyright (c) 2014, James S. Plank and Kevin Greenan
- * All rights reserved.
- *
- * Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure
- * Coding Techniques
- *
- * Revision 2.0: Galois Field backend now links to GF-Complete
- *
- * 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 the name of the University of Tennessee 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 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
- * HOLDER 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.
- */
-
-/* Jerasure's authors:
-
- Revision 2.x - 2014: James S. Plank and Kevin M. Greenan
- Revision 1.2 - 2008: James S. Plank, Scott Simmerman and Catherine D. Schuman.
- Revision 1.0 - 2007: James S. Plank
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-#include <gf_complete.h>
-#include "galois.h"
-#include "jerasure.h"
-#include "reed_sol.h"
-
-#define talloc(type, num) (type *) malloc(sizeof(type)*(num))
-
-int *reed_sol_r6_coding_matrix(int k, int w)
-{
- int *matrix;
- int i, tmp;
-
- if (w != 8 && w != 16 && w != 32) return NULL;
-
- matrix = talloc(int, 2*k);
- if (matrix == NULL) return NULL;
-
- for (i = 0; i < k; i++) matrix[i] = 1;
- matrix[k] = 1;
- tmp = 1;
- for (i = 1; i < k; i++) {
- tmp = galois_single_multiply(tmp, 2, w);
- matrix[k+i] = tmp;
- }
- return matrix;
-}
-
-int *reed_sol_vandermonde_coding_matrix(int k, int m, int w)
-{
- int i, j;
- int *vdm, *dist;
-
- vdm = reed_sol_big_vandermonde_distribution_matrix(k+m, k, w);
- if (vdm == NULL) return NULL;
- dist = talloc(int, m*k);
- if (dist == NULL) {
- free(vdm);
- return NULL;
- }
-
- i = k*k;
- for (j = 0; j < m*k; j++) {
- dist[j] = vdm[i];
- i++;
- }
- free(vdm);
- return dist;
-}
-
-static int prim08 = -1;
-static gf_t GF08;
-
-void reed_sol_galois_w08_region_multby_2(char *region, int nbytes)
-{
- if (prim08 == -1) {
- prim08 = galois_single_multiply((1 << 7), 2, 8);
- if (!gf_init_hard(&GF08, 8, GF_MULT_BYTWO_b, GF_REGION_DEFAULT, GF_DIVIDE_DEFAULT,
- prim08, 0, 0, NULL, NULL)) {
- fprintf(stderr, "Error: Can't initialize the GF for reed_sol_galois_w08_region_multby_2\n");
- assert(0);
- }
- }
- GF08.multiply_region.w32(&GF08, region, region, 2, nbytes, 0);
-}
-
-static int prim16 = -1;
-static gf_t GF16;
-
-void reed_sol_galois_w16_region_multby_2(char *region, int nbytes)
-{
- if (prim16 == -1) {
- prim16 = galois_single_multiply((1 << 15), 2, 16);
- if (!gf_init_hard(&GF16, 16, GF_MULT_BYTWO_b, GF_REGION_DEFAULT, GF_DIVIDE_DEFAULT,
- prim16, 0, 0, NULL, NULL)) {
- fprintf(stderr, "Error: Can't initialize the GF for reed_sol_galois_w16_region_multby_2\n");
- assert(0);
- }
- }
- GF16.multiply_region.w32(&GF16, region, region, 2, nbytes, 0);
-}
-
-static int prim32 = -1;
-static gf_t GF32;
-
-void reed_sol_galois_w32_region_multby_2(char *region, int nbytes)
-{
- if (prim32 == -1) {
- prim32 = galois_single_multiply((1 << 31), 2, 32);
- if (!gf_init_hard(&GF32, 32, GF_MULT_BYTWO_b, GF_REGION_DEFAULT, GF_DIVIDE_DEFAULT,
- prim32, 0, 0, NULL, NULL)) {
- fprintf(stderr, "Error: Can't initialize the GF for reed_sol_galois_w32_region_multby_2\n");
- assert(0);
- }
- }
- GF32.multiply_region.w32(&GF32, region, region, 2, nbytes, 0);
-}
-
-int reed_sol_r6_encode(int k, int w, char **data_ptrs, char **coding_ptrs, int size)
-{
- int i;
-
- /* First, put the XOR into coding region 0 */
-
- memcpy(coding_ptrs[0], data_ptrs[0], size);
-
- for (i = 1; i < k; i++) galois_region_xor(data_ptrs[i], coding_ptrs[0], size);
-
- /* Next, put the sum of (2^j)*Dj into coding region 1 */
-
- memcpy(coding_ptrs[1], data_ptrs[k-1], size);
-
- for (i = k-2; i >= 0; i--) {
- switch (w) {
- case 8: reed_sol_galois_w08_region_multby_2(coding_ptrs[1], size); break;
- case 16: reed_sol_galois_w16_region_multby_2(coding_ptrs[1], size); break;
- case 32: reed_sol_galois_w32_region_multby_2(coding_ptrs[1], size); break;
- default: return 0;
- }
-
- galois_region_xor(data_ptrs[i], coding_ptrs[1], size);
- }
- return 1;
-}
-
-int *reed_sol_extended_vandermonde_matrix(int rows, int cols, int w)
-{
- int *vdm;
- int i, j, k;
-
- if (w < 30 && (1 << w) < rows) return NULL;
- if (w < 30 && (1 << w) < cols) return NULL;
-
- vdm = talloc(int, rows*cols);
- if (vdm == NULL) { return NULL; }
-
- vdm[0] = 1;
- for (j = 1; j < cols; j++) vdm[j] = 0;
- if (rows == 1) return vdm;
-
- i=(rows-1)*cols;
- for (j = 0; j < cols-1; j++) vdm[i+j] = 0;
- vdm[i+j] = 1;
- if (rows == 2) return vdm;
-
- for (i = 1; i < rows-1; i++) {
- k = 1;
- for (j = 0; j < cols; j++) {
- vdm[i*cols+j] = k;
- k = galois_single_multiply(k, i, w);
- }
- }
- return vdm;
-}
-
-int *reed_sol_big_vandermonde_distribution_matrix(int rows, int cols, int w)
-{
- int *dist;
- int i, j, k;
- int sindex, srindex, siindex, tmp;
-
- if (cols >= rows) return NULL;
-
- dist = reed_sol_extended_vandermonde_matrix(rows, cols, w);
- if (dist == NULL) return NULL;
-
- sindex = 0;
- for (i = 1; i < cols; i++) {
- sindex += cols;
-
- /* Find an appropriate row -- where i,i != 0 */
- srindex = sindex+i;
- for (j = i; j < rows && dist[srindex] == 0; j++) srindex += cols;
- if (j >= rows) { /* This should never happen if rows/w are correct */
- fprintf(stderr, "reed_sol_big_vandermonde_distribution_matrix(%d,%d,%d) - couldn't make matrix\n",
- rows, cols, w);
- assert(0);
- }
-
- /* If necessary, swap rows */
- if (j != i) {
- srindex -= i;
- for (k = 0; k < cols; k++) {
- tmp = dist[srindex+k];
- dist[srindex+k] = dist[sindex+k];
- dist[sindex+k] = tmp;
- }
- }
-
- /* If Element i,i is not equal to 1, multiply the column by 1/i */
-
- if (dist[sindex+i] != 1) {
- tmp = galois_single_divide(1, dist[sindex+i], w);
- srindex = i;
- for (j = 0; j < rows; j++) {
- dist[srindex] = galois_single_multiply(tmp, dist[srindex], w);
- srindex += cols;
- }
- }
-
- /* Now, for each element in row i that is not in column 1, you need
- to make it zero. Suppose that this is column j, and the element
- at i,j = e. Then you want to replace all of column j with
- (col-j + col-i*e). Note, that in row i, col-i = 1 and col-j = e.
- So (e + 1e) = 0, which is indeed what we want. */
-
- for (j = 0; j < cols; j++) {
- tmp = dist[sindex+j];
- if (j != i && tmp != 0) {
- srindex = j;
- siindex = i;
- for (k = 0; k < rows; k++) {
- dist[srindex] = dist[srindex] ^ galois_single_multiply(tmp, dist[siindex], w);
- srindex += cols;
- siindex += cols;
- }
- }
- }
- }
- /* We desire to have row k be all ones. To do that, multiply
- the entire column j by 1/dist[k,j]. Then row j by 1/dist[j,j]. */
-
- sindex = cols*cols;
- for (j = 0; j < cols; j++) {
- tmp = dist[sindex];
- if (tmp != 1) {
- tmp = galois_single_divide(1, tmp, w);
- srindex = sindex;
- for (i = cols; i < rows; i++) {
- dist[srindex] = galois_single_multiply(tmp, dist[srindex], w);
- srindex += cols;
- }
- }
- sindex++;
- }
-
- /* Finally, we'd like the first column of each row to be all ones. To
- do that, we multiply the row by the inverse of the first element. */
-
- sindex = cols*(cols+1);
- for (i = cols+1; i < rows; i++) {
- tmp = dist[sindex];
- if (tmp != 1) {
- tmp = galois_single_divide(1, tmp, w);
- for (j = 0; j < cols; j++) dist[sindex+j] = galois_single_multiply(dist[sindex+j], tmp, w);
- }
- sindex += cols;
- }
-
- return dist;
-}
diff --git a/src/c/jerasure/src/timing.c b/src/c/jerasure/src/timing.c
deleted file mode 100644
index 315870a..0000000
--- a/src/c/jerasure/src/timing.c
+++ /dev/null
@@ -1,63 +0,0 @@
-// Timing measurement utilities implementation.
-
-#include "timing.h"
-#include <stddef.h>
-
-void
-timing_set(
- struct timing * t)
-{
-#ifdef USE_CLOCK
- t->clock = clock();
-#else
- gettimeofday(&t->tv, NULL);
-#endif
-}
-
-double
-timing_get(
- struct timing * t)
-{
-#ifdef USE_CLOCK
- // The clock_t type is an "arithmetic type", which could be
- // integral, double, long double, or others.
- //
- // Add 0.0 to make it a double or long double, then divide (in
- // double or long double), then convert to double for our purposes.
- return (double) ((t->clock + 0.0) / CLOCKS_PER_SEC);
-#else
- return (double) t->tv.tv_sec + ((double) t->tv.tv_usec) / 1000000.0;
-#endif
-}
-
-double
-timing_now()
-{
-#ifdef USE_CLOCK
- return (double) ((clock() + 0.0) / CLOCKS_PER_SEC);
-#else
- struct timeval tv;
- gettimeofday(&tv, NULL);
- return (double) tv.tv_sec + ((double) tv.tv_usec) / 1000000.0;
-#endif
-}
-
-double
-timing_delta(
- struct timing * t1,
- struct timing * t2)
-{
-#ifdef USE_CLOCK
- // The clock_t type is an "arithmetic type", which could be
- // integral, double, long double, or others.
- //
- // Subtract first, resulting in another clock_t, then add 0.0 to
- // make it a double or long double, then divide (in double or long
- // double), then convert to double for our purposes.
- return (double) (((t2->clock - t1->clock) + 0.0) / CLOCKS_PER_SEC);
-#else
- double const d2 = (double) t2->tv.tv_sec + ((double) t2->tv.tv_usec) / 1000000.0;
- double const d1 = (double) t1->tv.tv_sec + ((double) t1->tv.tv_usec) / 1000000.0;
- return d2 - d1;
-#endif
-}
diff --git a/src/c/liberasurecode-1.0.1.tar.gz b/src/c/liberasurecode-1.0.1.tar.gz
new file mode 100644
index 0000000..628baf6
--- /dev/null
+++ b/src/c/liberasurecode-1.0.1.tar.gz
Binary files differ
diff --git a/src/c/liberasurecode/.gitignore b/src/c/liberasurecode/.gitignore
deleted file mode 100644
index 1700161..0000000
--- a/src/c/liberasurecode/.gitignore
+++ /dev/null
@@ -1,63 +0,0 @@
-# Object files
-*.o
-*.ko
-*.obj
-*.elf
-
-# Libraries
-*.lib
-*.a
-*.la
-*.lo
-
-# Shared objects (inc. Windows DLLs)
-*.dll
-*.so
-*.so.*
-*.dylib
-
-# Executables
-*.exe
-*.out
-*.app
-*.i*86
-*.x86_64
-*.hex
-
-# pkgconfig files
-*.pc
-
-# cscope files
-cscope.*out
-
-# autoconf/automake files
-.dirstamp
-.libs
-aclocal.m4
-autom4te.cache
-config.guess
-config.log
-config.status
-config.sub
-Makefile
-config.h.in
-config_liberasurecode.h.in
-.deps
-config_liberasurecode.h
-stamp-h1
-*Makefile.in
-configure
-compile
-cscope.files
-install-sh
-libtool
-ltmain.sh
-m4/libtool.m4
-m4/ltoptions.m4
-m4/ltversion.m4
-
-# doxygen documentation
-^doc/.*\.doxytag
-^doc/html
-^doc/latex
-*doxygen.cfg
diff --git a/src/c/liberasurecode/AUTHORS b/src/c/liberasurecode/AUTHORS
deleted file mode 100644
index ea7ee8f..0000000
--- a/src/c/liberasurecode/AUTHORS
+++ /dev/null
@@ -1,13 +0,0 @@
-Original Authors
-----------------
-
- * Tushar Gohad
- * Kevin M Greenan
- * Eric Lambert
- * Mark W Storer
-
-Contributors
-----------------
-
- * Kota Tsuyuzaki
- * Ryuta Kon
diff --git a/src/c/liberasurecode/COPYING b/src/c/liberasurecode/COPYING
deleted file mode 100644
index 963378d..0000000
--- a/src/c/liberasurecode/COPYING
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2014 Tushar Gohad, Kevin M Greenan, Eric Lambert, Mark Storer
- *
- * 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. 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 HOLDER 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.
- */
diff --git a/src/c/liberasurecode/ChangeLog b/src/c/liberasurecode/ChangeLog
deleted file mode 100644
index 4f61922..0000000
--- a/src/c/liberasurecode/ChangeLog
+++ /dev/null
@@ -1 +0,0 @@
-Release 1.0
diff --git a/src/c/liberasurecode/INSTALL b/src/c/liberasurecode/INSTALL
deleted file mode 100644
index 007e939..0000000
--- a/src/c/liberasurecode/INSTALL
+++ /dev/null
@@ -1,370 +0,0 @@
-Installation Instructions
-*************************
-
-Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
-Inc.
-
- 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 warranty of any kind.
-
-Basic Installation
-==================
-
- Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package. The following
-more-detailed instructions are generic; see the `README' file for
-instructions specific to this package. Some packages provide this
-`INSTALL' file but do not implement all of the features documented
-below. The lack of an optional feature in a given package is not
-necessarily a bug. More recommendations for GNU packages can be found
-in *note Makefile Conventions: (standards)Makefile Conventions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
- It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring. Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
- The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'. You need `configure.ac' if
-you want to change it or regenerate `configure' using a newer version
-of `autoconf'.
-
- The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system.
-
- Running `configure' might take a while. While running, it prints
- some messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Optionally, type `make check' to run any self-tests that come with
- the package, generally using the just-built uninstalled binaries.
-
- 4. Type `make install' to install the programs and any data files and
- documentation. When installing into a prefix owned by root, it is
- recommended that the package be configured and built as a regular
- user, and only the `make install' phase executed with root
- privileges.
-
- 5. Optionally, type `make installcheck' to repeat any self-tests, but
- this time using the binaries in their final installed location.
- This target does not install anything. Running this target as a
- regular user, particularly if the prior `make install' required
- root privileges, verifies that the installation completed
- correctly.
-
- 6. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
-
- 7. Often, you can also type `make uninstall' to remove the installed
- files again. In practice, not all packages have tested that
- uninstallation works correctly, even though it is required by the
- GNU Coding Standards.
-
- 8. Some packages, particularly those that use Automake, provide `make
- distcheck', which can by used by developers to test that all other
- targets like `make install' and `make uninstall' work correctly.
- This target is generally not run by end users.
-
-Compilers and Options
-=====================
-
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. Run `./configure --help'
-for details on some of the pertinent environment variables.
-
- You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment. Here
-is an example:
-
- ./configure CC=c99 CFLAGS=-g LIBS=-lposix
-
- *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
- You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you can use GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'. This
-is known as a "VPATH" build.
-
- With a non-GNU `make', it is safer to compile the package for one
-architecture at a time in the source code directory. After you have
-installed the package for one architecture, use `make distclean' before
-reconfiguring for another architecture.
-
- On MacOS X 10.5 and later systems, you can create libraries and
-executables that work on multiple system types--known as "fat" or
-"universal" binaries--by specifying multiple `-arch' options to the
-compiler but only a single `-arch' option to the preprocessor. Like
-this:
-
- ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
- CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
- CPP="gcc -E" CXXCPP="g++ -E"
-
- This is not guaranteed to produce working output in all cases, you
-may have to build one architecture at a time and combine the results
-using the `lipo' tool if you have problems.
-
-Installation Names
-==================
-
- By default, `make install' installs the package's commands under
-`/usr/local/bin', include files under `/usr/local/include', etc. You
-can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX', where PREFIX must be an
-absolute file name.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-pass the option `--exec-prefix=PREFIX' to `configure', the package uses
-PREFIX as the prefix for installing programs and libraries.
-Documentation and other data files still use the regular prefix.
-
- In addition, if you use an unusual directory layout you can give
-options like `--bindir=DIR' to specify different values for particular
-kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them. In general, the
-default for these options is expressed in terms of `${prefix}', so that
-specifying just `--prefix' will affect all of the other directory
-specifications that were not explicitly provided.
-
- The most portable way to affect installation locations is to pass the
-correct locations to `configure'; however, many packages provide one or
-both of the following shortcuts of passing variable assignments to the
-`make install' command line to change installation locations without
-having to reconfigure or recompile.
-
- The first method involves providing an override variable for each
-affected directory. For example, `make install
-prefix=/alternate/directory' will choose an alternate location for all
-directory configuration variables that were expressed in terms of
-`${prefix}'. Any directories that were specified during `configure',
-but not in terms of `${prefix}', must each be overridden at install
-time for the entire installation to be relocated. The approach of
-makefile variable overrides for each directory variable is required by
-the GNU Coding Standards, and ideally causes no recompilation.
-However, some platforms have known limitations with the semantics of
-shared libraries that end up requiring recompilation when using this
-method, particularly noticeable in packages that use GNU Libtool.
-
- The second method involves providing the `DESTDIR' variable. For
-example, `make install DESTDIR=/alternate/directory' will prepend
-`/alternate/directory' before all installation names. The approach of
-`DESTDIR' overrides is not required by the GNU Coding Standards, and
-does not work on platforms that have drive letters. On the other hand,
-it does better at avoiding recompilation issues, and works well even
-when some directory options were not specified in terms of `${prefix}'
-at `configure' time.
-
-Optional Features
-=================
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
- Some packages offer the ability to configure how verbose the
-execution of `make' will be. For these packages, running `./configure
---enable-silent-rules' sets the default to minimal output, which can be
-overridden with `make V=1'; while running `./configure
---disable-silent-rules' sets the default to verbose, which can be
-overridden with `make V=0'.
-
-Particular systems
-==================
-
- On HP-UX, the default C compiler is not ANSI C compatible. If GNU
-CC is not installed, it is recommended to use the following options in
-order to use an ANSI C compiler:
-
- ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
-
-and if that doesn't work, install pre-built binaries of GCC for HP-UX.
-
- HP-UX `make' updates targets which have the same time stamps as
-their prerequisites, which makes it generally unusable when shipped
-generated files such as `configure' are involved. Use GNU `make'
-instead.
-
- On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
-parse its `<wchar.h>' header file. The option `-nodtk' can be used as
-a workaround. If GNU CC is not installed, it is therefore recommended
-to try
-
- ./configure CC="cc"
-
-and if that doesn't work, try
-
- ./configure CC="cc -nodtk"
-
- On Solaris, don't put `/usr/ucb' early in your `PATH'. This
-directory contains several dysfunctional programs; working variants of
-these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
-in your `PATH', put it _after_ `/usr/bin'.
-
- On Haiku, software installed for all users goes in `/boot/common',
-not `/usr/local'. It is recommended to use the following options:
-
- ./configure --prefix=/boot/common
-
-Specifying the System Type
-==========================
-
- There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on. Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
-`--build=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
-
- CPU-COMPANY-SYSTEM
-
-where SYSTEM can have one of these forms:
-
- OS
- KERNEL-OS
-
- See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
-
- If you are _building_ compiler tools for cross-compiling, you should
-use the option `--target=TYPE' to select the type of system they will
-produce code for.
-
- If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
-
-Sharing Defaults
-================
-
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Defining Variables
-==================
-
- Variables not defined in a site shell script can be set in the
-environment passed to `configure'. However, some packages may run
-configure again during the build, and the customized values of these
-variables may be lost. In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'. For example:
-
- ./configure CC=/usr/local2/bin/gcc
-
-causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).
-
-Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-an Autoconf limitation. Until the limitation is lifted, you can use
-this workaround:
-
- CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
-
-`configure' Invocation
-======================
-
- `configure' recognizes the following options to control how it
-operates.
-
-`--help'
-`-h'
- Print a summary of all of the options to `configure', and exit.
-
-`--help=short'
-`--help=recursive'
- Print a summary of the options unique to this package's
- `configure', and exit. The `short' variant lists options used
- only in the top level, while the `recursive' variant lists options
- also present in any nested packages.
-
-`--version'
-`-V'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`--cache-file=FILE'
- Enable the cache: use and save the results of the tests in FILE,
- traditionally `config.cache'. FILE defaults to `/dev/null' to
- disable caching.
-
-`--config-cache'
-`-C'
- Alias for `--cache-file=config.cache'.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made. To
- suppress all normal output, redirect it to `/dev/null' (any error
- messages will still be shown).
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`--prefix=DIR'
- Use DIR as the installation prefix. *note Installation Names::
- for more details, including other options available for fine-tuning
- the installation locations.
-
-`--no-create'
-`-n'
- Run the configure checks, but stop before creating any output
- files.
-
-`configure' also accepts some other, not widely useful, options. Run
-`configure --help' for more details.
diff --git a/src/c/liberasurecode/Makefile.am b/src/c/liberasurecode/Makefile.am
deleted file mode 100644
index 8dc1df9..0000000
--- a/src/c/liberasurecode/Makefile.am
+++ /dev/null
@@ -1,55 +0,0 @@
-# Top-level liberasurecode automake configuration
-ACLOCAL_AMFLAGS = -I m4
-
-SUBDIRS = src test doc
-
-EXTRA_DIST = autogen.sh
-
-INCLUDE = -I$(abs_top_builddir)/include \
- -I$(abs_top_builddir)/include/erasurecode \
- -I$(abs_top_builddir)/include/xor_codes
-
-AM_CPPFLAGS = $(CPPFLAGS) $(INCLUDE)
-AM_CPPFLAGS += -Werror
-
-AM_CFLAGS = -fPIC $(AM_CPPFLAGS) @GCOV_FLAGS@ -L/usr/local/lib
-
-include_HEADERS = \
- include/erasurecode/alg_sig.h \
- include/erasurecode/erasurecode.h \
- include/erasurecode/erasurecode_backend.h \
- include/erasurecode/erasurecode_helpers.h \
- include/erasurecode/erasurecode_log.h \
- include/erasurecode/erasurecode_preprocessing.h \
- include/erasurecode/erasurecode_postprocessing.h \
- include/erasurecode/erasurecode_stdinc.h \
- include/erasurecode/erasurecode_version.h \
- include/erasurecode/list.h \
- include/xor_codes/xor_hd_code_defs.h \
- include/xor_codes/xor_code.h \
- include/config_liberasurecode.h
-
-test: check
- @./test/alg_sig_test
- @./test/test_xor_hd_code
- @./test/liberasurecode_test
- @./test/libec_slap
-
-VALGRIND_EXEC_COMMAND = $(LIBTOOL_COMMAND) valgrind --tool=memcheck \
- --error-exitcode=1 --leak-check=yes --track-fds=yes \
- --malloc-fill=A5 --free-fill=DE --fullpath-after=.
-
-valgrind-test: check
- @$(VALGRIND_EXEC_COMMAND) ./test/alg_sig_test
- @$(VALGRIND_EXEC_COMMAND) ./test/liberasurecode_test
- @$(VALGRIND_EXEC_COMMAND) ./test/test_xor_hd_code
- @$(VALGRIND_EXEC_COMMAND) ./test/libec_slap
-
-CLEANFILES = cscope.in.out cscope.out cscope.po.out
-
-.PHONY: cscope
-cscope:
- find src include -name "*.[ch]" > cscope.files
- cscope -q -b
-
-MOSTLYCLEANFILES = *.gcda *.gcno *.gcov
diff --git a/src/c/liberasurecode/Makefile.in b/src/c/liberasurecode/Makefile.in
deleted file mode 100644
index 0f98221..0000000
--- a/src/c/liberasurecode/Makefile.in
+++ /dev/null
@@ -1,918 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = .
-DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
- $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/configure $(am__configure_deps) \
- $(top_srcdir)/include/config_liberasurecode.h.in \
- $(srcdir)/erasurecode.pc.in $(srcdir)/Xorcode.pc.in \
- $(include_HEADERS) COPYING compile config.guess config.sub \
- depcomp install-sh missing ltmain.sh
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_ext.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config_liberasurecode.h
-CONFIG_CLEAN_FILES = erasurecode.pc Xorcode.pc
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
- ctags-recursive dvi-recursive html-recursive info-recursive \
- install-data-recursive install-dvi-recursive \
- install-exec-recursive install-html-recursive \
- install-info-recursive install-pdf-recursive \
- install-ps-recursive install-recursive installcheck-recursive \
- installdirs-recursive pdf-recursive ps-recursive \
- tags-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(includedir)"
-HEADERS = $(include_HEADERS)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
- $(RECURSIVE_TARGETS) \
- $(RECURSIVE_CLEAN_TARGETS) \
- $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- cscope distdir dist dist-all distcheck
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-CSCOPE = cscope
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- if test -d "$(distdir)"; then \
- find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -rf "$(distdir)" \
- || { sleep 5 && rm -rf "$(distdir)"; }; \
- else :; fi
-am__post_remove_distdir = $(am__remove_distdir)
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-DIST_TARGETS = dist-gzip
-distuninstallcheck_listfiles = find . -type f -print
-am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
- | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DOXYGEN = @DOXYGEN@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GCOV_FLAGS = @GCOV_FLAGS@
-GCOV_LDFLAGS = @GCOV_LDFLAGS@
-GREP = @GREP@
-HAVE_DOXYGEN = @HAVE_DOXYGEN@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJECTS = @OBJECTS@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIMD_FLAGS = @SIMD_FLAGS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_aux_dir = @ac_aux_dir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-
-# Top-level liberasurecode automake configuration
-ACLOCAL_AMFLAGS = -I m4
-SUBDIRS = src test doc
-EXTRA_DIST = autogen.sh
-INCLUDE = -I$(abs_top_builddir)/include \
- -I$(abs_top_builddir)/include/erasurecode \
- -I$(abs_top_builddir)/include/xor_codes
-
-AM_CPPFLAGS = $(CPPFLAGS) $(INCLUDE) -Werror
-AM_CFLAGS = -fPIC $(AM_CPPFLAGS) @GCOV_FLAGS@ -L/usr/local/lib
-include_HEADERS = \
- include/erasurecode/alg_sig.h \
- include/erasurecode/erasurecode.h \
- include/erasurecode/erasurecode_backend.h \
- include/erasurecode/erasurecode_helpers.h \
- include/erasurecode/erasurecode_log.h \
- include/erasurecode/erasurecode_preprocessing.h \
- include/erasurecode/erasurecode_postprocessing.h \
- include/erasurecode/erasurecode_stdinc.h \
- include/erasurecode/erasurecode_version.h \
- include/erasurecode/list.h \
- include/xor_codes/xor_hd_code_defs.h \
- include/xor_codes/xor_code.h \
- include/config_liberasurecode.h
-
-VALGRIND_EXEC_COMMAND = $(LIBTOOL_COMMAND) valgrind --tool=memcheck \
- --error-exitcode=1 --leak-check=yes --track-fds=yes \
- --malloc-fill=A5 --free-fill=DE --fullpath-after=.
-
-CLEANFILES = cscope.in.out cscope.out cscope.po.out
-MOSTLYCLEANFILES = *.gcda *.gcno *.gcov
-all: all-recursive
-
-.SUFFIXES:
-am--refresh: Makefile
- @:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
- $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- $(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-include/config_liberasurecode.h: include/stamp-h1
- @test -f $@ || rm -f include/stamp-h1
- @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) include/stamp-h1
-
-include/stamp-h1: $(top_srcdir)/include/config_liberasurecode.h.in $(top_builddir)/config.status
- @rm -f include/stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status include/config_liberasurecode.h
-$(top_srcdir)/include/config_liberasurecode.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
- rm -f include/stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f include/config_liberasurecode.h include/stamp-h1
-erasurecode.pc: $(top_builddir)/config.status $(srcdir)/erasurecode.pc.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
-Xorcode.pc: $(top_builddir)/config.status $(srcdir)/Xorcode.pc.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
- -rm -f libtool config.lt
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
- $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-# (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
- @fail=; \
- if $(am__make_keepgoing); then \
- failcom='fail=yes'; \
- else \
- failcom='exit 1'; \
- fi; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-clean-cscope:
- -rm -f cscope.files
-cscope.files: clean-cscope cscopelist
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
- -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-
-distdir: $(DISTFILES)
- $(am__remove_distdir)
- test -d "$(distdir)" || mkdir "$(distdir)"
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
- -test -n "$(am__skip_mode_fix)" \
- || find "$(distdir)" -type d ! -perm -755 \
- -exec chmod u+rwx,go+rx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r "$(distdir)"
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__post_remove_distdir)
-
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
- $(am__post_remove_distdir)
-
-dist-lzip: distdir
- tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
- $(am__post_remove_distdir)
-
-dist-xz: distdir
- tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
- $(am__post_remove_distdir)
-
-dist-tarZ: distdir
- @echo WARNING: "Support for shar distribution archives is" \
- "deprecated." >&2
- @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__post_remove_distdir)
-
-dist-shar: distdir
- @echo WARNING: "Support for distribution archives compressed with" \
- "legacy program 'compress' is deprecated." >&2
- @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
- $(am__post_remove_distdir)
-
-dist-zip: distdir
- -rm -f $(distdir).zip
- zip -rq $(distdir).zip $(distdir)
- $(am__post_remove_distdir)
-
-dist dist-all:
- $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
- $(am__post_remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- case '$(DIST_ARCHIVES)' in \
- *.tar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
- *.tar.bz2*) \
- bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
- *.tar.lz*) \
- lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
- *.tar.xz*) \
- xz -dc $(distdir).tar.xz | $(am__untar) ;;\
- *.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- *.shar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
- *.zip*) \
- unzip $(distdir).zip ;;\
- esac
- chmod -R a-w $(distdir)
- chmod u+w $(distdir)
- mkdir $(distdir)/_build $(distdir)/_inst
- chmod a-w $(distdir)
- test -d $(distdir)/_build || exit 0; \
- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && am__cwd=`pwd` \
- && $(am__cd) $(distdir)/_build \
- && ../configure \
- $(AM_DISTCHECK_CONFIGURE_FLAGS) \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- --srcdir=.. --prefix="$$dc_install_base" \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
- distuninstallcheck \
- && chmod -R a-w "$$dc_install_base" \
- && ({ \
- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
- } || { rm -rf "$$dc_destdir"; exit 1; }) \
- && rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
- && cd "$$am__cwd" \
- || exit 1
- $(am__post_remove_distdir)
- @(echo "$(distdir) archives ready for distribution: "; \
- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
- sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
- @test -n '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: trying to run $@ with an empty' \
- '$$(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- $(am__cd) '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
-check-am: all-am
-check: check-recursive
-all-am: Makefile $(HEADERS)
-installdirs: installdirs-recursive
-installdirs-am:
- for dir in "$(DESTDIR)$(includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
- -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr \
- distclean-libtool distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am: install-includeHEADERS
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-includeHEADERS
-
-.MAKE: $(am__recursive_targets) install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
- am--refresh check check-am clean clean-cscope clean-generic \
- clean-libtool cscope cscopelist-am ctags ctags-am dist \
- dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
- dist-xz dist-zip distcheck distclean distclean-generic \
- distclean-hdr distclean-libtool distclean-tags distcleancheck \
- distdir distuninstallcheck dvi dvi-am html html-am info \
- info-am install install-am install-data install-data-am \
- install-dvi install-dvi-am install-exec install-exec-am \
- install-html install-html-am install-includeHEADERS \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs installdirs-am \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-am uninstall uninstall-am uninstall-includeHEADERS
-
-
-test: check
- @./test/alg_sig_test
- @./test/test_xor_hd_code
- @./test/liberasurecode_test
- @./test/libec_slap
-
-valgrind-test: check
- @$(VALGRIND_EXEC_COMMAND) ./test/alg_sig_test
- @$(VALGRIND_EXEC_COMMAND) ./test/liberasurecode_test
- @$(VALGRIND_EXEC_COMMAND) ./test/test_xor_hd_code
- @$(VALGRIND_EXEC_COMMAND) ./test/libec_slap
-
-.PHONY: cscope
-cscope:
- find src include -name "*.[ch]" > cscope.files
- cscope -q -b
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/liberasurecode/NEWS b/src/c/liberasurecode/NEWS
deleted file mode 100644
index 4f61922..0000000
--- a/src/c/liberasurecode/NEWS
+++ /dev/null
@@ -1 +0,0 @@
-Release 1.0
diff --git a/src/c/liberasurecode/README b/src/c/liberasurecode/README
deleted file mode 120000
index 42061c0..0000000
--- a/src/c/liberasurecode/README
+++ /dev/null
@@ -1 +0,0 @@
-README.md \ No newline at end of file
diff --git a/src/c/liberasurecode/README.md b/src/c/liberasurecode/README.md
deleted file mode 100644
index efff171..0000000
--- a/src/c/liberasurecode/README.md
+++ /dev/null
@@ -1,406 +0,0 @@
-liberasurecode
-==============
-
-liberasurecode is an Erasure Code API library written in C with pluggable Erasure Code backends.
-
-----
-
-Highlights
-==========
-
- * Unified Erasure Coding interface for common storage workloads.
-
- * Pluggable Erasure Code backends - As of v1.0, liberasurecode supports the following backends:
-
- - 'Jerasure' - Erasure Coding library that supports Reed-Solomon, Cauchy backends [1]
- - 'ISA-L' - Intel Storage Acceleration Library - SIMD accelerated Erasure Coding backends [2]
- - 'SHSS' - NTT Lab Japan's hybrid Erasure Coding backend [4]
- - 'Flat XOR HD' - built-in to liberasurecode, based on [3]
- - 'NULL' template backend implemented to help future backend writers
-
-
- * True 'plugin' architecture - liberasurecode uses Dynamically Loaded (DL) libraries to realize a true 'plugin' architecture. This also allows one to build liberasurecode indepdendent of the Erasure Code backend libraries.
-
- * Cross-platform - liberasurecode is known to work on Linux (Fedora/Debian flavors), Solaris, BSD and Darwin/Mac OS X.
-
- * Community support - Developed alongside Erasure Code authority Kevin Greenan, liberasurecode is an actively maintained open-source project with growing community involvement (Openstack Swift, Ceph, PyECLib).
-
-----
-
-License
-==========
-
-liberasurecode is distributed under the terms of the **BSD** license.
-
-----
-
-Active Users
-====================
-
- * PyECLib - Python EC library: https://pypi.python.org/pypi/PyECLib
- * Openstack Swift Object Store - https://wiki.openstack.org/wiki/Swift
-
-----
-
-liberasurecode API Definition
-=============================
-
-``` c
-
-/* liberasurecode frontend API functions */
-
-/**
- * Create a liberasurecode instance and return a descriptor
- * for use with EC operations (encode, decode, reconstruct)
- *
- * @param id - one of the supported backends as
- * defined by ec_backend_id_t
- * @param ec_args - arguments to the EC backend
- * arguments common to all backends
- * k - number of data fragments
- * m - number of parity fragments
- * w - word size, in bits
- * hd - hamming distance (=m for Reed-Solomon)
- * ct - fragment checksum type (stored with the fragment metadata)
- * backend-specific arguments
- * null_args - arguments for the null backend
- * flat_xor_hd, jerasure do not require any special args
- *
- * @return liberasurecode instance descriptor (int > 0)
- */
-int liberasurecode_instance_create(const ec_backend_id_t id,
- struct ec_args *args);
-
-/**
- * Close a liberasurecode instance
- *
- * @param desc - liberasurecode descriptor to close
- *
- * @return 0 on success, otherwise non-zero error code
- */
-int liberasurecode_instance_destroy(int desc);
-
-
-/**
- * Erasure encode a data buffer
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param orig_data - data to encode
- * @param orig_data_size - length of data to encode
- * @param encoded_data - pointer to _output_ array (char **) of k data
- * fragments (char *), allocated by the callee
- * @param encoded_parity - pointer to _output_ array (char **) of m parity
- * fragments (char *), allocated by the callee
- * @param fragment_len - pointer to _output_ length of each fragment, assuming
- * all fragments are the same length
- *
- * @return 0 on success, -error code otherwise
- */
-int liberasurecode_encode(int desc,
- const char *orig_data, uint64_t orig_data_size, /* input */
- char ***encoded_data, char ***encoded_parity, /* output */
- uint64_t *fragment_len); /* output */
-
-/**
- * Cleanup structures allocated by librasurecode_encode
- *
- * The caller has no context, so cannot safely free memory
- * allocated by liberasurecode, so it must pass the
- * deallocation responsibility back to liberasurecode.
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param encoded_data - (char **) array of k data
- * fragments (char *), allocated by liberasurecode_encode
- * @param encoded_parity - (char **) array of m parity
- * fragments (char *), allocated by liberasurecode_encode
- *
- * @return 0 in success; -error otherwise
- */
-int liberasurecode_encode_cleanup(int desc, char **encoded_data,
- char **encoded_parity);
-
-/**
- * Reconstruct original data from a set of k encoded fragments
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param fragments - erasure encoded fragments (> = k)
- * @param num_fragments - number of fragments being passed in
- * @param fragment_len - length of each fragment (assume they are the same)
- * @param force_metadata_checks - force fragment metadata checks (default: 0)
- * @param out_data - _output_ pointer to decoded data
- * @param out_data_len - _output_ length of decoded output
- * (both output data pointers are allocated by liberasurecode,
- * caller invokes liberasurecode_decode_clean() after it has
- * read decoded data in 'out_data')
- *
- * @return 0 on success, -error code otherwise
- */
-int liberasurecode_decode(int desc,
- char **available_fragments, /* input */
- int num_fragments, uint64_t fragment_len, /* input */
- int force_metadata_checks, /* input */
- char **out_data, uint64_t *out_data_len); /* output */
-
-/**
- * Cleanup structures allocated by librasurecode_decode
- *
- * The caller has no context, so cannot safely free memory
- * allocated by liberasurecode, so it must pass the
- * deallocation responsibility back to liberasurecode.
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param data - (char *) buffer of data decoded by librasurecode_decode
- *
- * @return 0 on success; -error otherwise
- */
-int liberasurecode_decode_cleanup(int desc, char *data);
-
-/**
- * Reconstruct a missing fragment from a subset of available fragments
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param available_fragments - erasure encoded fragments
- * @param num_fragments - number of fragments being passed in
- * @param fragment_len - size in bytes of the fragments
- * @param destination_idx - missing idx to reconstruct
- * @param out_fragment - output of reconstruct
- *
- * @return 0 on success, -error code otherwise
- */
-int liberasurecode_reconstruct_fragment(int desc,
- char **available_fragments, /* input */
- int num_fragments, uint64_t fragment_len, /* input */
- int destination_idx, /* input */
- char* out_fragment); /* output */
-
-/**
- * Return a list of lists with valid rebuild indexes given
- * a list of missing indexes.
- *
- * @desc: liberasurecode instance descriptor (obtained with
- * liberasurecode_instance_create)
- * @fragments_to_reconstruct list of indexes to reconstruct
- * @fragments_to_exclude list of indexes to exclude from
- * reconstruction equation
- * @fragments_needed list of fragments needed to reconstruct
- * fragments in fragments_to_reconstruct
- *
- * @return 0 on success, non-zero on error
- */
-int liberasurecode_fragments_needed(int desc,
- int *fragments_to_reconstruct,
- int *fragments_to_exclude,
- int *fragments_needed);
-
-```
-
-Erasure Code Fragment Checksum Types Supported
-----------------------------------------------
-
-``` c
-
-/* Checksum types supported for fragment metadata stored in each fragment */
-typedef enum {
- CHKSUM_NONE = 0, /* "none" (default) */
- CHKSUM_CRC32 = 1, /* "crc32" */
- CHKSUM_TYPES_MAX,
-} ec_checksum_type_t;
-
-```
-
-Erasure Code Fragment Checksum API
-----------------------------------
-
-``` c
-
-struct __attribute__((__packed__))
-fragment_metadata
-{
- uint32_t idx; /* 4 */
- uint32_t size; /* 4 */
- uint32_t frag_backend_metadata_size; /* 4 */
- uint64_t orig_data_size; /* 8 */
- uint8_t chksum_type; /* 1 */
- uint32_t chksum[LIBERASURECODE_MAX_CHECKSUM_LEN]; /* 32 */
- uint8_t chksum_mismatch; /* 1 */
- uint8_t backend_id; /* 1 */
- uint32_t backend_version; /* 4 */
-} fragment_metadata_t;
-
-#define FRAGSIZE_2_BLOCKSIZE(fragment_size) \
- (fragment_size - sizeof(fragment_header_t))
-
-/**
- * Get opaque metadata for a fragment. The metadata is opaque to the
- * client, but meaningful to the underlying library. It is used to verify
- * stripes in verify_stripe_metadata().
- *
- * @param fragment - fragment data pointer
- * @param fragment_metadata - pointer to allocated buffer of size at least
- * sizeof(struct fragment_metadata) to hold fragment metadata struct
- *
- * @return 0 on success, non-zero on error
- */
-//EDL: This needs to be implemented
-int liberasurecode_get_fragment_metadata(char *fragment,
- fragment_metadata_t *fragment_metadata);
-
-/**
-* Verify that the specified pointer points to a well formed fragment that can
-* be processed by both this instance of liberasurecode and the specified
-* backend.
-*
-* @param desc - liberasurecode descriptor/handle
-* from liberasurecode_instance_create()
-* @param fragment - fragment to verify
-*
-* @return 1 if fragment validation fails, 0 otherwise.
-*/
-int is_invalid_fragment(int desc, char *fragment);
-
-/**
- * Verify a subset of fragments generated by encode()
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param fragments - fragments part of the EC stripe to verify
- * @param num_fragments - number of fragments part of the EC stripe
- *
- * @return 1 if stripe checksum verification is successful, 0 otherwise
- */
-int liberasurecode_verify_stripe_metadata(int desc,
- char **fragments, int num_fragments);
-
-/* ==~=*=~===~=*=~==~=*=~== liberasurecode Helpers ==~*==~=*=~==~=~=*=~==~= */
-
-/**
- * This computes the aligned size of a buffer passed into
- * the encode function. The encode function must pad fragments
- * to be algined with the word size (w) and the last fragment also
- * needs to be aligned. This computes the sum of the algined fragment
- * sizes for a given buffer to encode.
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param data_len - original data length in bytes
- *
- * @return aligned length, or -error code on error
- */
-int liberasurecode_get_aligned_data_size(int desc, uint64_t data_len);
-
-/**
- * This will return the minimum encode size, which is the minimum
- * buffer size that can be encoded.
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- *
- * @return minimum data length length, or -error code on error
- */
-int liberasurecode_get_minimum_encode_size(int desc);
-
-/**
- * This will return the fragment size, which is each fragment data
- * length the backend will allocate when encoding.
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param data_len - original data length in bytes
- *
- * @return fragment size - sizeof(fragment_header) + size
- * + frag_backend_metadata_size
- */
-int liberasurecode_get_fragment_size(int desc, int data_len);
-```
-----
-
-
-Build and Install
-=================
-
-To build the liberasurecode repository, perform the following from the
-top-level directory:
-
-``` sh
- $ ./autogen.sh
- $ ./configure
- $ make
- $ make test
- $ sudo make install
-```
-
-----
-
-Code organization
-=================
-```
- |-- include
- | +-- erasurecode
- | | +-- erasurecode.h --> liberasurecode frontend API header
- | | +-- erasurecode_backend.h --> liberasurecode backend API header
- | +-- xor_codes --> headers for the built-in XOR codes
- |
- |-- src
- | |-- erasurecode.c --> liberasurecode API implementation
- | | (frontend + backend)
- | |-- backends
- | | +-- null
- | | +--- null.c --> 'null' erasure code backend (template backend)
- | | +-- xor
- | | +--- flat_xor_hd.c --> 'flat_xor_hd' erasure code backend (built-in)
- | | +-- jerasure
- | | +-- jerasure_rs_cauchy.c --> 'jerasure_rs_vand' erasure code backend (jerasure.org)
- | | +-- jerasure_rs_vand.c --> 'jerasure_rs_cauchy' erasure code backend (jerasure.org)
- | | +-- isa-l
- | | +-- isa_l_rs_vand.c --> 'isa_l_rs_vand' erasure code backend (Intel)
- | | +-- shss
- | | +-- shss.c --> 'shss' erasure code backend (NTT Labs)
- | |
- | |-- builtin
- | | +-- xor_codes --> XOR HD code backend, built-in erasure
- | | | code implementation (shared library)
- | | +-- xor_code.c
- | | +-- xor_hd_code.c
- | |
- | +-- utils
- | +-- chksum --> fragment checksum utils for erasure
- | +-- alg_sig.c coded fragments
- | +-- crc32.c
- |
- |-- doc --> API Documentation
- | +-- Doxyfile
- | +-- html
- |
- |--- test --> Test routines
- | +-- builtin
- | | +-- xor_codes
- | +-- liberasurecode_test.c
- | +-- utils
- |
- |-- autogen.sh
- |-- configure.ac
- |-- Makefile.am
- |-- README
- |-- NEWS
- |-- COPYING
- |-- AUTHORS
- |-- INSTALL
- +-- ChangeLog
-```
----
-
-References
-==========
-
- [1] Jerasure, C library that supports erasure coding in storage applications, http://jerasure.org
-
- [2] Intel(R) Storage Acceleration Library (Open Source Version), https://01.org/intel%C2%AE-storage-acceleration-library-open-source-version
-
- [3] Greenan, Kevin M et al, "Flat XOR-based erasure codes in storage systems", http://www.kaymgee.com/Kevin_Greenan/Publications_files/greenan-msst10.pdf
-
- [4] Kota Tsuyuzaki <tsuyuzaki.kota@lab.ntt.co.jp>, Ryuta Kon <kon.ryuta@po.ntts.co.jp>, "NTT SHSS Erasure Coding backend"
diff --git a/src/c/liberasurecode/Xorcode.pc.in b/src/c/liberasurecode/Xorcode.pc.in
deleted file mode 100644
index b429507..0000000
--- a/src/c/liberasurecode/Xorcode.pc.in
+++ /dev/null
@@ -1,15 +0,0 @@
-# Xorcode pkg-config source file
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: Xorcode
-Description: Flat XOR-based erasure codes
-Version: @XORCODE_VERSION@
-Requires:
-Conflicts:
-Libs: -L${libdir} @XORCODE_RLD_FLAGS@ -lXorcode
-Libs.private: @XORCODE_STATIC_LIBS@
-Cflags: -I${includedir}/ -I${includedir}/xor_codes @XORCODE_CFLAGS@
diff --git a/src/c/liberasurecode/aclocal.m4 b/src/c/liberasurecode/aclocal.m4
deleted file mode 100644
index 7b540ad..0000000
--- a/src/c/liberasurecode/aclocal.m4
+++ /dev/null
@@ -1,1231 +0,0 @@
-# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
-You have another version of autoconf. It may work, but is not guaranteed to.
-If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-# (This private macro should not be called outside this file.)
-AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.14'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.14.1], [],
- [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-
-# _AM_AUTOCONF_VERSION(VERSION)
-# -----------------------------
-# aclocal traces this macro to find the Autoconf version.
-# This is a private macro too. Using m4_define simplifies
-# the logic in aclocal, which can simply ignore this definition.
-m4_define([_AM_AUTOCONF_VERSION], [])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.14.1])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
-# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is '.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_COND_IF -*- Autoconf -*-
-
-# Copyright (C) 2008-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_COND_IF
-# _AM_COND_ELSE
-# _AM_COND_ENDIF
-# --------------
-# These macros are only used for tracing.
-m4_define([_AM_COND_IF])
-m4_define([_AM_COND_ELSE])
-m4_define([_AM_COND_ENDIF])
-
-# AM_COND_IF(COND, [IF-TRUE], [IF-FALSE])
-# ---------------------------------------
-# If the shell condition COND is true, execute IF-TRUE, otherwise execute
-# IF-FALSE. Allow automake to learn about conditional instantiating macros
-# (the AC_CONFIG_FOOS).
-AC_DEFUN([AM_COND_IF],
-[m4_ifndef([_AM_COND_VALUE_$1],
- [m4_fatal([$0: no such condition "$1"])])dnl
-_AM_COND_IF([$1])dnl
-if test -z "$$1_TRUE"; then :
- m4_n([$2])[]dnl
-m4_ifval([$3],
-[_AM_COND_ELSE([$1])dnl
-else
- $3
-])dnl
-_AM_COND_ENDIF([$1])dnl
-fi[]dnl
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ([2.52])dnl
- m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])dnl
-AC_SUBST([$1_FALSE])dnl
-_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-m4_define([_AM_COND_VALUE_$1], [$2])dnl
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-
-# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
- [$1], [CXX], [depcc="$CXX" am_compiler_list=],
- [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
- [$1], [UPC], [depcc="$UPC" am_compiler_list=],
- [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
- [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_$1_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
- fi
- am__universal=false
- m4_case([$1], [CC],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac],
- [CXX],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac])
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_$1_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE([dependency-tracking], [dnl
-AS_HELP_STRING(
- [--enable-dependency-tracking],
- [do not reject slow dependency extractors])
-AS_HELP_STRING(
- [--disable-dependency-tracking],
- [speeds up one-time build])])
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
- am__nodep='_no'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
-AC_SUBST([am__nodep])dnl
-_AM_SUBST_NOTMAKE([am__nodep])dnl
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[{
- # Older Autoconf quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
- shift
- for mf
- do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named 'Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running 'make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "$am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
- done
-}
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each '.P' file that we will
-# need in order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This macro actually does too much. Some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
-m4_define([AC_PROG_CC],
-m4_defn([AC_PROG_CC])
-[_AM_PROG_CC_C_O
-])
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.65])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[AC_DIAGNOSE([obsolete],
- [$0: two- and three-arguments forms are deprecated.])
-m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(
- m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
- [ok:ok],,
- [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
- AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
-AM_MISSING_PROG([AUTOCONF], [autoconf])
-AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
-AM_MISSING_PROG([AUTOHEADER], [autoheader])
-AM_MISSING_PROG([MAKEINFO], [makeinfo])
-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES([CC])],
- [m4_define([AC_PROG_CC],
- m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES([CXX])],
- [m4_define([AC_PROG_CXX],
- m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
- [_AM_DEPENDENCIES([OBJC])],
- [m4_define([AC_PROG_OBJC],
- m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
- [_AM_DEPENDENCIES([OBJCXX])],
- [m4_define([AC_PROG_OBJCXX],
- m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
-])
-AC_REQUIRE([AM_SILENT_RULES])dnl
-dnl The testsuite driver may need to know about EXEEXT, so add the
-dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
-dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
-AC_CONFIG_COMMANDS_PRE(dnl
-[m4_provide_if([_AM_COMPILER_EXEEXT],
- [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
- fi
-fi])
-
-dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
-dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
-dnl mangled by Autoconf and run in a shell conditional statement.
-m4_define([_AC_COMPILER_EXEEXT],
-m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_arg=$1
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-AC_SUBST([install_sh])])
-
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
-# From Jim Meyering
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MAINTAINER_MODE([DEFAULT-MODE])
-# ----------------------------------
-# Control maintainer-specific portions of Makefiles.
-# Default is to disable them, unless 'enable' is passed literally.
-# For symmetry, 'disable' may be passed as well. Anyway, the user
-# can override the default with the --enable/--disable switch.
-AC_DEFUN([AM_MAINTAINER_MODE],
-[m4_case(m4_default([$1], [disable]),
- [enable], [m4_define([am_maintainer_other], [disable])],
- [disable], [m4_define([am_maintainer_other], [enable])],
- [m4_define([am_maintainer_other], [enable])
- m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode's default is 'disable' unless 'enable' is passed
- AC_ARG_ENABLE([maintainer-mode],
- [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
- am_maintainer_other[ make rules and dependencies not useful
- (and sometimes confusing) to the casual installer])],
- [USE_MAINTAINER_MODE=$enableval],
- [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
- AC_MSG_RESULT([$USE_MAINTAINER_MODE])
- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST([MAINT])dnl
-]
-)
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it is modern enough.
-# If it is, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([missing])dnl
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- AC_MSG_WARN(['missing' script is too old or missing])
-fi
-])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# --------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_CC_C_O
-# ---------------
-# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
-# to automatically call this.
-AC_DEFUN([_AM_PROG_CC_C_O],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-AC_LANG_PUSH([C])dnl
-AC_CACHE_CHECK(
- [whether $CC understands -c and -o together],
- [am_cv_prog_cc_c_o],
- [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i])
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-AC_LANG_POP([C])])
-
-# For backward compatibility.
-AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_RUN_LOG(COMMAND)
-# -------------------
-# Run COMMAND, save the exit status in ac_status, and log it.
-# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
-AC_DEFUN([AM_RUN_LOG],
-[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
- ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- (exit $ac_status); }])
-
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[[\\\"\#\$\&\'\`$am_lf]]*)
- AC_MSG_ERROR([unsafe absolute working directory name]);;
-esac
-case $srcdir in
- *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
- AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
- alias in your environment])
- fi
- if test "$[2]" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT([yes])
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-AC_CONFIG_COMMANDS_PRE(
- [AC_MSG_CHECKING([that generated files are newer than configure])
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- AC_MSG_RESULT([done])])
-rm -f conftest.file
-])
-
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SILENT_RULES([DEFAULT])
-# --------------------------
-# Enable less verbose build rules; with the default set to DEFAULT
-# ("yes" being less verbose, "no" or empty being verbose).
-AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules], [dnl
-AS_HELP_STRING(
- [--enable-silent-rules],
- [less verbose build output (undo: "make V=1")])
-AS_HELP_STRING(
- [--disable-silent-rules],
- [verbose build output (undo: "make V=0")])dnl
-])
-case $enable_silent_rules in @%:@ (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
-esac
-dnl
-dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
-dnl do not support nested variable expansions.
-dnl See automake bug#9928 and bug#10237.
-am_make=${MAKE-make}
-AC_CACHE_CHECK([whether $am_make supports nested variables],
- [am_cv_make_support_nested_variables],
- [if AS_ECHO([['TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi])
-if test $am_cv_make_support_nested_variables = yes; then
- dnl Using '$V' instead of '$(V)' breaks IRIX make.
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AC_SUBST([AM_V])dnl
-AM_SUBST_NOTMAKE([AM_V])dnl
-AC_SUBST([AM_DEFAULT_V])dnl
-AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
-AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
-AM_BACKSLASH='\'
-AC_SUBST([AM_BACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
-])
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor 'install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in "make install-strip", and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Copyright (C) 2006-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
-# This macro is traced by Automake.
-AC_DEFUN([_AM_SUBST_NOTMAKE])
-
-# AM_SUBST_NOTMAKE(VARIABLE)
-# --------------------------
-# Public sister of _AM_SUBST_NOTMAKE.
-AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of 'v7', 'ustar', or 'pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-#
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AC_SUBST([AMTAR], ['$${TAR-tar}'])
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-
-m4_if([$1], [v7],
- [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-
- [m4_case([$1],
- [ustar],
- [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
- # There is notably a 21 bits limit for the UID and the GID. In fact,
- # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
- # and bug#13588).
- am_max_uid=2097151 # 2^21 - 1
- am_max_gid=$am_max_uid
- # The $UID and $GID variables are not portable, so we need to resort
- # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
- # below are definitely unexpected, so allow the users to see them
- # (that is, avoid stderr redirection).
- am_uid=`id -u || echo unknown`
- am_gid=`id -g || echo unknown`
- AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
- if test $am_uid -le $am_max_uid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi
- AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
- if test $am_gid -le $am_max_gid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi],
-
- [pax],
- [],
-
- [m4_fatal([Unknown tar format])])
-
- AC_MSG_CHECKING([how to create a $1 tar archive])
-
- # Go ahead even if we have the value already cached. We do so because we
- # need to set the values for the 'am__tar' and 'am__untar' variables.
- _am_tools=${am_cv_prog_tar_$1-$_am_tools}
-
- for _am_tool in $_am_tools; do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar; do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works.
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- AM_RUN_LOG([cat conftest.dir/file])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
- done
- rm -rf conftest.dir
-
- AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
- AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([m4/ax_check_compile_flag.m4])
-m4_include([m4/ax_ext.m4])
-m4_include([m4/ax_gcc_x86_avx_xgetbv.m4])
-m4_include([m4/ax_gcc_x86_cpuid.m4])
-m4_include([m4/libtool.m4])
-m4_include([m4/ltoptions.m4])
-m4_include([m4/ltsugar.m4])
-m4_include([m4/ltversion.m4])
-m4_include([m4/lt~obsolete.m4])
diff --git a/src/c/liberasurecode/autogen.sh b/src/c/liberasurecode/autogen.sh
deleted file mode 100755
index 92623fc..0000000
--- a/src/c/liberasurecode/autogen.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-autoreconf -i -v
diff --git a/src/c/liberasurecode/compile b/src/c/liberasurecode/compile
deleted file mode 100755
index 531136b..0000000
--- a/src/c/liberasurecode/compile
+++ /dev/null
@@ -1,347 +0,0 @@
-#! /bin/sh
-# Wrapper for compilers which do not understand '-c -o'.
-
-scriptversion=2012-10-14.11; # UTC
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-# Written by Tom Tromey <tromey@cygnus.com>.
-#
-# This program 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 2, 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 file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-nl='
-'
-
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent tools from complaining about whitespace usage.
-IFS=" "" $nl"
-
-file_conv=
-
-# func_file_conv build_file lazy
-# Convert a $build file to $host form and store it in $file
-# Currently only supports Windows hosts. If the determined conversion
-# type is listed in (the comma separated) LAZY, no conversion will
-# take place.
-func_file_conv ()
-{
- file=$1
- case $file in
- / | /[!/]*) # absolute file, and not a UNC file
- if test -z "$file_conv"; then
- # lazily determine how to convert abs files
- case `uname -s` in
- MINGW*)
- file_conv=mingw
- ;;
- CYGWIN*)
- file_conv=cygwin
- ;;
- *)
- file_conv=wine
- ;;
- esac
- fi
- case $file_conv/,$2, in
- *,$file_conv,*)
- ;;
- mingw/*)
- file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
- ;;
- cygwin/*)
- file=`cygpath -m "$file" || echo "$file"`
- ;;
- wine/*)
- file=`winepath -w "$file" || echo "$file"`
- ;;
- esac
- ;;
- esac
-}
-
-# func_cl_dashL linkdir
-# Make cl look for libraries in LINKDIR
-func_cl_dashL ()
-{
- func_file_conv "$1"
- if test -z "$lib_path"; then
- lib_path=$file
- else
- lib_path="$lib_path;$file"
- fi
- linker_opts="$linker_opts -LIBPATH:$file"
-}
-
-# func_cl_dashl library
-# Do a library search-path lookup for cl
-func_cl_dashl ()
-{
- lib=$1
- found=no
- save_IFS=$IFS
- IFS=';'
- for dir in $lib_path $LIB
- do
- IFS=$save_IFS
- if $shared && test -f "$dir/$lib.dll.lib"; then
- found=yes
- lib=$dir/$lib.dll.lib
- break
- fi
- if test -f "$dir/$lib.lib"; then
- found=yes
- lib=$dir/$lib.lib
- break
- fi
- if test -f "$dir/lib$lib.a"; then
- found=yes
- lib=$dir/lib$lib.a
- break
- fi
- done
- IFS=$save_IFS
-
- if test "$found" != yes; then
- lib=$lib.lib
- fi
-}
-
-# func_cl_wrapper cl arg...
-# Adjust compile command to suit cl
-func_cl_wrapper ()
-{
- # Assume a capable shell
- lib_path=
- shared=:
- linker_opts=
- for arg
- do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- eat=1
- case $2 in
- *.o | *.[oO][bB][jJ])
- func_file_conv "$2"
- set x "$@" -Fo"$file"
- shift
- ;;
- *)
- func_file_conv "$2"
- set x "$@" -Fe"$file"
- shift
- ;;
- esac
- ;;
- -I)
- eat=1
- func_file_conv "$2" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -I*)
- func_file_conv "${1#-I}" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -l)
- eat=1
- func_cl_dashl "$2"
- set x "$@" "$lib"
- shift
- ;;
- -l*)
- func_cl_dashl "${1#-l}"
- set x "$@" "$lib"
- shift
- ;;
- -L)
- eat=1
- func_cl_dashL "$2"
- ;;
- -L*)
- func_cl_dashL "${1#-L}"
- ;;
- -static)
- shared=false
- ;;
- -Wl,*)
- arg=${1#-Wl,}
- save_ifs="$IFS"; IFS=','
- for flag in $arg; do
- IFS="$save_ifs"
- linker_opts="$linker_opts $flag"
- done
- IFS="$save_ifs"
- ;;
- -Xlinker)
- eat=1
- linker_opts="$linker_opts $2"
- ;;
- -*)
- set x "$@" "$1"
- shift
- ;;
- *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
- func_file_conv "$1"
- set x "$@" -Tp"$file"
- shift
- ;;
- *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
- func_file_conv "$1" mingw
- set x "$@" "$file"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
- done
- if test -n "$linker_opts"; then
- linker_opts="-link$linker_opts"
- fi
- exec "$@" $linker_opts
- exit 1
-}
-
-eat=
-
-case $1 in
- '')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: compile [--help] [--version] PROGRAM [ARGS]
-
-Wrapper for compilers which do not understand '-c -o'.
-Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
-arguments, and rename the output as expected.
-
-If you are trying to build a whole package this is not the
-right script to run: please start by reading the file 'INSTALL'.
-
-Report bugs to <bug-automake@gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "compile $scriptversion"
- exit $?
- ;;
- cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
- func_cl_wrapper "$@" # Doesn't return...
- ;;
-esac
-
-ofile=
-cfile=
-
-for arg
-do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- # So we strip '-o arg' only if arg is an object.
- eat=1
- case $2 in
- *.o | *.obj)
- ofile=$2
- ;;
- *)
- set x "$@" -o "$2"
- shift
- ;;
- esac
- ;;
- *.c)
- cfile=$1
- set x "$@" "$1"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
-done
-
-if test -z "$ofile" || test -z "$cfile"; then
- # If no '-o' option was seen then we might have been invoked from a
- # pattern rule where we don't need one. That is ok -- this is a
- # normal compilation that the losing compiler can handle. If no
- # '.c' file was seen then we are probably linking. That is also
- # ok.
- exec "$@"
-fi
-
-# Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
-
-# Create the lock directory.
-# Note: use '[/\\:.-]' here to ensure that we don't use the same name
-# that we are using for the .o file. Also, base the name on the expected
-# object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
-while true; do
- if mkdir "$lockdir" >/dev/null 2>&1; then
- break
- fi
- sleep 1
-done
-# FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir '$lockdir'; exit 1" 1 2 15
-
-# Run the compile.
-"$@"
-ret=$?
-
-if test -f "$cofile"; then
- test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
-elif test -f "${cofile}bj"; then
- test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
-fi
-
-rmdir "$lockdir"
-exit $ret
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# 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:
diff --git a/src/c/liberasurecode/config.guess b/src/c/liberasurecode/config.guess
deleted file mode 100755
index b79252d..0000000
--- a/src/c/liberasurecode/config.guess
+++ /dev/null
@@ -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:
diff --git a/src/c/liberasurecode/config.sub b/src/c/liberasurecode/config.sub
deleted file mode 100755
index 9633db7..0000000
--- a/src/c/liberasurecode/config.sub
+++ /dev/null
@@ -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:
diff --git a/src/c/liberasurecode/configure b/src/c/liberasurecode/configure
deleted file mode 100755
index 839d0e7..0000000
--- a/src/c/liberasurecode/configure
+++ /dev/null
@@ -1,19779 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for liberasurecode 0.9.10.
-#
-#
-# 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
-
- test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
- || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || 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 about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a 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'"
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-
-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='liberasurecode'
-PACKAGE_TARNAME='liberasurecode'
-PACKAGE_VERSION='0.9.10'
-PACKAGE_STRING='liberasurecode 0.9.10'
-PACKAGE_BUGREPORT=''
-PACKAGE_URL=''
-
-# 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='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIBOBJS
-ENABLE_DOXYGEN_FALSE
-ENABLE_DOXYGEN_TRUE
-HAVE_DOXYGEN
-HAVE_DOXYGEN_FALSE
-HAVE_DOXYGEN_TRUE
-DOXYGEN
-OBJECTS
-ac_aux_dir
-GCOV_LDFLAGS
-GCOV_FLAGS
-SIMD_FLAGS
-CXXCPP
-am__fastdepCXX_FALSE
-am__fastdepCXX_TRUE
-CXXDEPMODE
-ac_ct_CXX
-CXXFLAGS
-CXX
-MAINT
-MAINTAINER_MODE_FALSE
-MAINTAINER_MODE_TRUE
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-MANIFEST_TOOL
-RANLIB
-ac_ct_AR
-AR
-DLLTOOL
-OBJDUMP
-LN_S
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-SED
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-LIBTOOL
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-am__nodep
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-EGREP
-GREP
-CPP
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-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
-enable_dependency_tracking
-enable_silent_rules
-enable_shared
-enable_static
-with_pic
-enable_fast_install
-with_gnu_ld
-with_sysroot
-enable_libtool_lock
-enable_maintainer_mode
-enable_werror
-enable_debug
-enable_gcov
-enable_doxygen
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP
-CXX
-CXXFLAGS
-CCC
-CXXCPP'
-
-
-# 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 liberasurecode 0.9.10 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/liberasurecode]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of liberasurecode 0.9.10:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-dependency-tracking
- do not reject slow dependency extractors
- --disable-dependency-tracking
- speeds up one-time build
- --enable-silent-rules less verbose build output (undo: "make V=1")
- --disable-silent-rules verbose build output (undo: "make V=0")
- --enable-shared[=PKGS] build shared libraries [default=yes]
- --enable-static[=PKGS] build static libraries [default=yes]
- --enable-fast-install[=PKGS]
- optimize for fast installation [default=yes]
- --disable-libtool-lock avoid locking (might break parallel builds)
- --enable-maintainer-mode
- enable make rules and dependencies not useful (and
- sometimes confusing) to the casual installer
- --disable-werror Dont treat compilation warnings as failures
- --enable-debug Turn on debugging
- --enable-gcov Turn on code coverage
- --enable-doxygen Use doxygen to build documentation (default=auto)
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
- both]
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]
- --with-sysroot=DIR Search for dependent libraries within DIR
- (or the compiler's sysroot if not specified).
-
-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
- CXX C++ compiler command
- CXXFLAGS C++ compiler flags
- CXXCPP 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 the package provider.
-_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
-liberasurecode configure 0.9.10
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval \${$3+:} false; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_header_compiler=yes
-else
- ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- ac_header_preproc=yes
-else
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
- yes:no: )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
- no:yes:* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
- # interfere with the next link command; also delete a directory that is
- # left behind by Apple's compiler. We do this before executing the actions.
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
- 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. */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* 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 $2 ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext 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_func
-
-# ac_fn_cxx_try_compile LINENO
-# ----------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_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_cxx_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_cxx_try_compile
-
-# ac_fn_cxx_try_cpp LINENO
-# ------------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_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_cxx_preproc_warn_flag$ac_cxx_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_cxx_try_cpp
-
-# ac_fn_cxx_try_link LINENO
-# -------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_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_cxx_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_cxx_try_link
-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 liberasurecode $as_me 0.9.10, 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
-
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
- { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if { ac_try='./conftest$ac_cv_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP=$EGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
- ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = xyes; then :
- MINIX=yes
-else
- MINIX=
-fi
-
-
- if test "$MINIX" = yes; then
-
-$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
-
-
-$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
-
-
-$as_echo "#define _MINIX 1" >>confdefs.h
-
- fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if ${ac_cv_safe_to_define___extensions__+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-# define __EXTENSIONS__ 1
- $ac_includes_default
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_safe_to_define___extensions__=yes
-else
- ac_cv_safe_to_define___extensions__=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
- test $ac_cv_safe_to_define___extensions__ = yes &&
- $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
-
- $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
-
- $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
-
- $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
-
- $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
-
-
-
-
-
-
-am__api_version='1.14'
-
-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.
-
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
-
- done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[\\\"\#\$\&\'\`$am_lf]*)
- as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
-esac
-case $srcdir in
- *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
- as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
- alias in your environment" "$LINENO" 5
- fi
- if test "$2" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-
-rm -f conftest.file
-
-test "$program_prefix" != NONE &&
- program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; 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_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # 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_STRIP="${ac_tool_prefix}strip"
- $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
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; 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_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # 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_STRIP="strip"
- $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_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- 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
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
- if ${ac_cv_path_mkdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
- done
-IFS=$as_save_IFS
-
-fi
-
- test -d ./--version && rmdir ./--version
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- MKDIR_P="$ac_install_sh -d"
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-for ac_prog in gawk mawk nawk awk
-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_AWK+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # 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_AWK="$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
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
- enableval=$enable_dependency_tracking;
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
- am__nodep='_no'
-fi
- if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-fi
-
-
-# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
- enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=1;;
-esac
-am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if $as_echo 'TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- am__isrc=' -I$(srcdir)'
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='liberasurecode'
- VERSION='0.9.10'
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-mkdir_p='$(MKDIR_P)'
-
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AMTAR='$${TAR-tar}'
-
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar pax cpio none'
-
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
-
-
-
-
-
-depcc="$CC" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
- fi
-fi
-case `pwd` in
- *\ * | *\ *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.4.2'
-macro_revision='1.3337'
-
-
-
-
-
-
-
-
-
-
-
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-# 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
-
-
-# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO ""
-}
-
-case "$ECHO" in
- printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
- print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
- for ac_i in 1 2 3 4 5 6 7; do
- ac_script="$ac_script$as_nl$ac_script"
- done
- echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
- { ac_script=; unset ac_script;}
- if test -z "$SED"; then
- ac_path_SED_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
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_SED" || continue
-# Check for GNU ac_path_SED and select it if it is found.
- # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
- ac_cv_path_SED="$ac_path_SED" ac_path_SED_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 '' >> "conftest.nl"
- "$ac_path_SED" -f conftest.sed < "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_SED_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_SED="$ac_path_SED"
- ac_path_SED_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_SED_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_SED"; then
- as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
- fi
-else
- ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
- rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
- then ac_cv_path_FGREP="$GREP -F"
- else
- if test -z "$FGREP"; then
- ac_path_FGREP_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 fgrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_FGREP" || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
- # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_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 'FGREP' >> "conftest.nl"
- "$ac_path_FGREP" FGREP < "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_FGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_FGREP="$ac_path_FGREP"
- ac_path_FGREP_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_FGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_FGREP"; then
- as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_FGREP=$FGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
-
-
-test -z "$GREP" && GREP=grep
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
- withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- if test -n "$ac_tool_prefix"; then
- for ac_prog in dumpbin "link -dump"
- 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_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DUMPBIN"; then
- ac_cv_prog_DUMPBIN="$DUMPBIN" # 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_DUMPBIN="$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
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$DUMPBIN" && break
- done
-fi
-if test -z "$DUMPBIN"; then
- ac_ct_DUMPBIN=$DUMPBIN
- for ac_prog in dumpbin "link -dump"
-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_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DUMPBIN"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # 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_DUMPBIN="$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_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_DUMPBIN" && break
-done
-
- if test "x$ac_ct_DUMPBIN" = x; then
- DUMPBIN=":"
- 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
- DUMPBIN=$ac_ct_DUMPBIN
- fi
-fi
-
- case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
-
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: output\"" >&5)
- cat conftest.out >&5
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- os2*)
- # The test takes a long time on OS/2.
- lt_cv_sys_max_cmd_len=8192
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len" && \
- test undefined != "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-
-
-
-
-
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,b/c, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-
-
-
-
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-if ${lt_cv_to_host_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
- ;;
- esac
- ;;
- *-*-cygwin* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
- ;;
- esac
- ;;
- * ) # unhandled hosts (and "normal" native builds)
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
-esac
-
-fi
-
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-$as_echo "$lt_cv_to_host_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-if ${lt_cv_to_tool_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- #assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
- ;;
- esac
- ;;
-esac
-
-fi
-
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- if test "$GCC" != yes; then
- reload_cmds=false
- fi
- ;;
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; 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_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # 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_OBJDUMP="${ac_tool_prefix}objdump"
- $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
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
- ac_ct_OBJDUMP=$OBJDUMP
- # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; 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_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OBJDUMP"; then
- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # 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_OBJDUMP="objdump"
- $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_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OBJDUMP" = x; then
- OBJDUMP="false"
- 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
- OBJDUMP=$ac_ct_OBJDUMP
- fi
-else
- OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[45]*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
- if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- # Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[3-9]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
- case $host_os in
- mingw* | pw32*)
- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
- want_nocaseglob=yes
- else
- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
- fi
- ;;
- esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; 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_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # 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_DLLTOOL="${ac_tool_prefix}dlltool"
- $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
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
- ac_ct_DLLTOOL=$DLLTOOL
- # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; 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_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DLLTOOL"; then
- ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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_DLLTOOL="dlltool"
- $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_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DLLTOOL" = x; then
- DLLTOOL="false"
- 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
- DLLTOOL=$ac_ct_DLLTOOL
- fi
-else
- DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
- # two different shell functions defined in ltmain.sh
- # decide which to use based on capabilities of $DLLTOOL
- case `$DLLTOOL --help 2>&1` in
- *--identify-strict*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
- ;;
- *)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
- ;;
- esac
- ;;
-*)
- # fallback: assume linklib IS sharedlib
- lt_cv_sharedlib_from_linklib_cmd="$ECHO"
- ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- for ac_prog in ar
- 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_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # 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_AR="$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
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AR" && break
- done
-fi
-if test -z "$AR"; then
- ac_ct_AR=$AR
- for ac_prog in ar
-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_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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_AR="$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_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_AR" && break
-done
-
- if test "x$ac_ct_AR" = x; then
- AR="false"
- 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
- AR=$ac_ct_AR
- fi
-fi
-
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-$as_echo_n "checking for archiver @FILE support... " >&6; }
-if ${lt_cv_ar_at_file+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ar_at_file=no
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- echo conftest.$ac_objext > conftest.lst
- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test "$ac_status" -eq 0; then
- # Ensure the archiver fails upon bogus file names.
- rm -f conftest.$ac_objext libconftest.a
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test "$ac_status" -ne 0; then
- lt_cv_ar_at_file=@
- fi
- fi
- rm -f conftest.* libconftest.a
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-$as_echo "$lt_cv_ar_at_file" >&6; }
-
-if test "x$lt_cv_ar_at_file" = xno; then
- archiver_list_spec=
-else
- archiver_list_spec=$lt_cv_ar_at_file
-fi
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; 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_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # 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_STRIP="${ac_tool_prefix}strip"
- $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
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; 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_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # 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_STRIP="strip"
- $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_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- 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
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; 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_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # 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_RANLIB="${ac_tool_prefix}ranlib"
- $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
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; 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_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # 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_RANLIB="ranlib"
- $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_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- 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
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-
-
-
-
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[BCDT]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[ABCDGISTW]'
- ;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[ABCDEGRST]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[BCDEGRST]'
- ;;
-osf*)
- symcode='[BCDEGQRST]'
- ;;
-solaris*)
- symcode='[BDRT]'
- ;;
-sco3.2v5*)
- symcode='[DT]'
- ;;
-sysv4.2uw2*)
- symcode='[DT]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[ABDT]'
- ;;
-sysv4)
- symcode='[DFNSTU]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK '"\
-" {last_section=section; section=\$ 3};"\
-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
- (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-LT_DLSYM_CONST struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_globsym_save_LIBS=$LIBS
- lt_globsym_save_CFLAGS=$CFLAGS
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS=$lt_globsym_save_LIBS
- CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&5
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&5
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
- fi
- else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
- nm_file_list_spec='@'
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-$as_echo_n "checking for sysroot... " >&6; }
-
-# Check whether --with-sysroot was given.
-if test "${with_sysroot+set}" = set; then :
- withval=$with_sysroot;
-else
- with_sysroot=no
-fi
-
-
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
- if test "$GCC" = yes; then
- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
- fi
- ;; #(
- /*)
- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
- ;; #(
- no|'')
- ;; #(
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
-$as_echo "${with_sysroot}" >&6; }
- as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
- ;;
-esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-$as_echo "${lt_sysroot:-no}" >&6; }
-
-
-
-
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
- enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line '$LINENO' "configure"' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- case `/usr/bin/file conftest.o` in
- *x86-64*)
- LD="${LD-ld} -m elf32_x86_64"
- ;;
- *)
- LD="${LD-ld} -m elf_i386"
- ;;
- esac
- ;;
- powerpc64le-*)
- LD="${LD-ld} -m elf32lppclinux"
- ;;
- powerpc64-*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- powerpcle-*)
- LD="${LD-ld} -m elf64lppc"
- ;;
- powerpc-*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- 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
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_cc_needs_belf=yes
-else
- lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- 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
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*)
- case $host in
- i?86-*-solaris*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- sparc*-*-solaris*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
- LD="${LD-ld}_sol2"
- fi
- ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks="$enable_libtool_lock"
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
-set dummy ${ac_tool_prefix}mt; 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_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$MANIFEST_TOOL"; then
- ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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_MANIFEST_TOOL="${ac_tool_prefix}mt"
- $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
-MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
-if test -n "$MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-$as_echo "$MANIFEST_TOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
- ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
- # Extract the first word of "mt", so it can be a program name with args.
-set dummy mt; 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_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_MANIFEST_TOOL"; then
- ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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_MANIFEST_TOOL="mt"
- $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_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
-if test -n "$ac_ct_MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_MANIFEST_TOOL" = x; then
- MANIFEST_TOOL=":"
- 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
- MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
- fi
-else
- MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
-fi
-
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if ${lt_cv_path_mainfest_tool+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_path_mainfest_tool=no
- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
- cat conftest.err >&5
- if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_mainfest_tool=yes
- fi
- rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-$as_echo "$lt_cv_path_mainfest_tool" >&6; }
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
- MANIFEST_TOOL=:
-fi
-
-
-
-
-
-
- case $host_os in
- rhapsody* | darwin*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; 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_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DSYMUTIL"; then
- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # 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_DSYMUTIL="${ac_tool_prefix}dsymutil"
- $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
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
- ac_ct_DSYMUTIL=$DSYMUTIL
- # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; 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_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DSYMUTIL"; then
- ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # 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_DSYMUTIL="dsymutil"
- $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_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DSYMUTIL" = x; then
- DSYMUTIL=":"
- 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
- DSYMUTIL=$ac_ct_DSYMUTIL
- fi
-else
- DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; 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_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NMEDIT"; then
- ac_cv_prog_NMEDIT="$NMEDIT" # 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_NMEDIT="${ac_tool_prefix}nmedit"
- $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
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
- ac_ct_NMEDIT=$NMEDIT
- # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; 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_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_NMEDIT"; then
- ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # 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_NMEDIT="nmedit"
- $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_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_NMEDIT" = x; then
- NMEDIT=":"
- 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
- NMEDIT=$ac_ct_NMEDIT
- fi
-else
- NMEDIT="$ac_cv_prog_NMEDIT"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; 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_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$LIPO"; then
- ac_cv_prog_LIPO="$LIPO" # 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_LIPO="${ac_tool_prefix}lipo"
- $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
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_LIPO"; then
- ac_ct_LIPO=$LIPO
- # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; 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_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_LIPO"; then
- ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # 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_LIPO="lipo"
- $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_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_LIPO" = x; then
- LIPO=":"
- 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
- LIPO=$ac_ct_LIPO
- fi
-else
- LIPO="$ac_cv_prog_LIPO"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; 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_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL"; then
- ac_cv_prog_OTOOL="$OTOOL" # 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_OTOOL="${ac_tool_prefix}otool"
- $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
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
- ac_ct_OTOOL=$OTOOL
- # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; 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_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL"; then
- ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # 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_OTOOL="otool"
- $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_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL" = x; then
- OTOOL=":"
- 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
- OTOOL=$ac_ct_OTOOL
- fi
-else
- OTOOL="$ac_cv_prog_OTOOL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; 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_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL64"; then
- ac_cv_prog_OTOOL64="$OTOOL64" # 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_OTOOL64="${ac_tool_prefix}otool64"
- $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
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
- ac_ct_OTOOL64=$OTOOL64
- # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; 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_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL64"; then
- ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # 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_OTOOL64="otool64"
- $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_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL64" = x; then
- OTOOL64=":"
- 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
- OTOOL64=$ac_ct_OTOOL64
- fi
-else
- OTOOL64="$ac_cv_prog_OTOOL64"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- # If there is a non-empty error log, and "single_module"
- # appears in it, assume the flag caused a linker warning
- if test -s conftest.err && $GREP single_module conftest.err; then
- cat conftest.err >&5
- # Otherwise, if the output was created with a 0 exit code from
- # the compiler, it worked.
- elif test -f libconftest.dylib && test $_lt_result -eq 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&5
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_ld_exported_symbols_list=yes
-else
- lt_cv_ld_exported_symbols_list=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
- echo "$AR cru libconftest.a conftest.o" >&5
- $AR cru libconftest.a conftest.o 2>&5
- echo "$RANLIB libconftest.a" >&5
- $RANLIB libconftest.a 2>&5
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -s conftest.err && $GREP force_load conftest.err; then
- cat conftest.err >&5
- elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&5
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
- case $host_os in
- rhapsody* | darwin1.[012])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- 10.[012]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-
-for ac_header in dlfcn.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-# Set options
-
-
-
- enable_dlopen=no
-
-
- enable_win32_dll=no
-
-
- # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
- enableval=$enable_shared; p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_shared=yes
-fi
-
-
-
-
-
-
-
-
-
- # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
- enableval=$enable_static; p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_static=yes
-fi
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
- withval=$with_pic; lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for lt_pkg in $withval; do
- IFS="$lt_save_ifs"
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-
-
-
-
-
- # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
- enableval=$enable_fast_install; p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_fast_install=yes
-fi
-
-
-
-
-
-
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-test -z "$LN_S" && LN_S="ln -s"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
-
-
-
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/${ac_tool_prefix}file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- else
- MAGIC_CMD=:
- fi
-fi
-
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC="$CC"
-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
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
- case $cc_basename in
- nvcc*)
- lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
- *)
- lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
- esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_rtti_exceptions=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="-fno-rtti -fno-exceptions"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_rtti_exceptions=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
- lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
- :
-fi
-
-fi
-
-
-
-
-
-
- lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-
- if test "$GCC" = yes; then
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_static='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- lt_prog_compiler_pic='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- lt_prog_compiler_static=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
- ;;
-
- interix[3-9]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- lt_prog_compiler_can_build_shared=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic=-Kconform_pic
- fi
- ;;
-
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- lt_prog_compiler_wl='-Xlinker '
- if test -n "$lt_prog_compiler_pic"; then
- lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
- fi
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- lt_prog_compiler_wl='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- else
- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- hpux9* | hpux10* | hpux11*)
- lt_prog_compiler_wl='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- lt_prog_compiler_static='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- lt_prog_compiler_wl='-Wl,'
- # PIC (with -KPIC) is the default.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='--shared'
- lt_prog_compiler_static='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- lt_prog_compiler_wl='-Wl,-Wl,,'
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- ccc*)
- lt_prog_compiler_wl='-Wl,'
- # All Alpha code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-qpic'
- lt_prog_compiler_static='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl=''
- ;;
- *Sun\ F* | *Sun*Fortran*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Qoption ld '
- ;;
- *Sun\ C*)
- # Sun C 5.9
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Wl,'
- ;;
- *Intel*\ [CF]*Compiler*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- *Portland\ Group*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- lt_prog_compiler_wl='-Wl,'
- # All OSF/1 code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- rdos*)
- lt_prog_compiler_static='-non_shared'
- ;;
-
- solaris*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- lt_prog_compiler_wl='-Qoption ld ';;
- *)
- lt_prog_compiler_wl='-Wl,';;
- esac
- ;;
-
- sunos4*)
- lt_prog_compiler_wl='-Qoption ld '
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- lt_prog_compiler_pic='-Kconform_pic'
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- unicos*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_can_build_shared=no
- ;;
-
- uts4*)
- lt_prog_compiler_pic='-pic'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *)
- lt_prog_compiler_can_build_shared=no
- ;;
- esac
- fi
-
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic=
- ;;
- *)
- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
- ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-$as_echo "$lt_cv_prog_compiler_pic" >&6; }
-lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic_works=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_pic_works=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
- case $lt_prog_compiler_pic in
- "" | " "*) ;;
- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
- esac
-else
- lt_prog_compiler_pic=
- lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_static_works=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_static_works=yes
- fi
- else
- lt_cv_prog_compiler_static_works=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
- :
-else
- lt_prog_compiler_static=
-fi
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
- if test "$hard_links" = no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
- runpath_var=
- allow_undefined_flag=
- always_export_symbols=no
- archive_cmds=
- archive_expsym_cmds=
- compiler_needs_object=no
- enable_shared_with_static_runtimes=no
- export_dynamic_flag_spec=
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- hardcode_automatic=no
- hardcode_direct=no
- hardcode_direct_absolute=no
- hardcode_libdir_flag_spec=
- hardcode_libdir_separator=
- hardcode_minus_L=no
- hardcode_shlibpath_var=unsupported
- inherit_rpath=no
- link_all_deplibs=unknown
- module_cmds=
- module_expsym_cmds=
- old_archive_from_new_cmds=
- old_archive_from_expsyms_cmds=
- thread_safe_flag_spec=
- whole_archive_flag_spec=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- include_expsyms=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- linux* | k*bsd*-gnu | gnu*)
- link_all_deplibs=no
- ;;
- esac
-
- ld_shlibs=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test "$with_gnu_ld" = yes; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
- *\ \(GNU\ Binutils\)\ [3-9]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test "$lt_use_gnu_ld_interface" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- export_dynamic_flag_spec='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[3-9]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- export_dynamic_flag_spec='${wl}--export-all-symbols'
- allow_undefined_flag=unsupported
- always_export_symbols=no
- enable_shared_with_static_runtimes=yes
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
- exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- haiku*)
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- link_all_deplibs=yes
- ;;
-
- interix[3-9]*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- whole_archive_flag_spec=
- tmp_sharedflag='--shared' ;;
- xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- ld_shlibs=no
- fi
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
-
- if test "$ld_shlibs" = no; then
- runpath_var=
- hardcode_libdir_flag_spec=
- export_dynamic_flag_spec=
- whole_archive_flag_spec=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
-
- aix[4-9]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds=''
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- file_list_spec='${wl}-f,'
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- link_all_deplibs=no
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- export_dynamic_flag_spec='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- always_export_symbols=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_="/usr/lib:/lib"
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath_
-fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
- allow_undefined_flag="-z nodefs"
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_="/usr/lib:/lib"
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath_
-fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag=' ${wl}-bernotok'
- allow_undefined_flag=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec='$convenience'
- fi
- archive_cmds_need_lc=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- bsdi[45]*)
- export_dynamic_flag_spec=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- case $cc_basename in
- cl*)
- # Native MSVC
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- file_list_spec='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
- enable_shared_with_static_runtimes=yes
- exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
- # Don't use ranlib
- old_postinstall_cmds='chmod 644 $oldlib'
- postlink_cmds='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # Assume MSVC wrapper
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- old_archive_from_new_cmds='true'
- # FIXME: Should let the user specify the lib program.
- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
- enable_shared_with_static_runtimes=yes
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
-
-
- archive_cmds_need_lc=no
- hardcode_direct=no
- hardcode_automatic=yes
- hardcode_shlibpath_var=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
- else
- whole_archive_flag_spec=''
- fi
- link_all_deplibs=yes
- allow_undefined_flag="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-
- else
- ld_shlibs=no
- fi
-
- ;;
-
- dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- export_dynamic_flag_spec='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
-
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler__b=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -b"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler__b=yes
- fi
- else
- lt_cv_prog_compiler__b=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
-
-if test x"$lt_cv_prog_compiler__b" = xyes; then
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-fi
-
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- ;;
- *)
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- # This should be the same for all languages, so no per-tag cache variable.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if ${lt_cv_irix_exported_symbol+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int foo (void) { return 0; }
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_irix_exported_symbol=yes
-else
- lt_cv_irix_exported_symbol=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-$as_echo "$lt_cv_irix_exported_symbol" >&6; }
- if test "$lt_cv_irix_exported_symbol" = yes; then
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
- fi
- else
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- inherit_rpath=yes
- link_all_deplibs=yes
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- newsos6)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_shlibpath_var=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- hardcode_direct_absolute=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- else
- case $host_os in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- ld_shlibs=no
- fi
- ;;
-
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec='-rpath $libdir'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_separator=:
- ;;
-
- solaris*)
- no_undefined_flag=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_shlibpath_var=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- link_all_deplibs=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- reload_cmds='$CC -r -o $output$reload_objs'
- hardcode_direct=no
- ;;
- motorola)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- ;;
-
- sysv4.3*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- export_dynamic_flag_spec='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- no_undefined_flag='${wl}-z,text'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag='${wl}-z,text'
- allow_undefined_flag='${wl}-z,nodefs'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-R,$libdir'
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- export_dynamic_flag_spec='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- *)
- ld_shlibs=no
- ;;
- esac
-
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- export_dynamic_flag_spec='${wl}-Blargedynsym'
- ;;
- esac
- fi
- fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $archive_cmds in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
- (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- then
- lt_cv_archive_cmds_need_lc=no
- else
- lt_cv_archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
- archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
- ;;
- esac
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
- *) lt_sed_strip_eq="s,=/,/,g" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[lt_foo]++; }
- if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's,/\([A-Za-z]:\),\1,g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[4-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- library_names_spec='${libname}.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec="$LIB"
- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[23].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[3-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
- lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
-
-fi
-
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[89] | openbsd2.[89].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
- test -n "$runpath_var" ||
- test "X$hardcode_automatic" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$hardcode_direct" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
- test "$hardcode_minus_L" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink ||
- test "$inherit_rpath" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-
-
-
-
- if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $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 dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=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_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
-
-fi
-
- ;;
-
- *)
- ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
- lt_cv_dlopen="shl_load"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $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 shl_load ();
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_shl_load=yes
-else
- ac_cv_lib_dld_shl_load=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_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
- ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $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 dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=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_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld $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 dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_svld_dlopen=yes
-else
- ac_cv_lib_svld_dlopen=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_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $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 dld_link ();
-int
-main ()
-{
-return dld_link ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_dld_link=yes
-else
- ac_cv_lib_dld_dld_link=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_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self_static=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self_static=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-striplib=
-old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- fi
- ;;
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
- # Report which library types will actually be built
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[4-9]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
-
-
-
-
-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
-
-CC="$lt_save_CC"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ac_config_commands="$ac_config_commands libtool"
-
-
-
-
-# Only expand once:
-
- # libtool
-
-ac_config_headers="$ac_config_headers include/config_liberasurecode.h"
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
-$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
- # Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then :
- enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
-$as_echo "$USE_MAINTAINER_MODE" >&6; }
- if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
-
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-
-# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
- enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=0;;
-esac
-am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if $as_echo 'TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
-
-
-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
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
- if test -n "$CCC"; then
- CXX=$CCC
- else
- if test -n "$ac_tool_prefix"; then
- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
- 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_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CXX"; then
- ac_cv_prog_CXX="$CXX" # 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_CXX="$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
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CXX" && break
- done
-fi
-if test -z "$CXX"; then
- ac_ct_CXX=$CXX
- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-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_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CXX"; then
- ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # 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_CXX="$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_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CXX" && break
-done
-
- if test "x$ac_ct_CXX" = x; then
- CXX="g++"
- 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
- CXX=$ac_ct_CXX
- fi
-fi
-
- fi
-fi
-# 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
-
-{ $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_cxx_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_cxx_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_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GXX=yes
-else
- GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if ${ac_cv_prog_cxx_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_cxx_werror_flag=$ac_cxx_werror_flag
- ac_cxx_werror_flag=yes
- ac_cv_prog_cxx_g=no
- CXXFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_cv_prog_cxx_g=yes
-else
- CXXFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
-else
- ac_cxx_werror_flag=$ac_save_cxx_werror_flag
- CXXFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_cv_prog_cxx_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_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
- if test "$GXX" = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-g"
- fi
-else
- if test "$GXX" = yes; then
- CXXFLAGS="-O2"
- else
- CXXFLAGS=
- fi
-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
-
-depcc="$CXX" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CXX_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CXX_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
- am__fastdepCXX_TRUE=
- am__fastdepCXX_FALSE='#'
-else
- am__fastdepCXX_TRUE='#'
- am__fastdepCXX_FALSE=
-fi
-
-
-
-
-func_stripname_cnf ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-} # func_stripname_cnf
-
- if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
- (test "X$CXX" != "Xg++"))) ; then
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_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; }
-if test -z "$CXXCPP"; then
- if ${ac_cv_prog_CXXCPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CXXCPP needs to be expanded
- for CXXCPP in "$CXX -E" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_cxx_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_cxx_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_cxx_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_CXXCPP=$CXXCPP
-
-fi
- CXXCPP=$ac_cv_prog_CXXCPP
-else
- ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-$as_echo "$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_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_cxx_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_cxx_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 \"$CXXCPP\" 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
-
-else
- _lt_caught_CXX_error=yes
-fi
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-archive_cmds_need_lc_CXX=no
-allow_undefined_flag_CXX=
-always_export_symbols_CXX=no
-archive_expsym_cmds_CXX=
-compiler_needs_object_CXX=no
-export_dynamic_flag_spec_CXX=
-hardcode_direct_CXX=no
-hardcode_direct_absolute_CXX=no
-hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_separator_CXX=
-hardcode_minus_L_CXX=no
-hardcode_shlibpath_var_CXX=unsupported
-hardcode_automatic_CXX=no
-inherit_rpath_CXX=no
-module_cmds_CXX=
-module_expsym_cmds_CXX=
-link_all_deplibs_CXX=unknown
-old_archive_cmds_CXX=$old_archive_cmds
-reload_flag_CXX=$reload_flag
-reload_cmds_CXX=$reload_cmds
-no_undefined_flag_CXX=
-whole_archive_flag_spec_CXX=
-enable_shared_with_static_runtimes_CXX=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-objext_CXX=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="int some_variable = 0;"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
- # save warnings/boilerplate of simple test code
- ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
- ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
- # Allow CC to be a program name with arguments.
- lt_save_CC=$CC
- lt_save_CFLAGS=$CFLAGS
- lt_save_LD=$LD
- lt_save_GCC=$GCC
- GCC=$GXX
- lt_save_with_gnu_ld=$with_gnu_ld
- lt_save_path_LD=$lt_cv_path_LD
- if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
- else
- $as_unset lt_cv_prog_gnu_ld
- fi
- if test -n "${lt_cv_path_LDCXX+set}"; then
- lt_cv_path_LD=$lt_cv_path_LDCXX
- else
- $as_unset lt_cv_path_LD
- fi
- test -z "${LDCXX+set}" || LD=$LDCXX
- CC=${CXX-"c++"}
- CFLAGS=$CXXFLAGS
- compiler=$CC
- compiler_CXX=$CC
- for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
- if test -n "$compiler"; then
- # We don't want -fno-exception when compiling C++ code, so set the
- # no_builtin_flag separately
- if test "$GXX" = yes; then
- lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
- else
- lt_prog_compiler_no_builtin_flag_CXX=
- fi
-
- if test "$GXX" = yes; then
- # Set up default GNU C++ configuration
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
- withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
- # Check if GNU C++ uses GNU ld as the underlying linker, since the
- # archiving commands below assume that GNU ld is being used.
- if test "$with_gnu_ld" = yes; then
- archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
- # If archive_cmds runs LD, not CC, wlarc should be empty
- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
- # investigate it a little bit more. (MM)
- wlarc='${wl}'
-
- # ancient GNU ld didn't support --whole-archive et. al.
- if eval "`$CC -print-prog-name=ld` --help 2>&1" |
- $GREP 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec_CXX=
- fi
- else
- with_gnu_ld=no
- wlarc=
-
- # A generic and very simple default shared library creation
- # command for GNU C++ for the case where it uses the native
- # linker, instead of GNU ld. If possible, this setting should
- # overridden to take advantage of the native linker features on
- # the platform it is being used on.
- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- fi
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- GXX=no
- with_gnu_ld=no
- wlarc=
- fi
-
- # PORTME: fill in a description of your system's C++ link characteristics
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
- ld_shlibs_CXX=yes
- case $host_os in
- aix3*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- aix[4-9]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
- for ld_flag in $LDFLAGS; do
- case $ld_flag in
- *-brtl*)
- aix_use_runtimelinking=yes
- break
- ;;
- esac
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds_CXX=''
- hardcode_direct_CXX=yes
- hardcode_direct_absolute_CXX=yes
- hardcode_libdir_separator_CXX=':'
- link_all_deplibs_CXX=yes
- file_list_spec_CXX='${wl}-f,'
-
- if test "$GXX" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct_CXX=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L_CXX=yes
- hardcode_libdir_flag_spec_CXX='-L$libdir'
- hardcode_libdir_separator_CXX=
- fi
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- export_dynamic_flag_spec_CXX='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to
- # export.
- always_export_symbols_CXX=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag_CXX='-berok'
- # Determine the default libpath from the value encoded in an empty
- # executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath__CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath__CXX"; then
- lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath__CXX"; then
- lt_cv_aix_libpath__CXX="/usr/lib:/lib"
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath__CXX
-fi
-
- hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-
- archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
- allow_undefined_flag_CXX="-z nodefs"
- archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath__CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath__CXX"; then
- lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath__CXX"; then
- lt_cv_aix_libpath__CXX="/usr/lib:/lib"
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath__CXX
-fi
-
- hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag_CXX=' ${wl}-bernotok'
- allow_undefined_flag_CXX=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec_CXX='$convenience'
- fi
- archive_cmds_need_lc_CXX=yes
- # This is similar to how AIX traditionally builds its shared
- # libraries.
- archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag_CXX=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs_CXX=no
- fi
- ;;
-
- chorus*)
- case $cc_basename in
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- case $GXX,$cc_basename in
- ,cl* | no,cl*)
- # Native MSVC
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec_CXX=' '
- allow_undefined_flag_CXX=unsupported
- always_export_symbols_CXX=yes
- file_list_spec_CXX='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'
- enable_shared_with_static_runtimes_CXX=yes
- # Don't use ranlib
- old_postinstall_cmds_CXX='chmod 644 $oldlib'
- postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- func_to_tool_file "$lt_outputfile"~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # g++
- # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec_CXX='-L$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-all-symbols'
- allow_undefined_flag_CXX=unsupported
- always_export_symbols_CXX=no
- enable_shared_with_static_runtimes_CXX=yes
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
- darwin* | rhapsody*)
-
-
- archive_cmds_need_lc_CXX=no
- hardcode_direct_CXX=no
- hardcode_automatic_CXX=yes
- hardcode_shlibpath_var_CXX=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
- else
- whole_archive_flag_spec_CXX=''
- fi
- link_all_deplibs_CXX=yes
- allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
- if test "$lt_cv_apple_cc_single_mod" != "yes"; then
- archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
- archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
- fi
-
- else
- ld_shlibs_CXX=no
- fi
-
- ;;
-
- dgux*)
- case $cc_basename in
- ec++*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- freebsd2.*)
- # C++ shared libraries reported to be fairly broken before
- # switch to ELF
- ld_shlibs_CXX=no
- ;;
-
- freebsd-elf*)
- archive_cmds_need_lc_CXX=no
- ;;
-
- freebsd* | dragonfly*)
- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
- # conventions
- ld_shlibs_CXX=yes
- ;;
-
- haiku*)
- archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- link_all_deplibs_CXX=yes
- ;;
-
- hpux9*)
- hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
- export_dynamic_flag_spec_CXX='${wl}-E'
- hardcode_direct_CXX=yes
- hardcode_minus_L_CXX=yes # Not in the search PATH,
- # but as the default
- # location of the library.
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- aCC*)
- archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
-
- hpux10*|hpux11*)
- if test $with_gnu_ld = no; then
- hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- export_dynamic_flag_spec_CXX='${wl}-E'
- ;;
- esac
- fi
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct_CXX=no
- hardcode_shlibpath_var_CXX=no
- ;;
- *)
- hardcode_direct_CXX=yes
- hardcode_direct_absolute_CXX=yes
- hardcode_minus_L_CXX=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- esac
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- aCC*)
- case $host_cpu in
- hppa*64*)
- archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- if test $with_gnu_ld = no; then
- case $host_cpu in
- hppa*64*)
- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
-
- interix[3-9]*)
- hardcode_direct_CXX=no
- hardcode_shlibpath_var_CXX=no
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- export_dynamic_flag_spec_CXX='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC*)
- # SGI C++
- archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
- # Archives containing C++ object files must be created using
- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
- ;;
- *)
- if test "$GXX" = yes; then
- if test "$with_gnu_ld" = no; then
- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
- fi
- fi
- link_all_deplibs_CXX=yes
- ;;
- esac
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
- inherit_rpath_CXX=yes
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
- archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
- ;;
- icpc* | ecpc* )
- # Intel C++
- with_gnu_ld=yes
- # version 8.0 and above of icpc choke on multiply defined symbols
- # if we add $predep_objects and $postdep_objects, however 7.1 and
- # earlier do not add the objects themselves.
- case `$CC -V 2>&1` in
- *"Version 7."*)
- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 8.0 or newer
- tmp_idyn=
- case $host_cpu in
- ia64*) tmp_idyn=' -i_dynamic';;
- esac
- archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
- archive_cmds_need_lc_CXX=no
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
- whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- case `$CC -V` in
- *pgCC\ [1-5].* | *pgcpp\ [1-5].*)
- prelink_cmds_CXX='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
- compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
- old_archive_cmds_CXX='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
- $RANLIB $oldlib'
- archive_cmds_CXX='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- archive_expsym_cmds_CXX='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- *) # Version 6 and above use weak symbols
- archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- esac
-
- hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
- whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- ;;
- cxx*)
- # Compaq C++
- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec_CXX='-rpath $libdir'
- hardcode_libdir_separator_CXX=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
- ;;
- xl* | mpixl* | bgxl*)
- # IBM XL 8.0 on PPC, with GNU ld
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
- archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- no_undefined_flag_CXX=' -zdefs'
- archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
- hardcode_libdir_flag_spec_CXX='-R$libdir'
- whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object_CXX=yes
-
- # Not sure whether something based on
- # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
- # would be better.
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
- ;;
- esac
- ;;
- esac
- ;;
-
- lynxos*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
-
- m88k*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
-
- mvs*)
- case $cc_basename in
- cxx*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
- wlarc=
- hardcode_libdir_flag_spec_CXX='-R$libdir'
- hardcode_direct_CXX=yes
- hardcode_shlibpath_var_CXX=no
- fi
- # Workaround some broken pre-1.5 toolchains
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
- ;;
-
- *nto* | *qnx*)
- ld_shlibs_CXX=yes
- ;;
-
- openbsd2*)
- # C++ shared libraries are fairly broken
- ld_shlibs_CXX=no
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct_CXX=yes
- hardcode_shlibpath_var_CXX=no
- hardcode_direct_absolute_CXX=yes
- archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
- export_dynamic_flag_spec_CXX='${wl}-E'
- whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- fi
- output_verbose_link_cmd=func_echo_all
- else
- ld_shlibs_CXX=no
- fi
- ;;
-
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- hardcode_libdir_separator_CXX=:
-
- # Archives containing C++ object files must be created using
- # the KAI C++ compiler.
- case $host in
- osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
- *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
- esac
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- cxx*)
- case $host in
- osf3*)
- allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- ;;
- *)
- allow_undefined_flag_CXX=' -expect_unresolved \*'
- archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
- echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
- $RM $lib.exp'
- hardcode_libdir_flag_spec_CXX='-rpath $libdir'
- ;;
- esac
-
- hardcode_libdir_separator_CXX=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
- case $host in
- osf3*)
- archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- *)
- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- esac
-
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
-
- psos*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
-
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- lcc*)
- # Lucid
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- archive_cmds_need_lc_CXX=yes
- no_undefined_flag_CXX=' -zdefs'
- archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- hardcode_libdir_flag_spec_CXX='-R$libdir'
- hardcode_shlibpath_var_CXX=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
- ;;
- esac
- link_all_deplibs_CXX=yes
-
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
- ;;
- gcx*)
- # Green Hills C++ Compiler
- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
- # The C++ compiler must be used to create the archive.
- old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
- ;;
- *)
- # GNU C++ compiler with Solaris linker
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
- if $CC --version | $GREP -v '^2\.7' > /dev/null; then
- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- else
- # g++ 2.7 appears to require `-G' NOT `-shared' on this
- # platform.
- archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- fi
-
- hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- ;;
- esac
- fi
- ;;
- esac
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- no_undefined_flag_CXX='${wl}-z,text'
- archive_cmds_need_lc_CXX=no
- hardcode_shlibpath_var_CXX=no
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag_CXX='${wl}-z,text'
- allow_undefined_flag_CXX='${wl}-z,nodefs'
- archive_cmds_need_lc_CXX=no
- hardcode_shlibpath_var_CXX=no
- hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
- hardcode_libdir_separator_CXX=':'
- link_all_deplibs_CXX=yes
- export_dynamic_flag_spec_CXX='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~
- '"$old_archive_cmds_CXX"
- reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~
- '"$reload_cmds_CXX"
- ;;
- *)
- archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- vxworks*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
-
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
- test "$ld_shlibs_CXX" = no && can_build_shared=no
-
- GCC_CXX="$GXX"
- LD_CXX="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- # Dependencies to place before and after the object being linked:
-predep_objects_CXX=
-postdep_objects_CXX=
-predeps_CXX=
-postdeps_CXX=
-compiler_lib_search_path_CXX=
-
-cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-_LT_EOF
-
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- for p in `eval "$output_verbose_link_cmd"`; do
- case ${prev}${p} in
-
- -L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
- # Remove the space.
- if test $p = "-L" ||
- test $p = "-R"; then
- prev=$p
- continue
- fi
-
- # Expand the sysroot to ease extracting the directories later.
- if test -z "$prev"; then
- case $p in
- -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
- -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
- -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
- esac
- fi
- case $p in
- =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
- esac
- if test "$pre_test_object_deps_done" = no; then
- case ${prev} in
- -L | -R)
- # Internal compiler library paths should come after those
- # provided the user. The postdeps already come after the
- # user supplied libs so there is no need to process them.
- if test -z "$compiler_lib_search_path_CXX"; then
- compiler_lib_search_path_CXX="${prev}${p}"
- else
- compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$postdeps_CXX"; then
- postdeps_CXX="${prev}${p}"
- else
- postdeps_CXX="${postdeps_CXX} ${prev}${p}"
- fi
- fi
- prev=
- ;;
-
- *.lto.$objext) ;; # Ignore GCC LTO objects
- *.$objext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- if test -z "$predep_objects_CXX"; then
- predep_objects_CXX="$p"
- else
- predep_objects_CXX="$predep_objects_CXX $p"
- fi
- else
- if test -z "$postdep_objects_CXX"; then
- postdep_objects_CXX="$p"
- else
- postdep_objects_CXX="$postdep_objects_CXX $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling CXX test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-case $host_os in
-interix[3-9]*)
- # Interix 3.5 installs completely hosed .la files for C++, so rather than
- # hack all around it, let's just trust "g++" to DTRT.
- predep_objects_CXX=
- postdep_objects_CXX=
- postdeps_CXX=
- ;;
-
-linux*)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
-
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- if test "$solaris_use_stlport4" != yes; then
- postdeps_CXX='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-
-solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- # Adding this requires a known-good setup of shared libraries for
- # Sun compiler versions before 5.6, else PIC objects from an old
- # archive will be linked into the output, leading to subtle bugs.
- if test "$solaris_use_stlport4" != yes; then
- postdeps_CXX='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-esac
-
-
-case " $postdeps_CXX " in
-*" -lc "*) archive_cmds_need_lc_CXX=no ;;
-esac
- compiler_lib_search_dirs_CXX=
-if test -n "${compiler_lib_search_path_CXX}"; then
- compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- lt_prog_compiler_wl_CXX=
-lt_prog_compiler_pic_CXX=
-lt_prog_compiler_static_CXX=
-
-
- # C++ specific cases for pic, static, wl, etc.
- if test "$GXX" = yes; then
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static_CXX='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
- ;;
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic_CXX='-fno-common'
- ;;
- *djgpp*)
- # DJGPP does not support shared libraries at all
- lt_prog_compiler_pic_CXX=
- ;;
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- lt_prog_compiler_static_CXX=
- ;;
- interix[3-9]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic_CXX=-Kconform_pic
- fi
- ;;
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- ;;
- *)
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- esac
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic_CXX='-fPIC -shared'
- ;;
- *)
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- esac
- else
- case $host_os in
- aix[4-9]*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static_CXX='-Bstatic'
- else
- lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- chorus*)
- case $cc_basename in
- cxch68*)
- # Green Hills C++ Compiler
- # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
- ;;
- esac
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
- ;;
- dgux*)
- case $cc_basename in
- ec++*)
- lt_prog_compiler_pic_CXX='-KPIC'
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- lt_prog_compiler_pic_CXX='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- freebsd* | dragonfly*)
- # FreeBSD uses GNU C++
- ;;
- hpux9* | hpux10* | hpux11*)
- case $cc_basename in
- CC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
- if test "$host_cpu" != ia64; then
- lt_prog_compiler_pic_CXX='+Z'
- fi
- ;;
- aCC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic_CXX='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- interix*)
- # This is c89, which is MS Visual C++ (no shared libs)
- # Anyone wants to do a port?
- ;;
- irix5* | irix6* | nonstopux*)
- case $cc_basename in
- CC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='-non_shared'
- # CC pic flag -KPIC is the default.
- ;;
- *)
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- KCC*)
- # KAI C++ Compiler
- lt_prog_compiler_wl_CXX='--backend -Wl,'
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- ecpc* )
- # old Intel C++ for x86_64 which still supported -KPIC.
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-static'
- ;;
- icpc* )
- # Intel C++, used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-fPIC'
- lt_prog_compiler_static_CXX='-static'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-fpic'
- lt_prog_compiler_static_CXX='-Bstatic'
- ;;
- cxx*)
- # Compaq C++
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- lt_prog_compiler_pic_CXX=
- lt_prog_compiler_static_CXX='-non_shared'
- ;;
- xlc* | xlC* | bgxl[cC]* | mpixl[cC]*)
- # IBM XL 8.0, 9.0 on PPC and BlueGene
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-qpic'
- lt_prog_compiler_static_CXX='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-Bstatic'
- lt_prog_compiler_wl_CXX='-Qoption ld '
- ;;
- esac
- ;;
- esac
- ;;
- lynxos*)
- ;;
- m88k*)
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- lt_prog_compiler_pic_CXX='-W c,exportall'
- ;;
- *)
- ;;
- esac
- ;;
- netbsd* | netbsdelf*-gnu)
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic_CXX='-fPIC -shared'
- ;;
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- lt_prog_compiler_wl_CXX='--backend -Wl,'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- lt_prog_compiler_pic_CXX='-pic'
- ;;
- cxx*)
- # Digital/Compaq C++
- lt_prog_compiler_wl_CXX='-Wl,'
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- lt_prog_compiler_pic_CXX=
- lt_prog_compiler_static_CXX='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- psos*)
- ;;
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-Bstatic'
- lt_prog_compiler_wl_CXX='-Qoption ld '
- ;;
- gcx*)
- # Green Hills C++ Compiler
- lt_prog_compiler_pic_CXX='-PIC'
- ;;
- *)
- ;;
- esac
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- lt_prog_compiler_pic_CXX='-pic'
- lt_prog_compiler_static_CXX='-Bstatic'
- ;;
- lcc*)
- # Lucid
- lt_prog_compiler_pic_CXX='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- case $cc_basename in
- CC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-Bstatic'
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- lt_prog_compiler_pic_CXX='-KPIC'
- ;;
- *)
- ;;
- esac
- ;;
- vxworks*)
- ;;
- *)
- lt_prog_compiler_can_build_shared_CXX=no
- ;;
- esac
- fi
-
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic_CXX=
- ;;
- *)
- lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
- ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; }
-lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic_works_CXX=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_pic_works_CXX=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
- case $lt_prog_compiler_pic_CXX in
- "" | " "*) ;;
- *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
- esac
-else
- lt_prog_compiler_pic_CXX=
- lt_prog_compiler_can_build_shared_CXX=no
-fi
-
-fi
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_static_works_CXX=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_static_works_CXX=yes
- fi
- else
- lt_cv_prog_compiler_static_works_CXX=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
- :
-else
- lt_prog_compiler_static_CXX=
-fi
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o_CXX=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o_CXX=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o_CXX=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o_CXX=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
- if test "$hard_links" = no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
- case $host_os in
- aix[4-9]*)
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global defined
- # symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- ;;
- pw32*)
- export_symbols_cmds_CXX="$ltdll_cmds"
- ;;
- cygwin* | mingw* | cegcc*)
- case $cc_basename in
- cl*)
- exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- ;;
- *)
- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
- exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | gnu*)
- link_all_deplibs_CXX=no
- ;;
- *)
- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-with_gnu_ld_CXX=$with_gnu_ld
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_CXX" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc_CXX=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $archive_cmds_CXX in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl_CXX
- pic_flag=$lt_prog_compiler_pic_CXX
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
- allow_undefined_flag_CXX=
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
- (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- then
- lt_cv_archive_cmds_need_lc_CXX=no
- else
- lt_cv_archive_cmds_need_lc_CXX=yes
- fi
- allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; }
- archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
- ;;
- esac
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[4-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- library_names_spec='${libname}.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec="$LIB"
- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[23].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[3-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
- lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
-
-fi
-
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[89] | openbsd2.[89].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action_CXX=
-if test -n "$hardcode_libdir_flag_spec_CXX" ||
- test -n "$runpath_var_CXX" ||
- test "X$hardcode_automatic_CXX" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$hardcode_direct_CXX" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
- test "$hardcode_minus_L_CXX" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action_CXX=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action_CXX=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action_CXX=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
-$as_echo "$hardcode_action_CXX" >&6; }
-
-if test "$hardcode_action_CXX" = relink ||
- test "$inherit_rpath_CXX" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-
-
-
-
-
- fi # test -n "$compiler"
-
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
- LDCXX=$LD
- LD=$lt_save_LD
- GCC=$lt_save_GCC
- with_gnu_ld=$lt_save_with_gnu_ld
- lt_cv_path_LDCXX=$lt_cv_path_LD
- lt_cv_path_LD=$lt_save_path_LD
- lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
- lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-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 whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-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 x86 cpuid output" >&5
-$as_echo_n "checking for x86 cpuid output... " >&6; }
-if ${ax_cv_gcc_x86_cpuid_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ax_cv_gcc_x86_cpuid_=unknown
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = , eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ax_cv_gcc_x86_cpuid_=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- ax_cv_gcc_x86_cpuid_=unknown; rm -f conftest_cpuid
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86-AVX xgetbv output" >&5
-$as_echo_n "checking for x86-AVX xgetbv output... " >&6; }
-if ${ax_cv_gcc_x86_avx_xgetbv_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ax_cv_gcc_x86_avx_xgetbv_=unknown
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = , eax, edx;
- FILE *f;
- /* Opcodes for xgetbv */
- __asm__(".byte 0x0f, 0x01, 0xd0"
- : "=a" (eax), "=d" (edx)
- : "c" (op));
- f = fopen("conftest_xgetbv", "w"); if (!f) return 1;
- fprintf(f, "%x:%x\n", eax, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ax_cv_gcc_x86_avx_xgetbv_=`cat conftest_xgetbv`; rm -f conftest_xgetbv
-else
- ax_cv_gcc_x86_avx_xgetbv_=unknown; rm -f conftest_xgetbv
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_avx_xgetbv_" >&5
-$as_echo "$ax_cv_gcc_x86_avx_xgetbv_" >&6; }
-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
-
-
-
-
-
- case $host_cpu in
- powerpc*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether altivec is supported" >&5
-$as_echo_n "checking whether altivec is supported... " >&6; }
-if ${ax_cv_have_altivec_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- if test `/usr/sbin/sysctl -a 2>/dev/null| grep -c hw.optional.altivec` != 0; then
- if test `/usr/sbin/sysctl -n hw.optional.altivec` = 1; then
- ax_cv_have_altivec_ext=yes
- fi
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_altivec_ext" >&5
-$as_echo "$ax_cv_have_altivec_ext" >&6; }
-
- if test "$ax_cv_have_altivec_ext" = yes; then
-
-$as_echo "#define HAVE_ALTIVEC /**/" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -faltivec" >&5
-$as_echo_n "checking whether C compiler accepts -faltivec... " >&6; }
-if ${ax_cv_check_cflags___faltivec+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -faltivec"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___faltivec=yes
-else
- ax_cv_check_cflags___faltivec=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___faltivec" >&5
-$as_echo "$ax_cv_check_cflags___faltivec" >&6; }
-if test x"$ax_cv_check_cflags___faltivec" = xyes; then :
- SIMD_FLAGS="$SIMD_FLAGS -faltivec"
-else
- :
-fi
-
- fi
- ;;
-
-
- i[3456]86*|x86_64*|amd64*)
-
-
-
-
-
-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 x86 cpuid 0x00000001 output" >&5
-$as_echo_n "checking for x86 cpuid 0x00000001 output... " >&6; }
-if ${ax_cv_gcc_x86_cpuid_0x00000001+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ax_cv_gcc_x86_cpuid_0x00000001=unknown
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 0x00000001, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ax_cv_gcc_x86_cpuid_0x00000001=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- ax_cv_gcc_x86_cpuid_0x00000001=unknown; rm -f conftest_cpuid
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0x00000001" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_0x00000001" >&6; }
-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
-
-
- ecx=`echo $ax_cv_gcc_x86_cpuid_0x00000001 | cut -d ":" -f 3`
- edx=`echo $ax_cv_gcc_x86_cpuid_0x00000001 | cut -d ":" -f 4`
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mmx is supported" >&5
-$as_echo_n "checking whether mmx is supported... " >&6; }
-if ${ax_cv_have_mmx_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_mmx_ext=no
- if test "$((0x$edx>>23&0x01))" = 1; then
- ax_cv_have_mmx_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_mmx_ext" >&5
-$as_echo "$ax_cv_have_mmx_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse is supported" >&5
-$as_echo_n "checking whether sse is supported... " >&6; }
-if ${ax_cv_have_sse_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse_ext=no
- if test "$((0x$edx>>25&0x01))" = 1; then
- ax_cv_have_sse_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse_ext" >&5
-$as_echo "$ax_cv_have_sse_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse2 is supported" >&5
-$as_echo_n "checking whether sse2 is supported... " >&6; }
-if ${ax_cv_have_sse2_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse2_ext=no
- if test "$((0x$edx>>26&0x01))" = 1; then
- ax_cv_have_sse2_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse2_ext" >&5
-$as_echo "$ax_cv_have_sse2_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse3 is supported" >&5
-$as_echo_n "checking whether sse3 is supported... " >&6; }
-if ${ax_cv_have_sse3_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse3_ext=no
- if test "$((0x$ecx&0x01))" = 1; then
- ax_cv_have_sse3_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse3_ext" >&5
-$as_echo "$ax_cv_have_sse3_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ssse3 is supported" >&5
-$as_echo_n "checking whether ssse3 is supported... " >&6; }
-if ${ax_cv_have_ssse3_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_ssse3_ext=no
- if test "$((0x$ecx>>9&0x01))" = 1; then
- ax_cv_have_ssse3_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_ssse3_ext" >&5
-$as_echo "$ax_cv_have_ssse3_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse4.1 is supported" >&5
-$as_echo_n "checking whether sse4.1 is supported... " >&6; }
-if ${ax_cv_have_sse41_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse41_ext=no
- if test "$((0x$ecx>>19&0x01))" = 1; then
- ax_cv_have_sse41_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse41_ext" >&5
-$as_echo "$ax_cv_have_sse41_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse4.2 is supported" >&5
-$as_echo_n "checking whether sse4.2 is supported... " >&6; }
-if ${ax_cv_have_sse42_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_sse42_ext=no
- if test "$((0x$ecx>>20&0x01))" = 1; then
- ax_cv_have_sse42_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse42_ext" >&5
-$as_echo "$ax_cv_have_sse42_ext" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether avx is supported by processor" >&5
-$as_echo_n "checking whether avx is supported by processor... " >&6; }
-if ${ax_cv_have_avx_cpu_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_avx_cpu_ext=no
- if test "$((0x$ecx>>28&0x01))" = 1; then
- ax_cv_have_avx_cpu_ext=yes
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_avx_cpu_ext" >&5
-$as_echo "$ax_cv_have_avx_cpu_ext" >&6; }
-
- if test x"$ax_cv_have_avx_cpu_ext" = x"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 for x86-AVX xgetbv 0x00000000 output" >&5
-$as_echo_n "checking for x86-AVX xgetbv 0x00000000 output... " >&6; }
-if ${ax_cv_gcc_x86_avx_xgetbv_0x00000000+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ax_cv_gcc_x86_avx_xgetbv_0x00000000=unknown
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 0x00000000, eax, edx;
- FILE *f;
- /* Opcodes for xgetbv */
- __asm__(".byte 0x0f, 0x01, 0xd0"
- : "=a" (eax), "=d" (edx)
- : "c" (op));
- f = fopen("conftest_xgetbv", "w"); if (!f) return 1;
- fprintf(f, "%x:%x\n", eax, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ax_cv_gcc_x86_avx_xgetbv_0x00000000=`cat conftest_xgetbv`; rm -f conftest_xgetbv
-else
- ax_cv_gcc_x86_avx_xgetbv_0x00000000=unknown; rm -f conftest_xgetbv
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_avx_xgetbv_0x00000000" >&5
-$as_echo "$ax_cv_gcc_x86_avx_xgetbv_0x00000000" >&6; }
-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
-
-
-
- xgetbv_eax="0"
- if test x"$ax_cv_gcc_x86_avx_xgetbv_0x00000000" != x"unknown"; then
- xgetbv_eax=`echo $ax_cv_gcc_x86_avx_xgetbv_0x00000000 | cut -d ":" -f 1`
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether avx is supported by operating system" >&5
-$as_echo_n "checking whether avx is supported by operating system... " >&6; }
-if ${ax_cv_have_avx_ext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_cv_have_avx_ext=no
-
- if test "$((0x$ecx>>27&0x01))" = 1; then
- if test "$((0x$xgetbv_eax&0x6))" = 6; then
- ax_cv_have_avx_ext=yes
- fi
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_avx_ext" >&5
-$as_echo "$ax_cv_have_avx_ext" >&6; }
- if test x"$ax_cv_have_avx_ext" = x"no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports AVX, but your operating system doesn't" >&5
-$as_echo "$as_me: WARNING: Your processor supports AVX, but your operating system doesn't" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_mmx_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mmmx" >&5
-$as_echo_n "checking whether C compiler accepts -mmmx... " >&6; }
-if ${ax_cv_check_cflags___mmmx+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -mmmx"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___mmmx=yes
-else
- ax_cv_check_cflags___mmmx=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mmmx" >&5
-$as_echo "$ax_cv_check_cflags___mmmx" >&6; }
-if test x"$ax_cv_check_cflags___mmmx" = xyes; then :
- ax_cv_support_mmx_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_mmx_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mmmx"
-
-$as_echo "#define HAVE_MMX /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports mmx instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports mmx instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ac_cv_sizeof_long" -eq 8; then
- SIMD_FLAGS="$SIMD_FLAGS -DARCH_64"
- fi
-
- if test "$ax_cv_have_sse_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse" >&5
-$as_echo_n "checking whether C compiler accepts -msse... " >&6; }
-if ${ax_cv_check_cflags___msse+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse=yes
-else
- ax_cv_check_cflags___msse=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse" >&5
-$as_echo "$ax_cv_check_cflags___msse" >&6; }
-if test x"$ax_cv_check_cflags___msse" = xyes; then :
- ax_cv_support_sse_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse -DINTEL_SSE"
-
-$as_echo "#define HAVE_SSE /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_sse2_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse2" >&5
-$as_echo_n "checking whether C compiler accepts -msse2... " >&6; }
-if ${ax_cv_check_cflags___msse2+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse2"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse2=yes
-else
- ax_cv_check_cflags___msse2=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse2" >&5
-$as_echo "$ax_cv_check_cflags___msse2" >&6; }
-if test x"$ax_cv_check_cflags___msse2" = xyes; then :
- ax_cv_support_sse2_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse2_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse2 -DINTEL_SSE2"
-
-$as_echo "#define HAVE_SSE2 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse2 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse2 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_sse3_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse3" >&5
-$as_echo_n "checking whether C compiler accepts -msse3... " >&6; }
-if ${ax_cv_check_cflags___msse3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse3"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse3=yes
-else
- ax_cv_check_cflags___msse3=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse3" >&5
-$as_echo "$ax_cv_check_cflags___msse3" >&6; }
-if test x"$ax_cv_check_cflags___msse3" = xyes; then :
- ax_cv_support_sse3_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse3_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse3 -DINTEL_SSE3"
-
-$as_echo "#define HAVE_SSE3 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse3 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse3 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_ssse3_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mssse3" >&5
-$as_echo_n "checking whether C compiler accepts -mssse3... " >&6; }
-if ${ax_cv_check_cflags___mssse3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -mssse3"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___mssse3=yes
-else
- ax_cv_check_cflags___mssse3=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mssse3" >&5
-$as_echo "$ax_cv_check_cflags___mssse3" >&6; }
-if test x"$ax_cv_check_cflags___mssse3" = xyes; then :
- ax_cv_support_ssse3_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_ssse3_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mssse3"
-
-$as_echo "#define HAVE_SSSE3 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports ssse3 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports ssse3 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_sse41_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse4.1" >&5
-$as_echo_n "checking whether C compiler accepts -msse4.1... " >&6; }
-if ${ax_cv_check_cflags___msse4_1+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse4.1"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse4_1=yes
-else
- ax_cv_check_cflags___msse4_1=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse4_1" >&5
-$as_echo "$ax_cv_check_cflags___msse4_1" >&6; }
-if test x"$ax_cv_check_cflags___msse4_1" = xyes; then :
- ax_cv_support_sse41_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse41_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse4.1 -DINTEL_SSE4"
-
-$as_echo "#define HAVE_SSE4_1 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse4.1 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse4.1 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_sse42_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse4.2" >&5
-$as_echo_n "checking whether C compiler accepts -msse4.2... " >&6; }
-if ${ax_cv_check_cflags___msse4_2+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -msse4.2"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___msse4_2=yes
-else
- ax_cv_check_cflags___msse4_2=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse4_2" >&5
-$as_echo "$ax_cv_check_cflags___msse4_2" >&6; }
-if test x"$ax_cv_check_cflags___msse4_2" = xyes; then :
- ax_cv_support_sse42_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_sse42_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse4.2 -DINTEL_SSE4"
-
-$as_echo "#define HAVE_SSE4_2 /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse4.2 instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports sse4.2 instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- if test "$ax_cv_have_avx_ext" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx" >&5
-$as_echo_n "checking whether C compiler accepts -mavx... " >&6; }
-if ${ax_cv_check_cflags___mavx+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- ax_check_save_flags=$CFLAGS
- CFLAGS="$CFLAGS -mavx"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ax_cv_check_cflags___mavx=yes
-else
- ax_cv_check_cflags___mavx=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_check_save_flags
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx" >&5
-$as_echo "$ax_cv_check_cflags___mavx" >&6; }
-if test x"$ax_cv_check_cflags___mavx" = xyes; then :
- ax_cv_support_avx_ext=yes
-else
- :
-fi
-
- if test x"$ax_cv_support_avx_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mavx"
-
-$as_echo "#define HAVE_AVX /**/" >>confdefs.h
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports avx instructions but not your compiler, can you try another compiler?" >&5
-$as_echo "$as_me: WARNING: Your processor supports avx instructions but not your compiler, can you try another compiler?" >&2;}
- fi
- fi
-
- ;;
- esac
-
-
-
-
-################################################################################
-# System Headers
-################################################################################
-{ $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
-
-for ac_header in sys/types.h stdio.h stdlib.h stddef.h stdarg.h \
- malloc.h memory.h string.h strings.h inttypes.h \
- stdint.h ctype.h math.h iconv.h signal.h dlfcn.h \
- pthread.h unistd.h limits.h errno.h syslog.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$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
-
-for ac_func in malloc calloc realloc free openlog
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-#################################################################################
-# Debug/coverage Options
-#################################################################################
-# Check whether --enable-werror was given.
-if test "${enable_werror+set}" = set; then :
- enableval=$enable_werror; case "${enableval}" in
- yes) werror=true ;;
- no) werror=false ;;
- *) as_fn_error $? "bad value ${enableval} for --disable-werror" "$LINENO" 5 ;;
-esac
-else
- werror=true
-fi
-
-if test x$werror = xtrue ; then
- werror_flag="-Werror"
-else
- werror_flag=""
-fi
-
-# Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then :
- enableval=$enable_debug; case "${enableval}" in
- yes) debug=true ;;
- no) debug=false ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;;
-esac
-else
- debug=false
-fi
-
-if test x$debug = xtrue ; then
- DEBUG=1
- CXXFLAGS=""
- CFLAGS="-O0 -ggdb -g3 ${werror_flag} -D_GNU_SOURCE=1 -Wall -pedantic -std=c99"
-else
- DEBUG=0
- CXXFLAGS=""
- CFLAGS="-O2 -g ${werror_flag} -D_GNU_SOURCE=1 -Wall -pedantic -std=c99"
-fi
-
-# Check whether --enable-gcov was given.
-if test "${enable_gcov+set}" = set; then :
- enableval=$enable_gcov; case "${enableval}" in
- yes) gcov=true ;;
- no) gcov=false ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-gcov" "$LINENO" 5 ;;
-esac
-else
- gcov=false
-fi
-
-if test x$gcov = xtrue ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lgcov" >&5
-$as_echo_n "checking for main in -lgcov... " >&6; }
-if ${ac_cv_lib_gcov_main+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lgcov $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
-int
-main ()
-{
-return main ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_gcov_main=yes
-else
- ac_cv_lib_gcov_main=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_gcov_main" >&5
-$as_echo "$ac_cv_lib_gcov_main" >&6; }
-if test "x$ac_cv_lib_gcov_main" = xyes; then :
-
- GCOV_FLAGS="-fprofile-arcs -ftest-coverage"
- GCOV_LDFLAGS="-lgcov"
- CXXFLAGS=""
- CFLAGS=""
-
-else
-
- as_fn_error $? "failed to locate gcov library" "$LINENO" 5
-
-fi
-
-fi
-
-
-
-
-
-
-#################################################################################
-# Doxygen Documentation
-#################################################################################
-# Extract the first word of "doxygen", so it can be a program name with args.
-set dummy doxygen; 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_DOXYGEN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DOXYGEN"; then
- ac_cv_prog_DOXYGEN="$DOXYGEN" # 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_DOXYGEN="true"
- $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
-
- test -z "$ac_cv_prog_DOXYGEN" && ac_cv_prog_DOXYGEN="false"
-fi
-fi
-DOXYGEN=$ac_cv_prog_DOXYGEN
-if test -n "$DOXYGEN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5
-$as_echo "$DOXYGEN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- if $DOXYGEN; then
- HAVE_DOXYGEN_TRUE=
- HAVE_DOXYGEN_FALSE='#'
-else
- HAVE_DOXYGEN_TRUE='#'
- HAVE_DOXYGEN_FALSE=
-fi
-
-
-
-# Check whether --enable-doxygen was given.
-if test "${enable_doxygen+set}" = set; then :
- enableval=$enable_doxygen; enable_doxygen="$enableval"
-else
- enable_doxygen=auto
-fi
-
-
-if test x$enable_doxygen = xauto ; then
- if test x$DOXYGEN = xtrue ; then
- enable_doxygen=yes
- else
- enable_doxygen=no
- fi
-fi
-
- if test x$enable_doxygen = xyes; then
- ENABLE_DOXYGEN_TRUE=
- ENABLE_DOXYGEN_FALSE='#'
-else
- ENABLE_DOXYGEN_TRUE='#'
- ENABLE_DOXYGEN_FALSE=
-fi
-
-
-################################################################################
-# Output Files
-################################################################################
-ac_config_files="$ac_config_files src/builtin/null_code/Makefile src/builtin/xor_codes/Makefile src/Makefile test/Makefile doc/Makefile Makefile erasurecode.pc Xorcode.pc"
-
-
- if test -n "$DOXYGEN"; then
- HAVE_DOXYGEN_TRUE=
- HAVE_DOXYGEN_FALSE='#'
-else
- HAVE_DOXYGEN_TRUE='#'
- HAVE_DOXYGEN_FALSE=
-fi
-
-if test -z "$HAVE_DOXYGEN_TRUE"; then :
- ac_config_files="$ac_config_files doc/doxygen.cfg"
-
-fi
-
-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}'
-
-DEFS=-DHAVE_CONFIG_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
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
-$as_echo_n "checking that generated files are newer than configure... " >&6; }
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
-$as_echo "done" >&6; }
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- as_fn_error $? "conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
- if test -n "$EXEEXT"; then
- am__EXEEXT_TRUE=
- am__EXEEXT_FALSE='#'
-else
- am__EXEEXT_TRUE='#'
- am__EXEEXT_FALSE=
-fi
-
-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
- as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_DOXYGEN_TRUE}" && test -z "${HAVE_DOXYGEN_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_DOXYGEN\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${ENABLE_DOXYGEN_TRUE}" && test -z "${ENABLE_DOXYGEN_FALSE}"; then
- as_fn_error $? "conditional \"ENABLE_DOXYGEN\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${HAVE_DOXYGEN_TRUE}" && test -z "${HAVE_DOXYGEN_FALSE}"; then
- as_fn_error $? "conditional \"HAVE_DOXYGEN\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-: "${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 liberasurecode $as_me 0.9.10, 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
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_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
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to the package provider."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-liberasurecode config.status 0.9.10
-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'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-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;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_HEADERS " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
- --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
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
-enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
-PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
-host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
-host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
-host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
-build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
-build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
-build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
-SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
-Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
-GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
-EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
-FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
-LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
-NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
-LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
-exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
-file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
-want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
-archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
-STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
-lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
-CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
-compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
-GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
-nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
-lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
-objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
-need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
-MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
-LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
-libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
-postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
-version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
-install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
-striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'
-predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'
-postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'
-predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'
-postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'
-LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`'
-reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`'
-reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
-GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
-inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
-always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
-include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
-prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
-predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`'
-postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`'
-predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`'
-postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in SHELL \
-ECHO \
-PATH_SEPARATOR \
-SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-OBJDUMP \
-deplibs_check_method \
-file_magic_cmd \
-file_magic_glob \
-want_nocaseglob \
-DLLTOOL \
-sharedlib_from_linklib_cmd \
-AR \
-AR_FLAGS \
-archiver_list_spec \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-nm_file_list_spec \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_pic \
-lt_prog_compiler_wl \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-MANIFEST_TOOL \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_separator \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-install_override_mode \
-finish_eval \
-old_striplib \
-striplib \
-compiler_lib_search_dirs \
-predep_objects \
-postdep_objects \
-predeps \
-postdeps \
-compiler_lib_search_path \
-LD_CXX \
-reload_flag_CXX \
-compiler_CXX \
-lt_prog_compiler_no_builtin_flag_CXX \
-lt_prog_compiler_pic_CXX \
-lt_prog_compiler_wl_CXX \
-lt_prog_compiler_static_CXX \
-lt_cv_prog_compiler_c_o_CXX \
-export_dynamic_flag_spec_CXX \
-whole_archive_flag_spec_CXX \
-compiler_needs_object_CXX \
-with_gnu_ld_CXX \
-allow_undefined_flag_CXX \
-no_undefined_flag_CXX \
-hardcode_libdir_flag_spec_CXX \
-hardcode_libdir_separator_CXX \
-exclude_expsyms_CXX \
-include_expsyms_CXX \
-file_list_spec_CXX \
-compiler_lib_search_dirs_CXX \
-predep_objects_CXX \
-postdep_objects_CXX \
-predeps_CXX \
-postdeps_CXX \
-compiler_lib_search_path_CXX; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postlink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec \
-reload_cmds_CXX \
-old_archive_cmds_CXX \
-old_archive_from_new_cmds_CXX \
-old_archive_from_expsyms_cmds_CXX \
-archive_cmds_CXX \
-archive_expsym_cmds_CXX \
-module_cmds_CXX \
-module_expsym_cmds_CXX \
-export_symbols_cmds_CXX \
-prelink_cmds_CXX \
-postlink_cmds_CXX; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
-
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
- RM='$RM'
- ofile='$ofile'
-
-
-
-
-
-
-_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
- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
- "include/config_liberasurecode.h") CONFIG_HEADERS="$CONFIG_HEADERS include/config_liberasurecode.h" ;;
- "src/builtin/null_code/Makefile") CONFIG_FILES="$CONFIG_FILES src/builtin/null_code/Makefile" ;;
- "src/builtin/xor_codes/Makefile") CONFIG_FILES="$CONFIG_FILES src/builtin/xor_codes/Makefile" ;;
- "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
- "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;;
- "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "erasurecode.pc") CONFIG_FILES="$CONFIG_FILES erasurecode.pc" ;;
- "Xorcode.pc") CONFIG_FILES="$CONFIG_FILES Xorcode.pc" ;;
- "doc/doxygen.cfg") CONFIG_FILES="$CONFIG_FILES doc/doxygen.cfg" ;;
-
- *) 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
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-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"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_tt"; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
-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
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
- ac_MKDIR_P=$MKDIR_P
- case $MKDIR_P in
- [\\/$]* | ?:[\\/]* ) ;;
- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
- esac
-_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
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;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
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
- } >"$ac_tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$ac_tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
- fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_arg="$ac_file"
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$_am_arg" : 'X\(//\)[^/]' \| \
- X"$_am_arg" : 'X\(//\)$' \| \
- X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-
- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
- esac
-
-
- case $ac_file$ac_mode in
- "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
- # Older Autoconf quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
- shift
- for mf
- do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named 'Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running 'make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "$am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir=$dirpart/$fdir; as_fn_mkdir_p
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
- done
-}
- ;;
- "libtool":C)
-
- # See if we are running on zsh, and set the options which allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile="${ofile}T"
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool 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 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags="CXX "
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that protects backslashes.
-ECHO=$lt_ECHO
-
-# The PATH separator for the build system.
-PATH_SEPARATOR=$lt_PATH_SEPARATOR
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# convert \$build file names to \$host format.
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-
-# convert \$build files to toolchain format.
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-
-# An object symbol dumper.
-OBJDUMP=$lt_OBJDUMP
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method = "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# How to find potential files when deplibs_check_method = "file_magic".
-file_magic_glob=$lt_file_magic_glob
-
-# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
-want_nocaseglob=$lt_want_nocaseglob
-
-# DLL creation program.
-DLLTOOL=$lt_DLLTOOL
-
-# Command to associate shared and link libraries.
-sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
-
-# The archiver.
-AR=$lt_AR
-
-# Flags to create an archive.
-AR_FLAGS=$lt_AR_FLAGS
-
-# How to feed a file listing to the archiver.
-archiver_list_spec=$lt_archiver_list_spec
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Whether to use a lock for old archive extraction.
-lock_old_archive_extraction=$lock_old_archive_extraction
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# Specify filename containing input files for \$NM.
-nm_file_list_spec=$lt_nm_file_list_spec
-
-# The root where to search for dependent libraries,and in which our libraries should be installed.
-lt_sysroot=$lt_sysroot
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Manifest tool.
-MANIFEST_TOOL=$lt_MANIFEST_TOOL
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Permission mode override for installation of shared libraries.
-install_override_mode=$lt_install_override_mode
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects
-postdep_objects=$lt_postdep_objects
-predeps=$lt_predeps
-postdeps=$lt_postdeps
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- if test x"$xsi_shell" = xyes; then
- sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
-func_dirname ()\
-{\
-\ case ${1} in\
-\ */*) func_dirname_result="${1%/*}${2}" ;;\
-\ * ) func_dirname_result="${3}" ;;\
-\ esac\
-} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_basename ()$/,/^} # func_basename /c\
-func_basename ()\
-{\
-\ func_basename_result="${1##*/}"\
-} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
-func_dirname_and_basename ()\
-{\
-\ case ${1} in\
-\ */*) func_dirname_result="${1%/*}${2}" ;;\
-\ * ) func_dirname_result="${3}" ;;\
-\ esac\
-\ func_basename_result="${1##*/}"\
-} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
-func_stripname ()\
-{\
-\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
-\ # positional parameters, so assign one to ordinary parameter first.\
-\ func_stripname_result=${3}\
-\ func_stripname_result=${func_stripname_result#"${1}"}\
-\ func_stripname_result=${func_stripname_result%"${2}"}\
-} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
-func_split_long_opt ()\
-{\
-\ func_split_long_opt_name=${1%%=*}\
-\ func_split_long_opt_arg=${1#*=}\
-} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
-func_split_short_opt ()\
-{\
-\ func_split_short_opt_arg=${1#??}\
-\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
-} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
-func_lo2o ()\
-{\
-\ case ${1} in\
-\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
-\ *) func_lo2o_result=${1} ;;\
-\ esac\
-} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_xform ()$/,/^} # func_xform /c\
-func_xform ()\
-{\
- func_xform_result=${1%.*}.lo\
-} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_arith ()$/,/^} # func_arith /c\
-func_arith ()\
-{\
- func_arith_result=$(( $* ))\
-} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_len ()$/,/^} # func_len /c\
-func_len ()\
-{\
- func_len_result=${#1}\
-} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-fi
-
-if test x"$lt_shell_append" = xyes; then
- sed -e '/^func_append ()$/,/^} # func_append /c\
-func_append ()\
-{\
- eval "${1}+=\\${2}"\
-} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
-func_append_quoted ()\
-{\
-\ func_quote_for_eval "${2}"\
-\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
-} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- # Save a `func_append' function call where possible by direct use of '+='
- sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-else
- # Save a `func_append' function call even when '+=' is not available
- sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
-$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
-fi
-
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-
-
- cat <<_LT_EOF >> "$ofile"
-
-# ### BEGIN LIBTOOL TAG CONFIG: CXX
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag_CXX
-reload_cmds=$lt_reload_cmds_CXX
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds_CXX
-
-# A language specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object_CXX
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld_CXX
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute_CXX
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath_CXX
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols_CXX
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_CXX
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds_CXX
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds_CXX
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec_CXX
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects_CXX
-postdep_objects=$lt_postdep_objects_CXX
-predeps=$lt_predeps_CXX
-postdeps=$lt_postdeps_CXX
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
-
-# ### END LIBTOOL TAG CONFIG: CXX
-_LT_EOF
-
- ;;
-
- 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
diff --git a/src/c/liberasurecode/configure.ac b/src/c/liberasurecode/configure.ac
deleted file mode 100644
index 6f1b800..0000000
--- a/src/c/liberasurecode/configure.ac
+++ /dev/null
@@ -1,142 +0,0 @@
-################################################################################
-# Standard Stuff
-################################################################################
-AC_INIT(liberasurecode,0.9.10)
-AC_GNU_SOURCE
-
-AC_PREREQ([2.61])
-
-AM_INIT_AUTOMAKE([subdir-objects])
-LT_INIT # libtool
-
-AC_CONFIG_HEADER(include/config_liberasurecode.h)
-
-dnl Needed when reconfiguring with 'autoreconf -i -s'
-AC_CONFIG_MACRO_DIR([m4])
-
-AM_MAINTAINER_MODE([disable])
-m4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])])
-AM_SILENT_RULES([yes])
-
-dnl Compiling with per-target flags requires AM_PROG_CC_C_O.
-AC_PROG_CC
-AM_PROG_CC_C_O
-AC_PROG_LIBTOOL
-AC_PROG_CXX
-AC_PROG_INSTALL
-AC_PROG_MAKE_SET
-
-AX_EXT()
-
-################################################################################
-# System Headers
-################################################################################
-dnl Check for C library headers
-AC_HEADER_STDC
-AC_CHECK_HEADERS(sys/types.h stdio.h stdlib.h stddef.h stdarg.h \
- malloc.h memory.h string.h strings.h inttypes.h \
- stdint.h ctype.h math.h iconv.h signal.h dlfcn.h \
- pthread.h unistd.h limits.h errno.h syslog.h)
-AC_CHECK_FUNCS(malloc calloc realloc free openlog)
-
-#################################################################################
-# Debug/coverage Options
-#################################################################################
-AC_ARG_ENABLE([werror],
-[ --disable-werror Dont treat compilation warnings as failures],
-[case "${enableval}" in
- yes) werror=true ;;
- no) werror=false ;;
- *) AC_MSG_ERROR([bad value ${enableval} for --disable-werror]) ;;
-esac],[werror=true])
-if test x$werror = xtrue ; then
- werror_flag="-Werror"
-else
- werror_flag=""
-fi
-
-AC_ARG_ENABLE([debug],
-[ --enable-debug Turn on debugging],
-[case "${enableval}" in
- yes) debug=true ;;
- no) debug=false ;;
- *) AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;;
-esac],[debug=false])
-if test x$debug = xtrue ; then
- DEBUG=1
- CXXFLAGS=""
- CFLAGS="-O0 -ggdb -g3 ${werror_flag} -D_GNU_SOURCE=1 -Wall -pedantic -std=c99"
-else
- DEBUG=0
- CXXFLAGS=""
- CFLAGS="-O2 -g ${werror_flag} -D_GNU_SOURCE=1 -Wall -pedantic -std=c99"
-fi
-
-AC_ARG_ENABLE([gcov],
-[ --enable-gcov Turn on code coverage],
-[case "${enableval}" in
- yes) gcov=true ;;
- no) gcov=false ;;
- *) AC_MSG_ERROR([bad value ${enableval} for --enable-gcov]) ;;
-esac],[gcov=false])
-if test x$gcov = xtrue ; then
- AC_CHECK_LIB(gcov, main,
- [
- GCOV_FLAGS="-fprofile-arcs -ftest-coverage"
- GCOV_LDFLAGS="-lgcov"
- CXXFLAGS=""
- CFLAGS=""
- ], [
- AC_MSG_ERROR([failed to locate gcov library])
- ])
-fi
-AC_SUBST(GCOV_FLAGS)
-AC_SUBST(GCOV_LDFLAGS)
-
-dnl Expand the sources and objects needed to build the library
-AC_SUBST(ac_aux_dir)
-AC_SUBST(OBJECTS)
-
-#################################################################################
-# Doxygen Documentation
-#################################################################################
-AC_CHECK_PROG(DOXYGEN, doxygen, true, false)
-AM_CONDITIONAL(HAVE_DOXYGEN, $DOXYGEN)
-AC_SUBST(HAVE_DOXYGEN)
-
-dnl Let people disable the doxygen stuff.
-AC_ARG_ENABLE(doxygen, [ --enable-doxygen Use doxygen to build documentation (default=auto)],
- enable_doxygen="$enableval",
- enable_doxygen=auto)
-
-if test x$enable_doxygen = xauto ; then
- if test x$DOXYGEN = xtrue ; then
- enable_doxygen=yes
- else
- enable_doxygen=no
- fi
-fi
-
-dnl NOTE: We need to use a separate automake conditional for this
-dnl to make this work with the tarballs.
-AM_CONDITIONAL(ENABLE_DOXYGEN, test x$enable_doxygen = xyes)
-
-################################################################################
-# Output Files
-################################################################################
-AC_CONFIG_FILES([\
- src/builtin/null_code/Makefile \
- src/builtin/xor_codes/Makefile \
- src/Makefile \
- test/Makefile \
- doc/Makefile \
- Makefile \
- erasurecode.pc \
- Xorcode.pc
-])
-
-AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"])
-AM_COND_IF([HAVE_DOXYGEN],
- [AC_CONFIG_FILES([doc/doxygen.cfg])])
-
-AC_OUTPUT
diff --git a/src/c/liberasurecode/depcomp b/src/c/liberasurecode/depcomp
deleted file mode 100755
index 4ebd5b3..0000000
--- a/src/c/liberasurecode/depcomp
+++ /dev/null
@@ -1,791 +0,0 @@
-#! /bin/sh
-# depcomp - compile a program generating dependencies as side-effects
-
-scriptversion=2013-05-30.07; # UTC
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-
-# This program 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 2, 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.
-
-# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
-
-case $1 in
- '')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: depcomp [--help] [--version] PROGRAM [ARGS]
-
-Run PROGRAMS ARGS to compile a file, generating dependencies
-as side-effects.
-
-Environment variables:
- depmode Dependency tracking mode.
- source Source file read by 'PROGRAMS ARGS'.
- object Object file output by 'PROGRAMS ARGS'.
- DEPDIR directory where to store dependencies.
- depfile Dependency file to output.
- tmpdepfile Temporary file to use when outputting dependencies.
- libtool Whether libtool is used (yes/no).
-
-Report bugs to <bug-automake@gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "depcomp $scriptversion"
- exit $?
- ;;
-esac
-
-# Get the directory component of the given path, and save it in the
-# global variables '$dir'. Note that this directory component will
-# be either empty or ending with a '/' character. This is deliberate.
-set_dir_from ()
-{
- case $1 in
- */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
- *) dir=;;
- esac
-}
-
-# Get the suffix-stripped basename of the given path, and save it the
-# global variable '$base'.
-set_base_from ()
-{
- base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
-}
-
-# If no dependency file was actually created by the compiler invocation,
-# we still have to create a dummy depfile, to avoid errors with the
-# Makefile "include basename.Plo" scheme.
-make_dummy_depfile ()
-{
- echo "#dummy" > "$depfile"
-}
-
-# Factor out some common post-processing of the generated depfile.
-# Requires the auxiliary global variable '$tmpdepfile' to be set.
-aix_post_process_depfile ()
-{
- # If the compiler actually managed to produce a dependency file,
- # post-process it.
- if test -f "$tmpdepfile"; then
- # Each line is of the form 'foo.o: dependency.h'.
- # Do two passes, one to just change these to
- # $object: dependency.h
- # and one to simply output
- # dependency.h:
- # which is needed to avoid the deleted-header problem.
- { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
- sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
- } > "$depfile"
- rm -f "$tmpdepfile"
- else
- make_dummy_depfile
- fi
-}
-
-# A tabulation character.
-tab=' '
-# A newline character.
-nl='
-'
-# Character ranges might be problematic outside the C locale.
-# These definitions help.
-upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
-lower=abcdefghijklmnopqrstuvwxyz
-digits=0123456789
-alpha=${upper}${lower}
-
-if test -z "$depmode" || test -z "$source" || test -z "$object"; then
- echo "depcomp: Variables source, object and depmode must be set" 1>&2
- exit 1
-fi
-
-# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
-depfile=${depfile-`echo "$object" |
- sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
-tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
-
-rm -f "$tmpdepfile"
-
-# Avoid interferences from the environment.
-gccflag= dashmflag=
-
-# Some modes work just like other modes, but use different flags. We
-# parameterize here, but still list the modes in the big case below,
-# to make depend.m4 easier to write. Note that we *cannot* use a case
-# here, because this file can only contain one case statement.
-if test "$depmode" = hp; then
- # HP compiler uses -M and no extra arg.
- gccflag=-M
- depmode=gcc
-fi
-
-if test "$depmode" = dashXmstdout; then
- # This is just like dashmstdout with a different argument.
- dashmflag=-xM
- depmode=dashmstdout
-fi
-
-cygpath_u="cygpath -u -f -"
-if test "$depmode" = msvcmsys; then
- # This is just like msvisualcpp but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvisualcpp
-fi
-
-if test "$depmode" = msvc7msys; then
- # This is just like msvc7 but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvc7
-fi
-
-if test "$depmode" = xlc; then
- # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
- gccflag=-qmakedep=gcc,-MF
- depmode=gcc
-fi
-
-case "$depmode" in
-gcc3)
-## gcc 3 implements dependency tracking that does exactly what
-## we want. Yay! Note: for some reason libtool 1.4 doesn't like
-## it if -MD -MP comes after the -MF stuff. Hmm.
-## Unfortunately, FreeBSD c89 acceptance of flags depends upon
-## the command line argument order; so add the flags where they
-## appear in depend2.am. Note that the slowdown incurred here
-## affects only configure: in makefiles, %FASTDEP% shortcuts this.
- for arg
- do
- case $arg in
- -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
- *) set fnord "$@" "$arg" ;;
- esac
- shift # fnord
- shift # $arg
- done
- "$@"
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- mv "$tmpdepfile" "$depfile"
- ;;
-
-gcc)
-## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
-## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
-## (see the conditional assignment to $gccflag above).
-## There are various ways to get dependency output from gcc. Here's
-## why we pick this rather obscure method:
-## - Don't want to use -MD because we'd like the dependencies to end
-## up in a subdir. Having to rename by hand is ugly.
-## (We might end up doing this anyway to support other compilers.)
-## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-## -MM, not -M (despite what the docs say). Also, it might not be
-## supported by the other compilers which use the 'gcc' depmode.
-## - Using -M directly means running the compiler twice (even worse
-## than renaming).
- if test -z "$gccflag"; then
- gccflag=-MD,
- fi
- "$@" -Wp,"$gccflag$tmpdepfile"
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- # The second -e expression handles DOS-style file names with drive
- # letters.
- sed -e 's/^[^:]*: / /' \
- -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the "deleted header file" problem.
-## The problem is that when a header file which appears in a .P file
-## is deleted, the dependency causes make to die (because there is
-## typically no way to rebuild the header). We avoid this by adding
-## dummy dependencies for each header file. Too bad gcc doesn't do
-## this for us directly.
-## Some versions of gcc put a space before the ':'. On the theory
-## that the space means something, we add a space to the output as
-## well. hp depmode also adds that space, but also prefixes the VPATH
-## to the object. Take care to not repeat it in the output.
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-sgi)
- if test "$libtool" = yes; then
- "$@" "-Wp,-MDupdate,$tmpdepfile"
- else
- "$@" -MDupdate "$tmpdepfile"
- fi
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
-
- if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
- echo "$object : \\" > "$depfile"
- # Clip off the initial element (the dependent). Don't try to be
- # clever and replace this with sed code, as IRIX sed won't handle
- # lines with more than a fixed number of characters (4096 in
- # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
- # the IRIX cc adds comments like '#:fec' to the end of the
- # dependency line.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
- | tr "$nl" ' ' >> "$depfile"
- echo >> "$depfile"
- # The second pass generates a dummy entry for each header file.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
- >> "$depfile"
- else
- make_dummy_depfile
- fi
- rm -f "$tmpdepfile"
- ;;
-
-xlc)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-aix)
- # The C for AIX Compiler uses -M and outputs the dependencies
- # in a .u file. In older versions, this file always lives in the
- # current directory. Also, the AIX compiler puts '$object:' at the
- # start of each line; $object doesn't have directory information.
- # Version 6 uses the directory in both cases.
- set_dir_from "$object"
- set_base_from "$object"
- if test "$libtool" = yes; then
- tmpdepfile1=$dir$base.u
- tmpdepfile2=$base.u
- tmpdepfile3=$dir.libs/$base.u
- "$@" -Wc,-M
- else
- tmpdepfile1=$dir$base.u
- tmpdepfile2=$dir$base.u
- tmpdepfile3=$dir$base.u
- "$@" -M
- fi
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- do
- test -f "$tmpdepfile" && break
- done
- aix_post_process_depfile
- ;;
-
-tcc)
- # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
- # FIXME: That version still under development at the moment of writing.
- # Make that this statement remains true also for stable, released
- # versions.
- # It will wrap lines (doesn't matter whether long or short) with a
- # trailing '\', as in:
- #
- # foo.o : \
- # foo.c \
- # foo.h \
- #
- # It will put a trailing '\' even on the last line, and will use leading
- # spaces rather than leading tabs (at least since its commit 0394caf7
- # "Emit spaces for -MD").
- "$@" -MD -MF "$tmpdepfile"
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
- # We have to change lines of the first kind to '$object: \'.
- sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
- # And for each line of the second kind, we have to emit a 'dep.h:'
- # dummy dependency, to avoid the deleted-header problem.
- sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-## The order of this option in the case statement is important, since the
-## shell code in configure will try each of these formats in the order
-## listed in this file. A plain '-MD' option would be understood by many
-## compilers, so we must ensure this comes after the gcc and icc options.
-pgcc)
- # Portland's C compiler understands '-MD'.
- # Will always output deps to 'file.d' where file is the root name of the
- # source file under compilation, even if file resides in a subdirectory.
- # The object file name does not affect the name of the '.d' file.
- # pgcc 10.2 will output
- # foo.o: sub/foo.c sub/foo.h
- # and will wrap long lines using '\' :
- # foo.o: sub/foo.c ... \
- # sub/foo.h ... \
- # ...
- set_dir_from "$object"
- # Use the source, not the object, to determine the base name, since
- # that's sadly what pgcc will do too.
- set_base_from "$source"
- tmpdepfile=$base.d
-
- # For projects that build the same source file twice into different object
- # files, the pgcc approach of using the *source* file root name can cause
- # problems in parallel builds. Use a locking strategy to avoid stomping on
- # the same $tmpdepfile.
- lockdir=$base.d-lock
- trap "
- echo '$0: caught signal, cleaning up...' >&2
- rmdir '$lockdir'
- exit 1
- " 1 2 13 15
- numtries=100
- i=$numtries
- while test $i -gt 0; do
- # mkdir is a portable test-and-set.
- if mkdir "$lockdir" 2>/dev/null; then
- # This process acquired the lock.
- "$@" -MD
- stat=$?
- # Release the lock.
- rmdir "$lockdir"
- break
- else
- # If the lock is being held by a different process, wait
- # until the winning process is done or we timeout.
- while test -d "$lockdir" && test $i -gt 0; do
- sleep 1
- i=`expr $i - 1`
- done
- fi
- i=`expr $i - 1`
- done
- trap - 1 2 13 15
- if test $i -le 0; then
- echo "$0: failed to acquire lock after $numtries attempts" >&2
- echo "$0: check lockdir '$lockdir'" >&2
- exit 1
- fi
-
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- # Each line is of the form `foo.o: dependent.h',
- # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
- # Do two passes, one to just change these to
- # `$object: dependent.h' and one to simply `dependent.h:'.
- sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process this invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp2)
- # The "hp" stanza above does not work with aCC (C++) and HP's ia64
- # compilers, which have integrated preprocessors. The correct option
- # to use with these is +Maked; it writes dependencies to a file named
- # 'foo.d', which lands next to the object file, wherever that
- # happens to be.
- # Much of this is similar to the tru64 case; see comments there.
- set_dir_from "$object"
- set_base_from "$object"
- if test "$libtool" = yes; then
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir.libs/$base.d
- "$@" -Wc,+Maked
- else
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir$base.d
- "$@" +Maked
- fi
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile1" "$tmpdepfile2"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
- # Add 'dependent.h:' lines.
- sed -ne '2,${
- s/^ *//
- s/ \\*$//
- s/$/:/
- p
- }' "$tmpdepfile" >> "$depfile"
- else
- make_dummy_depfile
- fi
- rm -f "$tmpdepfile" "$tmpdepfile2"
- ;;
-
-tru64)
- # The Tru64 compiler uses -MD to generate dependencies as a side
- # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
- # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
- # dependencies in 'foo.d' instead, so we check for that too.
- # Subdirectories are respected.
- set_dir_from "$object"
- set_base_from "$object"
-
- if test "$libtool" = yes; then
- # Libtool generates 2 separate objects for the 2 libraries. These
- # two compilations output dependencies in $dir.libs/$base.o.d and
- # in $dir$base.o.d. We have to check for both files, because
- # one of the two compilations can be disabled. We should prefer
- # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
- # automatically cleaned when .libs/ is deleted, while ignoring
- # the former would cause a distcleancheck panic.
- tmpdepfile1=$dir$base.o.d # libtool 1.5
- tmpdepfile2=$dir.libs/$base.o.d # Likewise.
- tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
- "$@" -Wc,-MD
- else
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir$base.d
- tmpdepfile3=$dir$base.d
- "$@" -MD
- fi
-
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- do
- test -f "$tmpdepfile" && break
- done
- # Same post-processing that is required for AIX mode.
- aix_post_process_depfile
- ;;
-
-msvc7)
- if test "$libtool" = yes; then
- showIncludes=-Wc,-showIncludes
- else
- showIncludes=-showIncludes
- fi
- "$@" $showIncludes > "$tmpdepfile"
- stat=$?
- grep -v '^Note: including file: ' "$tmpdepfile"
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- # The first sed program below extracts the file names and escapes
- # backslashes for cygpath. The second sed program outputs the file
- # name when reading, but also accumulates all include files in the
- # hold buffer in order to output them again at the end. This only
- # works with sed implementations that can handle large buffers.
- sed < "$tmpdepfile" -n '
-/^Note: including file: *\(.*\)/ {
- s//\1/
- s/\\/\\\\/g
- p
-}' | $cygpath_u | sort -u | sed -n '
-s/ /\\ /g
-s/\(.*\)/'"$tab"'\1 \\/p
-s/.\(.*\) \\/\1:/
-H
-$ {
- s/.*/'"$tab"'/
- G
- p
-}' >> "$depfile"
- echo >> "$depfile" # make sure the fragment doesn't end with a backslash
- rm -f "$tmpdepfile"
- ;;
-
-msvc7msys)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-#nosideeffect)
- # This comment above is used by automake to tell side-effect
- # dependency tracking mechanisms from slower ones.
-
-dashmstdout)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout, regardless of -o.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- # Remove '-o $object'.
- IFS=" "
- for arg
- do
- case $arg in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift # fnord
- shift # $arg
- ;;
- esac
- done
-
- test -z "$dashmflag" && dashmflag=-M
- # Require at least two characters before searching for ':'
- # in the target name. This is to cope with DOS-style filenames:
- # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
- "$@" $dashmflag |
- sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process this sed invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-dashXmstdout)
- # This case only exists to satisfy depend.m4. It is never actually
- # run, as this mode is specially recognized in the preamble.
- exit 1
- ;;
-
-makedepend)
- "$@" || exit $?
- # Remove any Libtool call
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
- # X makedepend
- shift
- cleared=no eat=no
- for arg
- do
- case $cleared in
- no)
- set ""; shift
- cleared=yes ;;
- esac
- if test $eat = yes; then
- eat=no
- continue
- fi
- case "$arg" in
- -D*|-I*)
- set fnord "$@" "$arg"; shift ;;
- # Strip any option that makedepend may not understand. Remove
- # the object too, otherwise makedepend will parse it as a source file.
- -arch)
- eat=yes ;;
- -*|$object)
- ;;
- *)
- set fnord "$@" "$arg"; shift ;;
- esac
- done
- obj_suffix=`echo "$object" | sed 's/^.*\././'`
- touch "$tmpdepfile"
- ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
- rm -f "$depfile"
- # makedepend may prepend the VPATH from the source file name to the object.
- # No need to regex-escape $object, excess matching of '.' is harmless.
- sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process the last invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- sed '1,2d' "$tmpdepfile" \
- | tr ' ' "$nl" \
- | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile" "$tmpdepfile".bak
- ;;
-
-cpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- # Remove '-o $object'.
- IFS=" "
- for arg
- do
- case $arg in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift # fnord
- shift # $arg
- ;;
- esac
- done
-
- "$@" -E \
- | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- | sed '$ s: \\$::' > "$tmpdepfile"
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- cat < "$tmpdepfile" >> "$depfile"
- sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvisualcpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- IFS=" "
- for arg
- do
- case "$arg" in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
- set fnord "$@"
- shift
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift
- shift
- ;;
- esac
- done
- "$@" -E 2>/dev/null |
- sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
- echo "$tab" >> "$depfile"
- sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvcmsys)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-none)
- exec "$@"
- ;;
-
-*)
- echo "Unknown depmode $depmode" 1>&2
- exit 1
- ;;
-esac
-
-exit 0
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# 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:
diff --git a/src/c/liberasurecode/doc/Makefile.am b/src/c/liberasurecode/doc/Makefile.am
deleted file mode 100644
index 31804cb..0000000
--- a/src/c/liberasurecode/doc/Makefile.am
+++ /dev/null
@@ -1,36 +0,0 @@
-DOC_MODULE="liberasurecode"
-HTML_DIR=$(datadir)/$(DOC_MODULE)/html
-TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
-
-all-local: html/index.html
-
-if ENABLE_DOXYGEN
-html/index.html: doxygen.cfg
- doxygen doxygen.cfg
-else
-html/index.html:
-endif
-
-clean-local:
- rm -f *~ *.bak
- rm -rf html
-
-install-data-local: html
- ../install-sh -d $(DESTDIR)$(TARGET_DIR)
- (installfiles=`echo html/*`; \
- if test "$$installfiles" = 'html/*'; \
- then echo '-- Nothing to install' ; \
- else \
- for i in $$installfiles; do \
- echo '-- Installing '$$i ; \
- ../install-sh $$i $(DESTDIR)$(TARGET_DIR); \
- done; \
- fi)
-
-dist-hook:
- mkdir $(distdir)/html
- mkdir $(distdir)/man
- -cp html/* $(distdir)/html
- -cp man/* $(distdir)/man
-
-.PHONY : html latex man
diff --git a/src/c/liberasurecode/doc/Makefile.in b/src/c/liberasurecode/doc/Makefile.in
deleted file mode 100644
index ca7bd75..0000000
--- a/src/c/liberasurecode/doc/Makefile.in
+++ /dev/null
@@ -1,477 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = doc
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(srcdir)/doxygen.cfg.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_ext.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config_liberasurecode.h
-CONFIG_CLEAN_FILES = doxygen.cfg
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DOXYGEN = @DOXYGEN@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GCOV_FLAGS = @GCOV_FLAGS@
-GCOV_LDFLAGS = @GCOV_LDFLAGS@
-GREP = @GREP@
-HAVE_DOXYGEN = @HAVE_DOXYGEN@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJECTS = @OBJECTS@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIMD_FLAGS = @SIMD_FLAGS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_aux_dir = @ac_aux_dir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-DOC_MODULE = "liberasurecode"
-HTML_DIR = $(datadir)/$(DOC_MODULE)/html
-TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu doc/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-@HAVE_DOXYGEN_TRUE@doxygen.cfg: $(top_builddir)/config.status $(srcdir)/doxygen.cfg.in
-@HAVE_DOXYGEN_TRUE@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" distdir="$(distdir)" \
- dist-hook
-check-am: all-am
-check: check-am
-all-am: Makefile all-local
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-local mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-data-local
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am all-local check check-am clean clean-generic \
- clean-libtool clean-local cscopelist-am ctags-am dist-hook \
- distclean distclean-generic distclean-libtool distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-data-local install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags-am uninstall uninstall-am
-
-
-all-local: html/index.html
-
-@ENABLE_DOXYGEN_TRUE@html/index.html: doxygen.cfg
-@ENABLE_DOXYGEN_TRUE@ doxygen doxygen.cfg
-@ENABLE_DOXYGEN_FALSE@html/index.html:
-
-clean-local:
- rm -f *~ *.bak
- rm -rf html
-
-install-data-local: html
- ../install-sh -d $(DESTDIR)$(TARGET_DIR)
- (installfiles=`echo html/*`; \
- if test "$$installfiles" = 'html/*'; \
- then echo '-- Nothing to install' ; \
- else \
- for i in $$installfiles; do \
- echo '-- Installing '$$i ; \
- ../install-sh $$i $(DESTDIR)$(TARGET_DIR); \
- done; \
- fi)
-
-dist-hook:
- mkdir $(distdir)/html
- mkdir $(distdir)/man
- -cp html/* $(distdir)/html
- -cp man/* $(distdir)/man
-
-.PHONY : html latex man
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/liberasurecode/doc/doxygen.cfg.in b/src/c/liberasurecode/doc/doxygen.cfg.in
deleted file mode 100644
index 13731e2..0000000
--- a/src/c/liberasurecode/doc/doxygen.cfg.in
+++ /dev/null
@@ -1,2331 +0,0 @@
-# Doxyfile 1.8.8
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
-#
-# All text after a double hash (##) is considered a comment and is placed in
-# front of the TAG it is preceding.
-#
-# All text after a single hash (#) is considered a comment and will be ignored.
-# The format is:
-# TAG = value [value, ...]
-# For lists, items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (\" \").
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all text
-# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
-# for the list of possible encodings.
-# The default value is: UTF-8.
-
-DOXYFILE_ENCODING = UTF-8
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
-# double-quotes, unless you are using Doxywizard) that should identify the
-# project for which the documentation is generated. This name is used in the
-# title of most generated pages and in a few other places.
-# The default value is: My Project.
-
-PROJECT_NAME = @PACKAGE_NAME@
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
-# could be handy for archiving the generated documentation or if some version
-# control system is used.
-
-PROJECT_NUMBER = @PACKAGE_VERSION@
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer a
-# quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF = "Erasure Code API library"
-
-# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
-# in the documentation. The maximum height of the logo should not exceed 55
-# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
-# the logo to the output directory.
-
-PROJECT_LOGO =
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
-# into which the generated documentation will be written. If a relative path is
-# entered, it will be relative to the location where doxygen was started. If
-# left blank the current directory will be used.
-
-OUTPUT_DIRECTORY =
-
-# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
-# directories (in 2 levels) under the output directory of each output format and
-# will distribute the generated files over these directories. Enabling this
-# option can be useful when feeding doxygen a huge amount of source files, where
-# putting all generated files in the same directory would otherwise causes
-# performance problems for the file system.
-# The default value is: NO.
-
-CREATE_SUBDIRS = NO
-
-# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
-# characters to appear in the names of generated files. If set to NO, non-ASCII
-# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
-# U+3044.
-# The default value is: NO.
-
-ALLOW_UNICODE_NAMES = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
-# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
-# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
-# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
-# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
-# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
-# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
-# Ukrainian and Vietnamese.
-# The default value is: English.
-
-OUTPUT_LANGUAGE = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
-# descriptions after the members that are listed in the file and class
-# documentation (similar to Javadoc). Set to NO to disable this.
-# The default value is: YES.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
-# description of a member or function before the detailed description
-#
-# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-# The default value is: YES.
-
-REPEAT_BRIEF = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator that is
-# used to form the text in various listings. Each string in this list, if found
-# as the leading text of the brief description, will be stripped from the text
-# and the result, after processing the whole list, is used as the annotated
-# text. Otherwise, the brief description is used as-is. If left blank, the
-# following values are used ($name is automatically replaced with the name of
-# the entity):The $name class, The $name widget, The $name file, is, provides,
-# specifies, contains, represents, a, an and the.
-
-ABBREVIATE_BRIEF =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# doxygen will generate a detailed section even if there is only a brief
-# description.
-# The default value is: NO.
-
-ALWAYS_DETAILED_SEC = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-# The default value is: NO.
-
-INLINE_INHERITED_MEMB = NO
-
-# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
-# before files name in the file list and in the header files. If set to NO the
-# shortest path that makes the file name unique will be used
-# The default value is: YES.
-
-FULL_PATH_NAMES = NO
-
-# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
-# Stripping is only done if one of the specified strings matches the left-hand
-# part of the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the path to
-# strip.
-#
-# Note that you can specify absolute paths here, but also relative paths, which
-# will be relative from the directory where doxygen is started.
-# This tag requires that the tag FULL_PATH_NAMES is set to YES.
-
-STRIP_FROM_PATH =
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
-# path mentioned in the documentation of a class, which tells the reader which
-# header file to include in order to use a class. If left blank only the name of
-# the header file containing the class definition is used. Otherwise one should
-# specify the list of include paths that are normally passed to the compiler
-# using the -I flag.
-
-STRIP_FROM_INC_PATH =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
-# less readable) file names. This can be useful is your file systems doesn't
-# support long names like on DOS, Mac, or CD-ROM.
-# The default value is: NO.
-
-SHORT_NAMES = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
-# first line (until the first dot) of a Javadoc-style comment as the brief
-# description. If set to NO, the Javadoc-style will behave just like regular Qt-
-# style comments (thus requiring an explicit @brief command for a brief
-# description.)
-# The default value is: NO.
-
-JAVADOC_AUTOBRIEF = YES
-
-# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
-# line (until the first dot) of a Qt-style comment as the brief description. If
-# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
-# requiring an explicit \brief command for a brief description.)
-# The default value is: NO.
-
-QT_AUTOBRIEF = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
-# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
-# a brief description. This used to be the default behavior. The new default is
-# to treat a multi-line C++ comment block as a detailed description. Set this
-# tag to YES if you prefer the old behavior instead.
-#
-# Note that setting this tag to YES also means that rational rose comments are
-# not recognized any more.
-# The default value is: NO.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
-# documentation from any documented member that it re-implements.
-# The default value is: YES.
-
-INHERIT_DOCS = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
-# page for each member. If set to NO, the documentation of a member will be part
-# of the file/class/namespace that contains it.
-# The default value is: NO.
-
-SEPARATE_MEMBER_PAGES = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
-# uses this value to replace tabs by spaces in code fragments.
-# Minimum value: 1, maximum value: 16, default value: 4.
-
-TAB_SIZE = 4
-
-# This tag can be used to specify a number of aliases that act as commands in
-# the documentation. An alias has the form:
-# name=value
-# For example adding
-# "sideeffect=@par Side Effects:\n"
-# will allow you to put the command \sideeffect (or @sideeffect) in the
-# documentation, which will result in a user-defined paragraph with heading
-# "Side Effects:". You can put \n's in the value part of an alias to insert
-# newlines.
-
-ALIASES =
-
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
-# only. Doxygen will then generate output that is more tailored for C. For
-# instance, some of the names that are used will be different. The list of all
-# members will be omitted, etc.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_FOR_C = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
-# Python sources only. Doxygen will then generate output that is more tailored
-# for that language. For instance, namespaces will be presented as packages,
-# qualified scopes will look different, etc.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_JAVA = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources. Doxygen will then generate output that is tailored for Fortran.
-# The default value is: NO.
-
-OPTIMIZE_FOR_FORTRAN = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for VHDL.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_VHDL = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given
-# extension. Doxygen has a built-in mapping, but you can override or extend it
-# using this tag. The format is ext=language, where ext is a file extension, and
-# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
-# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
-# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
-# Fortran. In the later case the parser tries to guess whether the code is fixed
-# or free formatted code, this is the default for Fortran type files), VHDL. For
-# instance to make doxygen treat .inc files as Fortran files (default is PHP),
-# and .f files as C (default is Fortran), use: inc=Fortran f=C.
-#
-# Note: For files without extension you can use no_extension as a placeholder.
-#
-# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
-# the files are not read by doxygen.
-
-EXTENSION_MAPPING =
-
-# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
-# according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
-# The output of markdown processing is further processed by doxygen, so you can
-# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
-# case of backward compatibilities issues.
-# The default value is: YES.
-
-MARKDOWN_SUPPORT = YES
-
-# When enabled doxygen tries to link words that correspond to documented
-# classes, or namespaces to their corresponding documentation. Such a link can
-# be prevented in individual cases by putting a % sign in front of the word or
-# globally by setting AUTOLINK_SUPPORT to NO.
-# The default value is: YES.
-
-AUTOLINK_SUPPORT = YES
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should set this
-# tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string);
-# versus func(std::string) {}). This also make the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-# The default value is: NO.
-
-BUILTIN_STL_SUPPORT = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-# The default value is: NO.
-
-CPP_CLI_SUPPORT = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
-# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
-# will parse them like normal C++ but will assume all classes use public instead
-# of private inheritance when no explicit protection keyword is present.
-# The default value is: NO.
-
-SIP_SUPPORT = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate
-# getter and setter methods for a property. Setting this option to YES will make
-# doxygen to replace the get and set methods by a property in the documentation.
-# This will only work if the methods are indeed getting or setting a simple
-# type. If this is not the case, or you want to show the methods anyway, you
-# should set this option to NO.
-# The default value is: YES.
-
-IDL_PROPERTY_SUPPORT = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-# The default value is: NO.
-
-DISTRIBUTE_GROUP_DOC = NO
-
-# Set the SUBGROUPING tag to YES to allow class member groups of the same type
-# (for instance a group of public functions) to be put as a subgroup of that
-# type (e.g. under the Public Functions section). Set it to NO to prevent
-# subgrouping. Alternatively, this can be done per class using the
-# \nosubgrouping command.
-# The default value is: YES.
-
-SUBGROUPING = YES
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
-# are shown inside the group in which they are included (e.g. using \ingroup)
-# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
-# and RTF).
-#
-# Note that this feature does not work in combination with
-# SEPARATE_MEMBER_PAGES.
-# The default value is: NO.
-
-INLINE_GROUPED_CLASSES = NO
-
-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
-# with only public data fields or simple typedef fields will be shown inline in
-# the documentation of the scope in which they are defined (i.e. file,
-# namespace, or group documentation), provided this scope is documented. If set
-# to NO, structs, classes, and unions are shown on a separate page (for HTML and
-# Man pages) or section (for LaTeX and RTF).
-# The default value is: NO.
-
-INLINE_SIMPLE_STRUCTS = NO
-
-# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
-# enum is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically be
-# useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-# The default value is: NO.
-
-TYPEDEF_HIDES_STRUCT = NO
-
-# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
-# cache is used to resolve symbols given their name and scope. Since this can be
-# an expensive process and often the same symbol appears multiple times in the
-# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
-# doxygen will become slower. If the cache is too large, memory is wasted. The
-# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
-# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
-# symbols. At the end of a run doxygen will report the cache usage and suggest
-# the optimal cache size from a speed point of view.
-# Minimum value: 0, maximum value: 9, default value: 0.
-
-LOOKUP_CACHE_SIZE = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
-# documentation are documented, even if no documentation was available. Private
-# class members and static file members will be hidden unless the
-# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
-# Note: This will also disable the warnings about undocumented members that are
-# normally produced when WARNINGS is set to YES.
-# The default value is: NO.
-
-EXTRACT_ALL = NO
-
-# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
-# be included in the documentation.
-# The default value is: NO.
-
-EXTRACT_PRIVATE = NO
-
-# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
-# scope will be included in the documentation.
-# The default value is: NO.
-
-EXTRACT_PACKAGE = NO
-
-# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
-# included in the documentation.
-# The default value is: NO.
-
-EXTRACT_STATIC = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
-# locally in source files will be included in the documentation. If set to NO,
-# only classes defined in header files are included. Does not have any effect
-# for Java sources.
-# The default value is: YES.
-
-EXTRACT_LOCAL_CLASSES = YES
-
-# This flag is only useful for Objective-C code. If set to YES, local methods,
-# which are defined in the implementation section but not in the interface are
-# included in the documentation. If set to NO, only methods in the interface are
-# included.
-# The default value is: NO.
-
-EXTRACT_LOCAL_METHODS = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base name of
-# the file that contains the anonymous namespace. By default anonymous namespace
-# are hidden.
-# The default value is: NO.
-
-EXTRACT_ANON_NSPACES = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
-# undocumented members inside documented classes or files. If set to NO these
-# members will be included in the various overviews, but no documentation
-# section is generated. This option has no effect if EXTRACT_ALL is enabled.
-# The default value is: NO.
-
-HIDE_UNDOC_MEMBERS = YES
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy. If set
-# to NO, these classes will be included in the various overviews. This option
-# has no effect if EXTRACT_ALL is enabled.
-# The default value is: NO.
-
-HIDE_UNDOC_CLASSES = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
-# (class|struct|union) declarations. If set to NO, these declarations will be
-# included in the documentation.
-# The default value is: NO.
-
-HIDE_FRIEND_COMPOUNDS = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
-# documentation blocks found inside the body of a function. If set to NO, these
-# blocks will be appended to the function's detailed documentation block.
-# The default value is: NO.
-
-HIDE_IN_BODY_DOCS = NO
-
-# The INTERNAL_DOCS tag determines if documentation that is typed after a
-# \internal command is included. If the tag is set to NO then the documentation
-# will be excluded. Set it to YES to include the internal documentation.
-# The default value is: NO.
-
-INTERNAL_DOCS = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-# names in lower-case letters. If set to YES, upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-# The default value is: system dependent.
-
-CASE_SENSE_NAMES = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
-# their full class and namespace scopes in the documentation. If set to YES, the
-# scope will be hidden.
-# The default value is: NO.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
-# the files that are included by a file in the documentation of that file.
-# The default value is: YES.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
-# grouped member an include statement to the documentation, telling the reader
-# which file to include in order to use the member.
-# The default value is: NO.
-
-SHOW_GROUPED_MEMB_INC = NO
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
-# files with double quotes in the documentation rather than with sharp brackets.
-# The default value is: NO.
-
-FORCE_LOCAL_INCLUDES = NO
-
-# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
-# documentation for inline members.
-# The default value is: YES.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
-# (detailed) documentation of file and class members alphabetically by member
-# name. If set to NO, the members will appear in declaration order.
-# The default value is: YES.
-
-SORT_MEMBER_DOCS = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
-# descriptions of file, namespace and class members alphabetically by member
-# name. If set to NO, the members will appear in declaration order. Note that
-# this will also influence the order of the classes in the class list.
-# The default value is: NO.
-
-SORT_BRIEF_DOCS = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
-# (brief and detailed) documentation of class members so that constructors and
-# destructors are listed first. If set to NO the constructors will appear in the
-# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
-# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
-# member documentation.
-# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
-# detailed member documentation.
-# The default value is: NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
-# of group names into alphabetical order. If set to NO the group names will
-# appear in their defined order.
-# The default value is: NO.
-
-SORT_GROUP_NAMES = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
-# fully-qualified names, including namespaces. If set to NO, the class list will
-# be sorted only by class name, not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the alphabetical
-# list.
-# The default value is: NO.
-
-SORT_BY_SCOPE_NAME = NO
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
-# type resolution of all parameters of a function it will reject a match between
-# the prototype and the implementation of a member function even if there is
-# only one candidate or it is obvious which candidate to choose by doing a
-# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
-# accept a match between prototype and implementation in such cases.
-# The default value is: NO.
-
-STRICT_PROTO_MATCHING = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
-# list. This list is created by putting \todo commands in the documentation.
-# The default value is: YES.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
-# list. This list is created by putting \test commands in the documentation.
-# The default value is: YES.
-
-GENERATE_TESTLIST = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
-# list. This list is created by putting \bug commands in the documentation.
-# The default value is: YES.
-
-GENERATE_BUGLIST = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
-# the deprecated list. This list is created by putting \deprecated commands in
-# the documentation.
-# The default value is: YES.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional documentation
-# sections, marked by \if <section_label> ... \endif and \cond <section_label>
-# ... \endcond blocks.
-
-ENABLED_SECTIONS =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
-# initial value of a variable or macro / define can have for it to appear in the
-# documentation. If the initializer consists of more lines than specified here
-# it will be hidden. Use a value of 0 to hide initializers completely. The
-# appearance of the value of individual variables and macros / defines can be
-# controlled using \showinitializer or \hideinitializer command in the
-# documentation regardless of this setting.
-# Minimum value: 0, maximum value: 10000, default value: 30.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
-# the bottom of the documentation of classes and structs. If set to YES, the
-# list will mention the files that were used to generate the documentation.
-# The default value is: YES.
-
-SHOW_USED_FILES = YES
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
-# will remove the Files entry from the Quick Index and from the Folder Tree View
-# (if specified).
-# The default value is: YES.
-
-SHOW_FILES = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
-# page. This will remove the Namespaces entry from the Quick Index and from the
-# Folder Tree View (if specified).
-# The default value is: YES.
-
-SHOW_NAMESPACES = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command command input-file, where command is the value of the
-# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
-# by doxygen. Whatever the program writes to standard output is used as the file
-# version. For an example see the documentation.
-
-FILE_VERSION_FILTER =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. To create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option. You can
-# optionally specify a file name after the option, if omitted DoxygenLayout.xml
-# will be used as the name of the layout file.
-#
-# Note that if you run doxygen from a directory containing a file called
-# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
-# tag is left empty.
-
-LAYOUT_FILE =
-
-# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
-# the reference definitions. This must be a list of .bib files. The .bib
-# extension is automatically appended if omitted. This requires the bibtex tool
-# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
-# For LaTeX the style of the bibliography can be controlled using
-# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
-# search path. See also \cite for info how to create references.
-
-CITE_BIB_FILES =
-
-#---------------------------------------------------------------------------
-# Configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated to
-# standard output by doxygen. If QUIET is set to YES this implies that the
-# messages are off.
-# The default value is: NO.
-
-QUIET = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
-# this implies that the warnings are on.
-#
-# Tip: Turn warnings on while writing the documentation.
-# The default value is: YES.
-
-WARNINGS = YES
-
-# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
-# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
-# will automatically be disabled.
-# The default value is: YES.
-
-WARN_IF_UNDOCUMENTED = YES
-
-# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some parameters
-# in a documented function, or documenting parameters that don't exist or using
-# markup commands wrongly.
-# The default value is: YES.
-
-WARN_IF_DOC_ERROR = YES
-
-# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
-# are documented, but have no documentation for their parameters or return
-# value. If set to NO, doxygen will only warn about wrong or incomplete
-# parameter documentation, but not about the absence of documentation.
-# The default value is: NO.
-
-WARN_NO_PARAMDOC = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that doxygen
-# can produce. The string should contain the $file, $line, and $text tags, which
-# will be replaced by the file and line number from which the warning originated
-# and the warning text. Optionally the format may contain $version, which will
-# be replaced by the version of the file (if it could be obtained via
-# FILE_VERSION_FILTER)
-# The default value is: $file:$line: $text.
-
-WARN_FORMAT = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning and error
-# messages should be written. If left blank the output is written to standard
-# error (stderr).
-
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag is used to specify the files and/or directories that contain
-# documented source files. You may enter file names like myfile.cpp or
-# directories like /usr/src/myproject. Separate the files or directories with
-# spaces.
-# Note: If this tag is empty the current directory is searched.
-
-INPUT = @top_srcdir@/include/erasurecode/erasurecode.h \
- @top_srcdir@/include/erasurecode/erasurecode_backend.h
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
-# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-# documentation (see: http://www.gnu.org/software/libiconv) for the list of
-# possible encodings.
-# The default value is: UTF-8.
-
-INPUT_ENCODING = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
-# *.h) to filter out the source-files in the directories. If left blank the
-# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
-# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
-# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
-# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
-# *.qsf, *.as and *.js.
-
-FILE_PATTERNS =
-
-# The RECURSIVE tag can be used to specify whether or not subdirectories should
-# be searched for input files as well.
-# The default value is: NO.
-
-RECURSIVE = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should be
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-#
-# Note that relative paths are relative to the directory from which doxygen is
-# run.
-
-EXCLUDE =
-
-# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
-# The default value is: NO.
-
-EXCLUDE_SYMLINKS = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories.
-#
-# Note that the wildcards are matched against the file with absolute path, so to
-# exclude all test directories for example use the pattern */test/*
-
-EXCLUDE_PATTERNS =
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-#
-# Note that the wildcards are matched against the file with absolute path, so to
-# exclude all test directories use the pattern */test/*
-
-EXCLUDE_SYMBOLS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or directories
-# that contain example code fragments that are included (see the \include
-# command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
-# *.h) to filter out the source-files in the directories. If left blank all
-# files are included.
-
-EXAMPLE_PATTERNS =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude commands
-# irrespective of the value of the RECURSIVE tag.
-# The default value is: NO.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or directories
-# that contain images that are to be included in the documentation (see the
-# \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command:
-#
-# <filter> <input-file>
-#
-# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
-# name of an input file. Doxygen will then use the output that the filter
-# program writes to standard output. If FILTER_PATTERNS is specified, this tag
-# will be ignored.
-#
-# Note that the filter must not add or remove lines; it is applied before the
-# code is scanned, but not when the output code is generated. If lines are added
-# or removed, the anchors will not be placed correctly.
-
-INPUT_FILTER =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form: pattern=filter
-# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
-# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
-# patterns match the file name, INPUT_FILTER is applied.
-
-FILTER_PATTERNS =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will also be used to filter the input files that are used for
-# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
-# The default value is: NO.
-
-FILTER_SOURCE_FILES = NO
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
-# it is also possible to disable source filtering for a specific pattern using
-# *.ext= (so without naming a filter).
-# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
-
-FILTER_SOURCE_PATTERNS =
-
-# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
-# is part of the input, its contents will be placed on the main page
-# (index.html). This can be useful if you have a project on for instance GitHub
-# and want to reuse the introduction page also for the doxygen output.
-
-USE_MDFILE_AS_MAINPAGE =
-
-#---------------------------------------------------------------------------
-# Configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
-# generated. Documented entities will be cross-referenced with these sources.
-#
-# Note: To get rid of all source code in the generated output, make sure that
-# also VERBATIM_HEADERS is set to NO.
-# The default value is: NO.
-
-SOURCE_BROWSER = NO
-
-# Setting the INLINE_SOURCES tag to YES will include the body of functions,
-# classes and enums directly into the documentation.
-# The default value is: NO.
-
-INLINE_SOURCES = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
-# special comment blocks from generated source code fragments. Normal C, C++ and
-# Fortran comments will always remain visible.
-# The default value is: YES.
-
-STRIP_CODE_COMMENTS = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
-# function all documented functions referencing it will be listed.
-# The default value is: NO.
-
-REFERENCED_BY_RELATION = NO
-
-# If the REFERENCES_RELATION tag is set to YES then for each documented function
-# all documented entities called/used by that function will be listed.
-# The default value is: NO.
-
-REFERENCES_RELATION = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
-# to YES then the hyperlinks from functions in REFERENCES_RELATION and
-# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
-# link to the documentation.
-# The default value is: YES.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
-# source code will show a tooltip with additional information such as prototype,
-# brief description and links to the definition and documentation. Since this
-# will make the HTML file larger and loading of large files a bit slower, you
-# can opt to disable this feature.
-# The default value is: YES.
-# This tag requires that the tag SOURCE_BROWSER is set to YES.
-
-SOURCE_TOOLTIPS = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code will
-# point to the HTML generated by the htags(1) tool instead of doxygen built-in
-# source browser. The htags tool is part of GNU's global source tagging system
-# (see http://www.gnu.org/software/global/global.html). You will need version
-# 4.8.6 or higher.
-#
-# To use it do the following:
-# - Install the latest version of global
-# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
-# - Make sure the INPUT points to the root of the source tree
-# - Run doxygen as normal
-#
-# Doxygen will invoke htags (and that will in turn invoke gtags), so these
-# tools must be available from the command line (i.e. in the search path).
-#
-# The result: instead of the source browser generated by doxygen, the links to
-# source code will now point to the output of htags.
-# The default value is: NO.
-# This tag requires that the tag SOURCE_BROWSER is set to YES.
-
-USE_HTAGS = NO
-
-# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
-# verbatim copy of the header file for each class for which an include is
-# specified. Set to NO to disable this.
-# See also: Section \class.
-# The default value is: YES.
-
-VERBATIM_HEADERS = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
-# compounds will be generated. Enable this if the project contains a lot of
-# classes, structs, unions or interfaces.
-# The default value is: YES.
-
-ALPHABETICAL_INDEX = YES
-
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX = 5
-
-# In case all classes in a project start with a common prefix, all classes will
-# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
-# can be used to specify a prefix (or a list of prefixes) that should be ignored
-# while generating the index headers.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
-# The default value is: YES.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: html.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_OUTPUT = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
-# generated HTML page (for example: .htm, .php, .asp).
-# The default value is: .html.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_FILE_EXTENSION = .html
-
-# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
-# each generated HTML page. If the tag is left blank doxygen will generate a
-# standard header.
-#
-# To get valid HTML the header file that includes any scripts and style sheets
-# that doxygen needs, which is dependent on the configuration options used (e.g.
-# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
-# default header using
-# doxygen -w html new_header.html new_footer.html new_stylesheet.css
-# YourConfigFile
-# and then modify the file new_header.html. See also section "Doxygen usage"
-# for information on how to generate the default header that doxygen normally
-# uses.
-# Note: The header is subject to change so you typically have to regenerate the
-# default header when upgrading to a newer version of doxygen. For a description
-# of the possible markers and block names see the documentation.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
-# generated HTML page. If the tag is left blank doxygen will generate a standard
-# footer. See HTML_HEADER for more information on how to generate a default
-# footer and what special commands can be used inside the footer. See also
-# section "Doxygen usage" for information on how to generate the default footer
-# that doxygen normally uses.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_FOOTER =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
-# sheet that is used by each HTML page. It can be used to fine-tune the look of
-# the HTML output. If left blank doxygen will generate a default style sheet.
-# See also section "Doxygen usage" for information on how to generate the style
-# sheet that doxygen normally uses.
-# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
-# it is more robust and this tag (HTML_STYLESHEET) will in the future become
-# obsolete.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_STYLESHEET =
-
-# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
-# cascading style sheets that are included after the standard style sheets
-# created by doxygen. Using this option one can overrule certain style aspects.
-# This is preferred over using HTML_STYLESHEET since it does not replace the
-# standard style sheet and is therefore more robust against future updates.
-# Doxygen will copy the style sheet files to the output directory.
-# Note: The order of the extra stylesheet files is of importance (e.g. the last
-# stylesheet in the list overrules the setting of the previous ones in the
-# list). For an example see the documentation.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_EXTRA_STYLESHEET =
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
-# files will be copied as-is; there are no commands or markers available.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_EXTRA_FILES =
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
-# will adjust the colors in the stylesheet and background images according to
-# this color. Hue is specified as an angle on a colorwheel, see
-# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
-# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
-# purple, and 360 is red again.
-# Minimum value: 0, maximum value: 359, default value: 220.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_HUE = 220
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
-# in the HTML output. For a value of 0 the output will use grayscales only. A
-# value of 255 will produce the most vivid colors.
-# Minimum value: 0, maximum value: 255, default value: 100.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_SAT = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
-# luminance component of the colors in the HTML output. Values below 100
-# gradually make the output lighter, whereas values above 100 make the output
-# darker. The value divided by 100 is the actual gamma applied, so 80 represents
-# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
-# change the gamma.
-# Minimum value: 40, maximum value: 240, default value: 80.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_GAMMA = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting this
-# to NO can help when comparing the output of multiple runs.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_TIMESTAMP = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_DYNAMIC_SECTIONS = NO
-
-# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
-# shown in the various tree structured indices initially; the user can expand
-# and collapse entries dynamically later on. Doxygen will expand the tree to
-# such a level that at most the specified number of entries are visible (unless
-# a fully collapsed tree already exceeds this amount). So setting the number of
-# entries 1 will produce a full collapsed tree by default. 0 is a special value
-# representing an infinite number of entries and will result in a full expanded
-# tree by default.
-# Minimum value: 0, maximum value: 9999, default value: 100.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_INDEX_NUM_ENTRIES = 100
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files will be
-# generated that can be used as input for Apple's Xcode 3 integrated development
-# environment (see: http://developer.apple.com/tools/xcode/), introduced with
-# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
-# Makefile in the HTML output directory. Running make will produce the docset in
-# that directory and running make install will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
-# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_DOCSET = NO
-
-# This tag determines the name of the docset feed. A documentation feed provides
-# an umbrella under which multiple documentation sets from a single provider
-# (such as a company or product suite) can be grouped.
-# The default value is: Doxygen generated docs.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_FEEDNAME = "Doxygen generated docs"
-
-# This tag specifies a string that should uniquely identify the documentation
-# set bundle. This should be a reverse domain-name style string, e.g.
-# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_BUNDLE_ID = org.doxygen.Project
-
-# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-# The default value is: org.doxygen.Publisher.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_PUBLISHER_ID = org.doxygen.Publisher
-
-# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
-# The default value is: Publisher.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_PUBLISHER_NAME = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
-# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
-# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
-# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-# Windows.
-#
-# The HTML Help Workshop contains a compiler that can convert all HTML output
-# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
-# files are now used as the Windows 98 help format, and will replace the old
-# Windows help format (.hlp) on all Windows platforms in the future. Compressed
-# HTML files also contain an index, a table of contents, and you can search for
-# words in the documentation. The HTML workshop also contains a viewer for
-# compressed HTML files.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_HTMLHELP = NO
-
-# The CHM_FILE tag can be used to specify the file name of the resulting .chm
-# file. You can add a path in front of the file if the result should not be
-# written to the html output directory.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-CHM_FILE =
-
-# The HHC_LOCATION tag can be used to specify the location (absolute path
-# including file name) of the HTML help compiler (hhc.exe). If non-empty,
-# doxygen will try to run the HTML help compiler on the generated index.hhp.
-# The file has to be specified with full path.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-HHC_LOCATION =
-
-# The GENERATE_CHI flag controls if a separate .chi index file is generated
-# (YES) or that it should be included in the master .chm file (NO).
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-GENERATE_CHI = NO
-
-# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
-# and project file content.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-CHM_INDEX_ENCODING =
-
-# The BINARY_TOC flag controls whether a binary table of contents is generated
-# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
-# enables the Previous and Next buttons.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-BINARY_TOC = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members to
-# the table of contents of the HTML help documentation and to the tree view.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-TOC_EXPAND = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
-# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
-# (.qch) of the generated HTML documentation.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_QHP = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
-# the file name of the resulting .qch file. The path specified is relative to
-# the HTML output folder.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QCH_FILE =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
-# Project output. For more information please see Qt Help Project / Namespace
-# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_NAMESPACE = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
-# Help Project output. For more information please see Qt Help Project / Virtual
-# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
-# folders).
-# The default value is: doc.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_VIRTUAL_FOLDER = doc
-
-# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
-# filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_CUST_FILTER_NAME =
-
-# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_CUST_FILTER_ATTRS =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's filter section matches. Qt Help Project / Filter Attributes (see:
-# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_SECT_FILTER_ATTRS =
-
-# The QHG_LOCATION tag can be used to specify the location of Qt's
-# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
-# generated .qhp file.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHG_LOCATION =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
-# generated, together with the HTML files, they form an Eclipse help plugin. To
-# install this plugin and make it available under the help contents menu in
-# Eclipse, the contents of the directory containing the HTML and XML files needs
-# to be copied into the plugins directory of eclipse. The name of the directory
-# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
-# After copying Eclipse needs to be restarted before the help appears.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_ECLIPSEHELP = NO
-
-# A unique identifier for the Eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have this
-# name. Each documentation set should have its own identifier.
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
-
-ECLIPSE_DOC_ID = org.doxygen.Project
-
-# If you want full control over the layout of the generated HTML pages it might
-# be necessary to disable the index and replace it with your own. The
-# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
-# of each HTML page. A value of NO enables the index and the value YES disables
-# it. Since the tabs in the index contain the same information as the navigation
-# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-DISABLE_INDEX = NO
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information. If the tag
-# value is set to YES, a side panel will be generated containing a tree-like
-# index structure (just like the one that is generated for HTML Help). For this
-# to work a browser that supports JavaScript, DHTML, CSS and frames is required
-# (i.e. any modern browser). Windows users are probably better off using the
-# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
-# further fine-tune the look of the index. As an example, the default style
-# sheet generated by doxygen has an example that shows how to put an image at
-# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
-# the same information as the tab index, you could consider setting
-# DISABLE_INDEX to YES when enabling this option.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_TREEVIEW = NO
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
-# doxygen will group on one line in the generated HTML documentation.
-#
-# Note that a value of 0 will completely suppress the enum values from appearing
-# in the overview section.
-# Minimum value: 0, maximum value: 20, default value: 4.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-ENUM_VALUES_PER_LINE = 4
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
-# to set the initial width (in pixels) of the frame in which the tree is shown.
-# Minimum value: 0, maximum value: 1500, default value: 250.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-TREEVIEW_WIDTH = 250
-
-# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
-# external symbols imported via tag files in a separate window.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-EXT_LINKS_IN_WINDOW = NO
-
-# Use this tag to change the font size of LaTeX formulas included as images in
-# the HTML documentation. When you change the font size after a successful
-# doxygen run you need to manually remove any form_*.png images from the HTML
-# output directory to force them to be regenerated.
-# Minimum value: 8, maximum value: 50, default value: 10.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_FONTSIZE = 10
-
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are not
-# supported properly for IE 6.0, but are supported on all modern browsers.
-#
-# Note that when changing this option you need to delete any form_*.png files in
-# the HTML output directory before the changes have effect.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_TRANSPARENT = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://www.mathjax.org) which uses client side Javascript for the rendering
-# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
-# installed or if you want to formulas look prettier in the HTML output. When
-# enabled you may also need to install MathJax separately and configure the path
-# to it using the MATHJAX_RELPATH option.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-USE_MATHJAX = NO
-
-# When MathJax is enabled you can set the default output format to be used for
-# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
-# Possible values are: HTML-CSS (which is slower, but has the best
-# compatibility), NativeMML (i.e. MathML) and SVG.
-# The default value is: HTML-CSS.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_FORMAT = HTML-CSS
-
-# When MathJax is enabled you need to specify the location relative to the HTML
-# output directory using the MATHJAX_RELPATH option. The destination directory
-# should contain the MathJax.js script. For instance, if the mathjax directory
-# is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
-# Content Delivery Network so you can quickly see the result without installing
-# MathJax. However, it is strongly recommended to install a local copy of
-# MathJax from http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
-# extension names that should be enabled during MathJax rendering. For example
-# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_EXTENSIONS =
-
-# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
-# of code that will be used on startup of the MathJax code. See the MathJax site
-# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
-# example see the documentation.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_CODEFILE =
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
-# the HTML output. The underlying search engine uses javascript and DHTML and
-# should work on any modern browser. Note that when using HTML help
-# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
-# there is already a search function so this one should typically be disabled.
-# For large projects the javascript based search engine can be slow, then
-# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
-# search using the keyboard; to jump to the search box use <access key> + S
-# (what the <access key> is depends on the OS and browser, but it is typically
-# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
-# key> to jump into the search results window, the results can be navigated
-# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
-# the search. The filter options can be selected when the cursor is inside the
-# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
-# to select a filter and <Enter> or <escape> to activate or cancel the filter
-# option.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-SEARCHENGINE = YES
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a web server instead of a web client using Javascript. There
-# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
-# setting. When disabled, doxygen will generate a PHP script for searching and
-# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
-# and searching needs to be provided by external tools. See the section
-# "External Indexing and Searching" for details.
-# The default value is: NO.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SERVER_BASED_SEARCH = NO
-
-# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
-# script for searching. Instead the search results are written to an XML file
-# which needs to be processed by an external indexer. Doxygen will invoke an
-# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
-# search results.
-#
-# Doxygen ships with an example indexer (doxyindexer) and search engine
-# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/).
-#
-# See the section "External Indexing and Searching" for details.
-# The default value is: NO.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTERNAL_SEARCH = NO
-
-# The SEARCHENGINE_URL should point to a search engine hosted by a web server
-# which will return the search results when EXTERNAL_SEARCH is enabled.
-#
-# Doxygen ships with an example indexer (doxyindexer) and search engine
-# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/). See the section "External Indexing and
-# Searching" for details.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SEARCHENGINE_URL =
-
-# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
-# search data is written to a file for indexing by an external tool. With the
-# SEARCHDATA_FILE tag the name of this file can be specified.
-# The default file is: searchdata.xml.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SEARCHDATA_FILE = searchdata.xml
-
-# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
-# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
-# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
-# projects and redirect the results back to the right project.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTERNAL_SEARCH_ID =
-
-# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
-# projects other than the one defined by this configuration file, but that are
-# all added to the same external search index. Each project needs to have a
-# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
-# to a relative location where the documentation can be found. The format is:
-# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTRA_SEARCH_MAPPINGS =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
-# The default value is: YES.
-
-GENERATE_LATEX = YES
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_OUTPUT = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked.
-#
-# Note that when enabling USE_PDFLATEX this option is only used for generating
-# bitmaps for formulas in the HTML output, but not in the Makefile that is
-# written to the output directory.
-# The default file is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
-# index for LaTeX.
-# The default file is: makeindex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-MAKEINDEX_CMD_NAME = makeindex
-
-# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
-# documents. This may be useful for small projects and may help to save some
-# trees in general.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used by the
-# printer.
-# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
-# 14 inches) and executive (7.25 x 10.5 inches).
-# The default value is: a4.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-PAPER_TYPE = a4
-
-# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
-# that should be included in the LaTeX output. To get the times font for
-# instance you can specify
-# EXTRA_PACKAGES=times
-# If left blank no extra packages will be included.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
-# generated LaTeX document. The header should contain everything until the first
-# chapter. If it is left blank doxygen will generate a standard header. See
-# section "Doxygen usage" for information on how to let doxygen write the
-# default header to a separate file.
-#
-# Note: Only use a user-defined header if you know what you are doing! The
-# following commands have a special meaning inside the header: $title,
-# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
-# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
-# string, for the replacement values of the other commands the user is referred
-# to HTML_HEADER.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HEADER =
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
-# generated LaTeX document. The footer should contain everything after the last
-# chapter. If it is left blank doxygen will generate a standard footer. See
-# LATEX_HEADER for more information on how to generate a default footer and what
-# special commands can be used inside the footer.
-#
-# Note: Only use a user-defined footer if you know what you are doing!
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_FOOTER =
-
-# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the LATEX_OUTPUT output
-# directory. Note that the files will be copied as-is; there are no commands or
-# markers available.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_EXTRA_FILES =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
-# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
-# contain links (just like the HTML output) instead of page references. This
-# makes the output suitable for online browsing using a PDF viewer.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-PDF_HYPERLINKS = YES
-
-# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
-# the PDF file directly from the LaTeX files. Set this option to YES, to get a
-# higher quality PDF documentation.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-USE_PDFLATEX = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
-# command to the generated LaTeX files. This will instruct LaTeX to keep running
-# if errors occur, instead of asking the user for help. This option is also used
-# when generating formulas in HTML.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_BATCHMODE = NO
-
-# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
-# index chapters (such as File Index, Compound Index, etc.) in the output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HIDE_INDICES = NO
-
-# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-# code with syntax highlighting in the LaTeX output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_SOURCE_CODE = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. See
-# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
-# The default value is: plain.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_BIB_STYLE = plain
-
-#---------------------------------------------------------------------------
-# Configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
-# RTF output is optimized for Word 97 and may not look too pretty with other RTF
-# readers/editors.
-# The default value is: NO.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: rtf.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_OUTPUT = rtf
-
-# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
-# documents. This may be useful for small projects and may help to save some
-# trees in general.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
-# contain hyperlink fields. The RTF file will contain links (just like the HTML
-# output) instead of page references. This makes the output suitable for online
-# browsing using Word or some other Word compatible readers that support those
-# fields.
-#
-# Note: WordPad (write) and others do not support links.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_HYPERLINKS = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's config
-# file, i.e. a series of assignments. You only have to provide replacements,
-# missing definitions are set to their default value.
-#
-# See also section "Doxygen usage" for information on how to generate the
-# default style sheet that doxygen normally uses.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_STYLESHEET_FILE =
-
-# Set optional variables used in the generation of an RTF document. Syntax is
-# similar to doxygen's config file. A template extensions file can be generated
-# using doxygen -e rtf extensionFile.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_EXTENSIONS_FILE =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
-# classes and files.
-# The default value is: NO.
-
-GENERATE_MAN = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it. A directory man3 will be created inside the directory specified by
-# MAN_OUTPUT.
-# The default directory is: man.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_OUTPUT = man
-
-# The MAN_EXTENSION tag determines the extension that is added to the generated
-# man pages. In case the manual section does not start with a number, the number
-# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
-# optional.
-# The default value is: .3.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_EXTENSION = .3
-
-# The MAN_SUBDIR tag determines the name of the directory created within
-# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
-# MAN_EXTENSION with the initial . removed.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_SUBDIR =
-
-# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
-# will generate one additional man file for each entity documented in the real
-# man page(s). These additional files only source the real man page, but without
-# them the man command would be unable to find the correct page.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_LINKS = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
-# captures the structure of the code including all documentation.
-# The default value is: NO.
-
-GENERATE_XML = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: xml.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_OUTPUT = xml
-
-# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
-# listings (including syntax highlighting and cross-referencing information) to
-# the XML output. Note that enabling this will significantly increase the size
-# of the XML output.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_PROGRAMLISTING = YES
-
-#---------------------------------------------------------------------------
-# Configuration options related to the DOCBOOK output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
-# that can be used to generate PDF.
-# The default value is: NO.
-
-GENERATE_DOCBOOK = NO
-
-# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
-# front of it.
-# The default directory is: docbook.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_OUTPUT = docbook
-
-# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
-# program listings (including syntax highlighting and cross-referencing
-# information) to the DOCBOOK output. Note that enabling this will significantly
-# increase the size of the DOCBOOK output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_PROGRAMLISTING = NO
-
-#---------------------------------------------------------------------------
-# Configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
-# AutoGen Definitions (see http://autogen.sf.net) file that captures the
-# structure of the code including all documentation. Note that this feature is
-# still experimental and incomplete at the moment.
-# The default value is: NO.
-
-GENERATE_AUTOGEN_DEF = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
-# file that captures the structure of the code including all documentation.
-#
-# Note that this feature is still experimental and incomplete at the moment.
-# The default value is: NO.
-
-GENERATE_PERLMOD = NO
-
-# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
-# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
-# output from the Perl module output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_LATEX = NO
-
-# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
-# formatted so it can be parsed by a human reader. This is useful if you want to
-# understand what is going on. On the other hand, if this tag is set to NO, the
-# size of the Perl module output will be much smaller and Perl will parse it
-# just the same.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_PRETTY = YES
-
-# The names of the make variables in the generated doxyrules.make file are
-# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
-# so different doxyrules.make files included by the same Makefile don't
-# overwrite each other's variables.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
-# C-preprocessor directives found in the sources and include files.
-# The default value is: YES.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
-# in the source code. If set to NO, only conditional compilation will be
-# performed. Macro expansion can be done in a controlled way by setting
-# EXPAND_ONLY_PREDEF to YES.
-# The default value is: NO.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-MACRO_EXPANSION = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
-# the macro expansion is limited to the macros specified with the PREDEFINED and
-# EXPAND_AS_DEFINED tags.
-# The default value is: NO.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-EXPAND_ONLY_PREDEF = NO
-
-# If the SEARCH_INCLUDES tag is set to YES, the include files in the
-# INCLUDE_PATH will be searched if a #include is found.
-# The default value is: YES.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by the
-# preprocessor.
-# This tag requires that the tag SEARCH_INCLUDES is set to YES.
-
-INCLUDE_PATH =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will be
-# used.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that are
-# defined before the preprocessor is started (similar to the -D option of e.g.
-# gcc). The argument of the tag is a list of macros of the form: name or
-# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
-# is assumed. To prevent a macro definition from being undefined via #undef or
-# recursively expanded use the := operator instead of the = operator.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-PREDEFINED =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
-# tag can be used to specify a list of macro names that should be expanded. The
-# macro definition that is found in the sources will be used. Use the PREDEFINED
-# tag if you want to use a different macro definition that overrules the
-# definition found in the source code.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-EXPAND_AS_DEFINED =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
-# remove all references to function-like macros that are alone on a line, have
-# an all uppercase name, and do not end with a semicolon. Such function macros
-# are typically used for boiler-plate code, and will confuse the parser if not
-# removed.
-# The default value is: YES.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-SKIP_FUNCTION_MACROS = YES
-
-#---------------------------------------------------------------------------
-# Configuration options related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES tag can be used to specify one or more tag files. For each tag
-# file the location of the external documentation should be added. The format of
-# a tag file without this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where loc1 and loc2 can be relative or absolute paths or URLs. See the
-# section "Linking to external documentation" for more information about the use
-# of tag files.
-# Note: Each tag file must have a unique name (where the name does NOT include
-# the path). If a tag file is not located in the directory in which doxygen is
-# run, you must also specify the path to the tagfile here.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
-# tag file that is based on the input files it reads. See section "Linking to
-# external documentation" for more information about the usage of tag files.
-
-GENERATE_TAGFILE =
-
-# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
-# the class index. If set to NO, only the inherited external classes will be
-# listed.
-# The default value is: NO.
-
-ALLEXTERNALS = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will be
-# listed.
-# The default value is: YES.
-
-EXTERNAL_GROUPS = YES
-
-# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
-# the related pages index. If set to NO, only the current project's pages will
-# be listed.
-# The default value is: YES.
-
-EXTERNAL_PAGES = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of 'which perl').
-# The default file (with absolute path) is: /usr/bin/perl.
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
-# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-# NO turns the diagrams off. Note that this option also works with HAVE_DOT
-# disabled, but it is recommended to install and use dot, since it yields more
-# powerful graphs.
-# The default value is: YES.
-
-CLASS_DIAGRAMS = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see:
-# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH =
-
-# You can include diagrams made with dia in doxygen documentation. Doxygen will
-# then run dia to produce the diagram and insert it in the documentation. The
-# DIA_PATH tag allows you to specify the directory where the dia binary resides.
-# If left empty dia is assumed to be found in the default search path.
-
-DIA_PATH =
-
-# If set to YES the inheritance and collaboration graphs will hide inheritance
-# and usage relations if the target is undocumented or is not a class.
-# The default value is: YES.
-
-HIDE_UNDOC_RELATIONS = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz (see:
-# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
-# Bell Labs. The other options in this section have no effect if this option is
-# set to NO
-# The default value is: NO.
-
-HAVE_DOT = NO
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
-# to run in parallel. When set to 0 doxygen will base this on the number of
-# processors available in the system. You can set it explicitly to a value
-# larger than 0 to get control over the balance between CPU load and processing
-# speed.
-# Minimum value: 0, maximum value: 32, default value: 0.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_NUM_THREADS = 0
-
-# When you want a differently looking font in the dot files that doxygen
-# generates you can specify the font name using DOT_FONTNAME. You need to make
-# sure dot is able to find the font, which can be done by putting it in a
-# standard location or by setting the DOTFONTPATH environment variable or by
-# setting DOT_FONTPATH to the directory containing the font.
-# The default value is: Helvetica.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTNAME = Helvetica
-
-# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
-# dot graphs.
-# Minimum value: 4, maximum value: 24, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTSIZE = 10
-
-# By default doxygen will tell dot to use the default font as specified with
-# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
-# the path where dot can find it using this tag.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTPATH =
-
-# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
-# each documented class showing the direct and indirect inheritance relations.
-# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CLASS_GRAPH = YES
-
-# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
-# graph for each documented class showing the direct and indirect implementation
-# dependencies (inheritance, containment, and class references variables) of the
-# class with other documented classes.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-COLLABORATION_GRAPH = YES
-
-# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
-# groups, showing the direct groups dependencies.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GROUP_GRAPHS = YES
-
-# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-UML_LOOK = NO
-
-# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
-# class node. If there are many fields or methods and many nodes the graph may
-# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
-# number of items for each type to make the size more manageable. Set this to 0
-# for no limit. Note that the threshold may be exceeded by 50% before the limit
-# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
-# but if the number exceeds 15, the total amount of fields shown is limited to
-# 10.
-# Minimum value: 0, maximum value: 100, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-UML_LIMIT_NUM_FIELDS = 10
-
-# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
-# collaboration graphs will show the relations between templates and their
-# instances.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-TEMPLATE_RELATIONS = NO
-
-# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
-# YES then doxygen will generate a graph for each documented file showing the
-# direct and indirect include dependencies of the file with other documented
-# files.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INCLUDE_GRAPH = YES
-
-# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
-# set to YES then doxygen will generate a graph for each documented file showing
-# the direct and indirect include dependencies of the file with other documented
-# files.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INCLUDED_BY_GRAPH = YES
-
-# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
-# dependency graph for every global function or class method.
-#
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CALL_GRAPH = NO
-
-# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
-# dependency graph for every global function or class method.
-#
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable caller graphs for selected
-# functions only using the \callergraph command.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CALLER_GRAPH = NO
-
-# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
-# hierarchy of all classes instead of a textual one.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GRAPHICAL_HIERARCHY = YES
-
-# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
-# dependencies a directory has on other directories in a graphical way. The
-# dependency relations are determined by the #include relations between the
-# files in the directories.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DIRECTORY_GRAPH = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot.
-# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
-# to make the SVG files visible in IE 9+ (other browsers do not have this
-# requirement).
-# Possible values are: png, jpg, gif and svg.
-# The default value is: png.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_IMAGE_FORMAT = png
-
-# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-# enable generation of interactive SVG images that allow zooming and panning.
-#
-# Note that this requires a modern browser other than Internet Explorer. Tested
-# and working are Firefox, Chrome, Safari, and Opera.
-# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
-# the SVG files visible. Older versions of IE do not have SVG support.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INTERACTIVE_SVG = NO
-
-# The DOT_PATH tag can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_PATH =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the \dotfile
-# command).
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOTFILE_DIRS =
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the \mscfile
-# command).
-
-MSCFILE_DIRS =
-
-# The DIAFILE_DIRS tag can be used to specify one or more directories that
-# contain dia files that are included in the documentation (see the \diafile
-# command).
-
-DIAFILE_DIRS =
-
-# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
-# path where java can find the plantuml.jar file. If left blank, it is assumed
-# PlantUML is not used or called during a preprocessing step. Doxygen will
-# generate a warning when it encounters a \startuml command in this case and
-# will not generate output for the diagram.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-PLANTUML_JAR_PATH =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
-# that will be shown in the graph. If the number of nodes in a graph becomes
-# larger than this value, doxygen will truncate the graph, which is visualized
-# by representing a node as a red box. Note that doxygen if the number of direct
-# children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
-# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-# Minimum value: 0, maximum value: 10000, default value: 50.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_GRAPH_MAX_NODES = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
-# generated by dot. A depth value of 3 means that only nodes reachable from the
-# root by following a path via at most 3 edges will be shown. Nodes that lay
-# further from the root node will be omitted. Note that setting this option to 1
-# or 2 may greatly reduce the computation time needed for large code bases. Also
-# note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-# Minimum value: 0, maximum value: 1000, default value: 0.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-MAX_DOT_GRAPH_DEPTH = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not seem
-# to support this out of the box.
-#
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_TRANSPARENT = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10) support
-# this, this feature is disabled by default.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_MULTI_TARGETS = NO
-
-# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
-# explaining the meaning of the various boxes and arrows in the dot generated
-# graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GENERATE_LEGEND = YES
-
-# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
-# files that are used to generate the various graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_CLEANUP = YES
diff --git a/src/c/liberasurecode/erasurecode.pc.in b/src/c/liberasurecode/erasurecode.pc.in
deleted file mode 100644
index 9cbc40d..0000000
--- a/src/c/liberasurecode/erasurecode.pc.in
+++ /dev/null
@@ -1,15 +0,0 @@
-# erasurecode pkg-config source file
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: erasurecode
-Description: C library with pluggable erasure code backends
-Version: @ERASURECODE_VERSION@
-Requires:
-Conflicts:
-Libs: -L${libdir} @ERASURECODE_RLD_FLAGS@ -lerasurecode
-Libs.private: @ERASURECODE_STATIC_LIBS@
-Cflags: -I${includedir}/ -I${includedir}/erasurecode @ERASURECODE_CFLAGS@
diff --git a/src/c/liberasurecode/include/config_liberasurecode.h.in b/src/c/liberasurecode/include/config_liberasurecode.h.in
deleted file mode 100644
index 12cd97b..0000000
--- a/src/c/liberasurecode/include/config_liberasurecode.h.in
+++ /dev/null
@@ -1,172 +0,0 @@
-/* include/config_liberasurecode.h.in. Generated from configure.ac by autoheader. */
-
-/* Support Altivec instructions */
-#undef HAVE_ALTIVEC
-
-/* Support AVX (Advanced Vector Extensions) instructions */
-#undef HAVE_AVX
-
-/* Define to 1 if you have the `calloc' function. */
-#undef HAVE_CALLOC
-
-/* Define to 1 if you have the <ctype.h> header file. */
-#undef HAVE_CTYPE_H
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you have the <errno.h> header file. */
-#undef HAVE_ERRNO_H
-
-/* Define to 1 if you have the `free' function. */
-#undef HAVE_FREE
-
-/* Define to 1 if you have the <iconv.h> header file. */
-#undef HAVE_ICONV_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
-/* Define to 1 if you have the `malloc' function. */
-#undef HAVE_MALLOC
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#undef HAVE_MALLOC_H
-
-/* Define to 1 if you have the <math.h> header file. */
-#undef HAVE_MATH_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Support mmx instructions */
-#undef HAVE_MMX
-
-/* Define to 1 if you have the `openlog' function. */
-#undef HAVE_OPENLOG
-
-/* Define to 1 if you have the <pthread.h> header file. */
-#undef HAVE_PTHREAD_H
-
-/* Define to 1 if you have the `realloc' function. */
-#undef HAVE_REALLOC
-
-/* Define to 1 if you have the <signal.h> header file. */
-#undef HAVE_SIGNAL_H
-
-/* Support SSE (Streaming SIMD Extensions) instructions */
-#undef HAVE_SSE
-
-/* Support SSE2 (Streaming SIMD Extensions 2) instructions */
-#undef HAVE_SSE2
-
-/* Support SSE3 (Streaming SIMD Extensions 3) instructions */
-#undef HAVE_SSE3
-
-/* Support SSSE4.1 (Streaming SIMD Extensions 4.1) instructions */
-#undef HAVE_SSE4_1
-
-/* Support SSSE4.2 (Streaming SIMD Extensions 4.2) instructions */
-#undef HAVE_SSE4_2
-
-/* Support SSSE3 (Supplemental Streaming SIMD Extensions 3) instructions */
-#undef HAVE_SSSE3
-
-/* Define to 1 if you have the <stdarg.h> header file. */
-#undef HAVE_STDARG_H
-
-/* Define to 1 if you have the <stddef.h> header file. */
-#undef HAVE_STDDEF_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdio.h> header file. */
-#undef HAVE_STDIO_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <syslog.h> header file. */
-#undef HAVE_SYSLOG_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#undef LT_OBJDIR
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Enable extensions on AIX 3, Interix. */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
-/* Enable GNU extensions on systems that have them. */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Enable threading extensions on Solaris. */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop. */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable general extensions on Solaris. */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
-
-
-/* Version number of package */
-#undef VERSION
-
-/* Define to 1 if on MINIX. */
-#undef _MINIX
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
- this defined. */
-#undef _POSIX_1_SOURCE
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-#undef _POSIX_SOURCE
diff --git a/src/c/liberasurecode/include/erasurecode/alg_sig.h b/src/c/liberasurecode/include/erasurecode/alg_sig.h
deleted file mode 100644
index 6d56d76..0000000
--- a/src/c/liberasurecode/include/erasurecode/alg_sig.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* * Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com)
- * 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. 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 HOLDER 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.
- */
-
-#ifndef _ALG_SIG_H
-#define _ALG_SIG_H
-
-typedef int (*galois_single_multiply_func)(int, int, int);
-
-struct jerasure_mult_routines {
- galois_single_multiply_func galois_single_multiply;
-};
-
-#define JERASURE_SONAME "libJerasure.dylib"
-
-typedef struct alg_sig_s
-{
- int gf_w;
- int sig_len;
- struct jerasure_mult_routines mult_routines;
- void *jerasure_sohandle;
- int *tbl1_l;
- int *tbl1_r;
- int *tbl2_l;
- int *tbl2_r;
- int *tbl3_l;
- int *tbl3_r;
-} alg_sig_t;
-
-alg_sig_t *init_alg_sig(int sig_len, int gf_w);
-void destroy_alg_sig(alg_sig_t* alg_sig_handle);
-
-int compute_alg_sig(alg_sig_t* alg_sig_handle, char *buf, int len, char *sig);
-int crc32_build_fast_table();
-int crc32(int crc, const void *buf, int size);
-
-#endif
diff --git a/src/c/liberasurecode/include/erasurecode/erasurecode.h b/src/c/liberasurecode/include/erasurecode/erasurecode.h
deleted file mode 100644
index eaab714..0000000
--- a/src/c/liberasurecode/include/erasurecode/erasurecode.h
+++ /dev/null
@@ -1,365 +0,0 @@
-/*
- * Copyright 2014, Tushar Gohad, Kevin Greenan, 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. 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 HOLDER 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.
- *
- * liberasurecode frontend API header
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#ifndef _ERASURECODE_H_
-#define _ERASURECODE_H_
-
-#include "list.h"
-#include "erasurecode_stdinc.h"
-#include "erasurecode_version.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* =~=*=~==~=*=~==~=*=~= Supported EC backends =~=*=~==~=*=~==~=*=~==~=*=~== */
-
-typedef enum {
- EC_BACKEND_NULL = 0,
- EC_BACKEND_JERASURE_RS_VAND = 1,
- EC_BACKEND_JERASURE_RS_CAUCHY = 2,
- EC_BACKEND_FLAT_XOR_HD = 3,
- EC_BACKEND_ISA_L_RS_VAND = 4,
- EC_BACKEND_SHSS = 5,
- EC_BACKENDS_MAX,
-} ec_backend_id_t;
-
-/* ~=*=~==~=*=~= EC Fragment metadata - supported checksum types ~=*=~==~=*=~ */
-
-/* Checksum types supported for fragment metadata stored in each fragment */
-typedef enum {
- CHKSUM_NONE = 1,
- CHKSUM_CRC32 = 2,
- CHKSUM_MD5 = 3,
- CHKSUM_TYPES_MAX,
-} ec_checksum_type_t;
-
-/* =~=*=~==~=*=~== EC Arguments - Common and backend-specific =~=*=~==~=*=~== */
-
-/**
- * Common and backend-specific args
- * to be passed to liberasurecode_instance_create()
- */
-struct ec_args {
- int k; /* number of data fragments */
- int m; /* number of parity fragments */
- int w; /* word size, in bits (optional) */
- int hd; /* hamming distance (=m for Reed-Solomon) */
-
- union {
- struct {
- uint64_t arg1; /* sample arg */
- } null_args; /* args specific to the null codes */
- struct {
- uint64_t x, y; /* reserved for future expansion */
- uint64_t z, a; /* reserved for future expansion */
- } reserved;
- } priv_args1;
-
- void *priv_args2; /** flexible placeholder for
- * future backend args */
- ec_checksum_type_t ct; /* fragment checksum type */
-};
-
-/* =~=*=~==~=*=~== liberasurecode frontend API functions =~=*=~==~=~=*=~==~= */
-
-/* liberasurecode frontend API functions */
-
-/**
- * Create a liberasurecode instance and return a descriptor
- * for use with EC operations (encode, decode, reconstruct)
- *
- * @param id - one of the supported backends as
- * defined by ec_backend_id_t
- * @param ec_args - arguments to the EC backend
- * arguments common to all backends
- * k - number of data fragments
- * m - number of parity fragments
- * w - word size, in bits
- * hd - hamming distance (=m for Reed-Solomon)
- * ct - fragment checksum type (stored with the fragment metadata)
- * backend-specific arguments
- * null_args - arguments for the null backend
- * flat_xor_hd, jerasure do not require any special args
- *
- * @return liberasurecode instance descriptor (int > 0)
- */
-int liberasurecode_instance_create(const ec_backend_id_t id,
- struct ec_args *args);
-
-/**
- * Close a liberasurecode instance
- *
- * @param desc - liberasurecode descriptor to close
- *
- * @return 0 on success, otherwise non-zero error code
- */
-int liberasurecode_instance_destroy(int desc);
-
-
-/**
- * Erasure encode a data buffer
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param orig_data - data to encode
- * @param orig_data_size - length of data to encode
- * @param encoded_data - pointer to _output_ array (char **) of k data
- * fragments (char *), allocated by the callee
- * @param encoded_parity - pointer to _output_ array (char **) of m parity
- * fragments (char *), allocated by the callee
- * @param fragment_len - pointer to _output_ length of each fragment, assuming
- * all fragments are the same length
- *
- * @return 0 on success, -error code otherwise
- */
-int liberasurecode_encode(int desc,
- const char *orig_data, uint64_t orig_data_size, /* input */
- char ***encoded_data, char ***encoded_parity, /* output */
- uint64_t *fragment_len); /* output */
-
-/**
- * Cleanup structures allocated by librasurecode_encode
- *
- * The caller has no context, so cannot safely free memory
- * allocated by liberasurecode, so it must pass the
- * deallocation responsibility back to liberasurecode.
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param encoded_data - (char **) array of k data
- * fragments (char *), allocated by liberasurecode_encode
- * @param encoded_parity - (char **) array of m parity
- * fragments (char *), allocated by liberasurecode_encode
- *
- * @return 0 in success; -error otherwise
- */
-int liberasurecode_encode_cleanup(int desc, char **encoded_data,
- char **encoded_parity);
-
-/**
- * Reconstruct original data from a set of k encoded fragments
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param fragments - erasure encoded fragments (> = k)
- * @param num_fragments - number of fragments being passed in
- * @param fragment_len - length of each fragment (assume they are the same)
- * @param force_metadata_checks - force fragment metadata checks (default: 0)
- * @param out_data - _output_ pointer to decoded data
- * @param out_data_len - _output_ length of decoded output
- * (both output data pointers are allocated by liberasurecode,
- * caller invokes liberasurecode_decode_clean() after it has
- * read decoded data in 'out_data')
- *
- * @return 0 on success, -error code otherwise
- */
-int liberasurecode_decode(int desc,
- char **available_fragments, /* input */
- int num_fragments, uint64_t fragment_len, /* input */
- int force_metadata_checks, /* input */
- char **out_data, uint64_t *out_data_len); /* output */
-
-/**
- * Cleanup structures allocated by librasurecode_decode
- *
- * The caller has no context, so cannot safely free memory
- * allocated by liberasurecode, so it must pass the
- * deallocation responsibility back to liberasurecode.
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param data - (char *) buffer of data decoded by librasurecode_decode
- *
- * @return 0 on success; -error otherwise
- */
-int liberasurecode_decode_cleanup(int desc, char *data);
-
-/**
- * Reconstruct a missing fragment from a subset of available fragments
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param available_fragments - erasure encoded fragments
- * @param num_fragments - number of fragments being passed in
- * @param fragment_len - size in bytes of the fragments
- * @param destination_idx - missing idx to reconstruct
- * @param out_fragment - output of reconstruct
- *
- * @return 0 on success, -error code otherwise
- */
-int liberasurecode_reconstruct_fragment(int desc,
- char **available_fragments, /* input */
- int num_fragments, uint64_t fragment_len, /* input */
- int destination_idx, /* input */
- char* out_fragment); /* output */
-
-/**
- * Return a list of lists with valid rebuild indexes given
- * a list of missing indexes.
- *
- * @desc: liberasurecode instance descriptor (obtained with
- * liberasurecode_instance_create)
- * @fragments_to_reconstruct list of indexes to reconstruct
- * @fragments_to_exclude list of indexes to exclude from
- * reconstruction equation
- * @fragments_needed list of fragments needed to reconstruct
- * fragments in fragments_to_reconstruct
- *
- * @return 0 on success, non-zero on error
- */
-int liberasurecode_fragments_needed(int desc,
- int *fragments_to_reconstruct,
- int *fragments_to_exclude,
- int *fragments_needed);
-
-
-/* ==~=*=~==~=*=~== liberasurecode fragment metadata routines ==~*==~=*=~==~ */
-
-#define LIBERASURECODE_MAX_CHECKSUM_LEN 8
-typedef struct __attribute__((__packed__))
-fragment_metadata
-{
- uint32_t idx; /* 4 */
- uint32_t size; /* 4 */
- uint32_t frag_backend_metadata_size; /* 4 */
- uint64_t orig_data_size; /* 8 */
- uint8_t chksum_type; /* 1 */
- uint32_t chksum[LIBERASURECODE_MAX_CHECKSUM_LEN]; /* 32 */
- uint8_t chksum_mismatch; /* 1 */
- uint8_t backend_id; /* 1 */
- uint32_t backend_version; /* 4 */
-} fragment_metadata_t;
-
-#define FRAGSIZE_2_BLOCKSIZE(fragment_size) \
- (fragment_size - sizeof(fragment_header_t))
-
-/**
- * Get opaque metadata for a fragment. The metadata is opaque to the
- * client, but meaningful to the underlying library. It is used to verify
- * stripes in verify_stripe_metadata().
- *
- * @param fragment - fragment data pointer
- * @param fragment_metadata - pointer to allocated buffer of size at least
- * sizeof(struct fragment_metadata) to hold fragment metadata struct
- *
- * @return 0 on success, non-zero on error
- */
-//EDL: This needs to be implemented
-int liberasurecode_get_fragment_metadata(char *fragment,
- fragment_metadata_t *fragment_metadata);
-
-/**
-* Verify that the specified pointer points to a well formed fragment that can
-* be processed by both this instance of liberasurecode and the specified
-* backend.
-*
-* @param desc - liberasurecode descriptor/handle
-* from liberasurecode_instance_create()
-* @param fragment - fragment to verify
-*
-* @return 1 if fragment validation fails, 0 otherwise.
-*/
-int is_invalid_fragment(int desc, char *fragment);
-
-/**
- * Verify a subset of fragments generated by encode()
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param fragments - fragments part of the EC stripe to verify
- * @param num_fragments - number of fragments part of the EC stripe
- *
- * @return 1 if stripe checksum verification is successful, 0 otherwise
- */
-int liberasurecode_verify_stripe_metadata(int desc,
- char **fragments, int num_fragments);
-
-/* ==~=*=~===~=*=~==~=*=~== liberasurecode Helpers ==~*==~=*=~==~=~=*=~==~= */
-
-/**
- * This computes the aligned size of a buffer passed into
- * the encode function. The encode function must pad fragments
- * to be algined with the word size (w) and the last fragment also
- * needs to be aligned. This computes the sum of the algined fragment
- * sizes for a given buffer to encode.
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param data_len - original data length in bytes
- *
- * @return aligned length, or -error code on error
- */
-int liberasurecode_get_aligned_data_size(int desc, uint64_t data_len);
-
-/**
- * This will return the minimum encode size, which is the minimum
- * buffer size that can be encoded.
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- *
- * @return minimum data length length, or -error code on error
- */
-int liberasurecode_get_minimum_encode_size(int desc);
-
-/**
- * This will return the fragment size, which is each fragment data
- * length the backend will allocate when encoding.
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param data_len - original data length in bytes
- *
- * @return fragment size - sizeof(fragment_header) + size
- * + frag_backend_metadata_size
- */
-int liberasurecode_get_fragment_size(int desc, int data_len);
-
-/* ==~=*=~===~=*=~==~=*=~== liberasurecode Error codes =~=*=~==~=~=*=~==~== */
-
-/* Error codes */
-typedef enum {
- EBACKENDNOTSUPP = 200,
- EECMETHODNOTIMPL = 201,
- EBACKENDINITERR = 202,
- EBACKENDINUSE = 203,
- EBACKENDNOTAVAIL = 204,
- EBADCHKSUM = 205,
- EINVALIDPARAMS = 206,
- EBADHEADER = 207,
- EINSUFFFRAGS = 208,
-} LIBERASURECODE_ERROR_CODES;
-
-/* =~=*=~==~=*=~==~=*=~==~=*=~===~=*=~==~=*=~===~=*=~==~=*=~===~=*=~==~=*=~= */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // _ERASURECODE_H_
diff --git a/src/c/liberasurecode/include/erasurecode/erasurecode_backend.h b/src/c/liberasurecode/include/erasurecode/erasurecode_backend.h
deleted file mode 100644
index df3922b..0000000
--- a/src/c/liberasurecode/include/erasurecode/erasurecode_backend.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * <Copyright>
- *
- * 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. 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 HOLDER 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.
- *
- * liberasurecode backend API definition
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#ifndef _ERASURECODE_BACKEND_H_
-#define _ERASURECODE_BACKEND_H_
-
-#include "list.h"
-#include "erasurecode.h"
-#include "erasurecode_stdinc.h"
-
-/* ~=*=~===~=*=~==~=*=~==~=*=~= backend infrastructure =~=*=~==~=*=~==~=*=~ */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined (__GNUC__) && __GNUC__ > 3
-#define dl_restrict __restrict
-#else
-#define dl_restrict
-#endif
-
-/* ==~=*=~===~=*=~==~=*=~==~=*=~= EC backend args =~==~=*=~==~=*=~===~=*=~== */
-
-/* Arguments passed to the backend */
-#define MAX_PRIV_ARGS 4
-struct ec_backend_args {
- struct ec_args uargs; /* common args passed in by the user */
- void *pargs[MAX_PRIV_ARGS]; /* used for private backend args */
-};
-
-/* =~===~=*=~==~=*=~==~=*=~= backend stub definitions =~=*=~==~=*=~==~=*=~= */
-
-#define INIT init
-#define EXIT exit
-#define ENCODE encode
-#define DECODE decode
-#define FRAGSNEEDED fragments_needed
-#define RECONSTRUCT reconstruct
-#define ELEMENTSIZE element_size
-#define ISCOMPATIBLEWITH is_compatible_with
-
-#define FN_NAME(s) str(s)
-#define str(s) #s
-
-/* EC backend stubs - implemented per backend */
-struct ec_backend_op_stubs {
- /** Backend register/init, unregister/cleanup routines **/
-
- /* Private backend init routine */
- void * (*INIT)(struct ec_backend_args *args, void *sohandle);
-
- /* Private backend cleanup routine */
- int (*EXIT)(void *);
-
- /* Backend stub declarations */
- int (*ENCODE)(void *desc,
- char **data, char **parity, int blocksize);
- int (*DECODE)(void *desc,
- char **data, char **parity, int *missing_idxs, int blocksize);
- int (*FRAGSNEEDED)(void *desc,
- int *missing_idxs, int * fragments_to_exclude, int *fragments_needed);
- int (*RECONSTRUCT)(void *desc,
- char **data, char **parity, int *missing_idxs, int destination_idx,
- int blocksize);
- int (*ELEMENTSIZE)(void *desc);
-
- bool (*ISCOMPATIBLEWITH) (uint32_t version);
-};
-
-/* ==~=*=~==~=*=~==~=*=~= backend struct definitions =~=*=~==~=*=~==~=*==~== */
-
-struct ec_backend_desc {
- void *backend_desc; /* EC backend private descriptor */
- void *backend_sohandle; /* EC backend shared lib handle */
-};
-
-#define MAX_LEN 64
-/* EC backend common attributes */
-struct ec_backend_common {
- ec_backend_id_t id; /* EC backend type */
- char name[MAX_LEN]; /* EC backend common name */
- char soname[PATH_MAX]; /* EC backend shared library path */
- char soversion[MAX_LEN]; /* EC backend shared library version */
-
- struct ec_backend_op_stubs *ops; /* EC backend stubs */
- size_t backend_metadata_size; /* EC backend custom metadata size -
- * backend_metadata_size bytes are added to
- * the fragment size when allocating
- * data/parity fragment buffers */
- uint32_t ec_backend_version; /* The revision number of this back
- * end. Is used to determine whether
- * a specific instance of this backend
- * accepts fragments generated by
- * another version */
-};
-
-/* EC backend definition */
-typedef struct ec_backend {
- struct ec_backend_common common; /* EC backend common attributes */
- struct ec_backend_args args; /* EC backend instance data (private) */
-
- int idesc; /* liberasurecode instance handle */
- struct ec_backend_desc desc; /* EC backend instance handle */
-
- SLIST_ENTRY(ec_backend) link;
-} *ec_backend_t;
-
-/* ~=*=~==~=*=~==~=*=~==~=*= frontend <-> backend API =*=~==~=*=~==~=*=~==~= */
-
-/* Register a backend instance with liberasurecode */
-int liberasurecode_backend_instance_register(ec_backend_t instance);
-
-/* Unregister a backend instance */
-int liberasurecode_backend_instance_unregister(ec_backend_t instance);
-
-
-/* Generic dlopen/dlclose routines */
-int liberasurecode_backend_open(ec_backend_t instance);
-int liberasurecode_backend_close(ec_backend_t instance);
-
-
-/* Backend query interface */
-
-/* Name to ID mapping for EC backend */
-ec_backend_id_t liberasurecode_backend_lookup_id(const char *name);
-
-/* Get EC backend by name */
-ec_backend_t liberasurecode_backend_lookup_by_name(const char *name);
-
-/**
- * Look up a backend instance by descriptor
- *
- * Returns pointer to a registered liberasurecode instance
- * The caller must hold active_instances_rwlock
- */
-ec_backend_t liberasurecode_backend_instance_get_by_desc(int desc);
-
-/* =~=*=~==~=*=~==~=*=~==~=*=~===~=*=~==~=*=~===~=*=~==~=*=~===~=*=~==~=*=~= */
-
-#endif // _ERASURECODE_BACKEND_H_
diff --git a/src/c/liberasurecode/include/erasurecode/erasurecode_helpers.h b/src/c/liberasurecode/include/erasurecode/erasurecode_helpers.h
deleted file mode 100644
index 7fc9e96..0000000
--- a/src/c/liberasurecode/include/erasurecode/erasurecode_helpers.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * <Copyright>
- *
- * 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. 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 HOLDER 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.
- *
- * liberasurecode proprocssing helpers header
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#ifndef _ERASURECODE_HELPERS_H_
-#define _ERASURECODE_HELPERS_H_
-
-#include "erasurecode_backend.h"
-#include "erasurecode_stdinc.h"
-
-/* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */
-
-/**
- * liberasurecode fragment header definition
- *
- * Prevent the compiler from padding this by using the __packed__ keyword
- */
-
-#define LIBERASURECODE_FRAG_HEADER_MAGIC 0xb0c5ecc
-#define LIBERASURECODE_MAX_CHECKSUM_LEN 8 /* quad words */
-
-typedef struct __attribute__((__packed__)) fragment_header_s
-{
- fragment_metadata_t meta; /* 59 bytes */
- uint32_t magic; /* 4 bytes */
- uint32_t libec_version; /* 4 bytes */
- // We must be aligned to 16-byte boundaries
- // So, size this array accordingly
- uint8_t aligned_padding[13];
-} fragment_header_t;
-
-/* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */
-
-#define talloc(type, num) (type *) malloc(sizeof(type) * (num))
-
-/* Determine if an address is aligned to a particular boundary */
-static inline
-int is_addr_aligned(unsigned long addr, int align)
-{
- return (addr & (align - 1)) == 0;
-}
-
-/*
- * Convert an int list into a bitmap
- * Assume the list is '-1' terminated.
- */
-static inline
-unsigned long long convert_list_to_bitmap(int *list)
-{
- int i = 0;
- unsigned long long bm = 0;
-
- while (list[i] > -1) {
- /*
- * TODO: Assert list[i] < 64
- */
- bm |= (1 << list[i]);
- i++;
- }
-
- return bm;
-}
-
-/*
- * Convert an index list int list into a bitmap
- * is_idx_in_erasure[] needs to be allocated by the caller
- * @returns number of idxs in error
- */
-static inline
-int convert_idx_list_to_bitvalues(
- int *list_idxs, // input idx_list
- int *is_idx_in_erasure, // output idx list as boolean values (1/0)
- int num_idxs) // total number of indexes
-{
- int i = 0, n = 0;
-
- for (i = 0; i < num_idxs; i++)
- is_idx_in_erasure[i] = 0;
- for (i = 0, n = 0; (list_idxs[i] > -1) && (n < num_idxs); i++, n++)
- is_idx_in_erasure[list_idxs[i]] = 1;
-
- return n;
-}
-
-static inline
-void init_fragment_header(char *buf)
-{
- fragment_header_t *header = (fragment_header_t *) buf;
-
- header->magic = LIBERASURECODE_FRAG_HEADER_MAGIC;
-}
-
-/* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */
-
-void *alloc_zeroed_buffer(int size);
-void *alloc_and_set_buffer(int size, int value);
-void *check_and_free_buffer(void *buf);
-char *alloc_fragment_buffer(int size);
-int free_fragment_buffer(char *buf);
-void *get_aligned_buffer16(int size);
-int get_aligned_data_size(ec_backend_t instance, int data_len);
-char *get_data_ptr_from_fragment(char *buf);
-int get_data_ptr_array_from_fragments(char **data_array, char **fragments,
- int num_fragments);
-int get_fragment_ptr_array_from_data(char **frag_array, char **data,
- int num_data);
-char *get_fragment_ptr_from_data_novalidate(char *buf);
-char *get_fragment_ptr_from_data(char *buf);
-uint64_t get_fragment_size(char *buf);
-int set_fragment_idx(char *buf, int idx);
-int get_fragment_idx(char *buf);
-int set_fragment_payload_size(char *buf, int size);
-int get_fragment_payload_size(char *buf);
-int set_fragment_backend_metadata_size(char *buf, int size);
-int get_fragment_backend_metadata_size(char *buf);
-int get_fragment_buffer_size(char *buf);
-int set_orig_data_size(char *buf, int orig_data_size);
-int get_orig_data_size(char *buf);
-int set_checksum(ec_checksum_type_t ct, char *buf, int blocksize);
-int get_checksum(char *buf); //TODO implement this
-int set_libec_version(char *fragment);
-int get_libec_version(char *fragment, uint32_t *ver);
-int set_backend_id(char *buf, ec_backend_id_t id);
-int get_backend_id(char *buf, ec_backend_id_t *id);
-int set_backend_version(char *buf, uint32_t version);
-int get_backend_version(char *buf, uint32_t *version);
-
-/* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */
-
-#endif // _ERASURECODE_HELPERS_H_
diff --git a/src/c/liberasurecode/include/erasurecode/erasurecode_log.h b/src/c/liberasurecode/include/erasurecode/erasurecode_log.h
deleted file mode 100644
index 788c07e..0000000
--- a/src/c/liberasurecode/include/erasurecode/erasurecode_log.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * <Copyright>
- *
- * 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. 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 HOLDER 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.
- *
- * liberasurecode logging routines
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#ifndef _ERASURECODE_LOG_H_
-#define _ERASURECODE_LOG_H_
-
-/* ==~=*=~==~=*=~==~=*=~==~=*=~==~= Logging =~==~=*=~==~=*=~==~=*=~==~=*=~== */
-
-#if __STDC_VERSION__ < 199901L
- #if __GNUC__ >= 2
- #define __func__ __FUNCTION__
- #else
- #define __func__ "<unknown>"
- #endif
-#endif
-
-#define _LOG1(level, ...) \
- syslog (level, __VA_ARGS__)
-
-#define _LOG2(level, ...) \
- syslog (level, "%s:%d:%s\n", __FILE__, __LINE__, __VA_ARGS__)
-
-#define log_info(...) _LOG1(LOG_INFO, __VA_ARGS__)
-#define log_warn(...) _LOG1(LOG_WARNING, __VA_ARGS__)
-#define log_error(...) _LOG1(LOG_ERR, __VA_ARGS__)
-#define log_debug(...) _LOG2(LOG_DEBUG, __VA_ARGS__)
-
-/* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */
-
-#endif // _ERASURECODE_LOG_H_
diff --git a/src/c/liberasurecode/include/erasurecode/erasurecode_postprocessing.h b/src/c/liberasurecode/include/erasurecode/erasurecode_postprocessing.h
deleted file mode 100644
index 395700d..0000000
--- a/src/c/liberasurecode/include/erasurecode/erasurecode_postprocessing.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * <Copyright>
- *
- * 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. 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 HOLDER 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.
- *
- * liberasurecode API helpers header
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#ifndef _ERASURECODE_POSTPROCESSING_H_
-#define _ERASURECODE_POSTPROCESSING_H_
-
-int finalize_fragments_after_encode(ec_backend_t instance,
- int k, int m, int blocksize, uint64_t orig_data_size,
- char **encoded_data, char **encoded_parity);
-
-void add_fragment_metadata(ec_backend_t instance, char *fragment,
- int idx, uint64_t orig_data_size, int blocksize,
- ec_checksum_type_t ct, int add_chksum);
-
-#endif
diff --git a/src/c/liberasurecode/include/erasurecode/erasurecode_preprocessing.h b/src/c/liberasurecode/include/erasurecode/erasurecode_preprocessing.h
deleted file mode 100644
index 7ca891d..0000000
--- a/src/c/liberasurecode/include/erasurecode/erasurecode_preprocessing.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * <Copyright>
- *
- * 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. 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 HOLDER 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.
- *
- * liberasurecode API helpers header
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#ifndef _ERASURECODE_PREPROCESSING_H_
-#define _ERASURECODE_PREPROCESSING_H_
-
-int prepare_fragments_for_encode(
- ec_backend_t instance,
- int k, int m,
- const char *orig_data, uint64_t orig_data_size, /* input */
- char **encoded_data, char **encoded_parity, /* output */
- int *blocksize);
-
-int prepare_fragments_for_decode(
- int k, int m,
- char **data, char **parity,
- int *missing_idxs,
- int *orig_size, int *fragment_payload_size, int fragment_size,
- uint64_t *realloc_bm);
-
-int get_fragment_partition(
- int k, int m,
- char **fragments, int num_fragments,
- char **data, char **parity,
- int *missing);
-
-int fragments_to_string(
- int k, int m,
- char **fragments, int num_fragments,
- char **orig_payload, uint64_t *payload_len);
-
-#endif
diff --git a/src/c/liberasurecode/include/erasurecode/erasurecode_stdinc.h b/src/c/liberasurecode/include/erasurecode/erasurecode_stdinc.h
deleted file mode 100644
index a48ee65..0000000
--- a/src/c/liberasurecode/include/erasurecode/erasurecode_stdinc.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * <Copyright>
- *
- * 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. 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 HOLDER 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.
- */
-
-#ifndef _ERASURECODE_STDINC_H_
-#define _ERASURECODE_STDINC_H_
-
-#ifndef _EXCLUDE_LIBERASURE_CODE_H_
-#include "config_liberasurecode.h"
-#endif
-#include "erasurecode_log.h"
-
-#ifdef HAVE_SYSLOG_H
-#include <syslog.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_STDIO_H
-#include <stdio.h>
-#endif
-#if defined(STDC_HEADERS)
-# include <stdlib.h>
-# include <stddef.h>
-# include <stdarg.h>
-# include <stdbool.h>
-# include <unistd.h>
-#else
-# if defined(HAVE_STDLIB_H)
-# include <stdlib.h>
-# elif defined(HAVE_MALLOC_H)
-# include <malloc.h>
-# endif
-# if defined(HAVE_STDDEF_H)
-# include <stddef.h>
-# endif
-# if defined(HAVE_STDARG_H)
-# include <stdarg.h>
-# endif
-# if defined(HAVE_UNISTD_H)
-# include <unistd.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
-#if defined(HAVE_INTTYPES_H)
-# include <inttypes.h>
-#elif defined(HAVE_STDINT_H)
-# include <stdint.h>
-#endif
-#ifdef HAVE_CTYPE_H
-# include <ctype.h>
-#endif
-#if defined(HAVE_ICONV) && defined(HAVE_ICONV_H)
-# include <iconv.h>
-#endif
-#ifdef HAVE_DLFCN_H
-# include <dlfcn.h>
-#endif
-#ifdef HAVE_DLFCN_H
-# include <limits.h>
-#endif
-#ifdef HAVE_PTHREAD_H
-# include <pthread.h>
-#define RWLOCK_INITIALIZER PTHREAD_RWLOCK_INITIALIZER
-#define rwlock_t pthread_rwlock_t
-#define rwlock_rdlock pthread_rwlock_rdlock
-#define rwlock_wrlock pthread_rwlock_wrlock
-#define rwlock_tryrdlock pthread_rwlock_tryrdlock
-#define rwlock_trywrlock pthread_rwlock_trywrlock
-#define rwlock_unlock pthread_rwlock_unlock
-#define rwlock_destroy pthread_rwlock_destroy
-#endif
-#ifdef HAVE_ERRNO_H
-# include <errno.h>
-#endif
-#ifdef HAVE_MATH_H
-# include <math.h>
-#endif
-
-#if defined(__GNUC__) && __GNUC__ >= 4
-# define DECLSPEC __attribute__ ((visibility("default")))
-#else
-# define DECLSPEC
-#endif
-
-// FIXME - need to move these to the main liberasurecode header
-#ifdef HAVE_MALLOC
-#define ERASURECODE_malloc malloc
-#else
-extern DECLSPEC void * ERASURECODE_malloc(size_t size);
-#endif
-
-#ifdef HAVE_CALLOC
-#define ERASURECODE_calloc calloc
-#else
-extern DECLSPEC void * ERASURECODE_calloc(size_t nmemb, size_t size);
-#endif
-
-#ifdef HAVE_REALLOC
-#define ERASURECODE_realloc realloc
-#else
-extern DECLSPEC void * ERASURECODE_realloc(void *mem, size_t size);
-#endif
-
-#ifdef HAVE_FREE
-#define ERASURECODE_free free
-#else
-extern DECLSPEC void ERASURECODE_free(void *mem);
-#endif
-
-/* Redefine main() on MacOS */
-
-#if defined(__MACOS__) || defined(__MACOSX__)
-
-#ifdef __cplusplus
-#define C_LINKAGE "C"
-#else
-#define C_LINKAGE
-#endif /* __cplusplus */
-
-/** The application's main() function must be called with C linkage,
- * and should be declared like this:
- * @code
- * #ifdef __cplusplus
- * extern "C"
- * #endif
- * int main(int argc, char *argv[])
- * {
- * }
- * @endcode
- */
-#define main EC_main
-
-/** The prototype for the application's main() function */
-extern C_LINKAGE int EC_main(int argc, char *argv[]);
-
-#endif // MACOSX
-
-#endif // _ERASURECODE_STDINC_H_
diff --git a/src/c/liberasurecode/include/erasurecode/erasurecode_version.h b/src/c/liberasurecode/include/erasurecode/erasurecode_version.h
deleted file mode 100644
index fa1f8da..0000000
--- a/src/c/liberasurecode/include/erasurecode/erasurecode_version.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * <Copyright>
- *
- * 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. 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 HOLDER 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.
- */
-
-#ifndef _ERASURECODE_VERSION_H_
-#define _ERASURECODE_VERSION_H_
-
-#define MAJOR 0
-#define MINOR 9
-#define REV 10
-#define _VERSION(x, y, z) ((x << 16) | (y << 8) | (z))
-
-#define LIBERASURECODE_VERSION _VERSION(MAJOR, MINOR, REV)
-
-#endif // _ERASURECODE_VERSION_H_
diff --git a/src/c/liberasurecode/include/erasurecode/list.h b/src/c/liberasurecode/include/erasurecode/list.h
deleted file mode 100644
index 6d83989..0000000
--- a/src/c/liberasurecode/include/erasurecode/list.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. 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.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the 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 REGENTS 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 REGENTS 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.
- *
- * BSD linked list implementation - extracted for use with liberasurecode
- *
- */
-
-#ifndef _LIST_H
-#define _LIST_H
-
-/*
- * A singly-linked list is headed by a single forward pointer. The elements
- * are singly linked for minimum space and pointer manipulation overhead at
- * the expense of O(n) removal for arbitrary elements. New elements can be
- * added to the list after an existing element or at the head of the list.
- * Elements being removed from the head of the list should use the explicit
- * macro for this purpose for optimum efficiency. A singly-linked list may
- * only be traversed in the forward direction. Singly-linked lists are ideal
- * for applications with large datasets and few or no removals or for
- * implementing a LIFO queue.
- */
-/*
- * Singly-linked List declarations.
- */
-#define SLIST_HEAD(name, type) \
-struct name { \
- struct type *slh_first; /* first element */ \
-}
-
-#define SLIST_HEAD_INITIALIZER(head) \
- { NULL }
-
-#define SLIST_ENTRY(type) \
-struct { \
- struct type *sle_next; /* next element */ \
-}
-
-/*
- * Singly-linked List functions.
- */
-#define SLIST_EMPTY(head) ((head)->slh_first == NULL)
-
-#define SLIST_FIRST(head) ((head)->slh_first)
-
-#define SLIST_FOREACH(var, head, field) \
- for ((var) = SLIST_FIRST((head)); \
- (var); \
- (var) = SLIST_NEXT((var), field))
-
-#define SLIST_INIT(head) do { \
- SLIST_FIRST((head)) = NULL; \
-} while (0)
-
-#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \
- SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \
- SLIST_NEXT((slistelm), field) = (elm); \
-} while (0)
-
-#define SLIST_INSERT_HEAD(head, elm, field) do { \
- SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \
- SLIST_FIRST((head)) = (elm); \
-} while (0)
-
-#define SLIST_NEXT(elm, field) ((elm)->field.sle_next)
-
-#define SLIST_REMOVE(head, elm, type, field) do { \
- if (SLIST_FIRST((head)) == (elm)) { \
- SLIST_REMOVE_HEAD((head), field); \
- } \
- else { \
- struct type *curelm = SLIST_FIRST((head)); \
- while (SLIST_NEXT(curelm, field) != (elm)) \
- curelm = SLIST_NEXT(curelm, field); \
- SLIST_NEXT(curelm, field) = \
- SLIST_NEXT(SLIST_NEXT(curelm, field), field); \
- } \
-} while (0)
-
-#define SLIST_REMOVE_HEAD(head, field) do { \
- SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \
-} while (0)
-
-#endif // _LIST_H
diff --git a/src/c/liberasurecode/include/xor_codes/xor_code.h b/src/c/liberasurecode/include/xor_codes/xor_code.h
deleted file mode 100644
index f0fc375..0000000
--- a/src/c/liberasurecode/include/xor_codes/xor_code.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* * Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com)
- * 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. 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 HOLDER 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.
- */
-
-#ifndef _XOR_CODE_H
-#define _XOR_CODE_H
-
-#define MAX_DATA 32
-#define MAX_PARITY MAX_DATA
-
-#define MEM_ALIGN_SIZE 16
-
-#define DECODED_MISSING_IDX MAX_DATA
-
-typedef enum { FAIL_PATTERN_GE_HD, // Num failures greater than or equal to HD
- FAIL_PATTERN_0D_0P,
- FAIL_PATTERN_1D_0P,
- FAIL_PATTERN_2D_0P,
- FAIL_PATTERN_3D_0P,
- FAIL_PATTERN_1D_1P,
- FAIL_PATTERN_1D_2P,
- FAIL_PATTERN_2D_1P,
- FAIL_PATTERN_0D_1P,
- FAIL_PATTERN_0D_2P,
- FAIL_PATTERN_0D_3P } failure_pattern_t;
-
-#define is_aligned(x) (((unsigned long)x & (MEM_ALIGN_SIZE-1)) == 0)
-#define num_unaligned_end(size) (size % MEM_ALIGN_SIZE)
-
-struct xor_code_s;
-
-typedef struct xor_code_s
-{
- int k;
- int m;
- int hd;
- unsigned int *parity_bms;
- unsigned int *data_bms;
- int (*decode)(struct xor_code_s *code_desc, char **data, char **parity, int *missing_idxs, int blocksize, int decode_parity);
- void (*encode)(struct xor_code_s *code_desc, char **data, char **parity, int blocksize);
- int (*fragments_needed)(struct xor_code_s *code_desc, int *missing_idxs, int *fragments_to_exclude, int *fragments_needed);
-} xor_code_t;
-
-int is_data_in_parity(int data_idx, unsigned int parity_bm);
-
-int does_parity_have_data(int parity_idx, unsigned int data_bm);
-
-int parity_bit_lookup(xor_code_t *code_desc, int index);
-
-int data_bit_lookup(xor_code_t *code_desc, int index);
-
-int missing_elements_bm(xor_code_t *code_desc, int *missing_elements, int (*bit_lookup_func)(xor_code_t *code_desc, int index));
-
-failure_pattern_t get_failure_pattern(xor_code_t *code_desc, int *missing_idxs);
-
-void fast_memcpy(char *dst, char *src, int size);
-
-void xor_bufs_and_store(char *buf1, char *buf2, int blocksize);
-
-void xor_code_encode(xor_code_t *code_desc, char **data, char **parity, int blocksize);
-
-void selective_encode(xor_code_t *code_desc, char **data, char **parity, int *missing_parity, int blocksize);
-
-int * get_missing_parity(xor_code_t *code_desc, int *missing_idxs);
-
-int * get_missing_data(xor_code_t *code_desc, int *missing_idxs);
-
-int num_missing_data_in_parity(xor_code_t *code_desc, int parity_idx, int *missing_data);
-
-int index_of_connected_parity(xor_code_t *code_desc, int data_index, int *missing_parity, int *missing_data);
-
-void remove_from_missing_list(int element, int *missing_list);
-
-int* get_symbols_needed(xor_code_t *code_desc, int *missing_list, int *fragments_to_exclude);
-
-void xor_reconstruct_one(xor_code_t *code_desc, char **data, char **parity, int *missing_idxs, int index_to_reconstruct, int blocksize);
-
-xor_code_t* init_xor_hd_code(int k, int m, int hd);
-
-#endif
diff --git a/src/c/liberasurecode/include/xor_codes/xor_hd_code_defs.h b/src/c/liberasurecode/include/xor_codes/xor_hd_code_defs.h
deleted file mode 100644
index 64468a2..0000000
--- a/src/c/liberasurecode/include/xor_codes/xor_hd_code_defs.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* * Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com)
- * 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. 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 HOLDER 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.
- */
-
-#ifndef _XOR_HD_CODE_DEFS_H
-#define _XOR_HD_CODE_DEFS_H
-
-
-
-// I made these by hand...
-unsigned int g_12_6_4_hd_code_parity_bms[] = { 1649, 3235, 2375, 718, 1436, 2872 };
-unsigned int g_12_6_4_hd_code_data_bms[] = { 7, 14, 28, 56, 49, 35, 13, 26, 52, 41, 19, 38 };
-
-unsigned int g_10_5_3_hd_code_parity_bms[] = { 163, 300, 337, 582, 664 };
-unsigned int g_10_5_3_hd_code_data_bms[] = { 5, 9, 10, 18, 20, 3, 12, 17, 6, 24 };
-
-
-// The rest were generated via the "goldilocks" code algorithm
-unsigned int g_6_6_3_hd_code_parity_bms[] = { 3, 48, 36, 24, 9, 6 };
-unsigned int g_6_6_3_hd_code_data_bms[] = { 17, 33, 36, 24, 10, 6 };
-unsigned int g_7_6_3_hd_code_parity_bms[] = { 67, 112, 36, 24, 9, 6 };
-unsigned int g_7_6_3_hd_code_data_bms[] = { 17, 33, 36, 24, 10, 6, 3 };
-unsigned int g_8_6_3_hd_code_parity_bms[] = { 67, 112, 164, 152, 9, 6 };
-unsigned int g_8_6_3_hd_code_data_bms[] = { 17, 33, 36, 24, 10, 6, 3, 12 };
-unsigned int g_9_6_3_hd_code_parity_bms[] = { 67, 112, 164, 152, 265, 262 };
-unsigned int g_9_6_3_hd_code_data_bms[] = { 17, 33, 36, 24, 10, 6, 3, 12, 48 };
-unsigned int g_10_6_3_hd_code_parity_bms[] = { 579, 112, 676, 152, 265, 262 };
-unsigned int g_10_6_3_hd_code_data_bms[] = { 17, 33, 36, 24, 10, 6, 3, 12, 48, 5 };
-unsigned int g_11_6_3_hd_code_parity_bms[] = { 579, 1136, 676, 152, 1289, 262 };
-unsigned int g_11_6_3_hd_code_data_bms[] = { 17, 33, 36, 24, 10, 6, 3, 12, 48, 5, 18 };
-unsigned int g_12_6_3_hd_code_parity_bms[] = { 579, 1136, 676, 2200, 1289, 2310 };
-unsigned int g_12_6_3_hd_code_data_bms[] = { 17, 33, 36, 24, 10, 6, 3, 12, 48, 5, 18, 40 };
-unsigned int g_13_6_3_hd_code_parity_bms[] = { 4675, 1136, 676, 6296, 1289, 2310 };
-unsigned int g_13_6_3_hd_code_data_bms[] = { 17, 33, 36, 24, 10, 6, 3, 12, 48, 5, 18, 40, 9 };
-unsigned int g_14_6_3_hd_code_parity_bms[] = { 4675, 9328, 676, 6296, 1289, 10502 };
-unsigned int g_14_6_3_hd_code_data_bms[] = { 17, 33, 36, 24, 10, 6, 3, 12, 48, 5, 18, 40, 9, 34 };
-unsigned int g_15_6_3_hd_code_parity_bms[] = { 4675, 9328, 17060, 6296, 17673, 10502 };
-unsigned int g_15_6_3_hd_code_data_bms[] = { 17, 33, 36, 24, 10, 6, 3, 12, 48, 5, 18, 40, 9, 34, 20 };
-
-unsigned int g_6_6_4_hd_code_parity_bms[] = { 7, 56, 56, 11, 21, 38 };
-unsigned int g_6_6_4_hd_code_data_bms[] = { 25, 41, 49, 14, 22, 38 };
-unsigned int g_7_6_4_hd_code_parity_bms[] = { 71, 120, 120, 11, 21, 38 };
-unsigned int g_7_6_4_hd_code_data_bms[] = { 25, 41, 49, 14, 22, 38, 7 };
-unsigned int g_8_6_4_hd_code_parity_bms[] = { 71, 120, 120, 139, 149, 166 };
-unsigned int g_8_6_4_hd_code_data_bms[] = { 25, 41, 49, 14, 22, 38, 7, 56 };
-unsigned int g_9_6_4_hd_code_parity_bms[] = { 327, 376, 120, 395, 149, 166 };
-unsigned int g_9_6_4_hd_code_data_bms[] = { 25, 41, 49, 14, 22, 38, 7, 56, 11 };
-unsigned int g_10_6_4_hd_code_parity_bms[] = { 327, 376, 632, 395, 661, 678 };
-unsigned int g_10_6_4_hd_code_data_bms[] = { 25, 41, 49, 14, 22, 38, 7, 56, 11, 52 };
-unsigned int g_11_6_4_hd_code_parity_bms[] = { 1351, 1400, 632, 395, 1685, 678 };
-unsigned int g_11_6_4_hd_code_data_bms[] = { 25, 41, 49, 14, 22, 38, 7, 56, 11, 52, 19 };
-unsigned int g_13_6_4_hd_code_parity_bms[] = { 5447, 5496, 2680, 2443, 1685, 6822 };
-unsigned int g_13_6_4_hd_code_data_bms[] = { 25, 41, 49, 14, 22, 38, 7, 56, 11, 52, 19, 44, 35 };
-unsigned int g_14_6_4_hd_code_parity_bms[] = { 5447, 5496, 10872, 10635, 9877, 6822 };
-unsigned int g_14_6_4_hd_code_data_bms[] = { 25, 41, 49, 14, 22, 38, 7, 56, 11, 52, 19, 44, 35, 28 };
-unsigned int g_15_6_4_hd_code_parity_bms[] = { 21831, 5496, 27256, 27019, 9877, 6822 };
-unsigned int g_15_6_4_hd_code_data_bms[] = { 25, 41, 49, 14, 22, 38, 7, 56, 11, 52, 19, 44, 35, 28, 13 };
-unsigned int g_16_6_4_hd_code_parity_bms[] = { 21831, 38264, 27256, 27019, 42645, 39590 };
-unsigned int g_16_6_4_hd_code_data_bms[] = { 25, 41, 49, 14, 22, 38, 7, 56, 11, 52, 19, 44, 35, 28, 13, 50 };
-unsigned int g_17_6_4_hd_code_parity_bms[] = { 87367, 38264, 92792, 27019, 108181, 39590 };
-unsigned int g_17_6_4_hd_code_data_bms[] = { 25, 41, 49, 14, 22, 38, 7, 56, 11, 52, 19, 44, 35, 28, 13, 50, 21 };
-unsigned int g_18_6_4_hd_code_parity_bms[] = { 87367, 169336, 92792, 158091, 108181, 170662 };
-unsigned int g_18_6_4_hd_code_data_bms[] = { 25, 41, 49, 14, 22, 38, 7, 56, 11, 52, 19, 44, 35, 28, 13, 50, 21, 42 };
-unsigned int g_19_6_4_hd_code_parity_bms[] = { 349511, 169336, 354936, 158091, 108181, 432806 };
-unsigned int g_19_6_4_hd_code_data_bms[] = { 25, 41, 49, 14, 22, 38, 7, 56, 11, 52, 19, 44, 35, 28, 13, 50, 21, 42, 37 };
-unsigned int g_20_6_4_hd_code_parity_bms[] = { 349511, 693624, 354936, 682379, 632469, 432806 };
-unsigned int g_20_6_4_hd_code_data_bms[] = { 25, 41, 49, 14, 22, 38, 7, 56, 11, 52, 19, 44, 35, 28, 13, 50, 21, 42, 37, 26 };
-
-
-unsigned int g_5_5_3_hd_code_parity_bms[] = { 3, 12, 17, 6, 24 };
-unsigned int g_5_5_3_hd_code_data_bms[] = { 5, 9, 10, 18, 20 };
-unsigned int g_6_5_3_hd_code_parity_bms[] = { 35, 44, 17, 6, 24 };
-unsigned int g_6_5_3_hd_code_data_bms[] = { 5, 9, 10, 18, 20, 3 };
-unsigned int g_7_5_3_hd_code_parity_bms[] = { 35, 44, 81, 70, 24 };
-unsigned int g_7_5_3_hd_code_data_bms[] = { 5, 9, 10, 18, 20, 3, 12 };
-unsigned int g_8_5_3_hd_code_parity_bms[] = { 163, 44, 81, 70, 152 };
-unsigned int g_8_5_3_hd_code_data_bms[] = { 5, 9, 10, 18, 20, 3, 12, 17 };
-unsigned int g_9_5_3_hd_code_parity_bms[] = { 163, 300, 337, 70, 152 };
-unsigned int g_9_5_3_hd_code_data_bms[] = { 5, 9, 10, 18, 20, 3, 12, 17, 6 };
-
-unsigned int g_5_5_4_hd_code_parity_bms[] = { 7, 25, 14, 19, 28 };
-unsigned int g_5_5_4_hd_code_data_bms[] = { 11, 13, 21, 22, 26 };
-unsigned int g_6_5_4_hd_code_parity_bms[] = { 39, 57, 46, 19, 28 };
-unsigned int g_6_5_4_hd_code_data_bms[] = { 11, 13, 21, 22, 26, 7 };
-unsigned int g_7_5_4_hd_code_parity_bms[] = { 103, 57, 46, 83, 92 };
-unsigned int g_7_5_4_hd_code_data_bms[] = { 11, 13, 21, 22, 26, 7, 25 };
-unsigned int g_8_5_4_hd_code_parity_bms[] = { 103, 185, 174, 211, 92 };
-unsigned int g_8_5_4_hd_code_data_bms[] = { 11, 13, 21, 22, 26, 7, 25, 14 };
-unsigned int g_9_5_4_hd_code_parity_bms[] = { 359, 441, 174, 211, 348 };
-unsigned int g_9_5_4_hd_code_data_bms[] = { 11, 13, 21, 22, 26, 7, 25, 14, 19 };
-unsigned int g_10_5_4_hd_code_parity_bms[] = { 359, 441, 686, 723, 860 };
-unsigned int g_10_5_4_hd_code_data_bms[] = { 11, 13, 21, 22, 26, 7, 25, 14, 19, 28 };
-
-// Indexed by k
-unsigned int * hd4_m5_parity[11] = { 0, 0, 0, 0, 0, g_5_5_4_hd_code_parity_bms, g_6_5_4_hd_code_parity_bms, g_7_5_4_hd_code_parity_bms, g_8_5_4_hd_code_parity_bms, g_9_5_4_hd_code_parity_bms, g_10_5_4_hd_code_parity_bms };
-unsigned int * hd4_m5_data[11] = { 0, 0, 0, 0, 0, g_5_5_4_hd_code_data_bms, g_6_5_4_hd_code_data_bms, g_7_5_4_hd_code_data_bms, g_8_5_4_hd_code_data_bms, g_9_5_4_hd_code_data_bms, g_10_5_4_hd_code_data_bms };
-unsigned int * hd4_m6_parity[21] = { 0, 0, 0, 0, 0, 0, g_6_6_4_hd_code_parity_bms, g_7_6_4_hd_code_parity_bms, g_8_6_4_hd_code_parity_bms, g_9_6_4_hd_code_parity_bms, g_10_6_4_hd_code_parity_bms, g_11_6_4_hd_code_parity_bms, g_12_6_4_hd_code_parity_bms, g_13_6_4_hd_code_parity_bms, g_14_6_4_hd_code_parity_bms, g_15_6_4_hd_code_parity_bms, g_16_6_4_hd_code_parity_bms, g_17_6_4_hd_code_parity_bms, g_18_6_4_hd_code_parity_bms, g_19_6_4_hd_code_parity_bms, g_20_6_4_hd_code_parity_bms };
-
-unsigned int * hd4_m6_data[21] = { 0, 0, 0, 0, 0, 0, g_6_6_4_hd_code_data_bms, g_7_6_4_hd_code_data_bms, g_8_6_4_hd_code_data_bms, g_9_6_4_hd_code_data_bms, g_10_6_4_hd_code_data_bms, g_11_6_4_hd_code_data_bms, g_12_6_4_hd_code_data_bms, g_13_6_4_hd_code_data_bms, g_14_6_4_hd_code_data_bms, g_15_6_4_hd_code_data_bms, g_16_6_4_hd_code_data_bms, g_17_6_4_hd_code_data_bms, g_18_6_4_hd_code_data_bms, g_19_6_4_hd_code_data_bms, g_20_6_4_hd_code_data_bms };
-
-unsigned int * hd3_m5_parity[11] = { 0, 0, 0, 0, 0, g_5_5_3_hd_code_parity_bms, g_6_5_3_hd_code_parity_bms, g_7_5_3_hd_code_parity_bms, g_8_5_3_hd_code_parity_bms, g_9_5_3_hd_code_parity_bms, g_10_5_3_hd_code_parity_bms };
-unsigned int * hd3_m5_data[11] = { 0, 0, 0, 0, 0, g_5_5_3_hd_code_data_bms, g_6_5_3_hd_code_data_bms, g_7_5_3_hd_code_data_bms, g_8_5_3_hd_code_data_bms, g_9_5_3_hd_code_data_bms, g_10_5_3_hd_code_data_bms };
-unsigned int * hd3_m6_parity[16] = { 0, 0, 0, 0, 0, 0, g_6_6_3_hd_code_parity_bms, g_7_6_3_hd_code_parity_bms, g_8_6_3_hd_code_parity_bms, g_9_6_3_hd_code_parity_bms, g_10_6_3_hd_code_parity_bms, g_11_6_3_hd_code_parity_bms, g_12_6_3_hd_code_parity_bms, g_13_6_3_hd_code_parity_bms, g_14_6_3_hd_code_parity_bms, g_15_6_3_hd_code_parity_bms };
-unsigned int * hd3_m6_data[16] = { 0, 0, 0, 0, 0, 0, g_6_6_3_hd_code_data_bms, g_7_6_3_hd_code_data_bms, g_8_6_3_hd_code_data_bms, g_9_6_3_hd_code_data_bms, g_10_6_3_hd_code_data_bms, g_11_6_3_hd_code_data_bms, g_12_6_3_hd_code_data_bms, g_13_6_3_hd_code_data_bms, g_14_6_3_hd_code_data_bms, g_15_6_3_hd_code_data_bms };
-
-unsigned int ** parity_bm_hd4 [7] = { 0, 0, 0, 0, 0, hd4_m5_parity, hd4_m6_parity };
-unsigned int ** data_bm_hd4 [7] = { 0, 0, 0, 0, 0, hd4_m5_data, hd4_m6_data };
-unsigned int ** parity_bm_hd3 [7] = { 0, 0, 0, 0, 0, hd3_m5_parity, hd3_m6_parity };
-unsigned int ** data_bm_hd3 [7] = { 0, 0, 0, 0, 0, hd3_m5_data, hd3_m6_data };
-
-#define PARITY_BM_ARY(k, m, hd) (hd == 3) ? parity_bm_hd3[m][k] : parity_bm_hd4[m][k]
-#define DATA_BM_ARY(k, m, hd) (hd == 3) ? data_bm_hd3[m][k] : data_bm_hd4[m][k]
-
-#endif
diff --git a/src/c/liberasurecode/install-sh b/src/c/liberasurecode/install-sh
deleted file mode 100755
index 377bb86..0000000
--- a/src/c/liberasurecode/install-sh
+++ /dev/null
@@ -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:
diff --git a/src/c/liberasurecode/ltmain.sh b/src/c/liberasurecode/ltmain.sh
deleted file mode 100644
index ca96cb3..0000000
--- a/src/c/liberasurecode/ltmain.sh
+++ /dev/null
@@ -1,9660 +0,0 @@
-
-# libtool (GNU libtool) 2.4.2
-# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010, 2011 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.
-
-# GNU Libtool 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 2 of the License, or
-# (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-# or obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Usage: $progname [OPTION]... [MODE-ARG]...
-#
-# Provide generalized library-building support services.
-#
-# --config show all configuration variables
-# --debug enable verbose shell tracing
-# -n, --dry-run display commands without modifying any files
-# --features display basic configuration information and exit
-# --mode=MODE use operation mode MODE
-# --preserve-dup-deps don't remove duplicate dependency libraries
-# --quiet, --silent don't print informational messages
-# --no-quiet, --no-silent
-# print informational messages (default)
-# --no-warn don't display warning messages
-# --tag=TAG use configuration variables from tag TAG
-# -v, --verbose print more informational messages than default
-# --no-verbose don't print the extra informational messages
-# --version print version information
-# -h, --help, --help-all print short, long, or detailed help message
-#
-# MODE must be one of the following:
-#
-# clean remove files from the build directory
-# compile compile a source file into a libtool object
-# execute automatically set library path, then run a program
-# finish complete the installation of libtool libraries
-# install install libraries or executables
-# link create a library or an executable
-# uninstall remove libraries from an installed directory
-#
-# MODE-ARGS vary depending on the MODE. When passed as first option,
-# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
-# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
-#
-# When reporting a bug, please describe a test case to reproduce it and
-# include the following information:
-#
-# host-triplet: $host
-# shell: $SHELL
-# compiler: $LTCC
-# compiler flags: $LTCFLAGS
-# linker: $LD (gnu? $with_gnu_ld)
-# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1
-# automake: $automake_version
-# autoconf: $autoconf_version
-#
-# Report bugs to <bug-libtool@gnu.org>.
-# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
-# General help using GNU software: <http://www.gnu.org/gethelp/>.
-
-PROGRAM=libtool
-PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.7ubuntu1"
-TIMESTAMP=""
-package_revision=1.3337
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs 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
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-}
-
-# NLS nuisances: We save the old values to restore during execute mode.
-lt_user_locale=
-lt_safe_locale=
-for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-do
- eval "if test \"\${$lt_var+set}\" = set; then
- save_$lt_var=\$$lt_var
- $lt_var=C
- export $lt_var
- lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
- lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
- fi"
-done
-LC_ALL=C
-LANGUAGE=C
-export LANGUAGE LC_ALL
-
-$lt_unset CDPATH
-
-
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
-
-
-
-: ${CP="cp -f"}
-test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
-: ${MAKE="make"}
-: ${MKDIR="mkdir"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
-: ${Xsed="$SED -e 1s/^X//"}
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
-EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
-
-exit_status=$EXIT_SUCCESS
-
-# Make sure IFS has a sensible default
-lt_nl='
-'
-IFS=" $lt_nl"
-
-dirname="s,/[^/]*$,,"
-basename="s,^.*/,,"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
-} # func_dirname may be replaced by extended shell implementation
-
-
-# func_basename file
-func_basename ()
-{
- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-} # func_basename may be replaced by extended shell implementation
-
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-# dirname: Compute the dirname of FILE. If nonempty,
-# add APPEND to the result, otherwise set result
-# to NONDIR_REPLACEMENT.
-# value returned in "$func_dirname_result"
-# basename: Compute filename of FILE.
-# value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
- # Extract subdirectory from the argument.
- func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
- func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-} # func_dirname_and_basename may be replaced by extended shell implementation
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-} # func_stripname may be replaced by extended shell implementation
-
-
-# These SED scripts presuppose an absolute path with a trailing slash.
-pathcar='s,^/\([^/]*\).*$,\1,'
-pathcdr='s,^/[^/]*,,'
-removedotparts=':dotsl
- s@/\./@/@g
- t dotsl
- s,/\.$,/,'
-collapseslashes='s@/\{1,\}@/@g'
-finalslash='s,/*$,/,'
-
-# func_normal_abspath PATH
-# Remove doubled-up and trailing slashes, "." path components,
-# and cancel out any ".." path components in PATH after making
-# it an absolute path.
-# value returned in "$func_normal_abspath_result"
-func_normal_abspath ()
-{
- # Start from root dir and reassemble the path.
- func_normal_abspath_result=
- func_normal_abspath_tpath=$1
- func_normal_abspath_altnamespace=
- case $func_normal_abspath_tpath in
- "")
- # Empty path, that just means $cwd.
- func_stripname '' '/' "`pwd`"
- func_normal_abspath_result=$func_stripname_result
- return
- ;;
- # The next three entries are used to spot a run of precisely
- # two leading slashes without using negated character classes;
- # we take advantage of case's first-match behaviour.
- ///*)
- # Unusual form of absolute path, do nothing.
- ;;
- //*)
- # Not necessarily an ordinary path; POSIX reserves leading '//'
- # and for example Cygwin uses it to access remote file shares
- # over CIFS/SMB, so we conserve a leading double slash if found.
- func_normal_abspath_altnamespace=/
- ;;
- /*)
- # Absolute path, do nothing.
- ;;
- *)
- # Relative path, prepend $cwd.
- func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
- ;;
- esac
- # Cancel out all the simple stuff to save iterations. We also want
- # the path to end with a slash for ease of parsing, so make sure
- # there is one (and only one) here.
- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
- while :; do
- # Processed it all yet?
- if test "$func_normal_abspath_tpath" = / ; then
- # If we ascended to the root using ".." the result may be empty now.
- if test -z "$func_normal_abspath_result" ; then
- func_normal_abspath_result=/
- fi
- break
- fi
- func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$pathcar"`
- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$pathcdr"`
- # Figure out what to do with it
- case $func_normal_abspath_tcomponent in
- "")
- # Trailing empty path component, ignore it.
- ;;
- ..)
- # Parent dir; strip last assembled component from result.
- func_dirname "$func_normal_abspath_result"
- func_normal_abspath_result=$func_dirname_result
- ;;
- *)
- # Actual path component, append it.
- func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
- ;;
- esac
- done
- # Restore leading double-slash if one was found on entry.
- func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
-}
-
-# func_relative_path SRCDIR DSTDIR
-# generates a relative path from SRCDIR to DSTDIR, with a trailing
-# slash if non-empty, suitable for immediately appending a filename
-# without needing to append a separator.
-# value returned in "$func_relative_path_result"
-func_relative_path ()
-{
- func_relative_path_result=
- func_normal_abspath "$1"
- func_relative_path_tlibdir=$func_normal_abspath_result
- func_normal_abspath "$2"
- func_relative_path_tbindir=$func_normal_abspath_result
-
- # Ascend the tree starting from libdir
- while :; do
- # check if we have found a prefix of bindir
- case $func_relative_path_tbindir in
- $func_relative_path_tlibdir)
- # found an exact match
- func_relative_path_tcancelled=
- break
- ;;
- $func_relative_path_tlibdir*)
- # found a matching prefix
- func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
- func_relative_path_tcancelled=$func_stripname_result
- if test -z "$func_relative_path_result"; then
- func_relative_path_result=.
- fi
- break
- ;;
- *)
- func_dirname $func_relative_path_tlibdir
- func_relative_path_tlibdir=${func_dirname_result}
- if test "x$func_relative_path_tlibdir" = x ; then
- # Have to descend all the way to the root!
- func_relative_path_result=../$func_relative_path_result
- func_relative_path_tcancelled=$func_relative_path_tbindir
- break
- fi
- func_relative_path_result=../$func_relative_path_result
- ;;
- esac
- done
-
- # Now calculate path; take care to avoid doubling-up slashes.
- func_stripname '' '/' "$func_relative_path_result"
- func_relative_path_result=$func_stripname_result
- func_stripname '/' '/' "$func_relative_path_tcancelled"
- if test "x$func_stripname_result" != x ; then
- func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
- fi
-
- # Normalisation. If bindir is libdir, return empty string,
- # else relative path ending with a slash; either way, target
- # file name can be directly appended.
- if test ! -z "$func_relative_path_result"; then
- func_stripname './' '' "$func_relative_path_result/"
- func_relative_path_result=$func_stripname_result
- fi
-}
-
-# The name of this program:
-func_dirname_and_basename "$progpath"
-progname=$func_basename_result
-
-# Make sure we have an absolute path for reexecution:
-case $progpath in
- [\\/]*|[A-Za-z]:\\*) ;;
- *[\\/]*)
- progdir=$func_dirname_result
- progdir=`cd "$progdir" && pwd`
- progpath="$progdir/$progname"
- ;;
- *)
- save_IFS="$IFS"
- IFS=${PATH_SEPARATOR-:}
- for progdir in $PATH; do
- IFS="$save_IFS"
- test -x "$progdir/$progname" && break
- done
- IFS="$save_IFS"
- test -n "$progdir" || progdir=`pwd`
- progpath="$progdir/$progname"
- ;;
-esac
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution that turns a string into a regex matching for the
-# string literally.
-sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
-
-# Sed substitution that converts a w32 file name or path
-# which contains forward slashes, into one that contains
-# (escaped) backslashes. A very naive implementation.
-lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-
-# Re-`\' parameter expansions in output of double_quote_subst that were
-# `\'-ed in input to the same. If an odd number of `\' preceded a '$'
-# in input to double_quote_subst, that '$' was protected from expansion.
-# Since each input `\' is now two `\'s, look for any number of runs of
-# four `\'s followed by two `\'s and then a '$'. `\' that '$'.
-bs='\\'
-bs2='\\\\'
-bs4='\\\\\\\\'
-dollar='\$'
-sed_double_backslash="\
- s/$bs4/&\\
-/g
- s/^$bs2$dollar/$bs&/
- s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
- s/\n//g"
-
-# Standard options:
-opt_dry_run=false
-opt_help=false
-opt_quiet=false
-opt_verbose=false
-opt_warning=:
-
-# func_echo arg...
-# Echo program name prefixed message, along with the current mode
-# name if it has been set yet.
-func_echo ()
-{
- $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-}
-
-# func_verbose arg...
-# Echo program name prefixed message in verbose mode only.
-func_verbose ()
-{
- $opt_verbose && func_echo ${1+"$@"}
-
- # A bug in bash halts the script if the last line of a function
- # fails when set -e is in force, so we need another command to
- # work around that:
- :
-}
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-# func_error arg...
-# Echo program name prefixed message to standard error.
-func_error ()
-{
- $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-}
-
-# func_warning arg...
-# Echo program name prefixed warning message to standard error.
-func_warning ()
-{
- $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-
- # bash bug again:
- :
-}
-
-# func_fatal_error arg...
-# Echo program name prefixed message to standard error, and exit.
-func_fatal_error ()
-{
- func_error ${1+"$@"}
- exit $EXIT_FAILURE
-}
-
-# func_fatal_help arg...
-# Echo program name prefixed message to standard error, followed by
-# a help hint, and exit.
-func_fatal_help ()
-{
- func_error ${1+"$@"}
- func_fatal_error "$help"
-}
-help="Try \`$progname --help' for more information." ## default
-
-
-# func_grep expression filename
-# Check whether EXPRESSION matches any line of FILENAME, without output.
-func_grep ()
-{
- $GREP "$1" "$2" >/dev/null 2>&1
-}
-
-
-# func_mkdir_p directory-path
-# Make sure the entire path to DIRECTORY-PATH is available.
-func_mkdir_p ()
-{
- my_directory_path="$1"
- my_dir_list=
-
- if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
-
- # Protect directory names starting with `-'
- case $my_directory_path in
- -*) my_directory_path="./$my_directory_path" ;;
- esac
-
- # While some portion of DIR does not yet exist...
- while test ! -d "$my_directory_path"; do
- # ...make a list in topmost first order. Use a colon delimited
- # list incase some portion of path contains whitespace.
- my_dir_list="$my_directory_path:$my_dir_list"
-
- # If the last portion added has no slash in it, the list is done
- case $my_directory_path in */*) ;; *) break ;; esac
-
- # ...otherwise throw away the child directory and loop
- my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
- done
- my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
-
- save_mkdir_p_IFS="$IFS"; IFS=':'
- for my_dir in $my_dir_list; do
- IFS="$save_mkdir_p_IFS"
- # mkdir can fail with a `File exist' error if two processes
- # try to create one of the directories concurrently. Don't
- # stop in that case!
- $MKDIR "$my_dir" 2>/dev/null || :
- done
- IFS="$save_mkdir_p_IFS"
-
- # Bail out if we (or some other process) failed to create a directory.
- test -d "$my_directory_path" || \
- func_fatal_error "Failed to create \`$1'"
- fi
-}
-
-
-# func_mktempdir [string]
-# Make a temporary directory that won't clash with other running
-# libtool processes, and avoids race conditions if possible. If
-# given, STRING is the basename for that directory.
-func_mktempdir ()
-{
- my_template="${TMPDIR-/tmp}/${1-$progname}"
-
- if test "$opt_dry_run" = ":"; then
- # Return a directory name, but don't create it in dry-run mode
- my_tmpdir="${my_template}-$$"
- else
-
- # If mktemp works, use that first and foremost
- my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
-
- if test ! -d "$my_tmpdir"; then
- # Failing that, at least try and use $RANDOM to avoid a race
- my_tmpdir="${my_template}-${RANDOM-0}$$"
-
- save_mktempdir_umask=`umask`
- umask 0077
- $MKDIR "$my_tmpdir"
- umask $save_mktempdir_umask
- fi
-
- # If we're not in dry-run mode, bomb out on failure
- test -d "$my_tmpdir" || \
- func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
- fi
-
- $ECHO "$my_tmpdir"
-}
-
-
-# func_quote_for_eval arg
-# Aesthetically quote ARG to be evaled later.
-# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
-# is double-quoted, suitable for a subsequent eval, whereas
-# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
-# which are still active within double quotes backslashified.
-func_quote_for_eval ()
-{
- case $1 in
- *[\\\`\"\$]*)
- func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
- *)
- func_quote_for_eval_unquoted_result="$1" ;;
- esac
-
- case $func_quote_for_eval_unquoted_result in
- # Double-quote args containing shell metacharacters to delay
- # word splitting, command substitution and and variable
- # expansion for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
- ;;
- *)
- func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
- esac
-}
-
-
-# func_quote_for_expand arg
-# Aesthetically quote ARG to be evaled later; same as above,
-# but do not quote variable references.
-func_quote_for_expand ()
-{
- case $1 in
- *[\\\`\"]*)
- my_arg=`$ECHO "$1" | $SED \
- -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
- *)
- my_arg="$1" ;;
- esac
-
- case $my_arg in
- # Double-quote args containing shell metacharacters to delay
- # word splitting and command substitution for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- my_arg="\"$my_arg\""
- ;;
- esac
-
- func_quote_for_expand_result="$my_arg"
-}
-
-
-# func_show_eval cmd [fail_exp]
-# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.
-func_show_eval ()
-{
- my_cmd="$1"
- my_fail_exp="${2-:}"
-
- ${opt_silent-false} || {
- func_quote_for_expand "$my_cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
-
- if ${opt_dry_run-false}; then :; else
- eval "$my_cmd"
- my_status=$?
- if test "$my_status" -eq 0; then :; else
- eval "(exit $my_status); $my_fail_exp"
- fi
- fi
-}
-
-
-# func_show_eval_locale cmd [fail_exp]
-# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it. Use the saved locale for evaluation.
-func_show_eval_locale ()
-{
- my_cmd="$1"
- my_fail_exp="${2-:}"
-
- ${opt_silent-false} || {
- func_quote_for_expand "$my_cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
-
- if ${opt_dry_run-false}; then :; else
- eval "$lt_user_locale
- $my_cmd"
- my_status=$?
- eval "$lt_safe_locale"
- if test "$my_status" -eq 0; then :; else
- eval "(exit $my_status); $my_fail_exp"
- fi
- fi
-}
-
-# func_tr_sh
-# Turn $1 into a string suitable for a shell variable name.
-# Result is stored in $func_tr_sh_result. All characters
-# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
-# if $1 begins with a digit, a '_' is prepended as well.
-func_tr_sh ()
-{
- case $1 in
- [0-9]* | *[!a-zA-Z0-9_]*)
- func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
- ;;
- * )
- func_tr_sh_result=$1
- ;;
- esac
-}
-
-
-# func_version
-# Echo version message to standard output and exit.
-func_version ()
-{
- $opt_debug
-
- $SED -n '/(C)/!b go
- :more
- /\./!{
- N
- s/\n# / /
- b more
- }
- :go
- /^# '$PROGRAM' (GNU /,/# warranty; / {
- s/^# //
- s/^# *$//
- s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
- p
- }' < "$progpath"
- exit $?
-}
-
-# func_usage
-# Echo short help message to standard output and exit.
-func_usage ()
-{
- $opt_debug
-
- $SED -n '/^# Usage:/,/^# *.*--help/ {
- s/^# //
- s/^# *$//
- s/\$progname/'$progname'/
- p
- }' < "$progpath"
- echo
- $ECHO "run \`$progname --help | more' for full usage"
- exit $?
-}
-
-# func_help [NOEXIT]
-# Echo long help message to standard output and exit,
-# unless 'noexit' is passed as argument.
-func_help ()
-{
- $opt_debug
-
- $SED -n '/^# Usage:/,/# Report bugs to/ {
- :print
- s/^# //
- s/^# *$//
- s*\$progname*'$progname'*
- s*\$host*'"$host"'*
- s*\$SHELL*'"$SHELL"'*
- s*\$LTCC*'"$LTCC"'*
- s*\$LTCFLAGS*'"$LTCFLAGS"'*
- s*\$LD*'"$LD"'*
- s/\$with_gnu_ld/'"$with_gnu_ld"'/
- s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
- s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
- p
- d
- }
- /^# .* home page:/b print
- /^# General help using/b print
- ' < "$progpath"
- ret=$?
- if test -z "$1"; then
- exit $ret
- fi
-}
-
-# func_missing_arg argname
-# Echo program name prefixed message to standard error and set global
-# exit_cmd.
-func_missing_arg ()
-{
- $opt_debug
-
- func_error "missing argument for $1."
- exit_cmd=exit
-}
-
-
-# func_split_short_opt shortopt
-# Set func_split_short_opt_name and func_split_short_opt_arg shell
-# variables after splitting SHORTOPT after the 2nd character.
-func_split_short_opt ()
-{
- my_sed_short_opt='1s/^\(..\).*$/\1/;q'
- my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
-
- func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
- func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
-} # func_split_short_opt may be replaced by extended shell implementation
-
-
-# func_split_long_opt longopt
-# Set func_split_long_opt_name and func_split_long_opt_arg shell
-# variables after splitting LONGOPT at the `=' sign.
-func_split_long_opt ()
-{
- my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
- my_sed_long_arg='1s/^--[^=]*=//'
-
- func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
- func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
-} # func_split_long_opt may be replaced by extended shell implementation
-
-exit_cmd=:
-
-
-
-
-
-magic="%%%MAGIC variable%%%"
-magic_exe="%%%MAGIC EXE variable%%%"
-
-# Global variables.
-nonopt=
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end. This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
- eval "${1}=\$${1}\${2}"
-} # func_append may be replaced by extended shell implementation
-
-# func_append_quoted var value
-# Quote VALUE and append to the end of shell variable VAR, separated
-# by a space.
-func_append_quoted ()
-{
- func_quote_for_eval "${2}"
- eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
-} # func_append_quoted may be replaced by extended shell implementation
-
-
-# func_arith arithmetic-term...
-func_arith ()
-{
- func_arith_result=`expr "${@}"`
-} # func_arith may be replaced by extended shell implementation
-
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
- func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
-} # func_len may be replaced by extended shell implementation
-
-
-# func_lo2o object
-func_lo2o ()
-{
- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-} # func_lo2o may be replaced by extended shell implementation
-
-
-# func_xform libobj-or-source
-func_xform ()
-{
- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-} # func_xform may be replaced by extended shell implementation
-
-
-# func_fatal_configuration arg...
-# Echo program name prefixed message to standard error, followed by
-# a configuration failure hint, and exit.
-func_fatal_configuration ()
-{
- func_error ${1+"$@"}
- func_error "See the $PACKAGE documentation for more information."
- func_fatal_error "Fatal configuration error."
-}
-
-
-# func_config
-# Display the configuration for all the tags in this script.
-func_config ()
-{
- re_begincf='^# ### BEGIN LIBTOOL'
- re_endcf='^# ### END LIBTOOL'
-
- # Default configuration.
- $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
-
- # Now print the configurations for the tags.
- for tagname in $taglist; do
- $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
- done
-
- exit $?
-}
-
-# func_features
-# Display the features supported by this script.
-func_features ()
-{
- echo "host: $host"
- if test "$build_libtool_libs" = yes; then
- echo "enable shared libraries"
- else
- echo "disable shared libraries"
- fi
- if test "$build_old_libs" = yes; then
- echo "enable static libraries"
- else
- echo "disable static libraries"
- fi
-
- exit $?
-}
-
-# func_enable_tag tagname
-# Verify that TAGNAME is valid, and either flag an error and exit, or
-# enable the TAGNAME tag. We also add TAGNAME to the global $taglist
-# variable here.
-func_enable_tag ()
-{
- # Global variable:
- tagname="$1"
-
- re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
- re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
- sed_extractcf="/$re_begincf/,/$re_endcf/p"
-
- # Validate tagname.
- case $tagname in
- *[!-_A-Za-z0-9,/]*)
- func_fatal_error "invalid tag name: $tagname"
- ;;
- esac
-
- # Don't test for the "default" C tag, as we know it's
- # there but not specially marked.
- case $tagname in
- CC) ;;
- *)
- if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
- taglist="$taglist $tagname"
-
- # Evaluate the configuration. Be careful to quote the path
- # and the sed script, to avoid splitting on whitespace, but
- # also don't use non-portable quotes within backquotes within
- # quotes we have to do it in 2 steps:
- extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
- eval "$extractedcf"
- else
- func_error "ignoring unknown tag $tagname"
- fi
- ;;
- esac
-}
-
-# func_check_version_match
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
- if test "$package_revision" != "$macro_revision"; then
- if test "$VERSION" != "$macro_version"; then
- if test -z "$macro_version"; then
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
- else
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
- fi
- else
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
- fi
-
- exit $EXIT_MISMATCH
- fi
-}
-
-
-# Shorthand for --mode=foo, only valid as the first argument
-case $1 in
-clean|clea|cle|cl)
- shift; set dummy --mode clean ${1+"$@"}; shift
- ;;
-compile|compil|compi|comp|com|co|c)
- shift; set dummy --mode compile ${1+"$@"}; shift
- ;;
-execute|execut|execu|exec|exe|ex|e)
- shift; set dummy --mode execute ${1+"$@"}; shift
- ;;
-finish|finis|fini|fin|fi|f)
- shift; set dummy --mode finish ${1+"$@"}; shift
- ;;
-install|instal|insta|inst|ins|in|i)
- shift; set dummy --mode install ${1+"$@"}; shift
- ;;
-link|lin|li|l)
- shift; set dummy --mode link ${1+"$@"}; shift
- ;;
-uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
- shift; set dummy --mode uninstall ${1+"$@"}; shift
- ;;
-esac
-
-
-
-# Option defaults:
-opt_debug=:
-opt_dry_run=false
-opt_config=false
-opt_preserve_dup_deps=false
-opt_features=false
-opt_finish=false
-opt_help=false
-opt_help_all=false
-opt_silent=:
-opt_warning=:
-opt_verbose=:
-opt_silent=false
-opt_verbose=false
-
-
-# Parse options once, thoroughly. This comes as soon as possible in the
-# script to make things like `--version' happen as quickly as we can.
-{
- # this just eases exit handling
- while test $# -gt 0; do
- opt="$1"
- shift
- case $opt in
- --debug|-x) opt_debug='set -x'
- func_echo "enabling shell trace mode"
- $opt_debug
- ;;
- --dry-run|--dryrun|-n)
- opt_dry_run=:
- ;;
- --config)
- opt_config=:
-func_config
- ;;
- --dlopen|-dlopen)
- optarg="$1"
- opt_dlopen="${opt_dlopen+$opt_dlopen
-}$optarg"
- shift
- ;;
- --preserve-dup-deps)
- opt_preserve_dup_deps=:
- ;;
- --features)
- opt_features=:
-func_features
- ;;
- --finish)
- opt_finish=:
-set dummy --mode finish ${1+"$@"}; shift
- ;;
- --help)
- opt_help=:
- ;;
- --help-all)
- opt_help_all=:
-opt_help=': help-all'
- ;;
- --mode)
- test $# = 0 && func_missing_arg $opt && break
- optarg="$1"
- opt_mode="$optarg"
-case $optarg in
- # Valid mode arguments:
- clean|compile|execute|finish|install|link|relink|uninstall) ;;
-
- # Catch anything else as an error
- *) func_error "invalid argument for $opt"
- exit_cmd=exit
- break
- ;;
-esac
- shift
- ;;
- --no-silent|--no-quiet)
- opt_silent=false
-func_append preserve_args " $opt"
- ;;
- --no-warning|--no-warn)
- opt_warning=false
-func_append preserve_args " $opt"
- ;;
- --no-verbose)
- opt_verbose=false
-func_append preserve_args " $opt"
- ;;
- --silent|--quiet)
- opt_silent=:
-func_append preserve_args " $opt"
- opt_verbose=false
- ;;
- --verbose|-v)
- opt_verbose=:
-func_append preserve_args " $opt"
-opt_silent=false
- ;;
- --tag)
- test $# = 0 && func_missing_arg $opt && break
- optarg="$1"
- opt_tag="$optarg"
-func_append preserve_args " $opt $optarg"
-func_enable_tag "$optarg"
- shift
- ;;
-
- -\?|-h) func_usage ;;
- --help) func_help ;;
- --version) func_version ;;
-
- # Separate optargs to long options:
- --*=*)
- func_split_long_opt "$opt"
- set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
- shift
- ;;
-
- # Separate non-argument short options:
- -\?*|-h*|-n*|-v*)
- func_split_short_opt "$opt"
- set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
- shift
- ;;
-
- --) break ;;
- -*) func_fatal_help "unrecognized option \`$opt'" ;;
- *) set dummy "$opt" ${1+"$@"}; shift; break ;;
- esac
- done
-
- # Validate options:
-
- # save first non-option argument
- if test "$#" -gt 0; then
- nonopt="$opt"
- shift
- fi
-
- # preserve --debug
- test "$opt_debug" = : || func_append preserve_args " --debug"
-
- case $host in
- *cygwin* | *mingw* | *pw32* | *cegcc*)
- # don't eliminate duplications in $postdeps and $predeps
- opt_duplicate_compiler_generated_deps=:
- ;;
- *)
- opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
- ;;
- esac
-
- $opt_help || {
- # Sanity checks first:
- func_check_version_match
-
- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
- func_fatal_configuration "not configured to build any kind of library"
- fi
-
- # Darwin sucks
- eval std_shrext=\"$shrext_cmds\"
-
- # Only execute mode is allowed to have -dlopen flags.
- if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
- func_error "unrecognized option \`-dlopen'"
- $ECHO "$help" 1>&2
- exit $EXIT_FAILURE
- fi
-
- # Change the help message to a mode-specific one.
- generic_help="$help"
- help="Try \`$progname --help --mode=$opt_mode' for more information."
- }
-
-
- # Bail if the options were screwed
- $exit_cmd $EXIT_FAILURE
-}
-
-
-
-
-## ----------- ##
-## Main. ##
-## ----------- ##
-
-# func_lalib_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_lalib_p ()
-{
- test -f "$1" &&
- $SED -e 4q "$1" 2>/dev/null \
- | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
-}
-
-# func_lalib_unsafe_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function implements the same check as func_lalib_p without
-# resorting to external programs. To this end, it redirects stdin and
-# closes it afterwards, without saving the original file descriptor.
-# As a safety measure, use it only where a negative result would be
-# fatal anyway. Works if `file' does not exist.
-func_lalib_unsafe_p ()
-{
- lalib_p=no
- if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
- for lalib_p_l in 1 2 3 4
- do
- read lalib_p_line
- case "$lalib_p_line" in
- \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
- esac
- done
- exec 0<&5 5<&-
- fi
- test "$lalib_p" = yes
-}
-
-# func_ltwrapper_script_p file
-# True iff FILE is a libtool wrapper script
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_script_p ()
-{
- func_lalib_p "$1"
-}
-
-# func_ltwrapper_executable_p file
-# True iff FILE is a libtool wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_executable_p ()
-{
- func_ltwrapper_exec_suffix=
- case $1 in
- *.exe) ;;
- *) func_ltwrapper_exec_suffix=.exe ;;
- esac
- $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
-}
-
-# func_ltwrapper_scriptname file
-# Assumes file is an ltwrapper_executable
-# uses $file to determine the appropriate filename for a
-# temporary ltwrapper_script.
-func_ltwrapper_scriptname ()
-{
- func_dirname_and_basename "$1" "" "."
- func_stripname '' '.exe' "$func_basename_result"
- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-}
-
-# func_ltwrapper_p file
-# True iff FILE is a libtool wrapper script or wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_p ()
-{
- func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
-}
-
-
-# func_execute_cmds commands fail_cmd
-# Execute tilde-delimited COMMANDS.
-# If FAIL_CMD is given, eval that upon failure.
-# FAIL_CMD may read-access the current command in variable CMD!
-func_execute_cmds ()
-{
- $opt_debug
- save_ifs=$IFS; IFS='~'
- for cmd in $1; do
- IFS=$save_ifs
- eval cmd=\"$cmd\"
- func_show_eval "$cmd" "${2-:}"
- done
- IFS=$save_ifs
-}
-
-
-# func_source file
-# Source FILE, adding directory component if necessary.
-# Note that it is not necessary on cygwin/mingw to append a dot to
-# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
-# behavior happens only for exec(3), not for open(2)! Also, sourcing
-# `FILE.' does not work on cygwin managed mounts.
-func_source ()
-{
- $opt_debug
- case $1 in
- */* | *\\*) . "$1" ;;
- *) . "./$1" ;;
- esac
-}
-
-
-# func_resolve_sysroot PATH
-# Replace a leading = in PATH with a sysroot. Store the result into
-# func_resolve_sysroot_result
-func_resolve_sysroot ()
-{
- func_resolve_sysroot_result=$1
- case $func_resolve_sysroot_result in
- =*)
- func_stripname '=' '' "$func_resolve_sysroot_result"
- func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
- ;;
- esac
-}
-
-# func_replace_sysroot PATH
-# If PATH begins with the sysroot, replace it with = and
-# store the result into func_replace_sysroot_result.
-func_replace_sysroot ()
-{
- case "$lt_sysroot:$1" in
- ?*:"$lt_sysroot"*)
- func_stripname "$lt_sysroot" '' "$1"
- func_replace_sysroot_result="=$func_stripname_result"
- ;;
- *)
- # Including no sysroot.
- func_replace_sysroot_result=$1
- ;;
- esac
-}
-
-# func_infer_tag arg
-# Infer tagged configuration to use if any are available and
-# if one wasn't chosen via the "--tag" command line option.
-# Only attempt this if the compiler in the base compile
-# command doesn't match the default compiler.
-# arg is usually of the form 'gcc ...'
-func_infer_tag ()
-{
- $opt_debug
- if test -n "$available_tags" && test -z "$tagname"; then
- CC_quoted=
- for arg in $CC; do
- func_append_quoted CC_quoted "$arg"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
- case $@ in
- # Blanks in the command may have been stripped by the calling shell,
- # but not from the CC environment variable when configure was run.
- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
- # Blanks at the start of $base_compile will cause this to fail
- # if we don't check for them as well.
- *)
- for z in $available_tags; do
- if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
- # Evaluate the configuration.
- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
- CC_quoted=
- for arg in $CC; do
- # Double-quote args containing other shell metacharacters.
- func_append_quoted CC_quoted "$arg"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
- case "$@ " in
- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
- # The compiler in the base compile command matches
- # the one in the tagged configuration.
- # Assume this is the tagged configuration we want.
- tagname=$z
- break
- ;;
- esac
- fi
- done
- # If $tagname still isn't set, then no tagged configuration
- # was found and let the user know that the "--tag" command
- # line option must be used.
- if test -z "$tagname"; then
- func_echo "unable to infer tagged configuration"
- func_fatal_error "specify a tag with \`--tag'"
-# else
-# func_verbose "using $tagname tagged configuration"
- fi
- ;;
- esac
- fi
-}
-
-
-
-# func_write_libtool_object output_name pic_name nonpic_name
-# Create a libtool object file (analogous to a ".la" file),
-# but don't create it if we're doing a dry run.
-func_write_libtool_object ()
-{
- write_libobj=${1}
- if test "$build_libtool_libs" = yes; then
- write_lobj=\'${2}\'
- else
- write_lobj=none
- fi
-
- if test "$build_old_libs" = yes; then
- write_oldobj=\'${3}\'
- else
- write_oldobj=none
- fi
-
- $opt_dry_run || {
- cat >${write_libobj}T <<EOF
-# $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object=$write_lobj
-
-# Name of the non-PIC object
-non_pic_object=$write_oldobj
-
-EOF
- $MV "${write_libobj}T" "${write_libobj}"
- }
-}
-
-
-##################################################
-# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
-##################################################
-
-# func_convert_core_file_wine_to_w32 ARG
-# Helper function used by file name conversion functions when $build is *nix,
-# and $host is mingw, cygwin, or some other w32 environment. Relies on a
-# correctly configured wine environment available, with the winepath program
-# in $build's $PATH.
-#
-# ARG is the $build file name to be converted to w32 format.
-# Result is available in $func_convert_core_file_wine_to_w32_result, and will
-# be empty on error (or when ARG is empty)
-func_convert_core_file_wine_to_w32 ()
-{
- $opt_debug
- func_convert_core_file_wine_to_w32_result="$1"
- if test -n "$1"; then
- # Unfortunately, winepath does not exit with a non-zero error code, so we
- # are forced to check the contents of stdout. On the other hand, if the
- # command is not found, the shell will set an exit code of 127 and print
- # *an error message* to stdout. So we must check for both error code of
- # zero AND non-empty stdout, which explains the odd construction:
- func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
- if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
- func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
- $SED -e "$lt_sed_naive_backslashify"`
- else
- func_convert_core_file_wine_to_w32_result=
- fi
- fi
-}
-# end: func_convert_core_file_wine_to_w32
-
-
-# func_convert_core_path_wine_to_w32 ARG
-# Helper function used by path conversion functions when $build is *nix, and
-# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
-# configured wine environment available, with the winepath program in $build's
-# $PATH. Assumes ARG has no leading or trailing path separator characters.
-#
-# ARG is path to be converted from $build format to win32.
-# Result is available in $func_convert_core_path_wine_to_w32_result.
-# Unconvertible file (directory) names in ARG are skipped; if no directory names
-# are convertible, then the result may be empty.
-func_convert_core_path_wine_to_w32 ()
-{
- $opt_debug
- # unfortunately, winepath doesn't convert paths, only file names
- func_convert_core_path_wine_to_w32_result=""
- if test -n "$1"; then
- oldIFS=$IFS
- IFS=:
- for func_convert_core_path_wine_to_w32_f in $1; do
- IFS=$oldIFS
- func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
- if test -n "$func_convert_core_file_wine_to_w32_result" ; then
- if test -z "$func_convert_core_path_wine_to_w32_result"; then
- func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
- else
- func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
- fi
- fi
- done
- IFS=$oldIFS
- fi
-}
-# end: func_convert_core_path_wine_to_w32
-
-
-# func_cygpath ARGS...
-# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
-# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
-# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
-# (2), returns the Cygwin file name or path in func_cygpath_result (input
-# file name or path is assumed to be in w32 format, as previously converted
-# from $build's *nix or MSYS format). In case (3), returns the w32 file name
-# or path in func_cygpath_result (input file name or path is assumed to be in
-# Cygwin format). Returns an empty string on error.
-#
-# ARGS are passed to cygpath, with the last one being the file name or path to
-# be converted.
-#
-# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
-# environment variable; do not put it in $PATH.
-func_cygpath ()
-{
- $opt_debug
- if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
- func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
- if test "$?" -ne 0; then
- # on failure, ensure result is empty
- func_cygpath_result=
- fi
- else
- func_cygpath_result=
- func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
- fi
-}
-#end: func_cygpath
-
-
-# func_convert_core_msys_to_w32 ARG
-# Convert file name or path ARG from MSYS format to w32 format. Return
-# result in func_convert_core_msys_to_w32_result.
-func_convert_core_msys_to_w32 ()
-{
- $opt_debug
- # awkward: cmd appends spaces to result
- func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
-}
-#end: func_convert_core_msys_to_w32
-
-
-# func_convert_file_check ARG1 ARG2
-# Verify that ARG1 (a file name in $build format) was converted to $host
-# format in ARG2. Otherwise, emit an error message, but continue (resetting
-# func_to_host_file_result to ARG1).
-func_convert_file_check ()
-{
- $opt_debug
- if test -z "$2" && test -n "$1" ; then
- func_error "Could not determine host file name corresponding to"
- func_error " \`$1'"
- func_error "Continuing, but uninstalled executables may not work."
- # Fallback:
- func_to_host_file_result="$1"
- fi
-}
-# end func_convert_file_check
-
-
-# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
-# Verify that FROM_PATH (a path in $build format) was converted to $host
-# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
-# func_to_host_file_result to a simplistic fallback value (see below).
-func_convert_path_check ()
-{
- $opt_debug
- if test -z "$4" && test -n "$3"; then
- func_error "Could not determine the host path corresponding to"
- func_error " \`$3'"
- func_error "Continuing, but uninstalled executables may not work."
- # Fallback. This is a deliberately simplistic "conversion" and
- # should not be "improved". See libtool.info.
- if test "x$1" != "x$2"; then
- lt_replace_pathsep_chars="s|$1|$2|g"
- func_to_host_path_result=`echo "$3" |
- $SED -e "$lt_replace_pathsep_chars"`
- else
- func_to_host_path_result="$3"
- fi
- fi
-}
-# end func_convert_path_check
-
-
-# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
-# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
-# and appending REPL if ORIG matches BACKPAT.
-func_convert_path_front_back_pathsep ()
-{
- $opt_debug
- case $4 in
- $1 ) func_to_host_path_result="$3$func_to_host_path_result"
- ;;
- esac
- case $4 in
- $2 ) func_append func_to_host_path_result "$3"
- ;;
- esac
-}
-# end func_convert_path_front_back_pathsep
-
-
-##################################################
-# $build to $host FILE NAME CONVERSION FUNCTIONS #
-##################################################
-# invoked via `$to_host_file_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# Result will be available in $func_to_host_file_result.
-
-
-# func_to_host_file ARG
-# Converts the file name ARG from $build format to $host format. Return result
-# in func_to_host_file_result.
-func_to_host_file ()
-{
- $opt_debug
- $to_host_file_cmd "$1"
-}
-# end func_to_host_file
-
-
-# func_to_tool_file ARG LAZY
-# converts the file name ARG from $build format to toolchain format. Return
-# result in func_to_tool_file_result. If the conversion in use is listed
-# in (the comma separated) LAZY, no conversion takes place.
-func_to_tool_file ()
-{
- $opt_debug
- case ,$2, in
- *,"$to_tool_file_cmd",*)
- func_to_tool_file_result=$1
- ;;
- *)
- $to_tool_file_cmd "$1"
- func_to_tool_file_result=$func_to_host_file_result
- ;;
- esac
-}
-# end func_to_tool_file
-
-
-# func_convert_file_noop ARG
-# Copy ARG to func_to_host_file_result.
-func_convert_file_noop ()
-{
- func_to_host_file_result="$1"
-}
-# end func_convert_file_noop
-
-
-# func_convert_file_msys_to_w32 ARG
-# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper. Returns result in
-# func_to_host_file_result.
-func_convert_file_msys_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_msys_to_w32 "$1"
- func_to_host_file_result="$func_convert_core_msys_to_w32_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_w32
-
-
-# func_convert_file_cygwin_to_w32 ARG
-# Convert file name ARG from Cygwin to w32 format. Returns result in
-# func_to_host_file_result.
-func_convert_file_cygwin_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
- # LT_CYGPATH in this case.
- func_to_host_file_result=`cygpath -m "$1"`
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_cygwin_to_w32
-
-
-# func_convert_file_nix_to_w32 ARG
-# Convert file name ARG from *nix to w32 format. Requires a wine environment
-# and a working winepath. Returns result in func_to_host_file_result.
-func_convert_file_nix_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_file_wine_to_w32 "$1"
- func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_w32
-
-
-# func_convert_file_msys_to_cygwin ARG
-# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_file_msys_to_cygwin ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_msys_to_w32 "$1"
- func_cygpath -u "$func_convert_core_msys_to_w32_result"
- func_to_host_file_result="$func_cygpath_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_cygwin
-
-
-# func_convert_file_nix_to_cygwin ARG
-# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
-# in a wine environment, working winepath, and LT_CYGPATH set. Returns result
-# in func_to_host_file_result.
-func_convert_file_nix_to_cygwin ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
- func_convert_core_file_wine_to_w32 "$1"
- func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
- func_to_host_file_result="$func_cygpath_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_cygwin
-
-
-#############################################
-# $build to $host PATH CONVERSION FUNCTIONS #
-#############################################
-# invoked via `$to_host_path_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# The result will be available in $func_to_host_path_result.
-#
-# Path separators are also converted from $build format to $host format. If
-# ARG begins or ends with a path separator character, it is preserved (but
-# converted to $host format) on output.
-#
-# All path conversion functions are named using the following convention:
-# file name conversion function : func_convert_file_X_to_Y ()
-# path conversion function : func_convert_path_X_to_Y ()
-# where, for any given $build/$host combination the 'X_to_Y' value is the
-# same. If conversion functions are added for new $build/$host combinations,
-# the two new functions must follow this pattern, or func_init_to_host_path_cmd
-# will break.
-
-
-# func_init_to_host_path_cmd
-# Ensures that function "pointer" variable $to_host_path_cmd is set to the
-# appropriate value, based on the value of $to_host_file_cmd.
-to_host_path_cmd=
-func_init_to_host_path_cmd ()
-{
- $opt_debug
- if test -z "$to_host_path_cmd"; then
- func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
- to_host_path_cmd="func_convert_path_${func_stripname_result}"
- fi
-}
-
-
-# func_to_host_path ARG
-# Converts the path ARG from $build format to $host format. Return result
-# in func_to_host_path_result.
-func_to_host_path ()
-{
- $opt_debug
- func_init_to_host_path_cmd
- $to_host_path_cmd "$1"
-}
-# end func_to_host_path
-
-
-# func_convert_path_noop ARG
-# Copy ARG to func_to_host_path_result.
-func_convert_path_noop ()
-{
- func_to_host_path_result="$1"
-}
-# end func_convert_path_noop
-
-
-# func_convert_path_msys_to_w32 ARG
-# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper. Returns result in
-# func_to_host_path_result.
-func_convert_path_msys_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # Remove leading and trailing path separator characters from ARG. MSYS
- # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
- # and winepath ignores them completely.
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
- func_to_host_path_result="$func_convert_core_msys_to_w32_result"
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_msys_to_w32
-
-
-# func_convert_path_cygwin_to_w32 ARG
-# Convert path ARG from Cygwin to w32 format. Returns result in
-# func_to_host_file_result.
-func_convert_path_cygwin_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_cygwin_to_w32
-
-
-# func_convert_path_nix_to_w32 ARG
-# Convert path ARG from *nix to w32 format. Requires a wine environment and
-# a working winepath. Returns result in func_to_host_file_result.
-func_convert_path_nix_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
- func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_nix_to_w32
-
-
-# func_convert_path_msys_to_cygwin ARG
-# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_path_msys_to_cygwin ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
- func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
- func_to_host_path_result="$func_cygpath_result"
- func_convert_path_check : : \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" : "$1"
- fi
-}
-# end func_convert_path_msys_to_cygwin
-
-
-# func_convert_path_nix_to_cygwin ARG
-# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
-# a wine environment, working winepath, and LT_CYGPATH set. Returns result in
-# func_to_host_file_result.
-func_convert_path_nix_to_cygwin ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # Remove leading and trailing path separator characters from
- # ARG. msys behavior is inconsistent here, cygpath turns them
- # into '.;' and ';.', and winepath ignores them completely.
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
- func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
- func_to_host_path_result="$func_cygpath_result"
- func_convert_path_check : : \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" : "$1"
- fi
-}
-# end func_convert_path_nix_to_cygwin
-
-
-# func_mode_compile arg...
-func_mode_compile ()
-{
- $opt_debug
- # Get the compilation command and the source file.
- base_compile=
- srcfile="$nonopt" # always keep a non-empty value in "srcfile"
- suppress_opt=yes
- suppress_output=
- arg_mode=normal
- libobj=
- later=
- pie_flag=
-
- for arg
- do
- case $arg_mode in
- arg )
- # do not "continue". Instead, add this to base_compile
- lastarg="$arg"
- arg_mode=normal
- ;;
-
- target )
- libobj="$arg"
- arg_mode=normal
- continue
- ;;
-
- normal )
- # Accept any command-line options.
- case $arg in
- -o)
- test -n "$libobj" && \
- func_fatal_error "you cannot specify \`-o' more than once"
- arg_mode=target
- continue
- ;;
-
- -pie | -fpie | -fPIE)
- func_append pie_flag " $arg"
- continue
- ;;
-
- -shared | -static | -prefer-pic | -prefer-non-pic)
- func_append later " $arg"
- continue
- ;;
-
- -no-suppress)
- suppress_opt=no
- continue
- ;;
-
- -Xcompiler)
- arg_mode=arg # the next one goes into the "base_compile" arg list
- continue # The current "srcfile" will either be retained or
- ;; # replaced later. I would guess that would be a bug.
-
- -Wc,*)
- func_stripname '-Wc,' '' "$arg"
- args=$func_stripname_result
- lastarg=
- save_ifs="$IFS"; IFS=','
- for arg in $args; do
- IFS="$save_ifs"
- func_append_quoted lastarg "$arg"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$lastarg"
- lastarg=$func_stripname_result
-
- # Add the arguments to base_compile.
- func_append base_compile " $lastarg"
- continue
- ;;
-
- *)
- # Accept the current argument as the source file.
- # The previous "srcfile" becomes the current argument.
- #
- lastarg="$srcfile"
- srcfile="$arg"
- ;;
- esac # case $arg
- ;;
- esac # case $arg_mode
-
- # Aesthetically quote the previous argument.
- func_append_quoted base_compile "$lastarg"
- done # for arg
-
- case $arg_mode in
- arg)
- func_fatal_error "you must specify an argument for -Xcompile"
- ;;
- target)
- func_fatal_error "you must specify a target with \`-o'"
- ;;
- *)
- # Get the name of the library object.
- test -z "$libobj" && {
- func_basename "$srcfile"
- libobj="$func_basename_result"
- }
- ;;
- esac
-
- # Recognize several different file suffixes.
- # If the user specifies -o file.o, it is replaced with file.lo
- case $libobj in
- *.[cCFSifmso] | \
- *.ada | *.adb | *.ads | *.asm | \
- *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
- *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
- func_xform "$libobj"
- libobj=$func_xform_result
- ;;
- esac
-
- case $libobj in
- *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
- *)
- func_fatal_error "cannot determine name of library object from \`$libobj'"
- ;;
- esac
-
- func_infer_tag $base_compile
-
- for arg in $later; do
- case $arg in
- -shared)
- test "$build_libtool_libs" != yes && \
- func_fatal_configuration "can not build a shared library"
- build_old_libs=no
- continue
- ;;
-
- -static)
- build_libtool_libs=no
- build_old_libs=yes
- continue
- ;;
-
- -prefer-pic)
- pic_mode=yes
- continue
- ;;
-
- -prefer-non-pic)
- pic_mode=no
- continue
- ;;
- esac
- done
-
- func_quote_for_eval "$libobj"
- test "X$libobj" != "X$func_quote_for_eval_result" \
- && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
- && func_warning "libobj name \`$libobj' may not contain shell special characters."
- func_dirname_and_basename "$obj" "/" ""
- objname="$func_basename_result"
- xdir="$func_dirname_result"
- lobj=${xdir}$objdir/$objname
-
- test -z "$base_compile" && \
- func_fatal_help "you must specify a compilation command"
-
- # Delete any leftover library objects.
- if test "$build_old_libs" = yes; then
- removelist="$obj $lobj $libobj ${libobj}T"
- else
- removelist="$lobj $libobj ${libobj}T"
- fi
-
- # On Cygwin there's no "real" PIC flag so we must build both object types
- case $host_os in
- cygwin* | mingw* | pw32* | os2* | cegcc*)
- pic_mode=default
- ;;
- esac
- if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
- # non-PIC code in shared libraries is not supported
- pic_mode=default
- fi
-
- # Calculate the filename of the output object if compiler does
- # not support -o with -c
- if test "$compiler_c_o" = no; then
- output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
- lockfile="$output_obj.lock"
- else
- output_obj=
- need_locks=no
- lockfile=
- fi
-
- # Lock this critical section if it is needed
- # We use this script file to make the link, it avoids creating a new file
- if test "$need_locks" = yes; then
- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
- func_echo "Waiting for $lockfile to be removed"
- sleep 2
- done
- elif test "$need_locks" = warn; then
- if test -f "$lockfile"; then
- $ECHO "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
- func_append removelist " $output_obj"
- $ECHO "$srcfile" > "$lockfile"
- fi
-
- $opt_dry_run || $RM $removelist
- func_append removelist " $lockfile"
- trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
-
- func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
- srcfile=$func_to_tool_file_result
- func_quote_for_eval "$srcfile"
- qsrcfile=$func_quote_for_eval_result
-
- # Only build a PIC object if we are building libtool libraries.
- if test "$build_libtool_libs" = yes; then
- # Without this assignment, base_compile gets emptied.
- fbsd_hideous_sh_bug=$base_compile
-
- if test "$pic_mode" != no; then
- command="$base_compile $qsrcfile $pic_flag"
- else
- # Don't build PIC code
- command="$base_compile $qsrcfile"
- fi
-
- func_mkdir_p "$xdir$objdir"
-
- if test -z "$output_obj"; then
- # Place PIC objects in $objdir
- func_append command " -o $lobj"
- fi
-
- func_show_eval_locale "$command" \
- 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
-
- if test "$need_locks" = warn &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed, then go on to compile the next one
- if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
- func_show_eval '$MV "$output_obj" "$lobj"' \
- 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
- fi
-
- # Allow error messages only from the first compilation.
- if test "$suppress_opt" = yes; then
- suppress_output=' >/dev/null 2>&1'
- fi
- fi
-
- # Only build a position-dependent object if we build old libraries.
- if test "$build_old_libs" = yes; then
- if test "$pic_mode" != yes; then
- # Don't build PIC code
- command="$base_compile $qsrcfile$pie_flag"
- else
- command="$base_compile $qsrcfile $pic_flag"
- fi
- if test "$compiler_c_o" = yes; then
- func_append command " -o $obj"
- fi
-
- # Suppress compiler output if we already did a PIC compilation.
- func_append command "$suppress_output"
- func_show_eval_locale "$command" \
- '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
-
- if test "$need_locks" = warn &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed
- if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
- func_show_eval '$MV "$output_obj" "$obj"' \
- 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
- fi
- fi
-
- $opt_dry_run || {
- func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
-
- # Unlock the critical section if it was locked
- if test "$need_locks" != no; then
- removelist=$lockfile
- $RM "$lockfile"
- fi
- }
-
- exit $EXIT_SUCCESS
-}
-
-$opt_help || {
- test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
-}
-
-func_mode_help ()
-{
- # We need to display help for each of the modes.
- case $opt_mode in
- "")
- # Generic help is extracted from the usage comments
- # at the start of this file.
- func_help
- ;;
-
- clean)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
- ;;
-
- compile)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
- -o OUTPUT-FILE set the output file name to OUTPUT-FILE
- -no-suppress do not suppress compiler output for multiple passes
- -prefer-pic try to build PIC objects only
- -prefer-non-pic try to build non-PIC objects only
- -shared do not build a \`.o' file suitable for static linking
- -static only build a \`.o' file suitable for static linking
- -Wc,FLAG pass FLAG directly to the compiler
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
- ;;
-
- execute)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
- -dlopen FILE add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
- ;;
-
- finish)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges. Use
-the \`--dry-run' option if you just want to see what would be executed."
- ;;
-
- install)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command. The first component should be
-either the \`install' or \`cp' program.
-
-The following components of INSTALL-COMMAND are treated specially:
-
- -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
- ;;
-
- link)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
- -all-static do not do any dynamic linking at all
- -avoid-version do not add a version suffix if possible
- -bindir BINDIR specify path to binaries directory (for systems where
- libraries must be found in the PATH setting at runtime)
- -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
- -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
- -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
- -export-symbols SYMFILE
- try to export only the symbols listed in SYMFILE
- -export-symbols-regex REGEX
- try to export only the symbols matching REGEX
- -LLIBDIR search LIBDIR for required installed libraries
- -lNAME OUTPUT-FILE requires the installed library libNAME
- -module build a library that can dlopened
- -no-fast-install disable the fast-install mode
- -no-install link a not-installable executable
- -no-undefined declare that a library does not refer to external symbols
- -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
- -objectlist FILE Use a list of object files found in FILE to specify objects
- -precious-files-regex REGEX
- don't remove output files matching REGEX
- -release RELEASE specify package release information
- -rpath LIBDIR the created library will eventually be installed in LIBDIR
- -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
- -shared only do dynamic linking of libtool libraries
- -shrext SUFFIX override the standard shared library file extension
- -static do not do any dynamic linking of uninstalled libtool libraries
- -static-libtool-libs
- do not do any dynamic linking of libtool libraries
- -version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
- -weak LIBNAME declare that the target provides the LIBNAME interface
- -Wc,FLAG
- -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
- -Wl,FLAG
- -Xlinker FLAG pass linker-specific FLAG directly to the linker
- -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename. Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
- ;;
-
- uninstall)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
- ;;
-
- *)
- func_fatal_help "invalid operation mode \`$opt_mode'"
- ;;
- esac
-
- echo
- $ECHO "Try \`$progname --help' for more information about other modes."
-}
-
-# Now that we've collected a possible --mode arg, show help if necessary
-if $opt_help; then
- if test "$opt_help" = :; then
- func_mode_help
- else
- {
- func_help noexit
- for opt_mode in compile link execute install finish uninstall clean; do
- func_mode_help
- done
- } | sed -n '1p; 2,$s/^Usage:/ or: /p'
- {
- func_help noexit
- for opt_mode in compile link execute install finish uninstall clean; do
- echo
- func_mode_help
- done
- } |
- sed '1d
- /^When reporting/,/^Report/{
- H
- d
- }
- $x
- /information about other modes/d
- /more detailed .*MODE/d
- s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
- fi
- exit $?
-fi
-
-
-# func_mode_execute arg...
-func_mode_execute ()
-{
- $opt_debug
- # The first argument is the command name.
- cmd="$nonopt"
- test -z "$cmd" && \
- func_fatal_help "you must specify a COMMAND"
-
- # Handle -dlopen flags immediately.
- for file in $opt_dlopen; do
- test -f "$file" \
- || func_fatal_help "\`$file' is not a file"
-
- dir=
- case $file in
- *.la)
- func_resolve_sysroot "$file"
- file=$func_resolve_sysroot_result
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "\`$lib' is not a valid libtool archive"
-
- # Read the libtool library.
- dlname=
- library_names=
- func_source "$file"
-
- # Skip this library if it cannot be dlopened.
- if test -z "$dlname"; then
- # Warn if it was a shared library.
- test -n "$library_names" && \
- func_warning "\`$file' was not linked with \`-export-dynamic'"
- continue
- fi
-
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
-
- if test -f "$dir/$objdir/$dlname"; then
- func_append dir "/$objdir"
- else
- if test ! -f "$dir/$dlname"; then
- func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
- fi
- fi
- ;;
-
- *.lo)
- # Just add the directory containing the .lo file.
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
- ;;
-
- *)
- func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
- continue
- ;;
- esac
-
- # Get the absolute pathname.
- absdir=`cd "$dir" && pwd`
- test -n "$absdir" && dir="$absdir"
-
- # Now add the directory to shlibpath_var.
- if eval "test -z \"\$$shlibpath_var\""; then
- eval "$shlibpath_var=\"\$dir\""
- else
- eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
- fi
- done
-
- # This variable tells wrapper scripts just to set shlibpath_var
- # rather than running their programs.
- libtool_execute_magic="$magic"
-
- # Check if any of the arguments is a wrapper script.
- args=
- for file
- do
- case $file in
- -* | *.la | *.lo ) ;;
- *)
- # Do a test to see if this is really a libtool program.
- if func_ltwrapper_script_p "$file"; then
- func_source "$file"
- # Transform arg to wrapped name.
- file="$progdir/$program"
- elif func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- func_source "$func_ltwrapper_scriptname_result"
- # Transform arg to wrapped name.
- file="$progdir/$program"
- fi
- ;;
- esac
- # Quote arguments (to preserve shell metacharacters).
- func_append_quoted args "$file"
- done
-
- if test "X$opt_dry_run" = Xfalse; then
- if test -n "$shlibpath_var"; then
- # Export the shlibpath_var.
- eval "export $shlibpath_var"
- fi
-
- # Restore saved environment variables
- for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
- do
- eval "if test \"\${save_$lt_var+set}\" = set; then
- $lt_var=\$save_$lt_var; export $lt_var
- else
- $lt_unset $lt_var
- fi"
- done
-
- # Now prepare to actually exec the command.
- exec_cmd="\$cmd$args"
- else
- # Display what would be done.
- if test -n "$shlibpath_var"; then
- eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
- echo "export $shlibpath_var"
- fi
- $ECHO "$cmd$args"
- exit $EXIT_SUCCESS
- fi
-}
-
-test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
-
-
-# func_mode_finish arg...
-func_mode_finish ()
-{
- $opt_debug
- libs=
- libdirs=
- admincmds=
-
- for opt in "$nonopt" ${1+"$@"}
- do
- if test -d "$opt"; then
- func_append libdirs " $opt"
-
- elif test -f "$opt"; then
- if func_lalib_unsafe_p "$opt"; then
- func_append libs " $opt"
- else
- func_warning "\`$opt' is not a valid libtool archive"
- fi
-
- else
- func_fatal_error "invalid argument \`$opt'"
- fi
- done
-
- if test -n "$libs"; then
- if test -n "$lt_sysroot"; then
- sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
- sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
- else
- sysroot_cmd=
- fi
-
- # Remove sysroot references
- if $opt_dry_run; then
- for lib in $libs; do
- echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
- done
- else
- tmpdir=`func_mktempdir`
- for lib in $libs; do
- sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
- > $tmpdir/tmp-la
- mv -f $tmpdir/tmp-la $lib
- done
- ${RM}r "$tmpdir"
- fi
- fi
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- for libdir in $libdirs; do
- if test -n "$finish_cmds"; then
- # Do each command in the finish commands.
- func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
-'"$cmd"'"'
- fi
- if test -n "$finish_eval"; then
- # Do the single finish_eval.
- eval cmds=\"$finish_eval\"
- $opt_dry_run || eval "$cmds" || func_append admincmds "
- $cmds"
- fi
- done
- fi
-
- # Exit here if they wanted silent mode.
- $opt_silent && exit $EXIT_SUCCESS
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- echo "----------------------------------------------------------------------"
- echo "Libraries have been installed in:"
- for libdir in $libdirs; do
- $ECHO " $libdir"
- done
- echo
- echo "If you ever happen to want to link against installed libraries"
- echo "in a given directory, LIBDIR, you must either use libtool, and"
- echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
- echo "flag during linking and do at least one of the following:"
- if test -n "$shlibpath_var"; then
- echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
- echo " during execution"
- fi
- if test -n "$runpath_var"; then
- echo " - add LIBDIR to the \`$runpath_var' environment variable"
- echo " during linking"
- fi
- if test -n "$hardcode_libdir_flag_spec"; then
- libdir=LIBDIR
- eval flag=\"$hardcode_libdir_flag_spec\"
-
- $ECHO " - use the \`$flag' linker flag"
- fi
- if test -n "$admincmds"; then
- $ECHO " - have your system administrator run these commands:$admincmds"
- fi
- if test -f /etc/ld.so.conf; then
- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
- fi
- echo
-
- echo "See any operating system documentation about shared libraries for"
- case $host in
- solaris2.[6789]|solaris2.1[0-9])
- echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
- echo "pages."
- ;;
- *)
- echo "more information, such as the ld(1) and ld.so(8) manual pages."
- ;;
- esac
- echo "----------------------------------------------------------------------"
- fi
- exit $EXIT_SUCCESS
-}
-
-test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
-
-
-# func_mode_install arg...
-func_mode_install ()
-{
- $opt_debug
- # There may be an optional sh(1) argument at the beginning of
- # install_prog (especially on Windows NT).
- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
- # Allow the use of GNU shtool's install command.
- case $nonopt in *shtool*) :;; *) false;; esac; then
- # Aesthetically quote it.
- func_quote_for_eval "$nonopt"
- install_prog="$func_quote_for_eval_result "
- arg=$1
- shift
- else
- install_prog=
- arg=$nonopt
- fi
-
- # The real first argument should be the name of the installation program.
- # Aesthetically quote it.
- func_quote_for_eval "$arg"
- func_append install_prog "$func_quote_for_eval_result"
- install_shared_prog=$install_prog
- case " $install_prog " in
- *[\\\ /]cp\ *) install_cp=: ;;
- *) install_cp=false ;;
- esac
-
- # We need to accept at least all the BSD install flags.
- dest=
- files=
- opts=
- prev=
- install_type=
- isdir=no
- stripme=
- no_mode=:
- for arg
- do
- arg2=
- if test -n "$dest"; then
- func_append files " $dest"
- dest=$arg
- continue
- fi
-
- case $arg in
- -d) isdir=yes ;;
- -f)
- if $install_cp; then :; else
- prev=$arg
- fi
- ;;
- -g | -m | -o)
- prev=$arg
- ;;
- -s)
- stripme=" -s"
- continue
- ;;
- -*)
- ;;
- *)
- # If the previous option needed an argument, then skip it.
- if test -n "$prev"; then
- if test "x$prev" = x-m && test -n "$install_override_mode"; then
- arg2=$install_override_mode
- no_mode=false
- fi
- prev=
- else
- dest=$arg
- continue
- fi
- ;;
- esac
-
- # Aesthetically quote the argument.
- func_quote_for_eval "$arg"
- func_append install_prog " $func_quote_for_eval_result"
- if test -n "$arg2"; then
- func_quote_for_eval "$arg2"
- fi
- func_append install_shared_prog " $func_quote_for_eval_result"
- done
-
- test -z "$install_prog" && \
- func_fatal_help "you must specify an install program"
-
- test -n "$prev" && \
- func_fatal_help "the \`$prev' option requires an argument"
-
- if test -n "$install_override_mode" && $no_mode; then
- if $install_cp; then :; else
- func_quote_for_eval "$install_override_mode"
- func_append install_shared_prog " -m $func_quote_for_eval_result"
- fi
- fi
-
- if test -z "$files"; then
- if test -z "$dest"; then
- func_fatal_help "no file or destination specified"
- else
- func_fatal_help "you must specify a destination"
- fi
- fi
-
- # Strip any trailing slash from the destination.
- func_stripname '' '/' "$dest"
- dest=$func_stripname_result
-
- # Check to see that the destination is a directory.
- test -d "$dest" && isdir=yes
- if test "$isdir" = yes; then
- destdir="$dest"
- destname=
- else
- func_dirname_and_basename "$dest" "" "."
- destdir="$func_dirname_result"
- destname="$func_basename_result"
-
- # Not a directory, so check to see that there is only one file specified.
- set dummy $files; shift
- test "$#" -gt 1 && \
- func_fatal_help "\`$dest' is not a directory"
- fi
- case $destdir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- for file in $files; do
- case $file in
- *.lo) ;;
- *)
- func_fatal_help "\`$destdir' must be an absolute directory name"
- ;;
- esac
- done
- ;;
- esac
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- staticlibs=
- future_libdirs=
- current_libdirs=
- for file in $files; do
-
- # Do each installation.
- case $file in
- *.$libext)
- # Do the static libraries later.
- func_append staticlibs " $file"
- ;;
-
- *.la)
- func_resolve_sysroot "$file"
- file=$func_resolve_sysroot_result
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "\`$file' is not a valid libtool archive"
-
- library_names=
- old_library=
- relink_command=
- func_source "$file"
-
- # Add the libdir to current_libdirs if it is the destination.
- if test "X$destdir" = "X$libdir"; then
- case "$current_libdirs " in
- *" $libdir "*) ;;
- *) func_append current_libdirs " $libdir" ;;
- esac
- else
- # Note the libdir as a future libdir.
- case "$future_libdirs " in
- *" $libdir "*) ;;
- *) func_append future_libdirs " $libdir" ;;
- esac
- fi
-
- func_dirname "$file" "/" ""
- dir="$func_dirname_result"
- func_append dir "$objdir"
-
- if test -n "$relink_command"; then
- # Determine the prefix the user has applied to our future dir.
- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
-
- # Don't allow the user to place us outside of our expected
- # location b/c this prevents finding dependent libraries that
- # are installed to the same prefix.
- # At present, this check doesn't affect windows .dll's that
- # are installed into $libdir/../bin (currently, that works fine)
- # but it's something to keep an eye on.
- test "$inst_prefix_dir" = "$destdir" && \
- func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
-
- if test -n "$inst_prefix_dir"; then
- # Stick the inst_prefix_dir data into the link command.
- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
- else
- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
- fi
-
- func_warning "relinking \`$file'"
- func_show_eval "$relink_command" \
- 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
- fi
-
- # See the names of the shared library.
- set dummy $library_names; shift
- if test -n "$1"; then
- realname="$1"
- shift
-
- srcname="$realname"
- test -n "$relink_command" && srcname="$realname"T
-
- # Install the shared library and build the symlinks.
- func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
- 'exit $?'
- tstripme="$stripme"
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- case $realname in
- *.dll.a)
- tstripme=""
- ;;
- esac
- ;;
- esac
- if test -n "$tstripme" && test -n "$striplib"; then
- func_show_eval "$striplib $destdir/$realname" 'exit $?'
- fi
-
- if test "$#" -gt 0; then
- # Delete the old symlinks, and create new ones.
- # Try `ln -sf' first, because the `ln' binary might depend on
- # the symlink we replace! Solaris /bin/ln does not understand -f,
- # so we also need to try rm && ln -s.
- for linkname
- do
- test "$linkname" != "$realname" \
- && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
- done
- fi
-
- # Do each command in the postinstall commands.
- lib="$destdir/$realname"
- func_execute_cmds "$postinstall_cmds" 'exit $?'
- fi
-
- # Install the pseudo-library for information purposes.
- func_basename "$file"
- name="$func_basename_result"
- instname="$dir/$name"i
- func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
-
- # Maybe install the static library, too.
- test -n "$old_library" && func_append staticlibs " $dir/$old_library"
- ;;
-
- *.lo)
- # Install (i.e. copy) a libtool object.
-
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- func_basename "$file"
- destfile="$func_basename_result"
- destfile="$destdir/$destfile"
- fi
-
- # Deduce the name of the destination old-style object file.
- case $destfile in
- *.lo)
- func_lo2o "$destfile"
- staticdest=$func_lo2o_result
- ;;
- *.$objext)
- staticdest="$destfile"
- destfile=
- ;;
- *)
- func_fatal_help "cannot copy a libtool object to \`$destfile'"
- ;;
- esac
-
- # Install the libtool object if requested.
- test -n "$destfile" && \
- func_show_eval "$install_prog $file $destfile" 'exit $?'
-
- # Install the old object if enabled.
- if test "$build_old_libs" = yes; then
- # Deduce the name of the old-style object file.
- func_lo2o "$file"
- staticobj=$func_lo2o_result
- func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
- fi
- exit $EXIT_SUCCESS
- ;;
-
- *)
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- func_basename "$file"
- destfile="$func_basename_result"
- destfile="$destdir/$destfile"
- fi
-
- # If the file is missing, and there is a .exe on the end, strip it
- # because it is most likely a libtool script we actually want to
- # install
- stripped_ext=""
- case $file in
- *.exe)
- if test ! -f "$file"; then
- func_stripname '' '.exe' "$file"
- file=$func_stripname_result
- stripped_ext=".exe"
- fi
- ;;
- esac
-
- # Do a test to see if this is really a libtool program.
- case $host in
- *cygwin* | *mingw*)
- if func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- wrapper=$func_ltwrapper_scriptname_result
- else
- func_stripname '' '.exe' "$file"
- wrapper=$func_stripname_result
- fi
- ;;
- *)
- wrapper=$file
- ;;
- esac
- if func_ltwrapper_script_p "$wrapper"; then
- notinst_deplibs=
- relink_command=
-
- func_source "$wrapper"
-
- # Check the variables that should have been set.
- test -z "$generated_by_libtool_version" && \
- func_fatal_error "invalid libtool wrapper script \`$wrapper'"
-
- finalize=yes
- for lib in $notinst_deplibs; do
- # Check to see that each library is installed.
- libdir=
- if test -f "$lib"; then
- func_source "$lib"
- fi
- libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
- if test -n "$libdir" && test ! -f "$libfile"; then
- func_warning "\`$lib' has not been installed in \`$libdir'"
- finalize=no
- fi
- done
-
- relink_command=
- func_source "$wrapper"
-
- outputname=
- if test "$fast_install" = no && test -n "$relink_command"; then
- $opt_dry_run || {
- if test "$finalize" = yes; then
- tmpdir=`func_mktempdir`
- func_basename "$file$stripped_ext"
- file="$func_basename_result"
- outputname="$tmpdir/$file"
- # Replace the output file specification.
- relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
-
- $opt_silent || {
- func_quote_for_expand "$relink_command"
- eval "func_echo $func_quote_for_expand_result"
- }
- if eval "$relink_command"; then :
- else
- func_error "error: relink \`$file' with the above command before installing it"
- $opt_dry_run || ${RM}r "$tmpdir"
- continue
- fi
- file="$outputname"
- else
- func_warning "cannot relink \`$file'"
- fi
- }
- else
- # Install the binary that we compiled earlier.
- file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
- fi
- fi
-
- # remove .exe since cygwin /usr/bin/install will append another
- # one anyway
- case $install_prog,$host in
- */usr/bin/install*,*cygwin*)
- case $file:$destfile in
- *.exe:*.exe)
- # this is ok
- ;;
- *.exe:*)
- destfile=$destfile.exe
- ;;
- *:*.exe)
- func_stripname '' '.exe' "$destfile"
- destfile=$func_stripname_result
- ;;
- esac
- ;;
- esac
- func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
- $opt_dry_run || if test -n "$outputname"; then
- ${RM}r "$tmpdir"
- fi
- ;;
- esac
- done
-
- for file in $staticlibs; do
- func_basename "$file"
- name="$func_basename_result"
-
- # Set up the ranlib parameters.
- oldlib="$destdir/$name"
- func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
- tool_oldlib=$func_to_tool_file_result
-
- func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
-
- if test -n "$stripme" && test -n "$old_striplib"; then
- func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
- fi
-
- # Do each command in the postinstall commands.
- func_execute_cmds "$old_postinstall_cmds" 'exit $?'
- done
-
- test -n "$future_libdirs" && \
- func_warning "remember to run \`$progname --finish$future_libdirs'"
-
- if test -n "$current_libdirs"; then
- # Maybe just do a dry run.
- $opt_dry_run && current_libdirs=" -n$current_libdirs"
- exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
- else
- exit $EXIT_SUCCESS
- fi
-}
-
-test "$opt_mode" = install && func_mode_install ${1+"$@"}
-
-
-# func_generate_dlsyms outputname originator pic_p
-# Extract symbols from dlprefiles and create ${outputname}S.o with
-# a dlpreopen symbol table.
-func_generate_dlsyms ()
-{
- $opt_debug
- my_outputname="$1"
- my_originator="$2"
- my_pic_p="${3-no}"
- my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
- my_dlsyms=
-
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- if test -n "$NM" && test -n "$global_symbol_pipe"; then
- my_dlsyms="${my_outputname}S.c"
- else
- func_error "not configured to extract global symbols from dlpreopened files"
- fi
- fi
-
- if test -n "$my_dlsyms"; then
- case $my_dlsyms in
- "") ;;
- *.c)
- # Discover the nlist of each of the dlfiles.
- nlist="$output_objdir/${my_outputname}.nm"
-
- func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
-
- # Parse the name list into a source file.
- func_verbose "creating $output_objdir/$my_dlsyms"
-
- $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
-#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
-#endif
-
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-/* External symbol declarations for the compiler. */\
-"
-
- if test "$dlself" = yes; then
- func_verbose "generating symbol list for \`$output'"
-
- $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
-
- # Add our own program objects to the symbol list.
- progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- for progfile in $progfiles; do
- func_to_tool_file "$progfile" func_convert_file_msys_to_w32
- func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
- $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -n "$exclude_expsyms"; then
- $opt_dry_run || {
- eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- if test -n "$export_symbols_regex"; then
- $opt_dry_run || {
- eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- export_symbols="$output_objdir/$outputname.exp"
- $opt_dry_run || {
- $RM $export_symbols
- eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
- eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- else
- $opt_dry_run || {
- eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
- eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
- eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- fi
- fi
-
- for dlprefile in $dlprefiles; do
- func_verbose "extracting global C symbols from \`$dlprefile'"
- func_basename "$dlprefile"
- name="$func_basename_result"
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- # if an import library, we need to obtain dlname
- if func_win32_import_lib_p "$dlprefile"; then
- func_tr_sh "$dlprefile"
- eval "curr_lafile=\$libfile_$func_tr_sh_result"
- dlprefile_dlbasename=""
- if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
- # Use subshell, to avoid clobbering current variable values
- dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
- if test -n "$dlprefile_dlname" ; then
- func_basename "$dlprefile_dlname"
- dlprefile_dlbasename="$func_basename_result"
- else
- # no lafile. user explicitly requested -dlpreopen <import library>.
- $sharedlib_from_linklib_cmd "$dlprefile"
- dlprefile_dlbasename=$sharedlib_from_linklib_result
- fi
- fi
- $opt_dry_run || {
- if test -n "$dlprefile_dlbasename" ; then
- eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
- else
- func_warning "Could not compute DLL name from $name"
- eval '$ECHO ": $name " >> "$nlist"'
- fi
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
- $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
- }
- else # not an import lib
- $opt_dry_run || {
- eval '$ECHO ": $name " >> "$nlist"'
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
- }
- fi
- ;;
- *)
- $opt_dry_run || {
- eval '$ECHO ": $name " >> "$nlist"'
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
- }
- ;;
- esac
- done
-
- $opt_dry_run || {
- # Make sure we have at least an empty file.
- test -f "$nlist" || : > "$nlist"
-
- if test -n "$exclude_expsyms"; then
- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
- $MV "$nlist"T "$nlist"
- fi
-
- # Try sorting and uniquifying the output.
- if $GREP -v "^: " < "$nlist" |
- if sort -k 3 </dev/null >/dev/null 2>&1; then
- sort -k 3
- else
- sort +2
- fi |
- uniq > "$nlist"S; then
- :
- else
- $GREP -v "^: " < "$nlist" > "$nlist"S
- fi
-
- if test -f "$nlist"S; then
- eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
- else
- echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
- fi
-
- echo >> "$output_objdir/$my_dlsyms" "\
-
-/* The mapping between symbol names and symbols. */
-typedef struct {
- const char *name;
- void *address;
-} lt_dlsymlist;
-extern LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];
-LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[] =
-{\
- { \"$my_originator\", (void *) 0 },"
-
- case $need_lib_prefix in
- no)
- eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
- ;;
- *)
- eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
- ;;
- esac
- echo >> "$output_objdir/$my_dlsyms" "\
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt_${my_prefix}_LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
- } # !$opt_dry_run
-
- pic_flag_for_symtable=
- case "$compile_command " in
- *" -static "*) ;;
- *)
- case $host in
- # compiling the symbol table file with pic_flag works around
- # a FreeBSD bug that causes programs to crash when -lm is
- # linked before any other PIC object. But we must not use
- # pic_flag when linking with -static. The problem exists in
- # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
- *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
- pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
- *-*-hpux*)
- pic_flag_for_symtable=" $pic_flag" ;;
- *)
- if test "X$my_pic_p" != Xno; then
- pic_flag_for_symtable=" $pic_flag"
- fi
- ;;
- esac
- ;;
- esac
- symtab_cflags=
- for arg in $LTCFLAGS; do
- case $arg in
- -pie | -fpie | -fPIE) ;;
- *) func_append symtab_cflags " $arg" ;;
- esac
- done
-
- # Now compile the dynamic symbol file.
- func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
-
- # Clean up the generated files.
- func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
-
- # Transform the symbol file into the correct name.
- symfileobj="$output_objdir/${my_outputname}S.$objext"
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- if test -f "$output_objdir/$my_outputname.def"; then
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- else
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- fi
- ;;
- *)
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- ;;
- esac
- ;;
- *)
- func_fatal_error "unknown suffix for \`$my_dlsyms'"
- ;;
- esac
- else
- # We keep going just in case the user didn't refer to
- # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
- # really was required.
-
- # Nullify the symbol file.
- compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
- fi
-}
-
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-# Despite the name, also deal with 64 bit binaries.
-func_win32_libid ()
-{
- $opt_debug
- win32_libid_type="unknown"
- win32_fileres=`file -L $1 2>/dev/null`
- case $win32_fileres in
- *ar\ archive\ import\ library*) # definitely import
- win32_libid_type="x86 archive import"
- ;;
- *ar\ archive*) # could be an import, or static
- # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
- if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
- $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
- $SED -n -e '
- 1,100{
- / I /{
- s,.*,import,
- p
- q
- }
- }'`
- case $win32_nmres in
- import*) win32_libid_type="x86 archive import";;
- *) win32_libid_type="x86 archive static";;
- esac
- fi
- ;;
- *DLL*)
- win32_libid_type="x86 DLL"
- ;;
- *executable*) # but shell scripts are "executable" too...
- case $win32_fileres in
- *MS\ Windows\ PE\ Intel*)
- win32_libid_type="x86 DLL"
- ;;
- esac
- ;;
- esac
- $ECHO "$win32_libid_type"
-}
-
-# func_cygming_dll_for_implib ARG
-#
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-# Invoked by eval'ing the libtool variable
-# $sharedlib_from_linklib_cmd
-# Result is available in the variable
-# $sharedlib_from_linklib_result
-func_cygming_dll_for_implib ()
-{
- $opt_debug
- sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
-}
-
-# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
-#
-# The is the core of a fallback implementation of a
-# platform-specific function to extract the name of the
-# DLL associated with the specified import library LIBNAME.
-#
-# SECTION_NAME is either .idata$6 or .idata$7, depending
-# on the platform and compiler that created the implib.
-#
-# Echos the name of the DLL associated with the
-# specified import library.
-func_cygming_dll_for_implib_fallback_core ()
-{
- $opt_debug
- match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
- $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
- $SED '/^Contents of section '"$match_literal"':/{
- # Place marker at beginning of archive member dllname section
- s/.*/====MARK====/
- p
- d
- }
- # These lines can sometimes be longer than 43 characters, but
- # are always uninteresting
- /:[ ]*file format pe[i]\{,1\}-/d
- /^In archive [^:]*:/d
- # Ensure marker is printed
- /^====MARK====/p
- # Remove all lines with less than 43 characters
- /^.\{43\}/!d
- # From remaining lines, remove first 43 characters
- s/^.\{43\}//' |
- $SED -n '
- # Join marker and all lines until next marker into a single line
- /^====MARK====/ b para
- H
- $ b para
- b
- :para
- x
- s/\n//g
- # Remove the marker
- s/^====MARK====//
- # Remove trailing dots and whitespace
- s/[\. \t]*$//
- # Print
- /./p' |
- # we now have a list, one entry per line, of the stringified
- # contents of the appropriate section of all members of the
- # archive which possess that section. Heuristic: eliminate
- # all those which have a first or second character that is
- # a '.' (that is, objdump's representation of an unprintable
- # character.) This should work for all archives with less than
- # 0x302f exports -- but will fail for DLLs whose name actually
- # begins with a literal '.' or a single character followed by
- # a '.'.
- #
- # Of those that remain, print the first one.
- $SED -e '/^\./d;/^.\./d;q'
-}
-
-# func_cygming_gnu_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is a GNU/binutils-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_gnu_implib_p ()
-{
- $opt_debug
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
- test -n "$func_cygming_gnu_implib_tmp"
-}
-
-# func_cygming_ms_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is an MS-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_ms_implib_p ()
-{
- $opt_debug
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
- test -n "$func_cygming_ms_implib_tmp"
-}
-
-# func_cygming_dll_for_implib_fallback ARG
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-#
-# This fallback implementation is for use when $DLLTOOL
-# does not support the --identify-strict option.
-# Invoked by eval'ing the libtool variable
-# $sharedlib_from_linklib_cmd
-# Result is available in the variable
-# $sharedlib_from_linklib_result
-func_cygming_dll_for_implib_fallback ()
-{
- $opt_debug
- if func_cygming_gnu_implib_p "$1" ; then
- # binutils import library
- sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
- elif func_cygming_ms_implib_p "$1" ; then
- # ms-generated import library
- sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
- else
- # unknown
- sharedlib_from_linklib_result=""
- fi
-}
-
-
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
- $opt_debug
- f_ex_an_ar_dir="$1"; shift
- f_ex_an_ar_oldlib="$1"
- if test "$lock_old_archive_extraction" = yes; then
- lockfile=$f_ex_an_ar_oldlib.lock
- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
- func_echo "Waiting for $lockfile to be removed"
- sleep 2
- done
- fi
- func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
- 'stat=$?; rm -f "$lockfile"; exit $stat'
- if test "$lock_old_archive_extraction" = yes; then
- $opt_dry_run || rm -f "$lockfile"
- fi
- if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
- fi
-}
-
-
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
- $opt_debug
- my_gentop="$1"; shift
- my_oldlibs=${1+"$@"}
- my_oldobjs=""
- my_xlib=""
- my_xabs=""
- my_xdir=""
-
- for my_xlib in $my_oldlibs; do
- # Extract the objects.
- case $my_xlib in
- [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
- *) my_xabs=`pwd`"/$my_xlib" ;;
- esac
- func_basename "$my_xlib"
- my_xlib="$func_basename_result"
- my_xlib_u=$my_xlib
- while :; do
- case " $extracted_archives " in
- *" $my_xlib_u "*)
- func_arith $extracted_serial + 1
- extracted_serial=$func_arith_result
- my_xlib_u=lt$extracted_serial-$my_xlib ;;
- *) break ;;
- esac
- done
- extracted_archives="$extracted_archives $my_xlib_u"
- my_xdir="$my_gentop/$my_xlib_u"
-
- func_mkdir_p "$my_xdir"
-
- case $host in
- *-darwin*)
- func_verbose "Extracting $my_xabs"
- # Do not bother doing anything if just a dry run
- $opt_dry_run || {
- darwin_orig_dir=`pwd`
- cd $my_xdir || exit $?
- darwin_archive=$my_xabs
- darwin_curdir=`pwd`
- darwin_base_archive=`basename "$darwin_archive"`
- darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
- if test -n "$darwin_arches"; then
- darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
- darwin_arch=
- func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
- for darwin_arch in $darwin_arches ; do
- func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
- $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
- cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
- func_extract_an_archive "`pwd`" "${darwin_base_archive}"
- cd "$darwin_curdir"
- $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
- done # $darwin_arches
- ## Okay now we've a bunch of thin objects, gotta fatten them up :)
- darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
- darwin_file=
- darwin_files=
- for darwin_file in $darwin_filelist; do
- darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
- $LIPO -create -output "$darwin_file" $darwin_files
- done # $darwin_filelist
- $RM -rf unfat-$$
- cd "$darwin_orig_dir"
- else
- cd $darwin_orig_dir
- func_extract_an_archive "$my_xdir" "$my_xabs"
- fi # $darwin_arches
- } # !$opt_dry_run
- ;;
- *)
- func_extract_an_archive "$my_xdir" "$my_xabs"
- ;;
- esac
- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
- done
-
- func_extract_archives_result="$my_oldobjs"
-}
-
-
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable. Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take. If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the $objdir directory. This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
- func_emit_wrapper_arg1=${1-no}
-
- $ECHO "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='$sed_quote_subst'
-
-# Be Bourne compatible
-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs 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
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
- # install mode needs the following variables:
- generated_by_libtool_version='$macro_version'
- notinst_deplibs='$notinst_deplibs'
-else
- # When we are sourced in execute mode, \$file and \$ECHO are already set.
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- file=\"\$0\""
-
- qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
- $ECHO "\
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
- ECHO=\"$qECHO\"
- fi
-
-# Very basic option parsing. These options are (a) specific to
-# the libtool wrapper, (b) are identical between the wrapper
-# /script/ and the wrapper /executable/ which is used only on
-# windows platforms, and (c) all begin with the string "--lt-"
-# (application programs are unlikely to have options which match
-# this pattern).
-#
-# There are only two supported options: --lt-debug and
-# --lt-dump-script. There is, deliberately, no --lt-help.
-#
-# The first argument to this parsing function should be the
-# script's $0 value, followed by "$@".
-lt_option_debug=
-func_parse_lt_options ()
-{
- lt_script_arg0=\$0
- shift
- for lt_opt
- do
- case \"\$lt_opt\" in
- --lt-debug) lt_option_debug=1 ;;
- --lt-dump-script)
- lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
- test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
- lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
- cat \"\$lt_dump_D/\$lt_dump_F\"
- exit 0
- ;;
- --lt-*)
- \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
- exit 1
- ;;
- esac
- done
-
- # Print the debug banner immediately:
- if test -n \"\$lt_option_debug\"; then
- echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
- fi
-}
-
-# Used when --lt-debug. Prints its arguments to stdout
-# (redirection is the responsibility of the caller)
-func_lt_dump_args ()
-{
- lt_dump_args_N=1;
- for lt_arg
- do
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
- lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
- done
-}
-
-# Core function for launching the target application
-func_exec_program_core ()
-{
-"
- case $host in
- # Backslashes separate directories on plain windows
- *-*-mingw | *-*-os2* | *-cegcc*)
- $ECHO "\
- if test -n \"\$lt_option_debug\"; then
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
- func_lt_dump_args \${1+\"\$@\"} 1>&2
- fi
- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
- ;;
-
- *)
- $ECHO "\
- if test -n \"\$lt_option_debug\"; then
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
- func_lt_dump_args \${1+\"\$@\"} 1>&2
- fi
- exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
- ;;
- esac
- $ECHO "\
- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
- exit 1
-}
-
-# A function to encapsulate launching the target application
-# Strips options in the --lt-* namespace from \$@ and
-# launches target application with the remaining arguments.
-func_exec_program ()
-{
- case \" \$* \" in
- *\\ --lt-*)
- for lt_wr_arg
- do
- case \$lt_wr_arg in
- --lt-*) ;;
- *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
- esac
- shift
- done ;;
- esac
- func_exec_program_core \${1+\"\$@\"}
-}
-
- # Parse options
- func_parse_lt_options \"\$0\" \${1+\"\$@\"}
-
- # Find the directory that this script lives in.
- thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
- test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
- while test -n \"\$file\"; do
- destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
-
- # If there was a directory component, then change thisdir.
- if test \"x\$destdir\" != \"x\$file\"; then
- case \"\$destdir\" in
- [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
- *) thisdir=\"\$thisdir/\$destdir\" ;;
- esac
- fi
-
- file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
- file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
- done
-
- # Usually 'no', except on cygwin/mingw when embedded into
- # the cwrapper.
- WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
- if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
- # special case for '.'
- if test \"\$thisdir\" = \".\"; then
- thisdir=\`pwd\`
- fi
- # remove .libs from thisdir
- case \"\$thisdir\" in
- *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
- $objdir ) thisdir=. ;;
- esac
- fi
-
- # Try to get the absolute directory name.
- absdir=\`cd \"\$thisdir\" && pwd\`
- test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
- if test "$fast_install" = yes; then
- $ECHO "\
- program=lt-'$outputname'$exeext
- progdir=\"\$thisdir/$objdir\"
-
- if test ! -f \"\$progdir/\$program\" ||
- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
- test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
- file=\"\$\$-\$program\"
-
- if test ! -d \"\$progdir\"; then
- $MKDIR \"\$progdir\"
- else
- $RM \"\$progdir/\$file\"
- fi"
-
- $ECHO "\
-
- # relink executable if necessary
- if test -n \"\$relink_command\"; then
- if relink_command_output=\`eval \$relink_command 2>&1\`; then :
- else
- $ECHO \"\$relink_command_output\" >&2
- $RM \"\$progdir/\$file\"
- exit 1
- fi
- fi
-
- $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
- { $RM \"\$progdir/\$program\";
- $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
- $RM \"\$progdir/\$file\"
- fi"
- else
- $ECHO "\
- program='$outputname'
- progdir=\"\$thisdir/$objdir\"
-"
- fi
-
- $ECHO "\
-
- if test -f \"\$progdir/\$program\"; then"
-
- # fixup the dll searchpath if we need to.
- #
- # Fix the DLL searchpath if we need to. Do this before prepending
- # to shlibpath, because on Windows, both are PATH and uninstalled
- # libraries must come first.
- if test -n "$dllsearchpath"; then
- $ECHO "\
- # Add the dll search path components to the executable PATH
- PATH=$dllsearchpath:\$PATH
-"
- fi
-
- # Export our shlibpath_var if we have one.
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- $ECHO "\
- # Add our own library path to $shlibpath_var
- $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
- # Some systems cannot cope with colon-terminated $shlibpath_var
- # The second colon is a workaround for a bug in BeOS R4 sed
- $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
-
- export $shlibpath_var
-"
- fi
-
- $ECHO "\
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- # Run the actual program with our arguments.
- func_exec_program \${1+\"\$@\"}
- fi
- else
- # The program doesn't exist.
- \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
- \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
- \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
- exit 1
- fi
-fi\
-"
-}
-
-
-# func_emit_cwrapperexe_src
-# emit the source code for a wrapper executable on stdout
-# Must ONLY be called from within func_mode_link because
-# it depends on a number of variable set therein.
-func_emit_cwrapperexe_src ()
-{
- cat <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
- Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-
- The $output program cannot be directly executed until all the libtool
- libraries that it depends on are installed.
-
- This wrapper executable should never be moved out of the build directory.
- If it is, it will not operate correctly.
-*/
-EOF
- cat <<"EOF"
-#ifdef _MSC_VER
-# define _CRT_SECURE_NO_DEPRECATE 1
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#ifdef _MSC_VER
-# include <direct.h>
-# include <process.h>
-# include <io.h>
-#else
-# include <unistd.h>
-# include <stdint.h>
-# ifdef __CYGWIN__
-# include <io.h>
-# endif
-#endif
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-/* declarations of non-ANSI functions */
-#if defined(__MINGW32__)
-# ifdef __STRICT_ANSI__
-int _putenv (const char *);
-# endif
-#elif defined(__CYGWIN__)
-# ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-# endif
-/* #elif defined (other platforms) ... */
-#endif
-
-/* portability defines, excluding path handling macros */
-#if defined(_MSC_VER)
-# define setmode _setmode
-# define stat _stat
-# define chmod _chmod
-# define getcwd _getcwd
-# define putenv _putenv
-# define S_IXUSR _S_IEXEC
-# ifndef _INTPTR_T_DEFINED
-# define _INTPTR_T_DEFINED
-# define intptr_t int
-# endif
-#elif defined(__MINGW32__)
-# define setmode _setmode
-# define stat _stat
-# define chmod _chmod
-# define getcwd _getcwd
-# define putenv _putenv
-#elif defined(__CYGWIN__)
-# define HAVE_SETENV
-# define FOPEN_WB "wb"
-/* #elif defined (other platforms) ... */
-#endif
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef S_IXOTH
-# define S_IXOTH 0
-#endif
-#ifndef S_IXGRP
-# define S_IXGRP 0
-#endif
-
-/* path handling portability macros */
-#ifndef DIR_SEPARATOR
-# define DIR_SEPARATOR '/'
-# define PATH_SEPARATOR ':'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
- defined (__OS2__)
-# define HAVE_DOS_BASED_FILE_SYSTEM
-# define FOPEN_WB "wb"
-# ifndef DIR_SEPARATOR_2
-# define DIR_SEPARATOR_2 '\\'
-# endif
-# ifndef PATH_SEPARATOR_2
-# define PATH_SEPARATOR_2 ';'
-# endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
- (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#ifndef PATH_SEPARATOR_2
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-#else /* PATH_SEPARATOR_2 */
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-#endif /* PATH_SEPARATOR_2 */
-
-#ifndef FOPEN_WB
-# define FOPEN_WB "w"
-#endif
-#ifndef _O_BINARY
-# define _O_BINARY 0
-#endif
-
-#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
- if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-#if defined(LT_DEBUGWRAPPER)
-static int lt_debug = 1;
-#else
-static int lt_debug = 0;
-#endif
-
-const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
-
-void *xmalloc (size_t num);
-char *xstrdup (const char *string);
-const char *base_name (const char *name);
-char *find_executable (const char *wrapper);
-char *chase_symlinks (const char *pathspec);
-int make_executable (const char *path);
-int check_executable (const char *path);
-char *strendzap (char *str, const char *pat);
-void lt_debugprintf (const char *file, int line, const char *fmt, ...);
-void lt_fatal (const char *file, int line, const char *message, ...);
-static const char *nonnull (const char *s);
-static const char *nonempty (const char *s);
-void lt_setenv (const char *name, const char *value);
-char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_update_exe_path (const char *name, const char *value);
-void lt_update_lib_path (const char *name, const char *value);
-char **prepare_spawn (char **argv);
-void lt_dump_script (FILE *f);
-EOF
-
- cat <<EOF
-volatile const char * MAGIC_EXE = "$magic_exe";
-const char * LIB_PATH_VARNAME = "$shlibpath_var";
-EOF
-
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- func_to_host_path "$temp_rpath"
- cat <<EOF
-const char * LIB_PATH_VALUE = "$func_to_host_path_result";
-EOF
- else
- cat <<"EOF"
-const char * LIB_PATH_VALUE = "";
-EOF
- fi
-
- if test -n "$dllsearchpath"; then
- func_to_host_path "$dllsearchpath:"
- cat <<EOF
-const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE = "$func_to_host_path_result";
-EOF
- else
- cat <<"EOF"
-const char * EXE_PATH_VARNAME = "";
-const char * EXE_PATH_VALUE = "";
-EOF
- fi
-
- if test "$fast_install" = yes; then
- cat <<EOF
-const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
-EOF
- else
- cat <<EOF
-const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
-EOF
- fi
-
-
- cat <<"EOF"
-
-#define LTWRAPPER_OPTION_PREFIX "--lt-"
-
-static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
-static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
-
-int
-main (int argc, char *argv[])
-{
- char **newargz;
- int newargc;
- char *tmp_pathspec;
- char *actual_cwrapper_path;
- char *actual_cwrapper_name;
- char *target_name;
- char *lt_argv_zero;
- intptr_t rval = 127;
-
- int i;
-
- program_name = (char *) xstrdup (base_name (argv[0]));
- newargz = XMALLOC (char *, argc + 1);
-
- /* very simple arg parsing; don't want to rely on getopt
- * also, copy all non cwrapper options to newargz, except
- * argz[0], which is handled differently
- */
- newargc=0;
- for (i = 1; i < argc; i++)
- {
- if (strcmp (argv[i], dumpscript_opt) == 0)
- {
-EOF
- case "$host" in
- *mingw* | *cygwin* )
- # make stdout use "unix" line endings
- echo " setmode(1,_O_BINARY);"
- ;;
- esac
-
- cat <<"EOF"
- lt_dump_script (stdout);
- return 0;
- }
- if (strcmp (argv[i], debug_opt) == 0)
- {
- lt_debug = 1;
- continue;
- }
- if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
- {
- /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
- namespace, but it is not one of the ones we know about and
- have already dealt with, above (inluding dump-script), then
- report an error. Otherwise, targets might begin to believe
- they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
- namespace. The first time any user complains about this, we'll
- need to make LTWRAPPER_OPTION_PREFIX a configure-time option
- or a configure.ac-settable value.
- */
- lt_fatal (__FILE__, __LINE__,
- "unrecognized %s option: '%s'",
- ltwrapper_option_prefix, argv[i]);
- }
- /* otherwise ... */
- newargz[++newargc] = xstrdup (argv[i]);
- }
- newargz[++newargc] = NULL;
-
-EOF
- cat <<EOF
- /* The GNU banner must be the first non-error debug message */
- lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
-EOF
- cat <<"EOF"
- lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
- lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
-
- tmp_pathspec = find_executable (argv[0]);
- if (tmp_pathspec == NULL)
- lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
- lt_debugprintf (__FILE__, __LINE__,
- "(main) found exe (before symlink chase) at: %s\n",
- tmp_pathspec);
-
- actual_cwrapper_path = chase_symlinks (tmp_pathspec);
- lt_debugprintf (__FILE__, __LINE__,
- "(main) found exe (after symlink chase) at: %s\n",
- actual_cwrapper_path);
- XFREE (tmp_pathspec);
-
- actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
- strendzap (actual_cwrapper_path, actual_cwrapper_name);
-
- /* wrapper name transforms */
- strendzap (actual_cwrapper_name, ".exe");
- tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
- XFREE (actual_cwrapper_name);
- actual_cwrapper_name = tmp_pathspec;
- tmp_pathspec = 0;
-
- /* target_name transforms -- use actual target program name; might have lt- prefix */
- target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
- strendzap (target_name, ".exe");
- tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
- XFREE (target_name);
- target_name = tmp_pathspec;
- tmp_pathspec = 0;
-
- lt_debugprintf (__FILE__, __LINE__,
- "(main) libtool target name: %s\n",
- target_name);
-EOF
-
- cat <<EOF
- newargz[0] =
- XMALLOC (char, (strlen (actual_cwrapper_path) +
- strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
- strcpy (newargz[0], actual_cwrapper_path);
- strcat (newargz[0], "$objdir");
- strcat (newargz[0], "/");
-EOF
-
- cat <<"EOF"
- /* stop here, and copy so we don't have to do this twice */
- tmp_pathspec = xstrdup (newargz[0]);
-
- /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
- strcat (newargz[0], actual_cwrapper_name);
-
- /* DO want the lt- prefix here if it exists, so use target_name */
- lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
- XFREE (tmp_pathspec);
- tmp_pathspec = NULL;
-EOF
-
- case $host_os in
- mingw*)
- cat <<"EOF"
- {
- char* p;
- while ((p = strchr (newargz[0], '\\')) != NULL)
- {
- *p = '/';
- }
- while ((p = strchr (lt_argv_zero, '\\')) != NULL)
- {
- *p = '/';
- }
- }
-EOF
- ;;
- esac
-
- cat <<"EOF"
- XFREE (target_name);
- XFREE (actual_cwrapper_path);
- XFREE (actual_cwrapper_name);
-
- lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
- lt_setenv ("DUALCASE", "1"); /* for MSK sh */
- /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
- be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
- because on Windows, both *_VARNAMEs are PATH but uninstalled
- libraries must come first. */
- lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
- lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
-
- lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
- nonnull (lt_argv_zero));
- for (i = 0; i < newargc; i++)
- {
- lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
- i, nonnull (newargz[i]));
- }
-
-EOF
-
- case $host_os in
- mingw*)
- cat <<"EOF"
- /* execv doesn't actually work on mingw as expected on unix */
- newargz = prepare_spawn (newargz);
- rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
- if (rval == -1)
- {
- /* failed to start process */
- lt_debugprintf (__FILE__, __LINE__,
- "(main) failed to launch target \"%s\": %s\n",
- lt_argv_zero, nonnull (strerror (errno)));
- return 127;
- }
- return rval;
-EOF
- ;;
- *)
- cat <<"EOF"
- execv (lt_argv_zero, newargz);
- return rval; /* =127, but avoids unused variable warning */
-EOF
- ;;
- esac
-
- cat <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
- void *p = (void *) malloc (num);
- if (!p)
- lt_fatal (__FILE__, __LINE__, "memory exhausted");
-
- return p;
-}
-
-char *
-xstrdup (const char *string)
-{
- return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
- string) : NULL;
-}
-
-const char *
-base_name (const char *name)
-{
- const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- /* Skip over the disk name in MSDOS pathnames. */
- if (isalpha ((unsigned char) name[0]) && name[1] == ':')
- name += 2;
-#endif
-
- for (base = name; *name; name++)
- if (IS_DIR_SEPARATOR (*name))
- base = name + 1;
- return base;
-}
-
-int
-check_executable (const char *path)
-{
- struct stat st;
-
- lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
- nonempty (path));
- if ((!path) || (!*path))
- return 0;
-
- if ((stat (path, &st) >= 0)
- && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
- return 1;
- else
- return 0;
-}
-
-int
-make_executable (const char *path)
-{
- int rval = 0;
- struct stat st;
-
- lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
- nonempty (path));
- if ((!path) || (!*path))
- return 0;
-
- if (stat (path, &st) >= 0)
- {
- rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
- }
- return rval;
-}
-
-/* Searches for the full path of the wrapper. Returns
- newly allocated full path name if found, NULL otherwise
- Does not chase symlinks, even on platforms that support them.
-*/
-char *
-find_executable (const char *wrapper)
-{
- int has_slash = 0;
- const char *p;
- const char *p_next;
- /* static buffer for getcwd */
- char tmp[LT_PATHMAX + 1];
- int tmp_len;
- char *concat_name;
-
- lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
- nonempty (wrapper));
-
- if ((wrapper == NULL) || (*wrapper == '\0'))
- return NULL;
-
- /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
- {
- concat_name = xstrdup (wrapper);
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
- else
- {
-#endif
- if (IS_DIR_SEPARATOR (wrapper[0]))
- {
- concat_name = xstrdup (wrapper);
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- }
-#endif
-
- for (p = wrapper; *p; p++)
- if (*p == '/')
- {
- has_slash = 1;
- break;
- }
- if (!has_slash)
- {
- /* no slashes; search PATH */
- const char *path = getenv ("PATH");
- if (path != NULL)
- {
- for (p = path; *p; p = p_next)
- {
- const char *q;
- size_t p_len;
- for (q = p; *q; q++)
- if (IS_PATH_SEPARATOR (*q))
- break;
- p_len = q - p;
- p_next = (*q == '\0' ? q : q + 1);
- if (p_len == 0)
- {
- /* empty path: current directory */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
- nonnull (strerror (errno)));
- tmp_len = strlen (tmp);
- concat_name =
- XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
- concat_name[tmp_len] = '/';
- strcpy (concat_name + tmp_len + 1, wrapper);
- }
- else
- {
- concat_name =
- XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, p, p_len);
- concat_name[p_len] = '/';
- strcpy (concat_name + p_len + 1, wrapper);
- }
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
- }
- /* not found in PATH; assume curdir */
- }
- /* Relative path | not found in path: prepend cwd */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
- nonnull (strerror (errno)));
- tmp_len = strlen (tmp);
- concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
- concat_name[tmp_len] = '/';
- strcpy (concat_name + tmp_len + 1, wrapper);
-
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- return NULL;
-}
-
-char *
-chase_symlinks (const char *pathspec)
-{
-#ifndef S_ISLNK
- return xstrdup (pathspec);
-#else
- char buf[LT_PATHMAX];
- struct stat s;
- char *tmp_pathspec = xstrdup (pathspec);
- char *p;
- int has_symlinks = 0;
- while (strlen (tmp_pathspec) && !has_symlinks)
- {
- lt_debugprintf (__FILE__, __LINE__,
- "checking path component for symlinks: %s\n",
- tmp_pathspec);
- if (lstat (tmp_pathspec, &s) == 0)
- {
- if (S_ISLNK (s.st_mode) != 0)
- {
- has_symlinks = 1;
- break;
- }
-
- /* search backwards for last DIR_SEPARATOR */
- p = tmp_pathspec + strlen (tmp_pathspec) - 1;
- while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
- p--;
- if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
- {
- /* no more DIR_SEPARATORS left */
- break;
- }
- *p = '\0';
- }
- else
- {
- lt_fatal (__FILE__, __LINE__,
- "error accessing file \"%s\": %s",
- tmp_pathspec, nonnull (strerror (errno)));
- }
- }
- XFREE (tmp_pathspec);
-
- if (!has_symlinks)
- {
- return xstrdup (pathspec);
- }
-
- tmp_pathspec = realpath (pathspec, buf);
- if (tmp_pathspec == 0)
- {
- lt_fatal (__FILE__, __LINE__,
- "could not follow symlinks for %s", pathspec);
- }
- return xstrdup (tmp_pathspec);
-#endif
-}
-
-char *
-strendzap (char *str, const char *pat)
-{
- size_t len, patlen;
-
- assert (str != NULL);
- assert (pat != NULL);
-
- len = strlen (str);
- patlen = strlen (pat);
-
- if (patlen <= len)
- {
- str += len - patlen;
- if (strcmp (str, pat) == 0)
- *str = '\0';
- }
- return str;
-}
-
-void
-lt_debugprintf (const char *file, int line, const char *fmt, ...)
-{
- va_list args;
- if (lt_debug)
- {
- (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
- va_start (args, fmt);
- (void) vfprintf (stderr, fmt, args);
- va_end (args);
- }
-}
-
-static void
-lt_error_core (int exit_status, const char *file,
- int line, const char *mode,
- const char *message, va_list ap)
-{
- fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
- vfprintf (stderr, message, ap);
- fprintf (stderr, ".\n");
-
- if (exit_status >= 0)
- exit (exit_status);
-}
-
-void
-lt_fatal (const char *file, int line, const char *message, ...)
-{
- va_list ap;
- va_start (ap, message);
- lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
- va_end (ap);
-}
-
-static const char *
-nonnull (const char *s)
-{
- return s ? s : "(null)";
-}
-
-static const char *
-nonempty (const char *s)
-{
- return (s && !*s) ? "(empty)" : nonnull (s);
-}
-
-void
-lt_setenv (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_setenv) setting '%s' to '%s'\n",
- nonnull (name), nonnull (value));
- {
-#ifdef HAVE_SETENV
- /* always make a copy, for consistency with !HAVE_SETENV */
- char *str = xstrdup (value);
- setenv (name, str, 1);
-#else
- int len = strlen (name) + 1 + strlen (value) + 1;
- char *str = XMALLOC (char, len);
- sprintf (str, "%s=%s", name, value);
- if (putenv (str) != EXIT_SUCCESS)
- {
- XFREE (str);
- }
-#endif
- }
-}
-
-char *
-lt_extend_str (const char *orig_value, const char *add, int to_end)
-{
- char *new_value;
- if (orig_value && *orig_value)
- {
- int orig_value_len = strlen (orig_value);
- int add_len = strlen (add);
- new_value = XMALLOC (char, add_len + orig_value_len + 1);
- if (to_end)
- {
- strcpy (new_value, orig_value);
- strcpy (new_value + orig_value_len, add);
- }
- else
- {
- strcpy (new_value, add);
- strcpy (new_value + add_len, orig_value);
- }
- }
- else
- {
- new_value = xstrdup (add);
- }
- return new_value;
-}
-
-void
-lt_update_exe_path (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
- nonnull (name), nonnull (value));
-
- if (name && *name && value && *value)
- {
- char *new_value = lt_extend_str (getenv (name), value, 0);
- /* some systems can't cope with a ':'-terminated path #' */
- int len = strlen (new_value);
- while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
- {
- new_value[len-1] = '\0';
- }
- lt_setenv (name, new_value);
- XFREE (new_value);
- }
-}
-
-void
-lt_update_lib_path (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
- nonnull (name), nonnull (value));
-
- if (name && *name && value && *value)
- {
- char *new_value = lt_extend_str (getenv (name), value, 0);
- lt_setenv (name, new_value);
- XFREE (new_value);
- }
-}
-
-EOF
- case $host_os in
- mingw*)
- cat <<"EOF"
-
-/* Prepares an argument vector before calling spawn().
- Note that spawn() does not by itself call the command interpreter
- (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
- ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- GetVersionEx(&v);
- v.dwPlatformId == VER_PLATFORM_WIN32_NT;
- }) ? "cmd.exe" : "command.com").
- Instead it simply concatenates the arguments, separated by ' ', and calls
- CreateProcess(). We must quote the arguments since Win32 CreateProcess()
- interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
- special way:
- - Space and tab are interpreted as delimiters. They are not treated as
- delimiters if they are surrounded by double quotes: "...".
- - Unescaped double quotes are removed from the input. Their only effect is
- that within double quotes, space and tab are treated like normal
- characters.
- - Backslashes not followed by double quotes are not special.
- - But 2*n+1 backslashes followed by a double quote become
- n backslashes followed by a double quote (n >= 0):
- \" -> "
- \\\" -> \"
- \\\\\" -> \\"
- */
-#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-char **
-prepare_spawn (char **argv)
-{
- size_t argc;
- char **new_argv;
- size_t i;
-
- /* Count number of arguments. */
- for (argc = 0; argv[argc] != NULL; argc++)
- ;
-
- /* Allocate new argument vector. */
- new_argv = XMALLOC (char *, argc + 1);
-
- /* Put quoted arguments into the new argument vector. */
- for (i = 0; i < argc; i++)
- {
- const char *string = argv[i];
-
- if (string[0] == '\0')
- new_argv[i] = xstrdup ("\"\"");
- else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
- {
- int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
- size_t length;
- unsigned int backslashes;
- const char *s;
- char *quoted_string;
- char *p;
-
- length = 0;
- backslashes = 0;
- if (quote_around)
- length++;
- for (s = string; *s != '\0'; s++)
- {
- char c = *s;
- if (c == '"')
- length += backslashes + 1;
- length++;
- if (c == '\\')
- backslashes++;
- else
- backslashes = 0;
- }
- if (quote_around)
- length += backslashes + 1;
-
- quoted_string = XMALLOC (char, length + 1);
-
- p = quoted_string;
- backslashes = 0;
- if (quote_around)
- *p++ = '"';
- for (s = string; *s != '\0'; s++)
- {
- char c = *s;
- if (c == '"')
- {
- unsigned int j;
- for (j = backslashes + 1; j > 0; j--)
- *p++ = '\\';
- }
- *p++ = c;
- if (c == '\\')
- backslashes++;
- else
- backslashes = 0;
- }
- if (quote_around)
- {
- unsigned int j;
- for (j = backslashes; j > 0; j--)
- *p++ = '\\';
- *p++ = '"';
- }
- *p = '\0';
-
- new_argv[i] = quoted_string;
- }
- else
- new_argv[i] = (char *) string;
- }
- new_argv[argc] = NULL;
-
- return new_argv;
-}
-EOF
- ;;
- esac
-
- cat <<"EOF"
-void lt_dump_script (FILE* f)
-{
-EOF
- func_emit_wrapper yes |
- $SED -n -e '
-s/^\(.\{79\}\)\(..*\)/\1\
-\2/
-h
-s/\([\\"]\)/\\\1/g
-s/$/\\n/
-s/\([^\n]*\).*/ fputs ("\1", f);/p
-g
-D'
- cat <<"EOF"
-}
-EOF
-}
-# end: func_emit_cwrapperexe_src
-
-# func_win32_import_lib_p ARG
-# True if ARG is an import lib, as indicated by $file_magic_cmd
-func_win32_import_lib_p ()
-{
- $opt_debug
- case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
- *import*) : ;;
- *) false ;;
- esac
-}
-
-# func_mode_link arg...
-func_mode_link ()
-{
- $opt_debug
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- # It is impossible to link a dll without this setting, and
- # we shouldn't force the makefile maintainer to figure out
- # which system we are compiling for in order to pass an extra
- # flag for every libtool invocation.
- # allow_undefined=no
-
- # FIXME: Unfortunately, there are problems with the above when trying
- # to make a dll which has undefined symbols, in which case not
- # even a static library is built. For now, we need to specify
- # -no-undefined on the libtool link line when we can be certain
- # that all symbols are satisfied, otherwise we get a static library.
- allow_undefined=yes
- ;;
- *)
- allow_undefined=yes
- ;;
- esac
- libtool_args=$nonopt
- base_compile="$nonopt $@"
- compile_command=$nonopt
- finalize_command=$nonopt
-
- compile_rpath=
- finalize_rpath=
- compile_shlibpath=
- finalize_shlibpath=
- convenience=
- old_convenience=
- deplibs=
- old_deplibs=
- compiler_flags=
- linker_flags=
- dllsearchpath=
- lib_search_path=`pwd`
- inst_prefix_dir=
- new_inherited_linker_flags=
-
- avoid_version=no
- bindir=
- dlfiles=
- dlprefiles=
- dlself=no
- export_dynamic=no
- export_symbols=
- export_symbols_regex=
- generated=
- libobjs=
- ltlibs=
- module=no
- no_install=no
- objs=
- non_pic_objects=
- precious_files_regex=
- prefer_static_libs=no
- preload=no
- prev=
- prevarg=
- release=
- rpath=
- xrpath=
- perm_rpath=
- temp_rpath=
- thread_safe=no
- vinfo=
- vinfo_number=no
- weak_libs=
- single_module="${wl}-single_module"
- func_infer_tag $base_compile
-
- # We need to know -static, to get the right output filenames.
- for arg
- do
- case $arg in
- -shared)
- test "$build_libtool_libs" != yes && \
- func_fatal_configuration "can not build a shared library"
- build_old_libs=no
- break
- ;;
- -all-static | -static | -static-libtool-libs)
- case $arg in
- -all-static)
- if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
- func_warning "complete static linking is impossible in this configuration"
- fi
- if test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- -static)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=built
- ;;
- -static-libtool-libs)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- esac
- build_libtool_libs=no
- build_old_libs=yes
- break
- ;;
- esac
- done
-
- # See if our shared archives depend on static archives.
- test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
- # Go through the arguments, transforming them on the way.
- while test "$#" -gt 0; do
- arg="$1"
- shift
- func_quote_for_eval "$arg"
- qarg=$func_quote_for_eval_unquoted_result
- func_append libtool_args " $func_quote_for_eval_result"
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- case $prev in
- output)
- func_append compile_command " @OUTPUT@"
- func_append finalize_command " @OUTPUT@"
- ;;
- esac
-
- case $prev in
- bindir)
- bindir="$arg"
- prev=
- continue
- ;;
- dlfiles|dlprefiles)
- if test "$preload" = no; then
- # Add the symbol object into the linking commands.
- func_append compile_command " @SYMFILE@"
- func_append finalize_command " @SYMFILE@"
- preload=yes
- fi
- case $arg in
- *.la | *.lo) ;; # We handle these cases below.
- force)
- if test "$dlself" = no; then
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- self)
- if test "$prev" = dlprefiles; then
- dlself=yes
- elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
- dlself=yes
- else
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- *)
- if test "$prev" = dlfiles; then
- func_append dlfiles " $arg"
- else
- func_append dlprefiles " $arg"
- fi
- prev=
- continue
- ;;
- esac
- ;;
- expsyms)
- export_symbols="$arg"
- test -f "$arg" \
- || func_fatal_error "symbol file \`$arg' does not exist"
- prev=
- continue
- ;;
- expsyms_regex)
- export_symbols_regex="$arg"
- prev=
- continue
- ;;
- framework)
- case $host in
- *-*-darwin*)
- case "$deplibs " in
- *" $qarg.ltframework "*) ;;
- *) func_append deplibs " $qarg.ltframework" # this is fixed later
- ;;
- esac
- ;;
- esac
- prev=
- continue
- ;;
- inst_prefix)
- inst_prefix_dir="$arg"
- prev=
- continue
- ;;
- objectlist)
- if test -f "$arg"; then
- save_arg=$arg
- moreargs=
- for fil in `cat "$save_arg"`
- do
-# func_append moreargs " $fil"
- arg=$fil
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if func_lalib_unsafe_p "$arg"; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- func_source "$arg"
-
- if test -z "$pic_object" ||
- test -z "$non_pic_object" ||
- test "$pic_object" = none &&
- test "$non_pic_object" = none; then
- func_fatal_error "cannot find name of object for \`$arg'"
- fi
-
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- func_append dlfiles " $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- func_append dlprefiles " $pic_object"
- prev=
- fi
-
- # A PIC object.
- func_append libobjs " $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- func_append non_pic_objects " $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- else
- # If the PIC object exists, use it instead.
- # $xdir was prepended to $pic_object above.
- non_pic_object="$pic_object"
- func_append non_pic_objects " $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if $opt_dry_run; then
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- func_lo2o "$arg"
- pic_object=$xdir$objdir/$func_lo2o_result
- non_pic_object=$xdir$func_lo2o_result
- func_append libobjs " $pic_object"
- func_append non_pic_objects " $non_pic_object"
- else
- func_fatal_error "\`$arg' is not a valid libtool object"
- fi
- fi
- done
- else
- func_fatal_error "link input file \`$arg' does not exist"
- fi
- arg=$save_arg
- prev=
- continue
- ;;
- precious_regex)
- precious_files_regex="$arg"
- prev=
- continue
- ;;
- release)
- release="-$arg"
- prev=
- continue
- ;;
- rpath | xrpath)
- # We need an absolute path.
- case $arg in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- if test "$prev" = rpath; then
- case "$rpath " in
- *" $arg "*) ;;
- *) func_append rpath " $arg" ;;
- esac
- else
- case "$xrpath " in
- *" $arg "*) ;;
- *) func_append xrpath " $arg" ;;
- esac
- fi
- prev=
- continue
- ;;
- shrext)
- shrext_cmds="$arg"
- prev=
- continue
- ;;
- weak)
- func_append weak_libs " $arg"
- prev=
- continue
- ;;
- xcclinker)
- func_append linker_flags " $qarg"
- func_append compiler_flags " $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xcompiler)
- func_append compiler_flags " $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xlinker)
- func_append linker_flags " $qarg"
- func_append compiler_flags " $wl$qarg"
- prev=
- func_append compile_command " $wl$qarg"
- func_append finalize_command " $wl$qarg"
- continue
- ;;
- *)
- eval "$prev=\"\$arg\""
- prev=
- continue
- ;;
- esac
- fi # test -n "$prev"
-
- prevarg="$arg"
-
- case $arg in
- -all-static)
- if test -n "$link_static_flag"; then
- # See comment for -static flag below, for more details.
- func_append compile_command " $link_static_flag"
- func_append finalize_command " $link_static_flag"
- fi
- continue
- ;;
-
- -allow-undefined)
- # FIXME: remove this flag sometime in the future.
- func_fatal_error "\`-allow-undefined' must not be used because it is the default"
- ;;
-
- -avoid-version)
- avoid_version=yes
- continue
- ;;
-
- -bindir)
- prev=bindir
- continue
- ;;
-
- -dlopen)
- prev=dlfiles
- continue
- ;;
-
- -dlpreopen)
- prev=dlprefiles
- continue
- ;;
-
- -export-dynamic)
- export_dynamic=yes
- continue
- ;;
-
- -export-symbols | -export-symbols-regex)
- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
- func_fatal_error "more than one -exported-symbols argument is not allowed"
- fi
- if test "X$arg" = "X-export-symbols"; then
- prev=expsyms
- else
- prev=expsyms_regex
- fi
- continue
- ;;
-
- -framework)
- prev=framework
- continue
- ;;
-
- -inst-prefix-dir)
- prev=inst_prefix
- continue
- ;;
-
- # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
- # so, if we see these flags be careful not to treat them like -L
- -L[A-Z][A-Z]*:*)
- case $with_gcc/$host in
- no/*-*-irix* | /*-*-irix*)
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- ;;
- esac
- continue
- ;;
-
- -L*)
- func_stripname "-L" '' "$arg"
- if test -z "$func_stripname_result"; then
- if test "$#" -gt 0; then
- func_fatal_error "require no space between \`-L' and \`$1'"
- else
- func_fatal_error "need path for \`-L' option"
- fi
- fi
- func_resolve_sysroot "$func_stripname_result"
- dir=$func_resolve_sysroot_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- absdir=`cd "$dir" && pwd`
- test -z "$absdir" && \
- func_fatal_error "cannot determine absolute directory name of \`$dir'"
- dir="$absdir"
- ;;
- esac
- case "$deplibs " in
- *" -L$dir "* | *" $arg "*)
- # Will only happen for absolute or sysroot arguments
- ;;
- *)
- # Preserve sysroot, but never include relative directories
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
- *) func_append deplibs " -L$dir" ;;
- esac
- func_append lib_search_path " $dir"
- ;;
- esac
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$dir:"*) ;;
- ::) dllsearchpath=$dir;;
- *) func_append dllsearchpath ":$dir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
- *) func_append dllsearchpath ":$testbindir";;
- esac
- ;;
- esac
- continue
- ;;
-
- -l*)
- if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
- # These systems don't actually have a C or math library (as such)
- continue
- ;;
- *-*-os2*)
- # These systems don't actually have a C library (as such)
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C and math libraries are in the System framework
- func_append deplibs " System.ltframework"
- continue
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
- # Causes problems with __ctype
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
- # Compiler inserts libc in the correct place for threads to work
- test "X$arg" = "X-lc" && continue
- ;;
- esac
- elif test "X$arg" = "X-lc_r"; then
- case $host in
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc_r directly, use -pthread flag.
- continue
- ;;
- esac
- fi
- func_append deplibs " $arg"
- continue
- ;;
-
- -module)
- module=yes
- continue
- ;;
-
- # Tru64 UNIX uses -model [arg] to determine the layout of C++
- # classes, name mangling, and exception handling.
- # Darwin uses the -arch flag to determine output architecture.
- -model|-arch|-isysroot|--sysroot)
- func_append compiler_flags " $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- prev=xcompiler
- continue
- ;;
-
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
- |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
- func_append compiler_flags " $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- case "$new_inherited_linker_flags " in
- *" $arg "*) ;;
- * ) func_append new_inherited_linker_flags " $arg" ;;
- esac
- continue
- ;;
-
- -multi_module)
- single_module="${wl}-multi_module"
- continue
- ;;
-
- -no-fast-install)
- fast_install=no
- continue
- ;;
-
- -no-install)
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
- # The PATH hackery in wrapper scripts is required on Windows
- # and Darwin in order for the loader to find any dlls it needs.
- func_warning "\`-no-install' is ignored for $host"
- func_warning "assuming \`-no-fast-install' instead"
- fast_install=no
- ;;
- *) no_install=yes ;;
- esac
- continue
- ;;
-
- -no-undefined)
- allow_undefined=no
- continue
- ;;
-
- -objectlist)
- prev=objectlist
- continue
- ;;
-
- -o) prev=output ;;
-
- -precious-files-regex)
- prev=precious_regex
- continue
- ;;
-
- -release)
- prev=release
- continue
- ;;
-
- -rpath)
- prev=rpath
- continue
- ;;
-
- -R)
- prev=xrpath
- continue
- ;;
-
- -R*)
- func_stripname '-R' '' "$arg"
- dir=$func_stripname_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- =*)
- func_stripname '=' '' "$dir"
- dir=$lt_sysroot$func_stripname_result
- ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- case "$xrpath " in
- *" $dir "*) ;;
- *) func_append xrpath " $dir" ;;
- esac
- continue
- ;;
-
- -shared)
- # The effects of -shared are defined in a previous loop.
- continue
- ;;
-
- -shrext)
- prev=shrext
- continue
- ;;
-
- -static | -static-libtool-libs)
- # The effects of -static are defined in a previous loop.
- # We used to do the same as -all-static on platforms that
- # didn't have a PIC flag, but the assumption that the effects
- # would be equivalent was wrong. It would break on at least
- # Digital Unix and AIX.
- continue
- ;;
-
- -thread-safe)
- thread_safe=yes
- continue
- ;;
-
- -version-info)
- prev=vinfo
- continue
- ;;
-
- -version-number)
- prev=vinfo
- vinfo_number=yes
- continue
- ;;
-
- -weak)
- prev=weak
- continue
- ;;
-
- -Wc,*)
- func_stripname '-Wc,' '' "$arg"
- args=$func_stripname_result
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$flag"
- func_append arg " $func_quote_for_eval_result"
- func_append compiler_flags " $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$arg"
- arg=$func_stripname_result
- ;;
-
- -Wl,*)
- func_stripname '-Wl,' '' "$arg"
- args=$func_stripname_result
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$flag"
- func_append arg " $wl$func_quote_for_eval_result"
- func_append compiler_flags " $wl$func_quote_for_eval_result"
- func_append linker_flags " $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$arg"
- arg=$func_stripname_result
- ;;
-
- -Xcompiler)
- prev=xcompiler
- continue
- ;;
-
- -Xlinker)
- prev=xlinker
- continue
- ;;
-
- -XCClinker)
- prev=xcclinker
- continue
- ;;
-
- # -msg_* for osf cc
- -msg_*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
-
- # Flags to be passed through unchanged, with rationale:
- # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
- # -r[0-9][0-9]* specify processor for the SGI compiler
- # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
- # +DA*, +DD* enable 64-bit mode for the HP compiler
- # -q* compiler args for the IBM compiler
- # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
- # -F/path path to uninstalled frameworks, gcc on darwin
- # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
- # @file GCC response files
- # -tp=* Portland pgcc target processor selection
- # --sysroot=* for sysroot support
- # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
- -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- func_append compiler_flags " $arg"
- continue
- ;;
-
- # Some other compiler flag.
- -* | +*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
-
- *.$objext)
- # A standard object.
- func_append objs " $arg"
- ;;
-
- *.lo)
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if func_lalib_unsafe_p "$arg"; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- func_source "$arg"
-
- if test -z "$pic_object" ||
- test -z "$non_pic_object" ||
- test "$pic_object" = none &&
- test "$non_pic_object" = none; then
- func_fatal_error "cannot find name of object for \`$arg'"
- fi
-
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- func_append dlfiles " $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- func_append dlprefiles " $pic_object"
- prev=
- fi
-
- # A PIC object.
- func_append libobjs " $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- func_append non_pic_objects " $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- else
- # If the PIC object exists, use it instead.
- # $xdir was prepended to $pic_object above.
- non_pic_object="$pic_object"
- func_append non_pic_objects " $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if $opt_dry_run; then
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- func_lo2o "$arg"
- pic_object=$xdir$objdir/$func_lo2o_result
- non_pic_object=$xdir$func_lo2o_result
- func_append libobjs " $pic_object"
- func_append non_pic_objects " $non_pic_object"
- else
- func_fatal_error "\`$arg' is not a valid libtool object"
- fi
- fi
- ;;
-
- *.$libext)
- # An archive.
- func_append deplibs " $arg"
- func_append old_deplibs " $arg"
- continue
- ;;
-
- *.la)
- # A libtool-controlled library.
-
- func_resolve_sysroot "$arg"
- if test "$prev" = dlfiles; then
- # This library was specified with -dlopen.
- func_append dlfiles " $func_resolve_sysroot_result"
- prev=
- elif test "$prev" = dlprefiles; then
- # The library was specified with -dlpreopen.
- func_append dlprefiles " $func_resolve_sysroot_result"
- prev=
- else
- func_append deplibs " $func_resolve_sysroot_result"
- fi
- continue
- ;;
-
- # Some other compiler argument.
- *)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
- esac # arg
-
- # Now actually substitute the argument into the commands.
- if test -n "$arg"; then
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
- done # argument parsing loop
-
- test -n "$prev" && \
- func_fatal_help "the \`$prevarg' option requires an argument"
-
- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
- eval arg=\"$export_dynamic_flag_spec\"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
-
- oldlibs=
- # calculate the name of the file, without its directory
- func_basename "$output"
- outputname="$func_basename_result"
- libobjs_save="$libobjs"
-
- if test -n "$shlibpath_var"; then
- # get the directories listed in $shlibpath_var
- eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
- else
- shlib_search_path=
- fi
- eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
- eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
- func_dirname "$output" "/" ""
- output_objdir="$func_dirname_result$objdir"
- func_to_tool_file "$output_objdir/"
- tool_output_objdir=$func_to_tool_file_result
- # Create the object directory.
- func_mkdir_p "$output_objdir"
-
- # Determine the type of output
- case $output in
- "")
- func_fatal_help "you must specify an output file"
- ;;
- *.$libext) linkmode=oldlib ;;
- *.lo | *.$objext) linkmode=obj ;;
- *.la) linkmode=lib ;;
- *) linkmode=prog ;; # Anything else should be a program.
- esac
-
- specialdeplibs=
-
- libs=
- # Find all interdependent deplibs by searching for libraries
- # that are linked more than once (e.g. -la -lb -la)
- for deplib in $deplibs; do
- if $opt_preserve_dup_deps ; then
- case "$libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append libs " $deplib"
- done
-
- if test "$linkmode" = lib; then
- libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
- # Compute libraries that are listed more than once in $predeps
- # $postdeps and mark them as special (i.e., whose duplicates are
- # not to be eliminated).
- pre_post_deps=
- if $opt_duplicate_compiler_generated_deps; then
- for pre_post_dep in $predeps $postdeps; do
- case "$pre_post_deps " in
- *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
- esac
- func_append pre_post_deps " $pre_post_dep"
- done
- fi
- pre_post_deps=
- fi
-
- deplibs=
- newdependency_libs=
- newlib_search_path=
- need_relink=no # whether we're linking any uninstalled libtool libraries
- notinst_deplibs= # not-installed libtool libraries
- notinst_path= # paths that contain not-installed libtool libraries
-
- case $linkmode in
- lib)
- passes="conv dlpreopen link"
- for file in $dlfiles $dlprefiles; do
- case $file in
- *.la) ;;
- *)
- func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
- ;;
- esac
- done
- ;;
- prog)
- compile_deplibs=
- finalize_deplibs=
- alldeplibs=no
- newdlfiles=
- newdlprefiles=
- passes="conv scan dlopen dlpreopen link"
- ;;
- *) passes="conv"
- ;;
- esac
-
- for pass in $passes; do
- # The preopen pass in lib mode reverses $deplibs; put it back here
- # so that -L comes before libs that need it for instance...
- if test "$linkmode,$pass" = "lib,link"; then
- ## FIXME: Find the place where the list is rebuilt in the wrong
- ## order, and fix it there properly
- tmp_deplibs=
- for deplib in $deplibs; do
- tmp_deplibs="$deplib $tmp_deplibs"
- done
- deplibs="$tmp_deplibs"
- fi
-
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan"; then
- libs="$deplibs"
- deplibs=
- fi
- if test "$linkmode" = prog; then
- case $pass in
- dlopen) libs="$dlfiles" ;;
- dlpreopen) libs="$dlprefiles" ;;
- link)
- libs="$deplibs %DEPLIBS%"
- test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
- ;;
- esac
- fi
- if test "$linkmode,$pass" = "lib,dlpreopen"; then
- # Collect and forward deplibs of preopened libtool libs
- for lib in $dlprefiles; do
- # Ignore non-libtool-libs
- dependency_libs=
- func_resolve_sysroot "$lib"
- case $lib in
- *.la) func_source "$func_resolve_sysroot_result" ;;
- esac
-
- # Collect preopened libtool deplibs, except any this library
- # has declared as weak libs
- for deplib in $dependency_libs; do
- func_basename "$deplib"
- deplib_base=$func_basename_result
- case " $weak_libs " in
- *" $deplib_base "*) ;;
- *) func_append deplibs " $deplib" ;;
- esac
- done
- done
- libs="$dlprefiles"
- fi
- if test "$pass" = dlopen; then
- # Collect dlpreopened libraries
- save_deplibs="$deplibs"
- deplibs=
- fi
-
- for deplib in $libs; do
- lib=
- found=no
- case $deplib in
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
- |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- func_append compiler_flags " $deplib"
- if test "$linkmode" = lib ; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
- * ) func_append new_inherited_linker_flags " $deplib" ;;
- esac
- fi
- fi
- continue
- ;;
- -l*)
- if test "$linkmode" != lib && test "$linkmode" != prog; then
- func_warning "\`-l' is ignored for archives/objects"
- continue
- fi
- func_stripname '-l' '' "$deplib"
- name=$func_stripname_result
- if test "$linkmode" = lib; then
- searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
- else
- searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
- fi
- for searchdir in $searchdirs; do
- for search_ext in .la $std_shrext .so .a; do
- # Search the libtool library
- lib="$searchdir/lib${name}${search_ext}"
- if test -f "$lib"; then
- if test "$search_ext" = ".la"; then
- found=yes
- else
- found=no
- fi
- break 2
- fi
- done
- done
- if test "$found" != yes; then
- # deplib doesn't seem to be a libtool library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- else # deplib is a libtool library
- # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
- # We need to do some special things here, and not later.
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $deplib "*)
- if func_lalib_p "$lib"; then
- library_names=
- old_library=
- func_source "$lib"
- for l in $old_library $library_names; do
- ll="$l"
- done
- if test "X$ll" = "X$old_library" ; then # only static version available
- found=no
- func_dirname "$lib" "" "."
- ladir="$func_dirname_result"
- lib=$ladir/$old_library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- fi
- fi
- ;;
- *) ;;
- esac
- fi
- fi
- ;; # -l
- *.ltframework)
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- if test "$linkmode" = lib ; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
- * ) func_append new_inherited_linker_flags " $deplib" ;;
- esac
- fi
- fi
- continue
- ;;
- -L*)
- case $linkmode in
- lib)
- deplibs="$deplib $deplibs"
- test "$pass" = conv && continue
- newdependency_libs="$deplib $newdependency_libs"
- func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- prog)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- if test "$pass" = scan; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- *)
- func_warning "\`-L' is ignored for archives/objects"
- ;;
- esac # linkmode
- continue
- ;; # -L
- -R*)
- if test "$pass" = link; then
- func_stripname '-R' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- dir=$func_resolve_sysroot_result
- # Make sure the xrpath contains only unique directories.
- case "$xrpath " in
- *" $dir "*) ;;
- *) func_append xrpath " $dir" ;;
- esac
- fi
- deplibs="$deplib $deplibs"
- continue
- ;;
- *.la)
- func_resolve_sysroot "$deplib"
- lib=$func_resolve_sysroot_result
- ;;
- *.$libext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- case $linkmode in
- lib)
- # Linking convenience modules into shared libraries is allowed,
- # but linking other static libraries is non-portable.
- case " $dlpreconveniencelibs " in
- *" $deplib "*) ;;
- *)
- valid_a_lib=no
- case $deplibs_check_method in
- match_pattern*)
- set dummy $deplibs_check_method; shift
- match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
- | $EGREP "$match_pattern_regex" > /dev/null; then
- valid_a_lib=yes
- fi
- ;;
- pass_all)
- valid_a_lib=yes
- ;;
- esac
- if test "$valid_a_lib" != yes; then
- echo
- $ECHO "*** Warning: Trying to link with static lib archive $deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because the file extensions .$libext of this argument makes me believe"
- echo "*** that it is just a static archive that I should not use here."
- else
- echo
- $ECHO "*** Warning: Linking the shared library $output against the"
- $ECHO "*** static library $deplib is not portable!"
- deplibs="$deplib $deplibs"
- fi
- ;;
- esac
- continue
- ;;
- prog)
- if test "$pass" != link; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- continue
- ;;
- esac # linkmode
- ;; # *.$libext
- *.lo | *.$objext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- elif test "$linkmode" = prog; then
- if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
- # If there is no dlopen support or we're linking statically,
- # we need to preload.
- func_append newdlprefiles " $deplib"
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- func_append newdlfiles " $deplib"
- fi
- fi
- continue
- ;;
- %DEPLIBS%)
- alldeplibs=yes
- continue
- ;;
- esac # case $deplib
-
- if test "$found" = yes || test -f "$lib"; then :
- else
- func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
- fi
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$lib" \
- || func_fatal_error "\`$lib' is not a valid libtool archive"
-
- func_dirname "$lib" "" "."
- ladir="$func_dirname_result"
-
- dlname=
- dlopen=
- dlpreopen=
- libdir=
- library_names=
- old_library=
- inherited_linker_flags=
- # If the library was installed with an old release of libtool,
- # it will not redefine variables installed, or shouldnotlink
- installed=yes
- shouldnotlink=no
- avoidtemprpath=
-
-
- # Read the .la file
- func_source "$lib"
-
- # Convert "-framework foo" to "foo.ltframework"
- if test -n "$inherited_linker_flags"; then
- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
- for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
- case " $new_inherited_linker_flags " in
- *" $tmp_inherited_linker_flag "*) ;;
- *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
- esac
- done
- fi
- dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan" ||
- { test "$linkmode" != prog && test "$linkmode" != lib; }; then
- test -n "$dlopen" && func_append dlfiles " $dlopen"
- test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
- fi
-
- if test "$pass" = conv; then
- # Only check for convenience libraries
- deplibs="$lib $deplibs"
- if test -z "$libdir"; then
- if test -z "$old_library"; then
- func_fatal_error "cannot find name of link library for \`$lib'"
- fi
- # It is a libtool convenience library, so add in its objects.
- func_append convenience " $ladir/$objdir/$old_library"
- func_append old_convenience " $ladir/$objdir/$old_library"
- tmp_libs=
- for deplib in $dependency_libs; do
- deplibs="$deplib $deplibs"
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done
- elif test "$linkmode" != prog && test "$linkmode" != lib; then
- func_fatal_error "\`$lib' is not a convenience library"
- fi
- continue
- fi # $pass = conv
-
-
- # Get the name of the library we link against.
- linklib=
- if test -n "$old_library" &&
- { test "$prefer_static_libs" = yes ||
- test "$prefer_static_libs,$installed" = "built,no"; }; then
- linklib=$old_library
- else
- for l in $old_library $library_names; do
- linklib="$l"
- done
- fi
- if test -z "$linklib"; then
- func_fatal_error "cannot find name of link library for \`$lib'"
- fi
-
- # This library was specified with -dlopen.
- if test "$pass" = dlopen; then
- if test -z "$libdir"; then
- func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
- fi
- if test -z "$dlname" ||
- test "$dlopen_support" != yes ||
- test "$build_libtool_libs" = no; then
- # If there is no dlname, no dlopen support or we're linking
- # statically, we need to preload. We also need to preload any
- # dependent libraries so libltdl's deplib preloader doesn't
- # bomb out in the load deplibs phase.
- func_append dlprefiles " $lib $dependency_libs"
- else
- func_append newdlfiles " $lib"
- fi
- continue
- fi # $pass = dlopen
-
- # We need an absolute path.
- case $ladir in
- [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
- *)
- abs_ladir=`cd "$ladir" && pwd`
- if test -z "$abs_ladir"; then
- func_warning "cannot determine absolute directory name of \`$ladir'"
- func_warning "passing it literally to the linker, although it might fail"
- abs_ladir="$ladir"
- fi
- ;;
- esac
- func_basename "$lib"
- laname="$func_basename_result"
-
- # Find the relevant object directory and library name.
- if test "X$installed" = Xyes; then
- if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- func_warning "library \`$lib' was moved."
- dir="$ladir"
- absdir="$abs_ladir"
- libdir="$abs_ladir"
- else
- dir="$lt_sysroot$libdir"
- absdir="$lt_sysroot$libdir"
- fi
- test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
- else
- if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- dir="$ladir"
- absdir="$abs_ladir"
- # Remove this search path later
- func_append notinst_path " $abs_ladir"
- else
- dir="$ladir/$objdir"
- absdir="$abs_ladir/$objdir"
- # Remove this search path later
- func_append notinst_path " $abs_ladir"
- fi
- fi # $installed = yes
- func_stripname 'lib' '.la' "$laname"
- name=$func_stripname_result
-
- # This library was specified with -dlpreopen.
- if test "$pass" = dlpreopen; then
- if test -z "$libdir" && test "$linkmode" = prog; then
- func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
- fi
- case "$host" in
- # special handling for platforms with PE-DLLs.
- *cygwin* | *mingw* | *cegcc* )
- # Linker will automatically link against shared library if both
- # static and shared are present. Therefore, ensure we extract
- # symbols from the import library if a shared library is present
- # (otherwise, the dlopen module name will be incorrect). We do
- # this by putting the import library name into $newdlprefiles.
- # We recover the dlopen module name by 'saving' the la file
- # name in a special purpose variable, and (later) extracting the
- # dlname from the la file.
- if test -n "$dlname"; then
- func_tr_sh "$dir/$linklib"
- eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
- func_append newdlprefiles " $dir/$linklib"
- else
- func_append newdlprefiles " $dir/$old_library"
- # Keep a list of preopened convenience libraries to check
- # that they are being used correctly in the link pass.
- test -z "$libdir" && \
- func_append dlpreconveniencelibs " $dir/$old_library"
- fi
- ;;
- * )
- # Prefer using a static library (so that no silly _DYNAMIC symbols
- # are required to link).
- if test -n "$old_library"; then
- func_append newdlprefiles " $dir/$old_library"
- # Keep a list of preopened convenience libraries to check
- # that they are being used correctly in the link pass.
- test -z "$libdir" && \
- func_append dlpreconveniencelibs " $dir/$old_library"
- # Otherwise, use the dlname, so that lt_dlopen finds it.
- elif test -n "$dlname"; then
- func_append newdlprefiles " $dir/$dlname"
- else
- func_append newdlprefiles " $dir/$linklib"
- fi
- ;;
- esac
- fi # $pass = dlpreopen
-
- if test -z "$libdir"; then
- # Link the convenience library
- if test "$linkmode" = lib; then
- deplibs="$dir/$old_library $deplibs"
- elif test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$dir/$old_library $compile_deplibs"
- finalize_deplibs="$dir/$old_library $finalize_deplibs"
- else
- deplibs="$lib $deplibs" # used for prog,scan pass
- fi
- continue
- fi
-
-
- if test "$linkmode" = prog && test "$pass" != link; then
- func_append newlib_search_path " $ladir"
- deplibs="$lib $deplibs"
-
- linkalldeplibs=no
- if test "$link_all_deplibs" != no || test -z "$library_names" ||
- test "$build_libtool_libs" = no; then
- linkalldeplibs=yes
- fi
-
- tmp_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- -L*) func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- esac
- # Need to link against all dependency_libs?
- if test "$linkalldeplibs" = yes; then
- deplibs="$deplib $deplibs"
- else
- # Need to hardcode shared library paths
- # or/and link against static libraries
- newdependency_libs="$deplib $newdependency_libs"
- fi
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done # for deplib
- continue
- fi # $linkmode = prog...
-
- if test "$linkmode,$pass" = "prog,link"; then
- if test -n "$library_names" &&
- { { test "$prefer_static_libs" = no ||
- test "$prefer_static_libs,$installed" = "built,yes"; } ||
- test -z "$old_library"; }; then
- # We need to hardcode the library path
- if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
- # Make sure the rpath contains only unique directories.
- case "$temp_rpath:" in
- *"$absdir:"*) ;;
- *) func_append temp_rpath "$absdir:" ;;
- esac
- fi
-
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) func_append compile_rpath " $absdir" ;;
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- ;;
- esac
- fi # $linkmode,$pass = prog,link...
-
- if test "$alldeplibs" = yes &&
- { test "$deplibs_check_method" = pass_all ||
- { test "$build_libtool_libs" = yes &&
- test -n "$library_names"; }; }; then
- # We only need to search for static libraries
- continue
- fi
- fi
-
- link_static=no # Whether the deplib will be linked statically
- use_static_libs=$prefer_static_libs
- if test "$use_static_libs" = built && test "$installed" = yes; then
- use_static_libs=no
- fi
- if test -n "$library_names" &&
- { test "$use_static_libs" = no || test -z "$old_library"; }; then
- case $host in
- *cygwin* | *mingw* | *cegcc*)
- # No point in relinking DLLs because paths are not encoded
- func_append notinst_deplibs " $lib"
- need_relink=no
- ;;
- *)
- if test "$installed" = no; then
- func_append notinst_deplibs " $lib"
- need_relink=yes
- fi
- ;;
- esac
- # This is a shared library
-
- # Warn about portability, can't link against -module's on some
- # systems (darwin). Don't bleat about dlopened modules though!
- dlopenmodule=""
- for dlpremoduletest in $dlprefiles; do
- if test "X$dlpremoduletest" = "X$lib"; then
- dlopenmodule="$dlpremoduletest"
- break
- fi
- done
- if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
- echo
- if test "$linkmode" = prog; then
- $ECHO "*** Warning: Linking the executable $output against the loadable module"
- else
- $ECHO "*** Warning: Linking the shared library $output against the loadable module"
- fi
- $ECHO "*** $linklib is not portable!"
- fi
- if test "$linkmode" = lib &&
- test "$hardcode_into_libs" = yes; then
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) func_append compile_rpath " $absdir" ;;
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- ;;
- esac
- fi
-
- if test -n "$old_archive_from_expsyms_cmds"; then
- # figure out the soname
- set dummy $library_names
- shift
- realname="$1"
- shift
- libname=`eval "\\$ECHO \"$libname_spec\""`
- # use dlname if we got it. it's perfectly good, no?
- if test -n "$dlname"; then
- soname="$dlname"
- elif test -n "$soname_spec"; then
- # bleh windows
- case $host in
- *cygwin* | mingw* | *cegcc*)
- func_arith $current - $age
- major=$func_arith_result
- versuffix="-$major"
- ;;
- esac
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
-
- # Make a new name for the extract_expsyms_cmds to use
- soroot="$soname"
- func_basename "$soroot"
- soname="$func_basename_result"
- func_stripname 'lib' '.dll' "$soname"
- newlib=libimp-$func_stripname_result.a
-
- # If the library has no export list, then create one now
- if test -f "$output_objdir/$soname-def"; then :
- else
- func_verbose "extracting exported symbol list from \`$soname'"
- func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
- fi
-
- # Create $newlib
- if test -f "$output_objdir/$newlib"; then :; else
- func_verbose "generating import library for \`$soname'"
- func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
- fi
- # make sure the library variables are pointing to the new library
- dir=$output_objdir
- linklib=$newlib
- fi # test -n "$old_archive_from_expsyms_cmds"
-
- if test "$linkmode" = prog || test "$opt_mode" != relink; then
- add_shlibpath=
- add_dir=
- add=
- lib_linked=yes
- case $hardcode_action in
- immediate | unsupported)
- if test "$hardcode_direct" = no; then
- add="$dir/$linklib"
- case $host in
- *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
- *-*-sysv4*uw2*) add_dir="-L$dir" ;;
- *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
- *-*-unixware7*) add_dir="-L$dir" ;;
- *-*-darwin* )
- # if the lib is a (non-dlopened) module then we can not
- # link against it, someone is ignoring the earlier warnings
- if /usr/bin/file -L $add 2> /dev/null |
- $GREP ": [^:]* bundle" >/dev/null ; then
- if test "X$dlopenmodule" != "X$lib"; then
- $ECHO "*** Warning: lib $linklib is a module, not a shared library"
- if test -z "$old_library" ; then
- echo
- echo "*** And there doesn't seem to be a static archive available"
- echo "*** The link will probably fail, sorry"
- else
- add="$dir/$old_library"
- fi
- elif test -n "$old_library"; then
- add="$dir/$old_library"
- fi
- fi
- esac
- elif test "$hardcode_minus_L" = no; then
- case $host in
- *-*-sunos*) add_shlibpath="$dir" ;;
- esac
- add_dir="-L$dir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = no; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- relink)
- if test "$hardcode_direct" = yes &&
- test "$hardcode_direct_absolute" = no; then
- add="$dir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$absdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
- func_append add_dir " -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- *) lib_linked=no ;;
- esac
-
- if test "$lib_linked" != yes; then
- func_fatal_configuration "unsupported hardcode properties"
- fi
-
- if test -n "$add_shlibpath"; then
- case :$compile_shlibpath: in
- *":$add_shlibpath:"*) ;;
- *) func_append compile_shlibpath "$add_shlibpath:" ;;
- esac
- fi
- if test "$linkmode" = prog; then
- test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
- test -n "$add" && compile_deplibs="$add $compile_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- if test "$hardcode_direct" != yes &&
- test "$hardcode_minus_L" != yes &&
- test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) func_append finalize_shlibpath "$libdir:" ;;
- esac
- fi
- fi
- fi
-
- if test "$linkmode" = prog || test "$opt_mode" = relink; then
- add_shlibpath=
- add_dir=
- add=
- # Finalize command for both is simple: just hardcode it.
- if test "$hardcode_direct" = yes &&
- test "$hardcode_direct_absolute" = no; then
- add="$libdir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$libdir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) func_append finalize_shlibpath "$libdir:" ;;
- esac
- add="-l$name"
- elif test "$hardcode_automatic" = yes; then
- if test -n "$inst_prefix_dir" &&
- test -f "$inst_prefix_dir$libdir/$linklib" ; then
- add="$inst_prefix_dir$libdir/$linklib"
- else
- add="$libdir/$linklib"
- fi
- else
- # We cannot seem to hardcode it, guess we'll fake it.
- add_dir="-L$libdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
- func_append add_dir " -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
- add="-l$name"
- fi
-
- if test "$linkmode" = prog; then
- test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
- test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- fi
- fi
- elif test "$linkmode" = prog; then
- # Here we assume that one of hardcode_direct or hardcode_minus_L
- # is not unsupported. This is valid on all known static and
- # shared platforms.
- if test "$hardcode_direct" != unsupported; then
- test -n "$old_library" && linklib="$old_library"
- compile_deplibs="$dir/$linklib $compile_deplibs"
- finalize_deplibs="$dir/$linklib $finalize_deplibs"
- else
- compile_deplibs="-l$name -L$dir $compile_deplibs"
- finalize_deplibs="-l$name -L$dir $finalize_deplibs"
- fi
- elif test "$build_libtool_libs" = yes; then
- # Not a shared library
- if test "$deplibs_check_method" != pass_all; then
- # We're trying link a shared library against a static one
- # but the system doesn't support it.
-
- # Just print a warning and add the library to dependency_libs so
- # that the program can be linked against the static library.
- echo
- $ECHO "*** Warning: This system can not link to static lib archive $lib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have."
- if test "$module" = yes; then
- echo "*** But as you try to build a module library, libtool will still create "
- echo "*** a static module, that should work as long as the dlopening application"
- echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- else
- deplibs="$dir/$old_library $deplibs"
- link_static=yes
- fi
- fi # link shared/static library?
-
- if test "$linkmode" = lib; then
- if test -n "$dependency_libs" &&
- { test "$hardcode_into_libs" != yes ||
- test "$build_old_libs" = yes ||
- test "$link_static" = yes; }; then
- # Extract -R from dependency_libs
- temp_deplibs=
- for libdir in $dependency_libs; do
- case $libdir in
- -R*) func_stripname '-R' '' "$libdir"
- temp_xrpath=$func_stripname_result
- case " $xrpath " in
- *" $temp_xrpath "*) ;;
- *) func_append xrpath " $temp_xrpath";;
- esac;;
- *) func_append temp_deplibs " $libdir";;
- esac
- done
- dependency_libs="$temp_deplibs"
- fi
-
- func_append newlib_search_path " $absdir"
- # Link against this library
- test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
- # ... and its dependency_libs
- tmp_libs=
- for deplib in $dependency_libs; do
- newdependency_libs="$deplib $newdependency_libs"
- case $deplib in
- -L*) func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result";;
- *) func_resolve_sysroot "$deplib" ;;
- esac
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $func_resolve_sysroot_result "*)
- func_append specialdeplibs " $func_resolve_sysroot_result" ;;
- esac
- fi
- func_append tmp_libs " $func_resolve_sysroot_result"
- done
-
- if test "$link_all_deplibs" != no; then
- # Add the search paths of all dependency libraries
- for deplib in $dependency_libs; do
- path=
- case $deplib in
- -L*) path="$deplib" ;;
- *.la)
- func_resolve_sysroot "$deplib"
- deplib=$func_resolve_sysroot_result
- func_dirname "$deplib" "" "."
- dir=$func_dirname_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
- *)
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- func_warning "cannot determine absolute directory name of \`$dir'"
- absdir="$dir"
- fi
- ;;
- esac
- if $GREP "^installed=no" $deplib > /dev/null; then
- case $host in
- *-*-darwin*)
- depdepl=
- eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
- if test -n "$deplibrary_names" ; then
- for tmp in $deplibrary_names ; do
- depdepl=$tmp
- done
- if test -f "$absdir/$objdir/$depdepl" ; then
- depdepl="$absdir/$objdir/$depdepl"
- darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- if test -z "$darwin_install_name"; then
- darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- fi
- func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
- func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
- path=
- fi
- fi
- ;;
- *)
- path="-L$absdir/$objdir"
- ;;
- esac
- else
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- test -z "$libdir" && \
- func_fatal_error "\`$deplib' is not a valid libtool archive"
- test "$absdir" != "$libdir" && \
- func_warning "\`$deplib' seems to be moved"
-
- path="-L$absdir"
- fi
- ;;
- esac
- case " $deplibs " in
- *" $path "*) ;;
- *) deplibs="$path $deplibs" ;;
- esac
- done
- fi # link_all_deplibs != no
- fi # linkmode = lib
- done # for deplib in $libs
- if test "$pass" = link; then
- if test "$linkmode" = "prog"; then
- compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
- finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
- else
- compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- fi
- fi
- dependency_libs="$newdependency_libs"
- if test "$pass" = dlpreopen; then
- # Link the dlpreopened libraries before other libraries
- for deplib in $save_deplibs; do
- deplibs="$deplib $deplibs"
- done
- fi
- if test "$pass" != dlopen; then
- if test "$pass" != conv; then
- # Make sure lib_search_path contains only unique directories.
- lib_search_path=
- for dir in $newlib_search_path; do
- case "$lib_search_path " in
- *" $dir "*) ;;
- *) func_append lib_search_path " $dir" ;;
- esac
- done
- newlib_search_path=
- fi
-
- if test "$linkmode,$pass" != "prog,link"; then
- vars="deplibs"
- else
- vars="compile_deplibs finalize_deplibs"
- fi
- for var in $vars dependency_libs; do
- # Add libraries to $var in reverse order
- eval tmp_libs=\"\$$var\"
- new_libs=
- for deplib in $tmp_libs; do
- # FIXME: Pedantically, this is the right thing to do, so
- # that some nasty dependency loop isn't accidentally
- # broken:
- #new_libs="$deplib $new_libs"
- # Pragmatically, this seems to cause very few problems in
- # practice:
- case $deplib in
- -L*) new_libs="$deplib $new_libs" ;;
- -R*) ;;
- *)
- # And here is the reason: when a library appears more
- # than once as an explicit dependence of a library, or
- # is implicitly linked in more than once by the
- # compiler, it is considered special, and multiple
- # occurrences thereof are not removed. Compare this
- # with having the same library being listed as a
- # dependency of multiple other libraries: in this case,
- # we know (pedantically, we assume) the library does not
- # need to be listed more than once, so we keep only the
- # last copy. This is not always right, but it is rare
- # enough that we require users that really mean to play
- # such unportable linking tricks to link the library
- # using -Wl,-lname, so that libtool does not consider it
- # for duplicate removal.
- case " $specialdeplibs " in
- *" $deplib "*) new_libs="$deplib $new_libs" ;;
- *)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) new_libs="$deplib $new_libs" ;;
- esac
- ;;
- esac
- ;;
- esac
- done
- tmp_libs=
- for deplib in $new_libs; do
- case $deplib in
- -L*)
- case " $tmp_libs " in
- *" $deplib "*) ;;
- *) func_append tmp_libs " $deplib" ;;
- esac
- ;;
- *) func_append tmp_libs " $deplib" ;;
- esac
- done
- eval $var=\"$tmp_libs\"
- done # for var
- fi
- # Last step: remove runtime libs from dependency_libs
- # (they stay in deplibs)
- tmp_libs=
- for i in $dependency_libs ; do
- case " $predeps $postdeps $compiler_lib_search_path " in
- *" $i "*)
- i=""
- ;;
- esac
- if test -n "$i" ; then
- func_append tmp_libs " $i"
- fi
- done
- dependency_libs=$tmp_libs
- done # for pass
- if test "$linkmode" = prog; then
- dlfiles="$newdlfiles"
- fi
- if test "$linkmode" = prog || test "$linkmode" = lib; then
- dlprefiles="$newdlprefiles"
- fi
-
- case $linkmode in
- oldlib)
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- func_warning "\`-dlopen' is ignored for archives"
- fi
-
- case " $deplibs" in
- *\ -l* | *\ -L*)
- func_warning "\`-l' and \`-L' are ignored for archives" ;;
- esac
-
- test -n "$rpath" && \
- func_warning "\`-rpath' is ignored for archives"
-
- test -n "$xrpath" && \
- func_warning "\`-R' is ignored for archives"
-
- test -n "$vinfo" && \
- func_warning "\`-version-info/-version-number' is ignored for archives"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for archives"
-
- test -n "$export_symbols$export_symbols_regex" && \
- func_warning "\`-export-symbols' is ignored for archives"
-
- # Now set the variables for building old libraries.
- build_libtool_libs=no
- oldlibs="$output"
- func_append objs "$old_deplibs"
- ;;
-
- lib)
- # Make sure we only generate libraries of the form `libNAME.la'.
- case $outputname in
- lib*)
- func_stripname 'lib' '.la' "$outputname"
- name=$func_stripname_result
- eval shared_ext=\"$shrext_cmds\"
- eval libname=\"$libname_spec\"
- ;;
- *)
- test "$module" = no && \
- func_fatal_help "libtool library \`$output' must begin with \`lib'"
-
- if test "$need_lib_prefix" != no; then
- # Add the "lib" prefix for modules if required
- func_stripname '' '.la' "$outputname"
- name=$func_stripname_result
- eval shared_ext=\"$shrext_cmds\"
- eval libname=\"$libname_spec\"
- else
- func_stripname '' '.la' "$outputname"
- libname=$func_stripname_result
- fi
- ;;
- esac
-
- if test -n "$objs"; then
- if test "$deplibs_check_method" != pass_all; then
- func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
- else
- echo
- $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
- $ECHO "*** objects $objs is not portable!"
- func_append libobjs " $objs"
- fi
- fi
-
- test "$dlself" != no && \
- func_warning "\`-dlopen self' is ignored for libtool libraries"
-
- set dummy $rpath
- shift
- test "$#" -gt 1 && \
- func_warning "ignoring multiple \`-rpath's for a libtool library"
-
- install_libdir="$1"
-
- oldlibs=
- if test -z "$rpath"; then
- if test "$build_libtool_libs" = yes; then
- # Building a libtool convenience library.
- # Some compilers have problems with a `.al' extension so
- # convenience libraries should have the same extension an
- # archive normally would.
- oldlibs="$output_objdir/$libname.$libext $oldlibs"
- build_libtool_libs=convenience
- build_old_libs=yes
- fi
-
- test -n "$vinfo" && \
- func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for convenience libraries"
- else
-
- # Parse the version information argument.
- save_ifs="$IFS"; IFS=':'
- set dummy $vinfo 0 0 0
- shift
- IFS="$save_ifs"
-
- test -n "$7" && \
- func_fatal_help "too many parameters to \`-version-info'"
-
- # convert absolute version numbers to libtool ages
- # this retains compatibility with .la files and attempts
- # to make the code below a bit more comprehensible
-
- case $vinfo_number in
- yes)
- number_major="$1"
- number_minor="$2"
- number_revision="$3"
- #
- # There are really only two kinds -- those that
- # use the current revision as the major version
- # and those that subtract age and use age as
- # a minor version. But, then there is irix
- # which has an extra 1 added just for fun
- #
- case $version_type in
- # correct linux to gnu/linux during the next big refactor
- darwin|linux|osf|windows|none)
- func_arith $number_major + $number_minor
- current=$func_arith_result
- age="$number_minor"
- revision="$number_revision"
- ;;
- freebsd-aout|freebsd-elf|qnx|sunos)
- current="$number_major"
- revision="$number_minor"
- age="0"
- ;;
- irix|nonstopux)
- func_arith $number_major + $number_minor
- current=$func_arith_result
- age="$number_minor"
- revision="$number_minor"
- lt_irix_increment=no
- ;;
- *)
- func_fatal_configuration "$modename: unknown library version type \`$version_type'"
- ;;
- esac
- ;;
- no)
- current="$1"
- revision="$2"
- age="$3"
- ;;
- esac
-
- # Check that each of the things are valid numbers.
- case $current in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "CURRENT \`$current' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- case $revision in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "REVISION \`$revision' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- case $age in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "AGE \`$age' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- if test "$age" -gt "$current"; then
- func_error "AGE \`$age' is greater than the current interface number \`$current'"
- func_fatal_error "\`$vinfo' is not valid version information"
- fi
-
- # Calculate the version variables.
- major=
- versuffix=
- verstring=
- case $version_type in
- none) ;;
-
- darwin)
- # Like Linux, but with the current version available in
- # verstring for coding it into the library header
- func_arith $current - $age
- major=.$func_arith_result
- versuffix="$major.$age.$revision"
- # Darwin ld doesn't like 0 for these options...
- func_arith $current + 1
- minor_current=$func_arith_result
- xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
- ;;
-
- freebsd-aout)
- major=".$current"
- versuffix=".$current.$revision";
- ;;
-
- freebsd-elf)
- major=".$current"
- versuffix=".$current"
- ;;
-
- irix | nonstopux)
- if test "X$lt_irix_increment" = "Xno"; then
- func_arith $current - $age
- else
- func_arith $current - $age + 1
- fi
- major=$func_arith_result
-
- case $version_type in
- nonstopux) verstring_prefix=nonstopux ;;
- *) verstring_prefix=sgi ;;
- esac
- verstring="$verstring_prefix$major.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$revision
- while test "$loop" -ne 0; do
- func_arith $revision - $loop
- iface=$func_arith_result
- func_arith $loop - 1
- loop=$func_arith_result
- verstring="$verstring_prefix$major.$iface:$verstring"
- done
-
- # Before this point, $major must not contain `.'.
- major=.$major
- versuffix="$major.$revision"
- ;;
-
- linux) # correct to gnu/linux during the next big refactor
- func_arith $current - $age
- major=.$func_arith_result
- versuffix="$major.$age.$revision"
- ;;
-
- osf)
- func_arith $current - $age
- major=.$func_arith_result
- versuffix=".$current.$age.$revision"
- verstring="$current.$age.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$age
- while test "$loop" -ne 0; do
- func_arith $current - $loop
- iface=$func_arith_result
- func_arith $loop - 1
- loop=$func_arith_result
- verstring="$verstring:${iface}.0"
- done
-
- # Make executables depend on our current version.
- func_append verstring ":${current}.0"
- ;;
-
- qnx)
- major=".$current"
- versuffix=".$current"
- ;;
-
- sunos)
- major=".$current"
- versuffix=".$current.$revision"
- ;;
-
- windows)
- # Use '-' rather than '.', since we only want one
- # extension on DOS 8.3 filesystems.
- func_arith $current - $age
- major=$func_arith_result
- versuffix="-$major"
- ;;
-
- *)
- func_fatal_configuration "unknown library version type \`$version_type'"
- ;;
- esac
-
- # Clear the version info if we defaulted, and they specified a release.
- if test -z "$vinfo" && test -n "$release"; then
- major=
- case $version_type in
- darwin)
- # we can't check for "0.0" in archive_cmds due to quoting
- # problems, so we reset it completely
- verstring=
- ;;
- *)
- verstring="0.0"
- ;;
- esac
- if test "$need_version" = no; then
- versuffix=
- else
- versuffix=".0.0"
- fi
- fi
-
- # Remove version info from name if versioning should be avoided
- if test "$avoid_version" = yes && test "$need_version" = no; then
- major=
- versuffix=
- verstring=""
- fi
-
- # Check to see if the archive will have undefined symbols.
- if test "$allow_undefined" = yes; then
- if test "$allow_undefined_flag" = unsupported; then
- func_warning "undefined symbols not allowed in $host shared libraries"
- build_libtool_libs=no
- build_old_libs=yes
- fi
- else
- # Don't allow undefined symbols.
- allow_undefined_flag="$no_undefined_flag"
- fi
-
- fi
-
- func_generate_dlsyms "$libname" "$libname" "yes"
- func_append libobjs " $symfileobj"
- test "X$libobjs" = "X " && libobjs=
-
- if test "$opt_mode" != relink; then
- # Remove our outputs, but don't remove object files since they
- # may have been created when compiling PIC objects.
- removelist=
- tempremovelist=`$ECHO "$output_objdir/*"`
- for p in $tempremovelist; do
- case $p in
- *.$objext | *.gcno)
- ;;
- $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
- if test "X$precious_files_regex" != "X"; then
- if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
- then
- continue
- fi
- fi
- func_append removelist " $p"
- ;;
- *) ;;
- esac
- done
- test -n "$removelist" && \
- func_show_eval "${RM}r \$removelist"
- fi
-
- # Now set the variables for building old libraries.
- if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
- func_append oldlibs " $output_objdir/$libname.$libext"
-
- # Transform .lo files to .o files.
- oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
- fi
-
- # Eliminate all temporary directories.
- #for path in $notinst_path; do
- # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
- # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
- # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
- #done
-
- if test -n "$xrpath"; then
- # If the user specified any rpath flags, then add them.
- temp_xrpath=
- for libdir in $xrpath; do
- func_replace_sysroot "$libdir"
- func_append temp_xrpath " -R$func_replace_sysroot_result"
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- done
- if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
- dependency_libs="$temp_xrpath $dependency_libs"
- fi
- fi
-
- # Make sure dlfiles contains only unique files that won't be dlpreopened
- old_dlfiles="$dlfiles"
- dlfiles=
- for lib in $old_dlfiles; do
- case " $dlprefiles $dlfiles " in
- *" $lib "*) ;;
- *) func_append dlfiles " $lib" ;;
- esac
- done
-
- # Make sure dlprefiles contains only unique files
- old_dlprefiles="$dlprefiles"
- dlprefiles=
- for lib in $old_dlprefiles; do
- case "$dlprefiles " in
- *" $lib "*) ;;
- *) func_append dlprefiles " $lib" ;;
- esac
- done
-
- if test "$build_libtool_libs" = yes; then
- if test -n "$rpath"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
- # these systems don't actually have a c library (as such)!
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C library is in the System framework
- func_append deplibs " System.ltframework"
- ;;
- *-*-netbsd*)
- # Don't link with libc until the a.out ld.so is fixed.
- ;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
- # Causes problems with __ctype
- ;;
- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
- # Compiler inserts libc in the correct place for threads to work
- ;;
- *)
- # Add libc to deplibs on all other systems if necessary.
- if test "$build_libtool_need_lc" = "yes"; then
- func_append deplibs " -lc"
- fi
- ;;
- esac
- fi
-
- # Transform deplibs into only deplibs that can be linked in shared.
- name_save=$name
- libname_save=$libname
- release_save=$release
- versuffix_save=$versuffix
- major_save=$major
- # I'm not sure if I'm treating the release correctly. I think
- # release should show up in the -l (ie -lgmp5) so we don't want to
- # add it in twice. Is that correct?
- release=""
- versuffix=""
- major=""
- newdeplibs=
- droppeddeps=no
- case $deplibs_check_method in
- pass_all)
- # Don't check for shared/static. Everything works.
- # This might be a little naive. We might want to check
- # whether the library exists or not. But this is on
- # osf3 & osf4 and I'm not really sure... Just
- # implementing what was already the behavior.
- newdeplibs=$deplibs
- ;;
- test_compile)
- # This code stresses the "libraries are programs" paradigm to its
- # limits. Maybe even breaks it. We compile a program, linking it
- # against the deplibs as a proxy for the library. Then we can check
- # whether they linked in statically or dynamically with ldd.
- $opt_dry_run || $RM conftest.c
- cat > conftest.c <<EOF
- int main() { return 0; }
-EOF
- $opt_dry_run || $RM conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
- ldd_output=`ldd conftest`
- for i in $deplibs; do
- case $i in
- -l*)
- func_stripname -l '' "$i"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
- func_append newdeplibs " $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- func_append newdeplibs " $i"
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning: dynamic linker does not accept needed library $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which I believe you do not have"
- echo "*** because a test_compile did reveal that the linker did not use it for"
- echo "*** its dynamic dependency list that programs get resolved with at runtime."
- fi
- fi
- ;;
- *)
- func_append newdeplibs " $i"
- ;;
- esac
- done
- else
- # Error occurred in the first compile. Let's try to salvage
- # the situation: Compile a separate program for each library.
- for i in $deplibs; do
- case $i in
- -l*)
- func_stripname -l '' "$i"
- name=$func_stripname_result
- $opt_dry_run || $RM conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
- ldd_output=`ldd conftest`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
- func_append newdeplibs " $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- func_append newdeplibs " $i"
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning: dynamic linker does not accept needed library $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because a test_compile did reveal that the linker did not use this one"
- echo "*** as a dynamic dependency that programs can get resolved with at runtime."
- fi
- fi
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
- echo "*** make it link in! You will probably need to install it or some"
- echo "*** library that it depends on before this library will be fully"
- echo "*** functional. Installing it before continuing would be even better."
- fi
- ;;
- *)
- func_append newdeplibs " $i"
- ;;
- esac
- done
- fi
- ;;
- file_magic*)
- set dummy $deplibs_check_method; shift
- file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- for a_deplib in $deplibs; do
- case $a_deplib in
- -l*)
- func_stripname -l '' "$a_deplib"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- if test -n "$file_magic_glob"; then
- libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
- else
- libnameglob=$libname
- fi
- test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- if test "$want_nocaseglob" = yes; then
- shopt -s nocaseglob
- potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
- $nocaseglob
- else
- potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
- fi
- for potent_lib in $potential_libs; do
- # Follow soft links.
- if ls -lLd "$potent_lib" 2>/dev/null |
- $GREP " -> " >/dev/null; then
- continue
- fi
- # The statement above tries to avoid entering an
- # endless loop below, in case of cyclic links.
- # We might still enter an endless loop, since a link
- # loop can be closed while we follow links,
- # but so what?
- potlib="$potent_lib"
- while test -h "$potlib" 2>/dev/null; do
- potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
- case $potliblink in
- [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
- *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
- esac
- done
- if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
- $SED -e 10q |
- $EGREP "$file_magic_regex" > /dev/null; then
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- echo
- $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
- else
- $ECHO "*** with $libname and none of the candidates passed a file format test"
- $ECHO "*** using a file magic. Last file checked: $potlib"
- fi
- fi
- ;;
- *)
- # Add a -L argument.
- func_append newdeplibs " $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
- ;;
- match_pattern*)
- set dummy $deplibs_check_method; shift
- match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- for a_deplib in $deplibs; do
- case $a_deplib in
- -l*)
- func_stripname -l '' "$a_deplib"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
- for potent_lib in $potential_libs; do
- potlib="$potent_lib" # see symlink-check above in file_magic test
- if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
- $EGREP "$match_pattern_regex" > /dev/null; then
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- echo
- $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
- else
- $ECHO "*** with $libname and none of the candidates passed a file format test"
- $ECHO "*** using a regex pattern. Last file checked: $potlib"
- fi
- fi
- ;;
- *)
- # Add a -L argument.
- func_append newdeplibs " $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
- ;;
- none | unknown | *)
- newdeplibs=""
- tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- for i in $predeps $postdeps ; do
- # can't use Xsed below, because $i might contain '/'
- tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
- done
- fi
- case $tmp_deplibs in
- *[!\ \ ]*)
- echo
- if test "X$deplibs_check_method" = "Xnone"; then
- echo "*** Warning: inter-library dependencies are not supported in this platform."
- else
- echo "*** Warning: inter-library dependencies are not known to be supported."
- fi
- echo "*** All declared inter-library dependencies are being dropped."
- droppeddeps=yes
- ;;
- esac
- ;;
- esac
- versuffix=$versuffix_save
- major=$major_save
- release=$release_save
- libname=$libname_save
- name=$name_save
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library with the System framework
- newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- if test "$droppeddeps" = yes; then
- if test "$module" = yes; then
- echo
- echo "*** Warning: libtool could not satisfy all declared inter-library"
- $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
- echo "*** a static module, that should work as long as the dlopening"
- echo "*** application is linked with the -dlopen flag."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- else
- echo "*** The inter-library dependencies that have been dropped here will be"
- echo "*** automatically added whenever a program is linked with this library"
- echo "*** or is declared to -dlopen it."
-
- if test "$allow_undefined" = no; then
- echo
- echo "*** Since this library must not contain undefined symbols,"
- echo "*** because either the platform does not support them or"
- echo "*** it was explicitly requested with -no-undefined,"
- echo "*** libtool will only create a static version of it."
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- fi
- fi
- # Done checking deplibs!
- deplibs=$newdeplibs
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- case $host in
- *-*-darwin*)
- newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
- # move library search paths that coincide with paths to not yet
- # installed libraries to the beginning of the library search list
- new_libs=
- for path in $notinst_path; do
- case " $new_libs " in
- *" -L$path/$objdir "*) ;;
- *)
- case " $deplibs " in
- *" -L$path/$objdir "*)
- func_append new_libs " -L$path/$objdir" ;;
- esac
- ;;
- esac
- done
- for deplib in $deplibs; do
- case $deplib in
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) func_append new_libs " $deplib" ;;
- esac
- ;;
- *) func_append new_libs " $deplib" ;;
- esac
- done
- deplibs="$new_libs"
-
- # All the library-specific variables (install_libdir is set above).
- library_names=
- old_library=
- dlname=
-
- # Test again, we may have decided not to build it any more
- if test "$build_libtool_libs" = yes; then
- # Remove ${wl} instances when linking with ld.
- # FIXME: should test the right _cmds variable.
- case $archive_cmds in
- *\$LD\ *) wl= ;;
- esac
- if test "$hardcode_into_libs" = yes; then
- # Hardcode the library paths
- hardcode_libdirs=
- dep_rpath=
- rpath="$finalize_rpath"
- test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
- for libdir in $rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- func_replace_sysroot "$libdir"
- libdir=$func_replace_sysroot_result
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append dep_rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
- fi
- if test -n "$runpath_var" && test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- func_append rpath "$dir:"
- done
- eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
- fi
- test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
- fi
-
- shlibpath="$finalize_shlibpath"
- test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
- if test -n "$shlibpath"; then
- eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
- fi
-
- # Get the real and link names of the library.
- eval shared_ext=\"$shrext_cmds\"
- eval library_names=\"$library_names_spec\"
- set dummy $library_names
- shift
- realname="$1"
- shift
-
- if test -n "$soname_spec"; then
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
- if test -z "$dlname"; then
- dlname=$soname
- fi
-
- lib="$output_objdir/$realname"
- linknames=
- for link
- do
- func_append linknames " $link"
- done
-
- # Use standard objects if they are pic
- test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- test "X$libobjs" = "X " && libobjs=
-
- delfiles=
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
- export_symbols="$output_objdir/$libname.uexp"
- func_append delfiles " $export_symbols"
- fi
-
- orig_export_symbols=
- case $host_os in
- cygwin* | mingw* | cegcc*)
- if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
- # exporting using user supplied symfile
- if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
- # and it's NOT already a .def file. Must figure out
- # which of the given symbols are data symbols and tag
- # them as such. So, trigger use of export_symbols_cmds.
- # export_symbols gets reassigned inside the "prepare
- # the list of exported symbols" if statement, so the
- # include_expsyms logic still works.
- orig_export_symbols="$export_symbols"
- export_symbols=
- always_export_symbols=yes
- fi
- fi
- ;;
- esac
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
- func_verbose "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $opt_dry_run || $RM $export_symbols
- cmds=$export_symbols_cmds
- save_ifs="$IFS"; IFS='~'
- for cmd1 in $cmds; do
- IFS="$save_ifs"
- # Take the normal branch if the nm_file_list_spec branch
- # doesn't work or if tool conversion is not needed.
- case $nm_file_list_spec~$to_tool_file_cmd in
- *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
- try_normal_branch=yes
- eval cmd=\"$cmd1\"
- func_len " $cmd"
- len=$func_len_result
- ;;
- *)
- try_normal_branch=no
- ;;
- esac
- if test "$try_normal_branch" = yes \
- && { test "$len" -lt "$max_cmd_len" \
- || test "$max_cmd_len" -le -1; }
- then
- func_show_eval "$cmd" 'exit $?'
- skipped_export=false
- elif test -n "$nm_file_list_spec"; then
- func_basename "$output"
- output_la=$func_basename_result
- save_libobjs=$libobjs
- save_output=$output
- output=${output_objdir}/${output_la}.nm
- func_to_tool_file "$output"
- libobjs=$nm_file_list_spec$func_to_tool_file_result
- func_append delfiles " $output"
- func_verbose "creating $NM input file list: $output"
- for obj in $save_libobjs; do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result"
- done > "$output"
- eval cmd=\"$cmd1\"
- func_show_eval "$cmd" 'exit $?'
- output=$save_output
- libobjs=$save_libobjs
- skipped_export=false
- else
- # The command line is too long to execute in one step.
- func_verbose "using reloadable object file for export list..."
- skipped_export=:
- # Break out early, otherwise skipped_export may be
- # set to false by a later but shorter cmd.
- break
- fi
- done
- IFS="$save_ifs"
- if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
- func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
- fi
- fi
- fi
-
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols="$export_symbols"
- test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
- $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
- fi
-
- if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
- # The given exports_symbols file has to be filtered, so filter it.
- func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
- # FIXME: $output_objdir/$libname.filter potentially contains lots of
- # 's' commands which not all seds can handle. GNU sed should be fine
- # though. Also, the filter scales superlinearly with the number of
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
- func_append delfiles " $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
-
- tmp_deplibs=
- for test_deplib in $deplibs; do
- case " $convenience " in
- *" $test_deplib "*) ;;
- *)
- func_append tmp_deplibs " $test_deplib"
- ;;
- esac
- done
- deplibs="$tmp_deplibs"
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec" &&
- test "$compiler_needs_object" = yes &&
- test -z "$libobjs"; then
- # extract the archives, so we have objects to list.
- # TODO: could optimize this to just extract one archive.
- whole_archive_flag_spec=
- fi
- if test -n "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- test "X$libobjs" = "X " && libobjs=
- else
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $convenience
- func_append libobjs " $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
- fi
-
- if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
- eval flag=\"$thread_safe_flag_spec\"
- func_append linker_flags " $flag"
- fi
-
- # Make a backup of the uninstalled library when relinking
- if test "$opt_mode" = relink; then
- $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
- fi
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- eval test_cmds=\"$module_expsym_cmds\"
- cmds=$module_expsym_cmds
- else
- eval test_cmds=\"$module_cmds\"
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- eval test_cmds=\"$archive_expsym_cmds\"
- cmds=$archive_expsym_cmds
- else
- eval test_cmds=\"$archive_cmds\"
- cmds=$archive_cmds
- fi
- fi
-
- if test "X$skipped_export" != "X:" &&
- func_len " $test_cmds" &&
- len=$func_len_result &&
- test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- :
- else
- # The command line is too long to link in one step, link piecewise
- # or, if using GNU ld and skipped_export is not :, use a linker
- # script.
-
- # Save the value of $output and $libobjs because we want to
- # use them later. If we have whole_archive_flag_spec, we
- # want to use save_libobjs as it was before
- # whole_archive_flag_spec was expanded, because we can't
- # assume the linker understands whole_archive_flag_spec.
- # This may have to be revisited, in case too many
- # convenience libraries get linked in and end up exceeding
- # the spec.
- if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- fi
- save_output=$output
- func_basename "$output"
- output_la=$func_basename_result
-
- # Clear the reloadable object creation command queue and
- # initialize k to one.
- test_cmds=
- concat_cmds=
- objlist=
- last_robj=
- k=1
-
- if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
- output=${output_objdir}/${output_la}.lnkscript
- func_verbose "creating GNU ld script: $output"
- echo 'INPUT (' > $output
- for obj in $save_libobjs
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result" >> $output
- done
- echo ')' >> $output
- func_append delfiles " $output"
- func_to_tool_file "$output"
- output=$func_to_tool_file_result
- elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
- output=${output_objdir}/${output_la}.lnk
- func_verbose "creating linker input file list: $output"
- : > $output
- set x $save_libobjs
- shift
- firstobj=
- if test "$compiler_needs_object" = yes; then
- firstobj="$1 "
- shift
- fi
- for obj
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result" >> $output
- done
- func_append delfiles " $output"
- func_to_tool_file "$output"
- output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
- else
- if test -n "$save_libobjs"; then
- func_verbose "creating reloadable object files..."
- output=$output_objdir/$output_la-${k}.$objext
- eval test_cmds=\"$reload_cmds\"
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
-
- # Loop over the list of objects to be linked.
- for obj in $save_libobjs
- do
- func_len " $obj"
- func_arith $len + $func_len_result
- len=$func_arith_result
- if test "X$objlist" = X ||
- test "$len" -lt "$max_cmd_len"; then
- func_append objlist " $obj"
- else
- # The command $test_cmds is almost too long, add a
- # command to the queue.
- if test "$k" -eq 1 ; then
- # The first file doesn't have a previous command to add.
- reload_objs=$objlist
- eval concat_cmds=\"$reload_cmds\"
- else
- # All subsequent reloadable object files will link in
- # the last one created.
- reload_objs="$objlist $last_robj"
- eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
- fi
- last_robj=$output_objdir/$output_la-${k}.$objext
- func_arith $k + 1
- k=$func_arith_result
- output=$output_objdir/$output_la-${k}.$objext
- objlist=" $obj"
- func_len " $last_robj"
- func_arith $len0 + $func_len_result
- len=$func_arith_result
- fi
- done
- # Handle the remaining objects by creating one last
- # reloadable object file. All subsequent reloadable object
- # files will link in the last one created.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- reload_objs="$objlist $last_robj"
- eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
- if test -n "$last_robj"; then
- eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
- fi
- func_append delfiles " $output"
-
- else
- output=
- fi
-
- if ${skipped_export-false}; then
- func_verbose "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $opt_dry_run || $RM $export_symbols
- libobjs=$output
- # Append the command to create the export file.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
- if test -n "$last_robj"; then
- eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
- fi
- fi
-
- test -n "$save_libobjs" &&
- func_verbose "creating a temporary reloadable object file: $output"
-
- # Loop through the commands generated above and execute them.
- save_ifs="$IFS"; IFS='~'
- for cmd in $concat_cmds; do
- IFS="$save_ifs"
- $opt_silent || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
- $opt_dry_run || eval "$cmd" || {
- lt_exit=$?
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
- fi
-
- exit $lt_exit
- }
- done
- IFS="$save_ifs"
-
- if test -n "$export_symbols_regex" && ${skipped_export-false}; then
- func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
- fi
- fi
-
- if ${skipped_export-false}; then
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols="$export_symbols"
- test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
- $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
- fi
-
- if test -n "$orig_export_symbols"; then
- # The given exports_symbols file has to be filtered, so filter it.
- func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
- # FIXME: $output_objdir/$libname.filter potentially contains lots of
- # 's' commands which not all seds can handle. GNU sed should be fine
- # though. Also, the filter scales superlinearly with the number of
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
- func_append delfiles " $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
- fi
-
- libobjs=$output
- # Restore the value of output.
- output=$save_output
-
- if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- test "X$libobjs" = "X " && libobjs=
- fi
- # Expand the library linking commands again to reset the
- # value of $libobjs for piecewise linking.
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- cmds=$module_expsym_cmds
- else
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- cmds=$archive_expsym_cmds
- else
- cmds=$archive_cmds
- fi
- fi
- fi
-
- if test -n "$delfiles"; then
- # Append the command to remove temporary files to $cmds.
- eval cmds=\"\$cmds~\$RM $delfiles\"
- fi
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $dlprefiles
- func_append libobjs " $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
-
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- eval cmd=\"$cmd\"
- $opt_silent || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
- $opt_dry_run || eval "$cmd" || {
- lt_exit=$?
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
- fi
-
- exit $lt_exit
- }
- done
- IFS="$save_ifs"
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
-
- if test -n "$convenience"; then
- if test -z "$whole_archive_flag_spec"; then
- func_show_eval '${RM}r "$gentop"'
- fi
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- # Create links to the real library.
- for linkname in $linknames; do
- if test "$realname" != "$linkname"; then
- func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
- fi
- done
-
- # If -module or -export-dynamic was specified, set the dlname.
- if test "$module" = yes || test "$export_dynamic" = yes; then
- # On all known operating systems, these are identical.
- dlname="$soname"
- fi
- fi
- ;;
-
- obj)
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- func_warning "\`-dlopen' is ignored for objects"
- fi
-
- case " $deplibs" in
- *\ -l* | *\ -L*)
- func_warning "\`-l' and \`-L' are ignored for objects" ;;
- esac
-
- test -n "$rpath" && \
- func_warning "\`-rpath' is ignored for objects"
-
- test -n "$xrpath" && \
- func_warning "\`-R' is ignored for objects"
-
- test -n "$vinfo" && \
- func_warning "\`-version-info' is ignored for objects"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for objects"
-
- case $output in
- *.lo)
- test -n "$objs$old_deplibs" && \
- func_fatal_error "cannot build library object \`$output' from non-libtool objects"
-
- libobj=$output
- func_lo2o "$libobj"
- obj=$func_lo2o_result
- ;;
- *)
- libobj=
- obj="$output"
- ;;
- esac
-
- # Delete the old objects.
- $opt_dry_run || $RM $obj $libobj
-
- # Objects from convenience libraries. This assumes
- # single-version convenience libraries. Whenever we create
- # different ones for PIC/non-PIC, this we'll have to duplicate
- # the extraction.
- reload_conv_objs=
- gentop=
- # reload_cmds runs $LD directly, so let us get rid of
- # -Wl from whole_archive_flag_spec and hope we can get by with
- # turning comma into space..
- wl=
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
- eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
- reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
- else
- gentop="$output_objdir/${obj}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $convenience
- reload_conv_objs="$reload_objs $func_extract_archives_result"
- fi
- fi
-
- # If we're not building shared, we need to use non_pic_objs
- test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
-
- # Create the old-style object.
- reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
- output="$obj"
- func_execute_cmds "$reload_cmds" 'exit $?'
-
- # Exit if we aren't doing a library object file.
- if test -z "$libobj"; then
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- if test "$build_libtool_libs" != yes; then
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- # Create an invalid libtool object if no PIC, so that we don't
- # accidentally link it into a program.
- # $show "echo timestamp > $libobj"
- # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
- exit $EXIT_SUCCESS
- fi
-
- if test -n "$pic_flag" || test "$pic_mode" != default; then
- # Only do commands if we really have different PIC objects.
- reload_objs="$libobjs $reload_conv_objs"
- output="$libobj"
- func_execute_cmds "$reload_cmds" 'exit $?'
- fi
-
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- exit $EXIT_SUCCESS
- ;;
-
- prog)
- case $host in
- *cygwin*) func_stripname '' '.exe' "$output"
- output=$func_stripname_result.exe;;
- esac
- test -n "$vinfo" && \
- func_warning "\`-version-info' is ignored for programs"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for programs"
-
- test "$preload" = yes \
- && test "$dlopen_support" = unknown \
- && test "$dlopen_self" = unknown \
- && test "$dlopen_self_static" = unknown && \
- func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library is the System framework
- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- case $host in
- *-*-darwin*)
- # Don't allow lazy linking, it breaks C++ global constructors
- # But is supposedly fixed on 10.4 or later (yay!).
- if test "$tagname" = CXX ; then
- case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
- 10.[0123])
- func_append compile_command " ${wl}-bind_at_load"
- func_append finalize_command " ${wl}-bind_at_load"
- ;;
- esac
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
-
- # move library search paths that coincide with paths to not yet
- # installed libraries to the beginning of the library search list
- new_libs=
- for path in $notinst_path; do
- case " $new_libs " in
- *" -L$path/$objdir "*) ;;
- *)
- case " $compile_deplibs " in
- *" -L$path/$objdir "*)
- func_append new_libs " -L$path/$objdir" ;;
- esac
- ;;
- esac
- done
- for deplib in $compile_deplibs; do
- case $deplib in
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) func_append new_libs " $deplib" ;;
- esac
- ;;
- *) func_append new_libs " $deplib" ;;
- esac
- done
- compile_deplibs="$new_libs"
-
-
- func_append compile_command " $compile_deplibs"
- func_append finalize_command " $finalize_deplibs"
-
- if test -n "$rpath$xrpath"; then
- # If the user specified any rpath flags, then add them.
- for libdir in $rpath $xrpath; do
- # This is the magic to use -rpath.
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- done
- fi
-
- # Now hardcode the library paths
- rpath=
- hardcode_libdirs=
- for libdir in $compile_rpath $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$libdir:"*) ;;
- ::) dllsearchpath=$libdir;;
- *) func_append dllsearchpath ":$libdir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
- *) func_append dllsearchpath ":$testbindir";;
- esac
- ;;
- esac
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- compile_rpath="$rpath"
-
- rpath=
- hardcode_libdirs=
- for libdir in $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$finalize_perm_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_perm_rpath " $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- finalize_rpath="$rpath"
-
- if test -n "$libobjs" && test "$build_old_libs" = yes; then
- # Transform all the library objects into standard objects.
- compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
- finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
- fi
-
- func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
-
- # template prelinking step
- if test -n "$prelink_cmds"; then
- func_execute_cmds "$prelink_cmds" 'exit $?'
- fi
-
- wrappers_required=yes
- case $host in
- *cegcc* | *mingw32ce*)
- # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
- wrappers_required=no
- ;;
- *cygwin* | *mingw* )
- if test "$build_libtool_libs" != yes; then
- wrappers_required=no
- fi
- ;;
- *)
- if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
- wrappers_required=no
- fi
- ;;
- esac
- if test "$wrappers_required" = no; then
- # Replace the output file specification.
- compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
- link_command="$compile_command$compile_rpath"
-
- # We have no uninstalled library dependencies, so finalize right now.
- exit_status=0
- func_show_eval "$link_command" 'exit_status=$?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- # Delete the generated files.
- if test -f "$output_objdir/${outputname}S.${objext}"; then
- func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
- fi
-
- exit $exit_status
- fi
-
- if test -n "$compile_shlibpath$finalize_shlibpath"; then
- compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
- fi
- if test -n "$finalize_shlibpath"; then
- finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
- fi
-
- compile_var=
- finalize_var=
- if test -n "$runpath_var"; then
- if test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- func_append rpath "$dir:"
- done
- compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- if test -n "$finalize_perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $finalize_perm_rpath; do
- func_append rpath "$dir:"
- done
- finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- fi
-
- if test "$no_install" = yes; then
- # We don't need to create a wrapper script.
- link_command="$compile_var$compile_command$compile_rpath"
- # Replace the output file specification.
- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
- # Delete the old output file.
- $opt_dry_run || $RM $output
- # Link the executable and exit
- func_show_eval "$link_command" 'exit $?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- if test "$hardcode_action" = relink; then
- # Fast installation is not supported
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
-
- func_warning "this platform does not like uninstalled shared libraries"
- func_warning "\`$output' will be relinked during installation"
- else
- if test "$fast_install" != no; then
- link_command="$finalize_var$compile_command$finalize_rpath"
- if test "$fast_install" = yes; then
- relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
- else
- # fast_install is set to needless
- relink_command=
- fi
- else
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
- fi
- fi
-
- # Replace the output file specification.
- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
- # Delete the old output files.
- $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
- func_show_eval "$link_command" 'exit $?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output_objdir/$outputname"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- # Now create the wrapper script.
- func_verbose "creating $output"
-
- # Quote the relink command for shipping.
- if test -n "$relink_command"; then
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
- fi
- done
- relink_command="(cd `pwd`; $relink_command)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
- fi
-
- # Only actually do things if not in dry run mode.
- $opt_dry_run || {
- # win32 will think the script is a binary if it has
- # a .exe suffix, so we strip it off here.
- case $output in
- *.exe) func_stripname '' '.exe' "$output"
- output=$func_stripname_result ;;
- esac
- # test for cygwin because mv fails w/o .exe extensions
- case $host in
- *cygwin*)
- exeext=.exe
- func_stripname '' '.exe' "$outputname"
- outputname=$func_stripname_result ;;
- *) exeext= ;;
- esac
- case $host in
- *cygwin* | *mingw* )
- func_dirname_and_basename "$output" "" "."
- output_name=$func_basename_result
- output_path=$func_dirname_result
- cwrappersource="$output_path/$objdir/lt-$output_name.c"
- cwrapper="$output_path/$output_name.exe"
- $RM $cwrappersource $cwrapper
- trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-
- func_emit_cwrapperexe_src > $cwrappersource
-
- # The wrapper executable is built using the $host compiler,
- # because it contains $host paths and files. If cross-
- # compiling, it, like the target executable, must be
- # executed on the $host or under an emulation environment.
- $opt_dry_run || {
- $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
- $STRIP $cwrapper
- }
-
- # Now, create the wrapper script for func_source use:
- func_ltwrapper_scriptname $cwrapper
- $RM $func_ltwrapper_scriptname_result
- trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
- $opt_dry_run || {
- # note: this script will not be executed, so do not chmod.
- if test "x$build" = "x$host" ; then
- $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
- else
- func_emit_wrapper no > $func_ltwrapper_scriptname_result
- fi
- }
- ;;
- * )
- $RM $output
- trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
-
- func_emit_wrapper no > $output
- chmod +x $output
- ;;
- esac
- }
- exit $EXIT_SUCCESS
- ;;
- esac
-
- # See if we need to build an old-fashioned archive.
- for oldlib in $oldlibs; do
-
- if test "$build_libtool_libs" = convenience; then
- oldobjs="$libobjs_save $symfileobj"
- addlibs="$convenience"
- build_libtool_libs=no
- else
- if test "$build_libtool_libs" = module; then
- oldobjs="$libobjs_save"
- build_libtool_libs=no
- else
- oldobjs="$old_deplibs $non_pic_objects"
- if test "$preload" = yes && test -f "$symfileobj"; then
- func_append oldobjs " $symfileobj"
- fi
- fi
- addlibs="$old_convenience"
- fi
-
- if test -n "$addlibs"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $addlibs
- func_append oldobjs " $func_extract_archives_result"
- fi
-
- # Do each command in the archive commands.
- if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
- cmds=$old_archive_from_new_cmds
- else
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $dlprefiles
- func_append oldobjs " $func_extract_archives_result"
- fi
-
- # POSIX demands no paths to be encoded in archives. We have
- # to avoid creating archives with duplicate basenames if we
- # might have to extract them afterwards, e.g., when creating a
- # static archive out of a convenience library, or when linking
- # the entirety of a libtool archive into another (currently
- # not supported by libtool).
- if (for obj in $oldobjs
- do
- func_basename "$obj"
- $ECHO "$func_basename_result"
- done | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- echo "copying selected object files to avoid basename conflicts..."
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
- func_mkdir_p "$gentop"
- save_oldobjs=$oldobjs
- oldobjs=
- counter=1
- for obj in $save_oldobjs
- do
- func_basename "$obj"
- objbase="$func_basename_result"
- case " $oldobjs " in
- " ") oldobjs=$obj ;;
- *[\ /]"$objbase "*)
- while :; do
- # Make sure we don't pick an alternate name that also
- # overlaps.
- newobj=lt$counter-$objbase
- func_arith $counter + 1
- counter=$func_arith_result
- case " $oldobjs " in
- *[\ /]"$newobj "*) ;;
- *) if test ! -f "$gentop/$newobj"; then break; fi ;;
- esac
- done
- func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
- func_append oldobjs " $gentop/$newobj"
- ;;
- *) func_append oldobjs " $obj" ;;
- esac
- done
- fi
- func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
- tool_oldlib=$func_to_tool_file_result
- eval cmds=\"$old_archive_cmds\"
-
- func_len " $cmds"
- len=$func_len_result
- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- cmds=$old_archive_cmds
- elif test -n "$archiver_list_spec"; then
- func_verbose "using command file archive linking..."
- for obj in $oldobjs
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result"
- done > $output_objdir/$libname.libcmd
- func_to_tool_file "$output_objdir/$libname.libcmd"
- oldobjs=" $archiver_list_spec$func_to_tool_file_result"
- cmds=$old_archive_cmds
- else
- # the command line is too long to link in one step, link in parts
- func_verbose "using piecewise archive linking..."
- save_RANLIB=$RANLIB
- RANLIB=:
- objlist=
- concat_cmds=
- save_oldobjs=$oldobjs
- oldobjs=
- # Is there a better way of finding the last object in the list?
- for obj in $save_oldobjs
- do
- last_oldobj=$obj
- done
- eval test_cmds=\"$old_archive_cmds\"
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
- for obj in $save_oldobjs
- do
- func_len " $obj"
- func_arith $len + $func_len_result
- len=$func_arith_result
- func_append objlist " $obj"
- if test "$len" -lt "$max_cmd_len"; then
- :
- else
- # the above command should be used before it gets too long
- oldobjs=$objlist
- if test "$obj" = "$last_oldobj" ; then
- RANLIB=$save_RANLIB
- fi
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
- objlist=
- len=$len0
- fi
- done
- RANLIB=$save_RANLIB
- oldobjs=$objlist
- if test "X$oldobjs" = "X" ; then
- eval cmds=\"\$concat_cmds\"
- else
- eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
- fi
- fi
- fi
- func_execute_cmds "$cmds" 'exit $?'
- done
-
- test -n "$generated" && \
- func_show_eval "${RM}r$generated"
-
- # Now create the libtool archive.
- case $output in
- *.la)
- old_library=
- test "$build_old_libs" = yes && old_library="$libname.$libext"
- func_verbose "creating $output"
-
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
- fi
- done
- # Quote the link command for shipping.
- relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
- if test "$hardcode_automatic" = yes ; then
- relink_command=
- fi
-
- # Only create the output if not a dry run.
- $opt_dry_run || {
- for installed in no yes; do
- if test "$installed" = yes; then
- if test -z "$install_libdir"; then
- break
- fi
- output="$output_objdir/$outputname"i
- # Replace all uninstalled libtool libraries with the installed ones
- newdependency_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- *.la)
- func_basename "$deplib"
- name="$func_basename_result"
- func_resolve_sysroot "$deplib"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
- test -z "$libdir" && \
- func_fatal_error "\`$deplib' is not a valid libtool archive"
- func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
- ;;
- -L*)
- func_stripname -L '' "$deplib"
- func_replace_sysroot "$func_stripname_result"
- func_append newdependency_libs " -L$func_replace_sysroot_result"
- ;;
- -R*)
- func_stripname -R '' "$deplib"
- func_replace_sysroot "$func_stripname_result"
- func_append newdependency_libs " -R$func_replace_sysroot_result"
- ;;
- *) func_append newdependency_libs " $deplib" ;;
- esac
- done
- dependency_libs="$newdependency_libs"
- newdlfiles=
-
- for lib in $dlfiles; do
- case $lib in
- *.la)
- func_basename "$lib"
- name="$func_basename_result"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- test -z "$libdir" && \
- func_fatal_error "\`$lib' is not a valid libtool archive"
- func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
- ;;
- *) func_append newdlfiles " $lib" ;;
- esac
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
- for lib in $dlprefiles; do
- case $lib in
- *.la)
- # Only pass preopened files to the pseudo-archive (for
- # eventual linking with the app. that links it) if we
- # didn't already link the preopened objects directly into
- # the library:
- func_basename "$lib"
- name="$func_basename_result"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- test -z "$libdir" && \
- func_fatal_error "\`$lib' is not a valid libtool archive"
- func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
- ;;
- esac
- done
- dlprefiles="$newdlprefiles"
- else
- newdlfiles=
- for lib in $dlfiles; do
- case $lib in
- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
- *) abs=`pwd`"/$lib" ;;
- esac
- func_append newdlfiles " $abs"
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
- for lib in $dlprefiles; do
- case $lib in
- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
- *) abs=`pwd`"/$lib" ;;
- esac
- func_append newdlprefiles " $abs"
- done
- dlprefiles="$newdlprefiles"
- fi
- $RM $output
- # place dlname in correct position for cygwin
- # In fact, it would be nice if we could use this code for all target
- # systems that can't hard-code library paths into their executables
- # and that have no shared library path variable independent of PATH,
- # but it turns out we can't easily determine that from inspecting
- # libtool variables, so we have to hard-code the OSs to which it
- # applies here; at the moment, that means platforms that use the PE
- # object format with DLL files. See the long comment at the top of
- # tests/bindir.at for full details.
- tdlname=$dlname
- case $host,$output,$installed,$module,$dlname in
- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
- # If a -bindir argument was supplied, place the dll there.
- if test "x$bindir" != x ;
- then
- func_relative_path "$install_libdir" "$bindir"
- tdlname=$func_relative_path_result$dlname
- else
- # Otherwise fall back on heuristic.
- tdlname=../bin/$dlname
- fi
- ;;
- esac
- $ECHO > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Linker flags that can not go in dependency_libs.
-inherited_linker_flags='$new_inherited_linker_flags'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Names of additional weak libraries provided by this library
-weak_library_names='$weak_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
- if test "$installed" = no && test "$need_relink" = yes; then
- $ECHO >> $output "\
-relink_command=\"$relink_command\""
- fi
- done
- }
-
- # Do a symbolic link so that the libtool archive can be found in
- # LD_LIBRARY_PATH before the program is installed.
- func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
- ;;
- esac
- exit $EXIT_SUCCESS
-}
-
-{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
- func_mode_link ${1+"$@"}
-
-
-# func_mode_uninstall arg...
-func_mode_uninstall ()
-{
- $opt_debug
- RM="$nonopt"
- files=
- rmforce=
- exit_status=0
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- for arg
- do
- case $arg in
- -f) func_append RM " $arg"; rmforce=yes ;;
- -*) func_append RM " $arg" ;;
- *) func_append files " $arg" ;;
- esac
- done
-
- test -z "$RM" && \
- func_fatal_help "you must specify an RM program"
-
- rmdirs=
-
- for file in $files; do
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
- if test "X$dir" = X.; then
- odir="$objdir"
- else
- odir="$dir/$objdir"
- fi
- func_basename "$file"
- name="$func_basename_result"
- test "$opt_mode" = uninstall && odir="$dir"
-
- # Remember odir for removal later, being careful to avoid duplicates
- if test "$opt_mode" = clean; then
- case " $rmdirs " in
- *" $odir "*) ;;
- *) func_append rmdirs " $odir" ;;
- esac
- fi
-
- # Don't error if the file doesn't exist and rm -f was used.
- if { test -L "$file"; } >/dev/null 2>&1 ||
- { test -h "$file"; } >/dev/null 2>&1 ||
- test -f "$file"; then
- :
- elif test -d "$file"; then
- exit_status=1
- continue
- elif test "$rmforce" = yes; then
- continue
- fi
-
- rmfiles="$file"
-
- case $name in
- *.la)
- # Possibly a libtool archive, so verify it.
- if func_lalib_p "$file"; then
- func_source $dir/$name
-
- # Delete the libtool libraries and symlinks.
- for n in $library_names; do
- func_append rmfiles " $odir/$n"
- done
- test -n "$old_library" && func_append rmfiles " $odir/$old_library"
-
- case "$opt_mode" in
- clean)
- case " $library_names " in
- *" $dlname "*) ;;
- *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
- esac
- test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
- ;;
- uninstall)
- if test -n "$library_names"; then
- # Do each command in the postuninstall commands.
- func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
- fi
-
- if test -n "$old_library"; then
- # Do each command in the old_postuninstall commands.
- func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
- fi
- # FIXME: should reinstall the best remaining shared library.
- ;;
- esac
- fi
- ;;
-
- *.lo)
- # Possibly a libtool object, so verify it.
- if func_lalib_p "$file"; then
-
- # Read the .lo file
- func_source $dir/$name
-
- # Add PIC object to the list of files to remove.
- if test -n "$pic_object" &&
- test "$pic_object" != none; then
- func_append rmfiles " $dir/$pic_object"
- fi
-
- # Add non-PIC object to the list of files to remove.
- if test -n "$non_pic_object" &&
- test "$non_pic_object" != none; then
- func_append rmfiles " $dir/$non_pic_object"
- fi
- fi
- ;;
-
- *)
- if test "$opt_mode" = clean ; then
- noexename=$name
- case $file in
- *.exe)
- func_stripname '' '.exe' "$file"
- file=$func_stripname_result
- func_stripname '' '.exe' "$name"
- noexename=$func_stripname_result
- # $file with .exe has already been added to rmfiles,
- # add $file without .exe
- func_append rmfiles " $file"
- ;;
- esac
- # Do a test to see if this is a libtool program.
- if func_ltwrapper_p "$file"; then
- if func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- relink_command=
- func_source $func_ltwrapper_scriptname_result
- func_append rmfiles " $func_ltwrapper_scriptname_result"
- else
- relink_command=
- func_source $dir/$noexename
- fi
-
- # note $name still contains .exe if it was in $file originally
- # as does the version of $file that was added into $rmfiles
- func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
- if test "$fast_install" = yes && test -n "$relink_command"; then
- func_append rmfiles " $odir/lt-$name"
- fi
- if test "X$noexename" != "X$name" ; then
- func_append rmfiles " $odir/lt-${noexename}.c"
- fi
- fi
- fi
- ;;
- esac
- func_show_eval "$RM $rmfiles" 'exit_status=1'
- done
-
- # Try to remove the ${objdir}s in the directories where we deleted files
- for dir in $rmdirs; do
- if test -d "$dir"; then
- func_show_eval "rmdir $dir >/dev/null 2>&1"
- fi
- done
-
- exit $exit_status
-}
-
-{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
- func_mode_uninstall ${1+"$@"}
-
-test -z "$opt_mode" && {
- help="$generic_help"
- func_fatal_help "you must specify a MODE"
-}
-
-test -z "$exec_cmd" && \
- func_fatal_help "invalid operation mode \`$opt_mode'"
-
-if test -n "$exec_cmd"; then
- eval exec "$exec_cmd"
- exit $EXIT_FAILURE
-fi
-
-exit $exit_status
-
-
-# The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries. Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them. This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration. But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
-# vi:sw=2
diff --git a/src/c/liberasurecode/m4/ax_check_compile_flag.m4 b/src/c/liberasurecode/m4/ax_check_compile_flag.m4
deleted file mode 100644
index c3a8d69..0000000
--- a/src/c/liberasurecode/m4/ax_check_compile_flag.m4
+++ /dev/null
@@ -1,72 +0,0 @@
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
-#
-# DESCRIPTION
-#
-# Check whether the given FLAG works with the current language's compiler
-# or gives an error. (Warnings, however, are ignored)
-#
-# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
-# success/failure.
-#
-# If EXTRA-FLAGS is defined, it is added to the current language's default
-# flags (e.g. CFLAGS) when the check is done. The check is thus made with
-# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
-# force the compiler to issue an error when a bad flag is given.
-#
-# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
-# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
-# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
-#
-# This program 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, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 2
-
-AC_DEFUN([AX_CHECK_COMPILE_FLAG],
-[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
-AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
-AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
- ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
- _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
- [AS_VAR_SET(CACHEVAR,[yes])],
- [AS_VAR_SET(CACHEVAR,[no])])
- _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
-AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
- [m4_default([$2], :)],
- [m4_default([$3], :)])
-AS_VAR_POPDEF([CACHEVAR])dnl
-])dnl AX_CHECK_COMPILE_FLAGS
diff --git a/src/c/liberasurecode/m4/ax_ext.m4 b/src/c/liberasurecode/m4/ax_ext.m4
deleted file mode 100644
index 1ee3b94..0000000
--- a/src/c/liberasurecode/m4/ax_ext.m4
+++ /dev/null
@@ -1,245 +0,0 @@
-#
-# Updated by KMG to support -DINTEL_SSE for GF-Complete
-#
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_ext.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_EXT
-#
-# DESCRIPTION
-#
-# Find supported SIMD extensions by requesting cpuid. When an SIMD
-# extension is found, the -m"simdextensionname" is added to SIMD_FLAGS if
-# compiler supports it. For example, if "sse2" is available, then "-msse2"
-# is added to SIMD_FLAGS.
-#
-# This macro calls:
-#
-# AC_SUBST(SIMD_FLAGS)
-#
-# And defines:
-#
-# HAVE_MMX / HAVE_SSE / HAVE_SSE2 / HAVE_SSE3 / HAVE_SSSE3 / HAVE_SSE4.1 / HAVE_SSE4.2 / HAVE_AVX
-#
-# LICENSE
-#
-# Copyright (c) 2007 Christophe Tournayre <turn3r@users.sourceforge.net>
-# Copyright (c) 2013 Michael Petch <mpetch@capp-sysware.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 12
-
-AC_DEFUN([AX_EXT],
-[
- AC_REQUIRE([AC_CANONICAL_HOST])
-
- case $host_cpu in
- powerpc*)
- AC_CACHE_CHECK([whether altivec is supported], [ax_cv_have_altivec_ext],
- [
- if test `/usr/sbin/sysctl -a 2>/dev/null| grep -c hw.optional.altivec` != 0; then
- if test `/usr/sbin/sysctl -n hw.optional.altivec` = 1; then
- ax_cv_have_altivec_ext=yes
- fi
- fi
- ])
-
- if test "$ax_cv_have_altivec_ext" = yes; then
- AC_DEFINE(HAVE_ALTIVEC,,[Support Altivec instructions])
- AX_CHECK_COMPILE_FLAG(-faltivec, SIMD_FLAGS="$SIMD_FLAGS -faltivec", [])
- fi
- ;;
-
-
- i[[3456]]86*|x86_64*|amd64*)
-
- AC_REQUIRE([AX_GCC_X86_CPUID])
- AC_REQUIRE([AX_GCC_X86_AVX_XGETBV])
-
- AX_GCC_X86_CPUID(0x00000001)
- ecx=`echo $ax_cv_gcc_x86_cpuid_0x00000001 | cut -d ":" -f 3`
- edx=`echo $ax_cv_gcc_x86_cpuid_0x00000001 | cut -d ":" -f 4`
-
- AC_CACHE_CHECK([whether mmx is supported], [ax_cv_have_mmx_ext],
- [
- ax_cv_have_mmx_ext=no
- if test "$((0x$edx>>23&0x01))" = 1; then
- ax_cv_have_mmx_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse is supported], [ax_cv_have_sse_ext],
- [
- ax_cv_have_sse_ext=no
- if test "$((0x$edx>>25&0x01))" = 1; then
- ax_cv_have_sse_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse2 is supported], [ax_cv_have_sse2_ext],
- [
- ax_cv_have_sse2_ext=no
- if test "$((0x$edx>>26&0x01))" = 1; then
- ax_cv_have_sse2_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse3 is supported], [ax_cv_have_sse3_ext],
- [
- ax_cv_have_sse3_ext=no
- if test "$((0x$ecx&0x01))" = 1; then
- ax_cv_have_sse3_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether ssse3 is supported], [ax_cv_have_ssse3_ext],
- [
- ax_cv_have_ssse3_ext=no
- if test "$((0x$ecx>>9&0x01))" = 1; then
- ax_cv_have_ssse3_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse4.1 is supported], [ax_cv_have_sse41_ext],
- [
- ax_cv_have_sse41_ext=no
- if test "$((0x$ecx>>19&0x01))" = 1; then
- ax_cv_have_sse41_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether sse4.2 is supported], [ax_cv_have_sse42_ext],
- [
- ax_cv_have_sse42_ext=no
- if test "$((0x$ecx>>20&0x01))" = 1; then
- ax_cv_have_sse42_ext=yes
- fi
- ])
-
- AC_CACHE_CHECK([whether avx is supported by processor], [ax_cv_have_avx_cpu_ext],
- [
- ax_cv_have_avx_cpu_ext=no
- if test "$((0x$ecx>>28&0x01))" = 1; then
- ax_cv_have_avx_cpu_ext=yes
- fi
- ])
-
- if test x"$ax_cv_have_avx_cpu_ext" = x"yes"; then
- AX_GCC_X86_AVX_XGETBV(0x00000000)
-
- xgetbv_eax="0"
- if test x"$ax_cv_gcc_x86_avx_xgetbv_0x00000000" != x"unknown"; then
- xgetbv_eax=`echo $ax_cv_gcc_x86_avx_xgetbv_0x00000000 | cut -d ":" -f 1`
- fi
-
- AC_CACHE_CHECK([whether avx is supported by operating system], [ax_cv_have_avx_ext],
- [
- ax_cv_have_avx_ext=no
-
- if test "$((0x$ecx>>27&0x01))" = 1; then
- if test "$((0x$xgetbv_eax&0x6))" = 6; then
- ax_cv_have_avx_ext=yes
- fi
- fi
- ])
- if test x"$ax_cv_have_avx_ext" = x"no"; then
- AC_MSG_WARN([Your processor supports AVX, but your operating system doesn't])
- fi
- fi
-
- if test "$ax_cv_have_mmx_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-mmmx, ax_cv_support_mmx_ext=yes, [])
- if test x"$ax_cv_support_mmx_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mmmx"
- AC_DEFINE(HAVE_MMX,,[Support mmx instructions])
- else
- AC_MSG_WARN([Your processor supports mmx instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ac_cv_sizeof_long" -eq 8; then
- SIMD_FLAGS="$SIMD_FLAGS -DARCH_64"
- fi
-
- if test "$ax_cv_have_sse_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse, ax_cv_support_sse_ext=yes, [])
- if test x"$ax_cv_support_sse_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse -DINTEL_SSE"
- AC_DEFINE(HAVE_SSE,,[Support SSE (Streaming SIMD Extensions) instructions])
- else
- AC_MSG_WARN([Your processor supports sse instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_sse2_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse2, ax_cv_support_sse2_ext=yes, [])
- if test x"$ax_cv_support_sse2_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse2 -DINTEL_SSE2"
- AC_DEFINE(HAVE_SSE2,,[Support SSE2 (Streaming SIMD Extensions 2) instructions])
- else
- AC_MSG_WARN([Your processor supports sse2 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_sse3_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse3, ax_cv_support_sse3_ext=yes, [])
- if test x"$ax_cv_support_sse3_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse3 -DINTEL_SSE3"
- AC_DEFINE(HAVE_SSE3,,[Support SSE3 (Streaming SIMD Extensions 3) instructions])
- else
- AC_MSG_WARN([Your processor supports sse3 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_ssse3_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-mssse3, ax_cv_support_ssse3_ext=yes, [])
- if test x"$ax_cv_support_ssse3_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mssse3"
- AC_DEFINE(HAVE_SSSE3,,[Support SSSE3 (Supplemental Streaming SIMD Extensions 3) instructions])
- else
- AC_MSG_WARN([Your processor supports ssse3 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_sse41_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse4.1, ax_cv_support_sse41_ext=yes, [])
- if test x"$ax_cv_support_sse41_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse4.1 -DINTEL_SSE4"
- AC_DEFINE(HAVE_SSE4_1,,[Support SSSE4.1 (Streaming SIMD Extensions 4.1) instructions])
- else
- AC_MSG_WARN([Your processor supports sse4.1 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_sse42_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-msse4.2, ax_cv_support_sse42_ext=yes, [])
- if test x"$ax_cv_support_sse42_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -msse4.2 -DINTEL_SSE4"
- AC_DEFINE(HAVE_SSE4_2,,[Support SSSE4.2 (Streaming SIMD Extensions 4.2) instructions])
- else
- AC_MSG_WARN([Your processor supports sse4.2 instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- if test "$ax_cv_have_avx_ext" = yes; then
- AX_CHECK_COMPILE_FLAG(-mavx, ax_cv_support_avx_ext=yes, [])
- if test x"$ax_cv_support_avx_ext" = x"yes"; then
- SIMD_FLAGS="$SIMD_FLAGS -mavx"
- AC_DEFINE(HAVE_AVX,,[Support AVX (Advanced Vector Extensions) instructions])
- else
- AC_MSG_WARN([Your processor supports avx instructions but not your compiler, can you try another compiler?])
- fi
- fi
-
- ;;
- esac
-
- AC_SUBST(SIMD_FLAGS)
-])
diff --git a/src/c/liberasurecode/m4/ax_gcc_x86_avx_xgetbv.m4 b/src/c/liberasurecode/m4/ax_gcc_x86_avx_xgetbv.m4
deleted file mode 100644
index 0624eeb..0000000
--- a/src/c/liberasurecode/m4/ax_gcc_x86_avx_xgetbv.m4
+++ /dev/null
@@ -1,79 +0,0 @@
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_gcc_x86_avx_xgetbv.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_GCC_X86_AVX_XGETBV
-#
-# DESCRIPTION
-#
-# On later x86 processors with AVX SIMD support, with gcc or a compiler
-# that has a compatible syntax for inline assembly instructions, run a
-# small program that executes the xgetbv instruction with input OP. This
-# can be used to detect if the OS supports AVX instruction usage.
-#
-# On output, the values of the eax and edx registers are stored as
-# hexadecimal strings as "eax:edx" in the cache variable
-# ax_cv_gcc_x86_avx_xgetbv.
-#
-# If the xgetbv instruction fails (because you are running a
-# cross-compiler, or because you are not using gcc, or because you are on
-# a processor that doesn't have this instruction),
-# ax_cv_gcc_x86_avx_xgetbv_OP is set to the string "unknown".
-#
-# This macro mainly exists to be used in AX_EXT.
-#
-# LICENSE
-#
-# Copyright (c) 2013 Michael Petch <mpetch@capp-sysware.com>
-#
-# This program 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, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 1
-
-AC_DEFUN([AX_GCC_X86_AVX_XGETBV],
-[AC_REQUIRE([AC_PROG_CC])
-AC_LANG_PUSH([C])
-AC_CACHE_CHECK(for x86-AVX xgetbv $1 output, ax_cv_gcc_x86_avx_xgetbv_$1,
- [AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <stdio.h>], [
- int op = $1, eax, edx;
- FILE *f;
- /* Opcodes for xgetbv */
- __asm__(".byte 0x0f, 0x01, 0xd0"
- : "=a" (eax), "=d" (edx)
- : "c" (op));
- f = fopen("conftest_xgetbv", "w"); if (!f) return 1;
- fprintf(f, "%x:%x\n", eax, edx);
- fclose(f);
- return 0;
-])],
- [ax_cv_gcc_x86_avx_xgetbv_$1=`cat conftest_xgetbv`; rm -f conftest_xgetbv],
- [ax_cv_gcc_x86_avx_xgetbv_$1=unknown; rm -f conftest_xgetbv],
- [ax_cv_gcc_x86_avx_xgetbv_$1=unknown])])
-AC_LANG_POP([C])
-])
diff --git a/src/c/liberasurecode/m4/ax_gcc_x86_cpuid.m4 b/src/c/liberasurecode/m4/ax_gcc_x86_cpuid.m4
deleted file mode 100644
index 7d46fee..0000000
--- a/src/c/liberasurecode/m4/ax_gcc_x86_cpuid.m4
+++ /dev/null
@@ -1,79 +0,0 @@
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_gcc_x86_cpuid.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_GCC_X86_CPUID(OP)
-#
-# DESCRIPTION
-#
-# On Pentium and later x86 processors, with gcc or a compiler that has a
-# compatible syntax for inline assembly instructions, run a small program
-# that executes the cpuid instruction with input OP. This can be used to
-# detect the CPU type.
-#
-# On output, the values of the eax, ebx, ecx, and edx registers are stored
-# as hexadecimal strings as "eax:ebx:ecx:edx" in the cache variable
-# ax_cv_gcc_x86_cpuid_OP.
-#
-# If the cpuid instruction fails (because you are running a
-# cross-compiler, or because you are not using gcc, or because you are on
-# a processor that doesn't have this instruction), ax_cv_gcc_x86_cpuid_OP
-# is set to the string "unknown".
-#
-# This macro mainly exists to be used in AX_GCC_ARCHFLAG.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
-# Copyright (c) 2008 Matteo Frigo
-#
-# This program 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, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 7
-
-AC_DEFUN([AX_GCC_X86_CPUID],
-[AC_REQUIRE([AC_PROG_CC])
-AC_LANG_PUSH([C])
-AC_CACHE_CHECK(for x86 cpuid $1 output, ax_cv_gcc_x86_cpuid_$1,
- [AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <stdio.h>], [
- int op = $1, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-])],
- [ax_cv_gcc_x86_cpuid_$1=`cat conftest_cpuid`; rm -f conftest_cpuid],
- [ax_cv_gcc_x86_cpuid_$1=unknown; rm -f conftest_cpuid],
- [ax_cv_gcc_x86_cpuid_$1=unknown])])
-AC_LANG_POP([C])
-])
diff --git a/src/c/liberasurecode/m4/libtool.m4 b/src/c/liberasurecode/m4/libtool.m4
deleted file mode 100644
index e0ffe79..0000000
--- a/src/c/liberasurecode/m4/libtool.m4
+++ /dev/null
@@ -1,7997 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-m4_define([_LT_COPYING], [dnl
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool 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 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-])
-
-# serial 57 LT_INIT
-
-
-# LT_PREREQ(VERSION)
-# ------------------
-# Complain and exit if this libtool version is less that VERSION.
-m4_defun([LT_PREREQ],
-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
- [m4_default([$3],
- [m4_fatal([Libtool version $1 or higher is required],
- 63)])],
- [$2])])
-
-
-# _LT_CHECK_BUILDDIR
-# ------------------
-# Complain if the absolute build directory name contains unusual characters
-m4_defun([_LT_CHECK_BUILDDIR],
-[case `pwd` in
- *\ * | *\ *)
- AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-esac
-])
-
-
-# LT_INIT([OPTIONS])
-# ------------------
-AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
-AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])# LT_INIT
-
-# Old names:
-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
- case $cc_temp in
- compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
- distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-])
-
-
-# _LT_FILEUTILS_DEFAULTS
-# ----------------------
-# It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
-m4_defun([_LT_FILEUTILS_DEFAULTS],
-[: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-])# _LT_FILEUTILS_DEFAULTS
-
-
-# _LT_SETUP
-# ---------
-m4_defun([_LT_SETUP],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-
-_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
-dnl
-_LT_DECL([], [host_alias], [0], [The host system])dnl
-_LT_DECL([], [host], [0])dnl
-_LT_DECL([], [host_os], [0])dnl
-dnl
-_LT_DECL([], [build_alias], [0], [The build system])dnl
-_LT_DECL([], [build], [0])dnl
-_LT_DECL([], [build_os], [0])dnl
-dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-test -z "$LN_S" && LN_S="ln -s"
-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-dnl
-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
-m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_WITH_SYSROOT])dnl
-
-_LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-])
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-_LT_CHECK_OBJDIR
-
-m4_require([_LT_TAG_COMPILER])dnl
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- _LT_PATH_MAGIC
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-LT_SUPPORTED_TAG([CC])
-_LT_LANG_C_CONFIG
-_LT_LANG_DEFAULT_CONFIG
-_LT_CONFIG_COMMANDS
-])# _LT_SETUP
-
-
-# _LT_PREPARE_SED_QUOTE_VARS
-# --------------------------
-# Define a few sed substitution that help us do robust quoting.
-m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
-[# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-])
-
-# _LT_PROG_LTMAIN
-# ---------------
-# Note that this code is called both from `configure', and `config.status'
-# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
-# so we pass a copy along to make sure it has a sensible value anyway.
-m4_defun([_LT_PROG_LTMAIN],
-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
-])# _LT_PROG_LTMAIN
-
-
-## ------------------------------------- ##
-## Accumulate code for creating libtool. ##
-## ------------------------------------- ##
-
-# So that we can recreate a full libtool script including additional
-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
-# label.
-
-
-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-# ----------------------------------------
-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL_INIT],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-
-
-# _LT_CONFIG_LIBTOOL([COMMANDS])
-# ------------------------------
-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-
-
-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-# -----------------------------------------------------
-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-[_LT_CONFIG_LIBTOOL([$1])
-_LT_CONFIG_LIBTOOL_INIT([$2])
-])
-
-
-# _LT_FORMAT_COMMENT([COMMENT])
-# -----------------------------
-# Add leading comment marks to the start of each line, and a trailing
-# full-stop to the whole comment if one is not present already.
-m4_define([_LT_FORMAT_COMMENT],
-[m4_ifval([$1], [
-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
- [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-)])
-
-
-
-## ------------------------ ##
-## FIXME: Eliminate VARNAME ##
-## ------------------------ ##
-
-
-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-# -------------------------------------------------------------------
-# CONFIGNAME is the name given to the value in the libtool script.
-# VARNAME is the (base) name used in the configure script.
-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-# VARNAME. Any other value will be used directly.
-m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
- [m4_ifval([$1], [$1], [$2])])
- lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
- m4_ifval([$4],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
- lt_dict_add_subkey([lt_decl_dict], [$2],
- [tagged?], [m4_ifval([$5], [yes], [no])])])
-])
-
-
-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-# --------------------------------------------------------
-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-
-
-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_tag_varnames],
-[_lt_decl_filter([tagged?], [yes], $@)])
-
-
-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-# ---------------------------------------------------------
-m4_define([_lt_decl_filter],
-[m4_case([$#],
- [0], [m4_fatal([$0: too few arguments: $#])],
- [1], [m4_fatal([$0: too few arguments: $#: $1])],
- [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
- [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
- [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-])
-
-
-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-# --------------------------------------------------
-m4_define([lt_decl_quote_varnames],
-[_lt_decl_filter([value], [1], $@)])
-
-
-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_dquote_varnames],
-[_lt_decl_filter([value], [2], $@)])
-
-
-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_varnames_tagged],
-[m4_assert([$# <= 2])dnl
-_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
- m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-m4_define([_lt_decl_varnames_tagged],
-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-
-
-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_all_varnames],
-[_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_if([$2], [],
- m4_quote(lt_decl_varnames),
- m4_quote(m4_shift($@))))[]dnl
-])
-m4_define([_lt_decl_all_varnames],
-[lt_join($@, lt_decl_varnames_tagged([$1],
- lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-])
-
-
-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-# ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'. VARNAME
-# must have a single quote delimited value for this to work.
-m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
-
-
-# _LT_CONFIG_STATUS_DECLARATIONS
-# ------------------------------
-# We delimit libtool config variables with single quotes, so when
-# we write them to config.status, we have to be sure to quote all
-# embedded single quotes properly. In configure, this macro expands
-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-#
-# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
- [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAGS
-# ----------------
-# Output comment and list of tags supported by the script
-m4_defun([_LT_LIBTOOL_TAGS],
-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
-])
-
-
-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-# -----------------------------------
-# Extract the dictionary values for VARNAME (optionally with TAG) and
-# expand to a commented shell variable setting:
-#
-# # Some comment about what VAR is for.
-# visible_name=$lt_internal_name
-m4_define([_LT_LIBTOOL_DECLARE],
-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
- [description])))[]dnl
-m4_pushdef([_libtool_name],
- m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
- [0], [_libtool_name=[$]$1],
- [1], [_libtool_name=$lt_[]$1],
- [2], [_libtool_name=$lt_[]$1],
- [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-])
-
-
-# _LT_LIBTOOL_CONFIG_VARS
-# -----------------------
-# Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
-# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
-# section) are produced by _LT_LIBTOOL_TAG_VARS.
-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-[m4_foreach([_lt_var],
- m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAG_VARS(TAG)
-# -------------------------
-m4_define([_LT_LIBTOOL_TAG_VARS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-
-
-# _LT_TAGVAR(VARNAME, [TAGNAME])
-# ------------------------------
-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-
-
-# _LT_CONFIG_COMMANDS
-# -------------------
-# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
-# variables for single and double quote escaping we saved from calls
-# to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'. Finally, any additional code accumulated
-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-m4_defun([_LT_CONFIG_COMMANDS],
-[AC_PROVIDE_IFELSE([LT_OUTPUT],
- dnl If the libtool generation code has been placed in $CONFIG_LT,
- dnl instead of duplicating it all over again into config.status,
- dnl then we will have config.status run $CONFIG_LT later, so it
- dnl needs to know what name is stored there:
- [AC_CONFIG_COMMANDS([libtool],
- [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
- dnl If the libtool generation code is destined for config.status,
- dnl expand the accumulated commands and init code now:
- [AC_CONFIG_COMMANDS([libtool],
- [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-])#_LT_CONFIG_COMMANDS
-
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-[
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-_LT_CONFIG_STATUS_DECLARATIONS
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$[]1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_quote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_dquote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-_LT_OUTPUT_LIBTOOL_INIT
-])
-
-# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
-# ------------------------------------
-# Generate a child script FILE with all initialization necessary to
-# reuse the environment learned by the parent script, and make the
-# file executable. If COMMENT is supplied, it is inserted after the
-# `#!' sequence but before initialization text begins. After this
-# macro, additional text can be appended to FILE to form the body of
-# the child script. The macro ends with non-zero status if the
-# file could not be fully written (such as if the disk is full).
-m4_ifdef([AS_INIT_GENERATED],
-[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
-[m4_defun([_LT_GENERATED_FILE_INIT],
-[m4_require([AS_PREPARE])]dnl
-[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
-[lt_write_fail=0
-cat >$1 <<_ASEOF || lt_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-$2
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$1 <<\_ASEOF || lt_write_fail=1
-AS_SHELL_SANITIZE
-_AS_PREPARE
-exec AS_MESSAGE_FD>&1
-_ASEOF
-test $lt_write_fail = 0 && chmod +x $1[]dnl
-m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
-
-# LT_OUTPUT
-# ---------
-# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), incase it is used in configure for compilation
-# tests.
-AC_DEFUN([LT_OUTPUT],
-[: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
-[# Run this file to recreate a libtool stub with the current configuration.])
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-lt_cl_silent=false
-exec AS_MESSAGE_LOG_FD>>config.log
-{
- echo
- AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
-
-Report bugs to <bug-libtool@gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2011 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test $[#] != 0
-do
- case $[1] in
- --version | --v* | -V )
- echo "$lt_cl_version"; exit 0 ;;
- --help | --h* | -h )
- echo "$lt_cl_help"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --quiet | --q* | --silent | --s* | -q )
- lt_cl_silent=: ;;
-
- -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
-
- *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
- esac
- shift
-done
-
-if $lt_cl_silent; then
- exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure. Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-lt_cl_success=:
-test "$silent" = yes &&
- lt_config_lt_args="$lt_config_lt_args --quiet"
-exec AS_MESSAGE_LOG_FD>/dev/null
-$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-exec AS_MESSAGE_LOG_FD>>config.log
-$lt_cl_success || AS_EXIT(1)
-])# LT_OUTPUT
-
-
-# _LT_CONFIG(TAG)
-# ---------------
-# If TAG is the built-in tag, create an initial libtool script with a
-# default configuration from the untagged config vars. Otherwise add code
-# to config.status for appending the configuration named by TAG from the
-# matching tagged config vars.
-m4_defun([_LT_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_CONFIG_SAVE_COMMANDS([
- m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
- m4_if(_LT_TAG, [C], [
- # See if we are running on zsh, and set the options which allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile="${ofile}T"
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-_LT_COPYING
-_LT_LIBTOOL_TAGS
-
-# ### BEGIN LIBTOOL CONFIG
-_LT_LIBTOOL_CONFIG_VARS
-_LT_LIBTOOL_TAG_VARS
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
- _LT_PROG_LTMAIN
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- _LT_PROG_REPLACE_SHELLFNS
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-],
-[cat <<_LT_EOF >> "$ofile"
-
-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-dnl in a comment (ie after a #).
-# ### BEGIN LIBTOOL TAG CONFIG: $1
-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-# ### END LIBTOOL TAG CONFIG: $1
-_LT_EOF
-])dnl /m4_if
-],
-[m4_if([$1], [], [
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
- RM='$RM'
- ofile='$ofile'], [])
-])dnl /_LT_CONFIG_SAVE_COMMANDS
-])# _LT_CONFIG
-
-
-# LT_SUPPORTED_TAG(TAG)
-# ---------------------
-# Trace this macro to discover what tags are supported by the libtool
-# --tag option, using:
-# autoconf --trace 'LT_SUPPORTED_TAG:$1'
-AC_DEFUN([LT_SUPPORTED_TAG], [])
-
-
-# C support is built-in for now
-m4_define([_LT_LANG_C_enabled], [])
-m4_define([_LT_TAGS], [])
-
-
-# LT_LANG(LANG)
-# -------------
-# Enable libtool support for the given language if not already enabled.
-AC_DEFUN([LT_LANG],
-[AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
- [C], [_LT_LANG(C)],
- [C++], [_LT_LANG(CXX)],
- [Go], [_LT_LANG(GO)],
- [Java], [_LT_LANG(GCJ)],
- [Fortran 77], [_LT_LANG(F77)],
- [Fortran], [_LT_LANG(FC)],
- [Windows Resource], [_LT_LANG(RC)],
- [m4_ifdef([_LT_LANG_]$1[_CONFIG],
- [_LT_LANG($1)],
- [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])# LT_LANG
-
-
-# _LT_LANG(LANGNAME)
-# ------------------
-m4_defun([_LT_LANG],
-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
- [LT_SUPPORTED_TAG([$1])dnl
- m4_append([_LT_TAGS], [$1 ])dnl
- m4_define([_LT_LANG_]$1[_enabled], [])dnl
- _LT_LANG_$1_CONFIG($1)])dnl
-])# _LT_LANG
-
-
-m4_ifndef([AC_PROG_GO], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_GO. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-m4_defun([AC_PROG_GO],
-[AC_LANG_PUSH(Go)dnl
-AC_ARG_VAR([GOC], [Go compiler command])dnl
-AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
-_AC_ARG_VAR_LDFLAGS()dnl
-AC_CHECK_TOOL(GOC, gccgo)
-if test -z "$GOC"; then
- if test -n "$ac_tool_prefix"; then
- AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
- fi
-fi
-if test -z "$GOC"; then
- AC_CHECK_PROG(GOC, gccgo, gccgo, false)
-fi
-])#m4_defun
-])#m4_ifndef
-
-
-# _LT_LANG_DEFAULT_CONFIG
-# -----------------------
-m4_defun([_LT_LANG_DEFAULT_CONFIG],
-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [LT_LANG(CXX)],
- [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_F77],
- [LT_LANG(F77)],
- [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_FC],
- [LT_LANG(FC)],
- [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-
-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-dnl pulling things in needlessly.
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
- [LT_LANG(GCJ)],
- [m4_ifdef([AC_PROG_GCJ],
- [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([A][M_PROG_GCJ],
- [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([LT_PROG_GCJ],
- [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
-AC_PROVIDE_IFELSE([AC_PROG_GO],
- [LT_LANG(GO)],
- [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
-
-AC_PROVIDE_IFELSE([LT_PROG_RC],
- [LT_LANG(RC)],
- [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
-
-# Obsolete macros:
-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-dnl AC_DEFUN([AC_LIBTOOL_RC], [])
-
-
-# _LT_TAG_COMPILER
-# ----------------
-m4_defun([_LT_TAG_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_TAG_COMPILER
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-m4_defun([_LT_COMPILER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-m4_defun([_LT_LINKER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# -------------------------
-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
- case $host_os in
- rhapsody* | darwin*)
- AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
- AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
- AC_CHECK_TOOL([LIPO], [lipo], [:])
- AC_CHECK_TOOL([OTOOL], [otool], [:])
- AC_CHECK_TOOL([OTOOL64], [otool64], [:])
- _LT_DECL([], [DSYMUTIL], [1],
- [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
- _LT_DECL([], [NMEDIT], [1],
- [Tool to change global to local symbols on Mac OS X])
- _LT_DECL([], [LIPO], [1],
- [Tool to manipulate fat objects and archives on Mac OS X])
- _LT_DECL([], [OTOOL], [1],
- [ldd/readelf like tool for Mach-O binaries on Mac OS X])
- _LT_DECL([], [OTOOL64], [1],
- [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-
- AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
- [lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- # If there is a non-empty error log, and "single_module"
- # appears in it, assume the flag caused a linker warning
- if test -s conftest.err && $GREP single_module conftest.err; then
- cat conftest.err >&AS_MESSAGE_LOG_FD
- # Otherwise, if the output was created with a 0 exit code from
- # the compiler, it worked.
- elif test -f libconftest.dylib && test $_lt_result -eq 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi])
-
- AC_CACHE_CHECK([for -exported_symbols_list linker flag],
- [lt_cv_ld_exported_symbols_list],
- [lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [lt_cv_ld_exported_symbols_list=yes],
- [lt_cv_ld_exported_symbols_list=no])
- LDFLAGS="$save_LDFLAGS"
- ])
-
- AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
- [lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
- echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
- $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
- echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
- $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -s conftest.err && $GREP force_load conftest.err; then
- cat conftest.err >&AS_MESSAGE_LOG_FD
- elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
- ])
- case $host_os in
- rhapsody* | darwin1.[[012]])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- 10.[[012]]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-])
-
-
-# _LT_DARWIN_LINKER_FEATURES([TAG])
-# ---------------------------------
-# Checks for linker and compiler features on darwin
-m4_defun([_LT_DARWIN_LINKER_FEATURES],
-[
- m4_require([_LT_REQUIRED_DARWIN_CHECKS])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_automatic, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
- m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
- [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes])
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=''
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
- m4_if([$1], [CXX],
-[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
- _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
- fi
-],[])
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
-])
-
-# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
-# ----------------------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-# Store the results from the different compilers for each TAGNAME.
-# Allow to override them for all tags through lt_cv_aix_libpath.
-m4_defun([_LT_SYS_MODULE_PATH_AIX],
-[m4_require([_LT_DECL_SED])dnl
-if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
- [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
- lt_aix_libpath_sed='[
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }]'
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi],[])
- if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
- fi
- ])
- aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
-fi
-])# _LT_SYS_MODULE_PATH_AIX
-
-
-# _LT_SHELL_INIT(ARG)
-# -------------------
-m4_define([_LT_SHELL_INIT],
-[m4_divert_text([M4SH-INIT], [$1
-])])# _LT_SHELL_INIT
-
-
-
-# _LT_PROG_ECHO_BACKSLASH
-# -----------------------
-# Find how we can fake an echo command that does not interpret backslash.
-# In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script which will find a shell with a builtin
-# printf (which we can use as an echo command).
-m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-AC_MSG_CHECKING([how to print strings])
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$[]1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-case "$ECHO" in
- printf*) AC_MSG_RESULT([printf]) ;;
- print*) AC_MSG_RESULT([print -r]) ;;
- *) AC_MSG_RESULT([cat]) ;;
-esac
-
-m4_ifdef([_AS_DETECT_SUGGESTED],
-[_AS_DETECT_SUGGESTED([
- test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test "X`printf %s $ECHO`" = "X$ECHO" \
- || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
-
-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
-])# _LT_PROG_ECHO_BACKSLASH
-
-
-# _LT_WITH_SYSROOT
-# ----------------
-AC_DEFUN([_LT_WITH_SYSROOT],
-[AC_MSG_CHECKING([for sysroot])
-AC_ARG_WITH([sysroot],
-[ --with-sysroot[=DIR] Search for dependent libraries within DIR
- (or the compiler's sysroot if not specified).],
-[], [with_sysroot=no])
-
-dnl lt_sysroot will always be passed unquoted. We quote it here
-dnl in case the user passed a directory name.
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
- if test "$GCC" = yes; then
- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
- fi
- ;; #(
- /*)
- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
- ;; #(
- no|'')
- ;; #(
- *)
- AC_MSG_RESULT([${with_sysroot}])
- AC_MSG_ERROR([The sysroot must be an absolute path.])
- ;;
-esac
-
- AC_MSG_RESULT([${lt_sysroot:-no}])
-_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-[dependent libraries, and in which our libraries should be installed.])])
-
-# _LT_ENABLE_LOCK
-# ---------------
-m4_defun([_LT_ENABLE_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
- [AS_HELP_STRING([--disable-libtool-lock],
- [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- case `/usr/bin/file conftest.o` in
- *x86-64*)
- LD="${LD-ld} -m elf32_x86_64"
- ;;
- *)
- LD="${LD-ld} -m elf_i386"
- ;;
- esac
- ;;
- powerpc64le-*)
- LD="${LD-ld} -m elf32lppclinux"
- ;;
- powerpc64-*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- powerpcle-*)
- LD="${LD-ld} -m elf64lppc"
- ;;
- powerpc-*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
- [AC_LANG_PUSH(C)
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
- AC_LANG_POP])
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*)
- case $host in
- i?86-*-solaris*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- sparc*-*-solaris*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
- LD="${LD-ld}_sol2"
- fi
- ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks="$enable_libtool_lock"
-])# _LT_ENABLE_LOCK
-
-
-# _LT_PROG_AR
-# -----------
-m4_defun([_LT_PROG_AR],
-[AC_CHECK_TOOLS(AR, [ar], false)
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
-
-AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
- [lt_cv_ar_at_file=no
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
- [echo conftest.$ac_objext > conftest.lst
- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
- AC_TRY_EVAL([lt_ar_try])
- if test "$ac_status" -eq 0; then
- # Ensure the archiver fails upon bogus file names.
- rm -f conftest.$ac_objext libconftest.a
- AC_TRY_EVAL([lt_ar_try])
- if test "$ac_status" -ne 0; then
- lt_cv_ar_at_file=@
- fi
- fi
- rm -f conftest.* libconftest.a
- ])
- ])
-
-if test "x$lt_cv_ar_at_file" = xno; then
- archiver_list_spec=
-else
- archiver_list_spec=$lt_cv_ar_at_file
-fi
-_LT_DECL([], [archiver_list_spec], [1],
- [How to feed a file listing to the archiver])
-])# _LT_PROG_AR
-
-
-# _LT_CMD_OLD_ARCHIVE
-# -------------------
-m4_defun([_LT_CMD_OLD_ARCHIVE],
-[_LT_PROG_AR
-
-AC_CHECK_TOOL(STRIP, strip, :)
-test -z "$STRIP" && STRIP=:
-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-test -z "$RANLIB" && RANLIB=:
-_LT_DECL([], [RANLIB], [1],
- [Commands used to install an old-style archive])
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-_LT_DECL([], [old_postinstall_cmds], [2])
-_LT_DECL([], [old_postuninstall_cmds], [2])
-_LT_TAGDECL([], [old_archive_cmds], [2],
- [Commands used to build an old-style archive])
-_LT_DECL([], [lock_old_archive_extraction], [0],
- [Whether to use a lock for old archive extraction])
-])# _LT_CMD_OLD_ARCHIVE
-
-
-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([_LT_COMPILER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$3"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- fi
- $RM conftest*
-])
-
-if test x"[$]$2" = xyes; then
- m4_if([$5], , :, [$5])
-else
- m4_if([$6], , :, [$6])
-fi
-])# _LT_COMPILER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-
-
-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------
-# Check whether the given linker option works
-AC_DEFUN([_LT_LINKER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $3"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&AS_MESSAGE_LOG_FD
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- else
- $2=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
- m4_if([$4], , :, [$4])
-else
- m4_if([$5], , :, [$5])
-fi
-])# _LT_LINKER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-
-
-# LT_CMD_MAX_LEN
-#---------------
-AC_DEFUN([LT_CMD_MAX_LEN],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- os2*)
- # The test takes a long time on OS/2.
- lt_cv_sys_max_cmd_len=8192
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len" && \
- test undefined != "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
- AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
- AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
- [What is the maximum length of a command?])
-])# LT_CMD_MAX_LEN
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-
-
-# _LT_HEADER_DLFCN
-# ----------------
-m4_defun([_LT_HEADER_DLFCN],
-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-])# _LT_HEADER_DLFCN
-
-
-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ----------------------------------------------------------------
-m4_defun([_LT_TRY_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
- [$4]
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-[#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}]
-_LT_EOF
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) $1 ;;
- x$lt_dlneed_uscore) $2 ;;
- x$lt_dlunknown|x*) $3 ;;
- esac
- else :
- # compilation failed
- $3
- fi
-fi
-rm -fr conftest*
-])# _LT_TRY_DLOPEN_SELF
-
-
-# LT_SYS_DLOPEN_SELF
-# ------------------
-AC_DEFUN([LT_SYS_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ])
- ;;
-
- *)
- AC_CHECK_FUNC([shl_load],
- [lt_cv_dlopen="shl_load"],
- [AC_CHECK_LIB([dld], [shl_load],
- [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
- [AC_CHECK_FUNC([dlopen],
- [lt_cv_dlopen="dlopen"],
- [AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
- [AC_CHECK_LIB([svld], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
- [AC_CHECK_LIB([dld], [dld_link],
- [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
- ])
- ])
- ])
- ])
- ])
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- AC_CACHE_CHECK([whether a program can dlopen itself],
- lt_cv_dlopen_self, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
- lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
- ])
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
- lt_cv_dlopen_self_static, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
- lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
- ])
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
- [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
- [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
- [Whether dlopen of statically linked programs is supported])
-])# LT_SYS_DLOPEN_SELF
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-
-
-# _LT_COMPILER_C_O([TAGNAME])
-# ---------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler.
-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-m4_defun([_LT_COMPILER_C_O],
-[m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
- fi
- fi
- chmod u+w . 2>&AS_MESSAGE_LOG_FD
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-])
-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
- [Does compiler simultaneously support -c and -o options?])
-])# _LT_COMPILER_C_O
-
-
-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-# ----------------------------------
-# Check to see if we can do hard links to lock some files if needed
-m4_defun([_LT_COMPILER_FILE_LOCKS],
-[m4_require([_LT_ENABLE_LOCK])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_COMPILER_C_O([$1])
-
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- AC_MSG_CHECKING([if we can lock with hard links])
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- AC_MSG_RESULT([$hard_links])
- if test "$hard_links" = no; then
- AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-])# _LT_COMPILER_FILE_LOCKS
-
-
-# _LT_CHECK_OBJDIR
-# ----------------
-m4_defun([_LT_CHECK_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-_LT_DECL([], [objdir], [0],
- [The name of the directory that contains temporary libtool files])dnl
-m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
- [Define to the sub-directory in which libtool stores uninstalled libraries.])
-])# _LT_CHECK_OBJDIR
-
-
-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-# --------------------------------------
-# Check hardcoding attributes.
-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
- test -n "$_LT_TAGVAR(runpath_var, $1)" ||
- test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
- test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
- # Linking always hardcodes the temporary library directory.
- _LT_TAGVAR(hardcode_action, $1)=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- _LT_TAGVAR(hardcode_action, $1)=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- _LT_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
- test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-_LT_TAGDECL([], [hardcode_action], [0],
- [How to hardcode a shared library path into an executable])
-])# _LT_LINKER_HARDCODE_LIBPATH
-
-
-# _LT_CMD_STRIPLIB
-# ----------------
-m4_defun([_LT_CMD_STRIPLIB],
-[m4_require([_LT_DECL_EGREP])
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- fi
- ;;
- *)
- AC_MSG_RESULT([no])
- ;;
- esac
-fi
-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-_LT_DECL([], [striplib], [1])
-])# _LT_CMD_STRIPLIB
-
-
-# _LT_SYS_DYNAMIC_LINKER([TAG])
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-m4_defun([_LT_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_OBJDUMP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-m4_if([$1],
- [], [
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
- *) lt_sed_strip_eq="s,=/,/,g" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[[lt_foo]]++; }
- if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[[4-9]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[[01]] | aix4.[[01]].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[[45]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- library_names_spec='${libname}.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec="$LIB"
- if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[[23]].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[[01]]* | freebsdelf3.[[01]]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
- freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[[3-9]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
- [lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
- LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
- [lt_cv_shlibpath_overrides_runpath=yes])])
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
- ])
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[[89]] | openbsd2.[[89]].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-_LT_DECL([], [variables_saved_for_relink], [1],
- [Variables whose values should be saved in libtool wrapper scripts and
- restored at link time])
-_LT_DECL([], [need_lib_prefix], [0],
- [Do we need the "lib" prefix for modules?])
-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-_LT_DECL([], [version_type], [0], [Library versioning type])
-_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable])
-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-_LT_DECL([], [shlibpath_overrides_runpath], [0],
- [Is shlibpath searched before the hard-coded library search path?])
-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-_LT_DECL([], [library_names_spec], [1],
- [[List of archive names. First name is the real one, the rest are links.
- The last name is the one that the linker finds with -lNAME]])
-_LT_DECL([], [soname_spec], [1],
- [[The coded name of the library, if different from the real name]])
-_LT_DECL([], [install_override_mode], [1],
- [Permission mode override for installation of shared libraries])
-_LT_DECL([], [postinstall_cmds], [2],
- [Command to use after installation of a shared archive])
-_LT_DECL([], [postuninstall_cmds], [2],
- [Command to use after uninstallation of a shared archive])
-_LT_DECL([], [finish_cmds], [2],
- [Commands used to finish a libtool library installation in a directory])
-_LT_DECL([], [finish_eval], [1],
- [[As "finish_cmds", except a single script fragment to be evaled but
- not shown]])
-_LT_DECL([], [hardcode_into_libs], [0],
- [Whether we should hardcode library paths into libraries])
-_LT_DECL([], [sys_lib_search_path_spec], [2],
- [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
- [Run-time system search path for libraries])
-])# _LT_SYS_DYNAMIC_LINKER
-
-
-# _LT_PATH_TOOL_PREFIX(TOOL)
-# --------------------------
-# find a file program which can recognize shared library
-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-[m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] | ?:[\\/]*])
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word. This closes a longstanding sh security hole.
- ac_dummy="m4_if([$2], , $PATH, [$2])"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$1; then
- lt_cv_path_MAGIC_CMD="$ac_dir/$1"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- AC_MSG_RESULT($MAGIC_CMD)
-else
- AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
- [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])# _LT_PATH_TOOL_PREFIX
-
-# Old name:
-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-
-
-# _LT_PATH_MAGIC
-# --------------
-# find a file program which can recognize a shared library
-m4_defun([_LT_PATH_MAGIC],
-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
- else
- MAGIC_CMD=:
- fi
-fi
-])# _LT_PATH_MAGIC
-
-
-# LT_PATH_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([LT_PATH_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
-
-AC_ARG_WITH([gnu-ld],
- [AS_HELP_STRING([--with-gnu-ld],
- [assume the C compiler uses GNU ld @<:@default=no@:>@])],
- [test "$withval" = no || with_gnu_ld=yes],
- [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by $CC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [[\\/]]* | ?:[[\\/]]*)
- re_direlt='/[[^/]][[^/]]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])# LT_PATH_LD
-
-# Old names:
-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_LD], [])
-dnl AC_DEFUN([AC_PROG_LD], [])
-
-
-# _LT_PATH_LD_GNU
-#- --------------
-m4_defun([_LT_PATH_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# _LT_PATH_LD_GNU
-
-
-# _LT_CMD_RELOAD
-# --------------
-# find reload flag for linker
-# -- PORTME Some linkers may need a different reload flag.
-m4_defun([_LT_CMD_RELOAD],
-[AC_CACHE_CHECK([for $LD option to reload object files],
- lt_cv_ld_reload_flag,
- [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- if test "$GCC" != yes; then
- reload_cmds=false
- fi
- ;;
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_TAGDECL([], [reload_cmds], [2])dnl
-])# _LT_CMD_RELOAD
-
-
-# _LT_CHECK_MAGIC_METHOD
-# ----------------------
-# how to check for library dependencies
-# -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_MAGIC_METHOD],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[[45]]*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
- if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- # Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[[3-9]]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-])
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
- case $host_os in
- mingw* | pw32*)
- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
- want_nocaseglob=yes
- else
- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
- fi
- ;;
- esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-_LT_DECL([], [deplibs_check_method], [1],
- [Method to check whether dependent libraries are shared objects])
-_LT_DECL([], [file_magic_cmd], [1],
- [Command to use when deplibs_check_method = "file_magic"])
-_LT_DECL([], [file_magic_glob], [1],
- [How to find potential files when deplibs_check_method = "file_magic"])
-_LT_DECL([], [want_nocaseglob], [1],
- [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
-])# _LT_CHECK_MAGIC_METHOD
-
-
-# LT_PATH_NM
-# ----------
-# find the pathname to a BSD- or MS-compatible name lister
-AC_DEFUN([LT_PATH_NM],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi])
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
- case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
- AC_SUBST([DUMPBIN])
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
- [lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
- cat conftest.out >&AS_MESSAGE_LOG_FD
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*])
-])# LT_PATH_NM
-
-# Old names:
-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_NM], [])
-dnl AC_DEFUN([AC_PROG_NM], [])
-
-# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-# --------------------------------
-# how to determine the name of the shared library
-# associated with a specific link library.
-# -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-m4_require([_LT_DECL_DLLTOOL])
-AC_CACHE_CHECK([how to associate runtime and link libraries],
-lt_cv_sharedlib_from_linklib_cmd,
-[lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
- # two different shell functions defined in ltmain.sh
- # decide which to use based on capabilities of $DLLTOOL
- case `$DLLTOOL --help 2>&1` in
- *--identify-strict*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
- ;;
- *)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
- ;;
- esac
- ;;
-*)
- # fallback: assume linklib IS sharedlib
- lt_cv_sharedlib_from_linklib_cmd="$ECHO"
- ;;
-esac
-])
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
- [Command to associate shared and link libraries])
-])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-
-
-# _LT_PATH_MANIFEST_TOOL
-# ----------------------
-# locate the manifest tool
-m4_defun([_LT_PATH_MANIFEST_TOOL],
-[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
- [lt_cv_path_mainfest_tool=no
- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
- cat conftest.err >&AS_MESSAGE_LOG_FD
- if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_mainfest_tool=yes
- fi
- rm -f conftest*])
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
- MANIFEST_TOOL=:
-fi
-_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
-])# _LT_PATH_MANIFEST_TOOL
-
-
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
- # These system don't have libm, or don't need it
- ;;
-*-ncr-sysv4.3*)
- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
- AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
- ;;
-*)
- AC_CHECK_LIB(m, cos, LIBM="-lm")
- ;;
-esac
-AC_SUBST([LIBM])
-])# LT_LIB_M
-
-# Old name:
-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_CHECK_LIBM], [])
-
-
-# _LT_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------
-m4_defun([_LT_COMPILER_NO_RTTI],
-[m4_require([_LT_TAG_COMPILER])dnl
-
-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
- case $cc_basename in
- nvcc*)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
- esac
-
- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
- lt_cv_prog_compiler_rtti_exceptions,
- [-fno-rtti -fno-exceptions], [],
- [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
- [Compiler flag to turn off builtin functions])
-])# _LT_COMPILER_NO_RTTI
-
-
-# _LT_CMD_GLOBAL_SYMBOLS
-# ----------------------
-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[[BCDT]]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[[ABCDGISTW]]'
- ;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[[ABCDEGRST]]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[[BCDEGRST]]'
- ;;
-osf*)
- symcode='[[BCDEGQRST]]'
- ;;
-solaris*)
- symcode='[[BDRT]]'
- ;;
-sco3.2v5*)
- symcode='[[DT]]'
- ;;
-sysv4.2uw2*)
- symcode='[[DT]]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[[ABDT]]'
- ;;
-sysv4)
- symcode='[[DFNSTU]]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK ['"\
-" {last_section=section; section=\$ 3};"\
-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx]"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT@&t@_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT@&t@_DLSYM_CONST
-#else
-# define LT@&t@_DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-LT@&t@_DLSYM_CONST struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[[]] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_globsym_save_LIBS=$LIBS
- lt_globsym_save_CFLAGS=$CFLAGS
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS=$lt_globsym_save_LIBS
- CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- AC_MSG_RESULT(failed)
-else
- AC_MSG_RESULT(ok)
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
- nm_file_list_spec='@'
-fi
-
-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
- [Take the output of nm and produce a listing of raw symbols and C names])
-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
- [Transform the output of nm in a proper C declaration])
-_LT_DECL([global_symbol_to_c_name_address],
- [lt_cv_sys_global_symbol_to_c_name_address], [1],
- [Transform the output of nm in a C name address pair])
-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
- [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
- [Transform the output of nm in a C name address pair when lib prefix is needed])
-_LT_DECL([], [nm_file_list_spec], [1],
- [Specify filename containing input files for $NM])
-]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-# _LT_COMPILER_PIC([TAGNAME])
-# ---------------------------
-m4_defun([_LT_COMPILER_PIC],
-[m4_require([_LT_TAG_COMPILER])dnl
-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_TAGVAR(lt_prog_compiler_static, $1)=
-
-m4_if([$1], [CXX], [
- # C++ specific cases for pic, static, wl, etc.
- if test "$GXX" = yes; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
- *djgpp*)
- # DJGPP does not support shared libraries at all
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- else
- case $host_os in
- aix[[4-9]]*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- chorus*)
- case $cc_basename in
- cxch68*)
- # Green Hills C++ Compiler
- # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
- ;;
- esac
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
- dgux*)
- case $cc_basename in
- ec++*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- freebsd* | dragonfly*)
- # FreeBSD uses GNU C++
- ;;
- hpux9* | hpux10* | hpux11*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- if test "$host_cpu" != ia64; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- fi
- ;;
- aCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- interix*)
- # This is c89, which is MS Visual C++ (no shared libs)
- # Anyone wants to do a port?
- ;;
- irix5* | irix6* | nonstopux*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- # CC pic flag -KPIC is the default.
- ;;
- *)
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- KCC*)
- # KAI C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- ecpc* )
- # old Intel C++ for x86_64 which still supported -KPIC.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- icpc* )
- # Intel C++, used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- cxx*)
- # Compaq C++
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
- # IBM XL 8.0, 9.0 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- esac
- ;;
- esac
- ;;
- lynxos*)
- ;;
- m88k*)
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
- ;;
- *)
- ;;
- esac
- ;;
- netbsd* | netbsdelf*-gnu)
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- cxx*)
- # Digital/Compaq C++
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- psos*)
- ;;
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- ;;
- *)
- ;;
- esac
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- lcc*)
- # Lucid
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- *)
- ;;
- esac
- ;;
- vxworks*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-],
-[
- if test "$GCC" = yes; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
- if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
- fi
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
-
- hpux9* | hpux10* | hpux11*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC (with -KPIC) is the default.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- ccc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All Alpha code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
- ;;
- *Sun\ F* | *Sun*Fortran*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- *Sun\ C*)
- # Sun C 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- ;;
- *Intel*\ [[CF]]*Compiler*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- *Portland\ Group*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All OSF/1 code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- rdos*)
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- solaris*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
- *)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- unicos*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
-
- uts4*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-])
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
- ;;
-esac
-
-AC_CACHE_CHECK([for $compiler option to produce PIC],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
- [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
- [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
- "" | " "*) ;;
- *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
- esac],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
- [Additional compiler flags for building library objects])
-
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
- [How to pass a linker flag through the compiler])
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
- _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
- $lt_tmp_static_flag,
- [],
- [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
- [Compiler flag to prevent dynamic linking])
-])# _LT_COMPILER_PIC
-
-
-# _LT_LINKER_SHLIBS([TAGNAME])
-# ----------------------------
-# See if the linker supports building shared libraries.
-m4_defun([_LT_LINKER_SHLIBS],
-[AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-m4_if([$1], [CXX], [
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- case $host_os in
- aix[[4-9]]*)
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global defined
- # symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- ;;
- pw32*)
- _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
- ;;
- cygwin* | mingw* | cegcc*)
- case $cc_basename in
- cl*)
- _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | gnu*)
- _LT_TAGVAR(link_all_deplibs, $1)=no
- ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- esac
-], [
- runpath_var=
- _LT_TAGVAR(allow_undefined_flag, $1)=
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(archive_cmds, $1)=
- _LT_TAGVAR(archive_expsym_cmds, $1)=
- _LT_TAGVAR(compiler_needs_object, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(hardcode_automatic, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- _LT_TAGVAR(hardcode_minus_L, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- _LT_TAGVAR(inherit_rpath, $1)=no
- _LT_TAGVAR(link_all_deplibs, $1)=unknown
- _LT_TAGVAR(module_cmds, $1)=
- _LT_TAGVAR(module_expsym_cmds, $1)=
- _LT_TAGVAR(old_archive_from_new_cmds, $1)=
- _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
- _LT_TAGVAR(thread_safe_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- _LT_TAGVAR(include_expsyms, $1)=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- linux* | k*bsd*-gnu | gnu*)
- _LT_TAGVAR(link_all_deplibs, $1)=no
- ;;
- esac
-
- _LT_TAGVAR(ld_shlibs, $1)=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test "$with_gnu_ld" = yes; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
- *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test "$lt_use_gnu_ld_interface" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[[3-9]]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- tmp_sharedflag='--shared' ;;
- xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
-
- if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
- runpath_var=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- fi
- ;;
-
- aix[[4-9]]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=no
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- bsdi[[45]]*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- case $cc_basename in
- cl*)
- # Native MSVC
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
- # Don't use ranlib
- _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
- _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # Assume MSVC wrapper
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- # FIXME: Should let the user specify the lib program.
- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- m4_if($1, [], [
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- _LT_LINKER_OPTION([if $CC understands -b],
- _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
- [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- # This should be the same for all languages, so no per-tag cache variable.
- AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
- [lt_cv_irix_exported_symbol],
- [save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- AC_LINK_IFELSE(
- [AC_LANG_SOURCE(
- [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
- [C++], [[int foo (void) { return 0; }]],
- [Fortran 77], [[
- subroutine foo
- end]],
- [Fortran], [[
- subroutine foo
- end]])])],
- [lt_cv_irix_exported_symbol=yes],
- [lt_cv_irix_exported_symbol=no])
- LDFLAGS="$save_LDFLAGS"])
- if test "$lt_cv_irix_exported_symbol" = yes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
- fi
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- netbsd* | netbsdelf*-gnu)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- newsos6)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- else
- case $host_os in
- openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- os2*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- solaris*)
- _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
- _LT_TAGVAR(hardcode_direct, $1)=no
- ;;
- motorola)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4.3*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- _LT_TAGVAR(ld_shlibs, $1)=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
- ;;
- esac
- fi
- fi
-])
-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-
-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-_LT_DECL([], [extract_expsyms_cmds], [2],
- [The commands to extract the exported symbol list from a shared archive])
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
- # Assume -lc should be added
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $_LT_TAGVAR(archive_cmds, $1) in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- AC_CACHE_CHECK([whether -lc should be explicitly linked in],
- [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
- [$RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
- pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
- _LT_TAGVAR(allow_undefined_flag, $1)=
- if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
- then
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
- else
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- fi
- _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- ])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
- ;;
- esac
- fi
- ;;
-esac
-
-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
- [Whether or not to add -lc for building shared libraries])
-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
- [enable_shared_with_static_runtimes], [0],
- [Whether or not to disallow shared libs when runtime libs are static])
-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
- [Compiler flag to allow reflexive dlopens])
-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
- [Compiler flag to generate shared objects directly from archives])
-_LT_TAGDECL([], [compiler_needs_object], [1],
- [Whether the compiler copes with passing no objects directly])
-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
- [Create an old-style archive from a shared archive])
-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
- [Create a temporary old-style archive to link instead of a shared archive])
-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-_LT_TAGDECL([], [archive_expsym_cmds], [2])
-_LT_TAGDECL([], [module_cmds], [2],
- [Commands used to build a loadable module if different from building
- a shared archive.])
-_LT_TAGDECL([], [module_expsym_cmds], [2])
-_LT_TAGDECL([], [with_gnu_ld], [1],
- [Whether we are building with GNU ld or not])
-_LT_TAGDECL([], [allow_undefined_flag], [1],
- [Flag that allows shared libraries with undefined symbols to be built])
-_LT_TAGDECL([], [no_undefined_flag], [1],
- [Flag that enforces no undefined symbols])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
- [Flag to hardcode $libdir into a binary during linking.
- This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
- [Whether we need a single "-rpath" flag with a separated argument])
-_LT_TAGDECL([], [hardcode_direct], [0],
- [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
- DIR into the resulting binary])
-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
- [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
- DIR into the resulting binary and the resulting library dependency is
- "absolute", i.e impossible to change by setting ${shlibpath_var} if the
- library is relocated])
-_LT_TAGDECL([], [hardcode_minus_L], [0],
- [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
- [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_automatic], [0],
- [Set to "yes" if building a shared library automatically hardcodes DIR
- into the library and all subsequent libraries and executables linked
- against it])
-_LT_TAGDECL([], [inherit_rpath], [0],
- [Set to yes if linker adds runtime paths of dependent libraries
- to runtime path list])
-_LT_TAGDECL([], [link_all_deplibs], [0],
- [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [always_export_symbols], [0],
- [Set to "yes" if exported symbols are required])
-_LT_TAGDECL([], [export_symbols_cmds], [2],
- [The commands to list exported symbols])
-_LT_TAGDECL([], [exclude_expsyms], [1],
- [Symbols that should not be listed in the preloaded symbols])
-_LT_TAGDECL([], [include_expsyms], [1],
- [Symbols that must always be exported])
-_LT_TAGDECL([], [prelink_cmds], [2],
- [Commands necessary for linking programs (against libraries) with templates])
-_LT_TAGDECL([], [postlink_cmds], [2],
- [Commands necessary for finishing linking programs])
-_LT_TAGDECL([], [file_list_spec], [1],
- [Specify filename containing input files])
-dnl FIXME: Not yet implemented
-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-dnl [Compiler flag to generate thread safe objects])
-])# _LT_LINKER_SHLIBS
-
-
-# _LT_LANG_C_CONFIG([TAG])
-# ------------------------
-# Ensure that the configuration variables for a C compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_C_CONFIG],
-[m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_TAG_COMPILER
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
- LT_SYS_DLOPEN_SELF
- _LT_CMD_STRIPLIB
-
- # Report which library types will actually be built
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_CONFIG($1)
-fi
-AC_LANG_POP
-CC="$lt_save_CC"
-])# _LT_LANG_C_CONFIG
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
- (test "X$CXX" != "Xg++"))) ; then
- AC_PROG_CXXCPP
-else
- _lt_caught_CXX_error=yes
-fi
-
-AC_LANG_PUSH(C++)
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(compiler_needs_object, $1)=no
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="int some_variable = 0;"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC=$CC
- lt_save_CFLAGS=$CFLAGS
- lt_save_LD=$LD
- lt_save_GCC=$GCC
- GCC=$GXX
- lt_save_with_gnu_ld=$with_gnu_ld
- lt_save_path_LD=$lt_cv_path_LD
- if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
- else
- $as_unset lt_cv_prog_gnu_ld
- fi
- if test -n "${lt_cv_path_LDCXX+set}"; then
- lt_cv_path_LD=$lt_cv_path_LDCXX
- else
- $as_unset lt_cv_path_LD
- fi
- test -z "${LDCXX+set}" || LD=$LDCXX
- CC=${CXX-"c++"}
- CFLAGS=$CXXFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- # We don't want -fno-exception when compiling C++ code, so set the
- # no_builtin_flag separately
- if test "$GXX" = yes; then
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
- else
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
- fi
-
- if test "$GXX" = yes; then
- # Set up default GNU C++ configuration
-
- LT_PATH_LD
-
- # Check if GNU C++ uses GNU ld as the underlying linker, since the
- # archiving commands below assume that GNU ld is being used.
- if test "$with_gnu_ld" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # If archive_cmds runs LD, not CC, wlarc should be empty
- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
- # investigate it a little bit more. (MM)
- wlarc='${wl}'
-
- # ancient GNU ld didn't support --whole-archive et. al.
- if eval "`$CC -print-prog-name=ld` --help 2>&1" |
- $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- with_gnu_ld=no
- wlarc=
-
- # A generic and very simple default shared library creation
- # command for GNU C++ for the case where it uses the native
- # linker, instead of GNU ld. If possible, this setting should
- # overridden to take advantage of the native linker features on
- # the platform it is being used on.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- fi
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- GXX=no
- with_gnu_ld=no
- wlarc=
- fi
-
- # PORTME: fill in a description of your system's C++ link characteristics
- AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
- _LT_TAGVAR(ld_shlibs, $1)=yes
- case $host_os in
- aix3*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- case $ld_flag in
- *-brtl*)
- aix_use_runtimelinking=yes
- break
- ;;
- esac
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
- if test "$GXX" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to
- # export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an empty
- # executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared
- # libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- chorus*)
- case $cc_basename in
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- case $GXX,$cc_basename in
- ,cl* | no,cl*)
- # Native MSVC
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- # Don't use ranlib
- _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
- _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- func_to_tool_file "$lt_outputfile"~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # g++
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- case $cc_basename in
- ec++*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- freebsd2.*)
- # C++ shared libraries reported to be fairly broken before
- # switch to ELF
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- freebsd-elf*)
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- ;;
-
- freebsd* | dragonfly*)
- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
- # conventions
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- hpux9*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- hpux10*|hpux11*)
- if test $with_gnu_ld = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
- esac
- fi
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- esac
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- if test $with_gnu_ld = no; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC*)
- # SGI C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
- # Archives containing C++ object files must be created using
- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
- ;;
- *)
- if test "$GXX" = yes; then
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
- fi
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
- esac
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
- ;;
- icpc* | ecpc* )
- # Intel C++
- with_gnu_ld=yes
- # version 8.0 and above of icpc choke on multiply defined symbols
- # if we add $predep_objects and $postdep_objects, however 7.1 and
- # earlier do not add the objects themselves.
- case `$CC -V 2>&1` in
- *"Version 7."*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 8.0 or newer
- tmp_idyn=
- case $host_cpu in
- ia64*) tmp_idyn=' -i_dynamic';;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- case `$CC -V` in
- *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
- _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
- compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
- _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
- $RANLIB $oldlib'
- _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- *) # Version 6 and above use weak symbols
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- ;;
- cxx*)
- # Compaq C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
- ;;
- xl* | mpixl* | bgxl*)
- # IBM XL 8.0 on PPC, with GNU ld
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
-
- # Not sure whether something based on
- # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
- # would be better.
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- esac
- ;;
- esac
- ;;
-
- lynxos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- m88k*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- mvs*)
- case $cc_basename in
- cxx*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- fi
- # Workaround some broken pre-1.5 toolchains
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
- ;;
-
- *nto* | *qnx*)
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- openbsd2*)
- # C++ shared libraries are fairly broken
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- fi
- output_verbose_link_cmd=func_echo_all
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Archives containing C++ object files must be created using
- # the KAI C++ compiler.
- case $host in
- osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
- *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
- esac
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- cxx*)
- case $host in
- osf3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- ;;
- *)
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
- echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
- $RM $lib.exp'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- case $host in
- osf3*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- psos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- lcc*)
- # Lucid
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
-
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
- # The C++ compiler must be used to create the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
- ;;
- *)
- # GNU C++ compiler with Solaris linker
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
- if $CC --version | $GREP -v '^2\.7' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- else
- # g++ 2.7 appears to require `-G' NOT `-shared' on this
- # platform.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- fi
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- ;;
- esac
- fi
- ;;
- esac
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
- '"$_LT_TAGVAR(old_archive_cmds, $1)"
- _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
- '"$_LT_TAGVAR(reload_cmds, $1)"
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- vxworks*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
- test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
- _LT_TAGVAR(GCC, $1)="$GXX"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
- LDCXX=$LD
- LD=$lt_save_LD
- GCC=$lt_save_GCC
- with_gnu_ld=$lt_save_with_gnu_ld
- lt_cv_path_LDCXX=$lt_cv_path_LD
- lt_cv_path_LD=$lt_save_path_LD
- lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
- lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-AC_LANG_POP
-])# _LT_LANG_CXX_CONFIG
-
-
-# _LT_FUNC_STRIPNAME_CNF
-# ----------------------
-# func_stripname_cnf prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-#
-# This function is identical to the (non-XSI) version of func_stripname,
-# except this one can be used by m4 code that may be executed by configure,
-# rather than the libtool script.
-m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
-AC_REQUIRE([_LT_DECL_SED])
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
-func_stripname_cnf ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-} # func_stripname_cnf
-])# _LT_FUNC_STRIPNAME_CNF
-
-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-# ---------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
-# Dependencies to place before and after the object being linked:
-_LT_TAGVAR(predep_objects, $1)=
-_LT_TAGVAR(postdep_objects, $1)=
-_LT_TAGVAR(predeps, $1)=
-_LT_TAGVAR(postdeps, $1)=
-_LT_TAGVAR(compiler_lib_search_path, $1)=
-
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library. It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-int a;
-void foo (void) { a = 0; }
-_LT_EOF
-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-_LT_EOF
-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer*4 a
- a=0
- return
- end
-_LT_EOF
-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer a
- a=0
- return
- end
-_LT_EOF
-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-public class foo {
- private int a;
- public void bar (void) {
- a = 0;
- }
-};
-_LT_EOF
-], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
-package foo
-func foo() {
-}
-_LT_EOF
-])
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- for p in `eval "$output_verbose_link_cmd"`; do
- case ${prev}${p} in
-
- -L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
- # Remove the space.
- if test $p = "-L" ||
- test $p = "-R"; then
- prev=$p
- continue
- fi
-
- # Expand the sysroot to ease extracting the directories later.
- if test -z "$prev"; then
- case $p in
- -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
- -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
- -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
- esac
- fi
- case $p in
- =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
- esac
- if test "$pre_test_object_deps_done" = no; then
- case ${prev} in
- -L | -R)
- # Internal compiler library paths should come after those
- # provided the user. The postdeps already come after the
- # user supplied libs so there is no need to process them.
- if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
- _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
- else
- _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$_LT_TAGVAR(postdeps, $1)"; then
- _LT_TAGVAR(postdeps, $1)="${prev}${p}"
- else
- _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
- fi
- fi
- prev=
- ;;
-
- *.lto.$objext) ;; # Ignore GCC LTO objects
- *.$objext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
- _LT_TAGVAR(predep_objects, $1)="$p"
- else
- _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
- fi
- else
- if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
- _LT_TAGVAR(postdep_objects, $1)="$p"
- else
- _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-m4_if([$1], [CXX],
-[case $host_os in
-interix[[3-9]]*)
- # Interix 3.5 installs completely hosed .la files for C++, so rather than
- # hack all around it, let's just trust "g++" to DTRT.
- _LT_TAGVAR(predep_objects,$1)=
- _LT_TAGVAR(postdep_objects,$1)=
- _LT_TAGVAR(postdeps,$1)=
- ;;
-
-linux*)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
-
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- if test "$solaris_use_stlport4" != yes; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-
-solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- # Adding this requires a known-good setup of shared libraries for
- # Sun compiler versions before 5.6, else PIC objects from an old
- # archive will be linked into the output, leading to subtle bugs.
- if test "$solaris_use_stlport4" != yes; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-esac
-])
-
-case " $_LT_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
- [The directories searched by this compiler when creating a shared library])
-_LT_TAGDECL([], [predep_objects], [1],
- [Dependencies to place before and after the objects being linked to
- create a shared library])
-_LT_TAGDECL([], [postdep_objects], [1])
-_LT_TAGDECL([], [predeps], [1])
-_LT_TAGDECL([], [postdeps], [1])
-_LT_TAGDECL([], [compiler_lib_search_path], [1],
- [The library search path used internally by the compiler when linking
- a shared library])
-])# _LT_SYS_HIDDEN_LIBDEPS
-
-
-# _LT_LANG_F77_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a Fortran 77 compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_F77_CONFIG],
-[AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test "X$F77" = "Xno"; then
- _lt_disable_F77=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the F77 compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
- lt_save_CFLAGS=$CFLAGS
- CC=${F77-"f77"}
- CFLAGS=$FFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
- GCC=$G77
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)="$G77"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC="$lt_save_CC"
- CFLAGS="$lt_save_CFLAGS"
-fi # test "$_lt_disable_F77" != yes
-
-AC_LANG_POP
-])# _LT_LANG_F77_CONFIG
-
-
-# _LT_LANG_FC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for a Fortran compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_FC_CONFIG],
-[AC_LANG_PUSH(Fortran)
-
-if test -z "$FC" || test "X$FC" = "Xno"; then
- _lt_disable_FC=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for fc test sources.
-ac_ext=${ac_fc_srcext-f}
-
-# Object file extension for compiled fc test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the FC compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
- lt_save_CFLAGS=$CFLAGS
- CC=${FC-"f95"}
- CFLAGS=$FCFLAGS
- compiler=$CC
- GCC=$ac_cv_fc_compiler_gnu
-
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
-fi # test "$_lt_disable_FC" != yes
-
-AC_LANG_POP
-])# _LT_LANG_FC_CONFIG
-
-
-# _LT_LANG_GCJ_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Java Compiler compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GCJ_CONFIG],
-[AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GCJ-"gcj"}
-CFLAGS=$GCJFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GCJ_CONFIG
-
-
-# _LT_LANG_GO_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Go compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GO_CONFIG],
-[AC_REQUIRE([LT_PROG_GO])dnl
-AC_LANG_SAVE
-
-# Source file extension for Go test sources.
-ac_ext=go
-
-# Object file extension for compiled Go test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="package main; func main() { }"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='package main; func main() { }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GOC-"gccgo"}
-CFLAGS=$GOFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# Go did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GO_CONFIG
-
-
-# _LT_LANG_RC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for the Windows resource compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_RC_CONFIG],
-[AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=
-CC=${RC-"windres"}
-CFLAGS=
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-if test -n "$compiler"; then
- :
- _LT_CONFIG($1)
-fi
-
-GCC=$lt_save_GCC
-AC_LANG_RESTORE
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_RC_CONFIG
-
-
-# LT_PROG_GCJ
-# -----------
-AC_DEFUN([LT_PROG_GCJ],
-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
- [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
- [AC_CHECK_TOOL(GCJ, gcj,)
- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
- AC_SUBST(GCJFLAGS)])])[]dnl
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-
-
-# LT_PROG_GO
-# ----------
-AC_DEFUN([LT_PROG_GO],
-[AC_CHECK_TOOL(GOC, gccgo,)
-])
-
-
-# LT_PROG_RC
-# ----------
-AC_DEFUN([LT_PROG_RC],
-[AC_CHECK_TOOL(RC, windres,)
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_RC], [])
-
-
-# _LT_DECL_EGREP
-# --------------
-# If we don't have a new enough Autoconf to choose the best grep
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_EGREP],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_REQUIRE([AC_PROG_FGREP])dnl
-test -z "$GREP" && GREP=grep
-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-_LT_DECL([], [EGREP], [1], [An ERE matcher])
-_LT_DECL([], [FGREP], [1], [A literal string matcher])
-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-AC_SUBST([GREP])
-])
-
-
-# _LT_DECL_OBJDUMP
-# --------------
-# If we don't have a new enough Autoconf to choose the best objdump
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_OBJDUMP],
-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-AC_SUBST([OBJDUMP])
-])
-
-# _LT_DECL_DLLTOOL
-# ----------------
-# Ensure DLLTOOL variable is set.
-m4_defun([_LT_DECL_DLLTOOL],
-[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
-AC_SUBST([DLLTOOL])
-])
-
-# _LT_DECL_SED
-# ------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible. Prefer GNU sed if found.
-m4_defun([_LT_DECL_SED],
-[AC_PROG_SED
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
- [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-])# _LT_DECL_SED
-
-m4_ifndef([AC_PROG_SED], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_SED. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-
-m4_defun([AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for lt_ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
- lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
- fi
- done
- done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
- test ! -f $lt_ac_sed && continue
- cat /dev/null > conftest.in
- lt_ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >conftest.in
- # Check for GNU sed and select it if it is found.
- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
- lt_cv_path_SED=$lt_ac_sed
- break
- fi
- while true; do
- cat conftest.in conftest.in >conftest.tmp
- mv conftest.tmp conftest.in
- cp conftest.in conftest.nl
- echo >>conftest.nl
- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
- cmp -s conftest.out conftest.nl || break
- # 10000 chars as input seems more than enough
- test $lt_ac_count -gt 10 && break
- lt_ac_count=`expr $lt_ac_count + 1`
- if test $lt_ac_count -gt $lt_ac_max; then
- lt_ac_max=$lt_ac_count
- lt_cv_path_SED=$lt_ac_sed
- fi
- done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])#AC_PROG_SED
-])#m4_ifndef
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_SED], [])
-
-
-# _LT_CHECK_SHELL_FEATURES
-# ------------------------
-# Find out whether the shell is Bourne or XSI compatible,
-# or has some other useful features.
-m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,b/c, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-])# _LT_CHECK_SHELL_FEATURES
-
-
-# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
-# ------------------------------------------------------
-# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
-# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
-m4_defun([_LT_PROG_FUNCTION_REPLACE],
-[dnl {
-sed -e '/^$1 ()$/,/^} # $1 /c\
-$1 ()\
-{\
-m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1])
-} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-])
-
-
-# _LT_PROG_REPLACE_SHELLFNS
-# -------------------------
-# Replace existing portable implementations of several shell functions with
-# equivalent extended shell implementations where those features are available..
-m4_defun([_LT_PROG_REPLACE_SHELLFNS],
-[if test x"$xsi_shell" = xyes; then
- _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac])
-
- _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
- func_basename_result="${1##*/}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac
- func_basename_result="${1##*/}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
- # positional parameters, so assign one to ordinary parameter first.
- func_stripname_result=${3}
- func_stripname_result=${func_stripname_result#"${1}"}
- func_stripname_result=${func_stripname_result%"${2}"}])
-
- _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
- func_split_long_opt_name=${1%%=*}
- func_split_long_opt_arg=${1#*=}])
-
- _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
- func_split_short_opt_arg=${1#??}
- func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
-
- _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
- case ${1} in
- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
- *) func_lo2o_result=${1} ;;
- esac])
-
- _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo])
-
- _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))])
-
- _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}])
-fi
-
-if test x"$lt_shell_append" = xyes; then
- _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
- func_quote_for_eval "${2}"
-dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
- eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
-
- # Save a `func_append' function call where possible by direct use of '+='
- sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-else
- # Save a `func_append' function call even when '+=' is not available
- sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
- AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
-fi
-])
-
-# _LT_PATH_CONVERSION_FUNCTIONS
-# -----------------------------
-# Determine which file name conversion functions should be used by
-# func_to_host_file (and, implicitly, by func_to_host_path). These are needed
-# for certain cross-compile configurations and native mingw.
-m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_MSG_CHECKING([how to convert $build file names to $host format])
-AC_CACHE_VAL(lt_cv_to_host_file_cmd,
-[case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
- ;;
- esac
- ;;
- *-*-cygwin* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
- ;;
- esac
- ;;
- * ) # unhandled hosts (and "normal" native builds)
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
-esac
-])
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
-_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
- [0], [convert $build file names to $host format])dnl
-
-AC_MSG_CHECKING([how to convert $build file names to toolchain format])
-AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
-[#assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
- ;;
- esac
- ;;
-esac
-])
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
-_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
- [0], [convert $build files to toolchain format])dnl
-])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/src/c/liberasurecode/m4/ltoptions.m4 b/src/c/liberasurecode/m4/ltoptions.m4
deleted file mode 100644
index 301b0a3..0000000
--- a/src/c/liberasurecode/m4/ltoptions.m4
+++ /dev/null
@@ -1,384 +0,0 @@
-# Helper functions for option handling. -*- Autoconf -*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 7 ltoptions.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-
-
-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-# ------------------------------------------
-m4_define([_LT_MANGLE_OPTION],
-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-
-
-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-# ---------------------------------------
-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-# matching handler defined, dispatch to it. Other OPTION-NAMEs are
-# saved as a flag.
-m4_define([_LT_SET_OPTION],
-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
- _LT_MANGLE_DEFUN([$1], [$2]),
- [m4_warning([Unknown $1 option `$2'])])[]dnl
-])
-
-
-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-# ------------------------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-m4_define([_LT_IF_OPTION],
-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-
-
-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-# -------------------------------------------------------
-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-# are set.
-m4_define([_LT_UNLESS_OPTIONS],
-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
- [m4_define([$0_found])])])[]dnl
-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-])[]dnl
-])
-
-
-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-# ----------------------------------------
-# OPTION-LIST is a space-separated list of Libtool options associated
-# with MACRO-NAME. If any OPTION has a matching handler declared with
-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-# the unknown option and exit.
-m4_defun([_LT_SET_OPTIONS],
-[# Set options
-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [_LT_SET_OPTION([$1], _LT_Option)])
-
-m4_if([$1],[LT_INIT],[
- dnl
- dnl Simply set some default values (i.e off) if boolean options were not
- dnl specified:
- _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
- ])
- _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
- ])
- dnl
- dnl If no reference was made to various pairs of opposing options, then
- dnl we run the default mode handler for the pair. For example, if neither
- dnl `shared' nor `disable-shared' was passed, we enable building of shared
- dnl archives by default:
- _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
- _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
- [_LT_ENABLE_FAST_INSTALL])
- ])
-])# _LT_SET_OPTIONS
-
-
-## --------------------------------- ##
-## Macros to handle LT_INIT options. ##
-## --------------------------------- ##
-
-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-# -----------------------------------------
-m4_define([_LT_MANGLE_DEFUN],
-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-
-
-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-# -----------------------------------------------
-m4_define([LT_OPTION_DEFINE],
-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-])# LT_OPTION_DEFINE
-
-
-# dlopen
-# ------
-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-])
-
-AU_DEFUN([AC_LIBTOOL_DLOPEN],
-[_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-
-
-# win32-dll
-# ---------
-# Declare package support for building win32 dll's.
-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-[enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
- AC_CHECK_TOOL(AS, as, false)
- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
- AC_CHECK_TOOL(OBJDUMP, objdump, false)
- ;;
-esac
-
-test -z "$AS" && AS=as
-_LT_DECL([], [AS], [1], [Assembler program])dnl
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
-])# win32-dll
-
-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-
-
-# _LT_ENABLE_SHARED([DEFAULT])
-# ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_SHARED],
-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([shared],
- [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
- [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-
- _LT_DECL([build_libtool_libs], [enable_shared], [0],
- [Whether or not to build shared libraries])
-])# _LT_ENABLE_SHARED
-
-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-
-AC_DEFUN([AC_DISABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-
-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-
-
-
-# _LT_ENABLE_STATIC([DEFAULT])
-# ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_STATIC],
-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([static],
- [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
- [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-
- _LT_DECL([build_old_libs], [enable_static], [0],
- [Whether or not to build static libraries])
-])# _LT_ENABLE_STATIC
-
-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-
-AC_DEFUN([AC_DISABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-
-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-
-
-
-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-# ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_FAST_INSTALL],
-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([fast-install],
- [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
- [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-
-_LT_DECL([fast_install], [enable_fast_install], [0],
- [Whether or not to optimize for fast installation])dnl
-])# _LT_ENABLE_FAST_INSTALL
-
-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-
-# Old names:
-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
-])
-
-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-
-
-# _LT_WITH_PIC([MODE])
-# --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
-# LT_INIT options.
-# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
-m4_define([_LT_WITH_PIC],
-[AC_ARG_WITH([pic],
- [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
- [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
- [lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for lt_pkg in $withval; do
- IFS="$lt_save_ifs"
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
-
-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-])# _LT_WITH_PIC
-
-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-
-# Old name:
-AU_DEFUN([AC_LIBTOOL_PICMODE],
-[_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-
-## ----------------- ##
-## LTDL_INIT Options ##
-## ----------------- ##
-
-m4_define([_LTDL_MODE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
- [m4_define([_LTDL_MODE], [nonrecursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
- [m4_define([_LTDL_MODE], [recursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
- [m4_define([_LTDL_MODE], [subproject])])
-
-m4_define([_LTDL_TYPE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [installable],
- [m4_define([_LTDL_TYPE], [installable])])
-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
- [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/src/c/liberasurecode/m4/ltsugar.m4 b/src/c/liberasurecode/m4/ltsugar.m4
deleted file mode 100644
index 9000a05..0000000
--- a/src/c/liberasurecode/m4/ltsugar.m4
+++ /dev/null
@@ -1,123 +0,0 @@
-# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltsugar.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-
-
-# lt_join(SEP, ARG1, [ARG2...])
-# -----------------------------
-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-# associated separator.
-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-# versions in m4sugar had bugs.
-m4_define([lt_join],
-[m4_if([$#], [1], [],
- [$#], [2], [[$2]],
- [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-m4_define([_lt_join],
-[m4_if([$#$2], [2], [],
- [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-
-
-# lt_car(LIST)
-# lt_cdr(LIST)
-# ------------
-# Manipulate m4 lists.
-# These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
-m4_define([lt_car], [[$1]])
-m4_define([lt_cdr],
-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
- [$#], 1, [],
- [m4_dquote(m4_shift($@))])])
-m4_define([lt_unquote], $1)
-
-
-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
-# Note that neither SEPARATOR nor STRING are expanded; they are appended
-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-# than defined and empty).
-#
-# This macro is needed until we can rely on Autoconf 2.62, since earlier
-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-m4_define([lt_append],
-[m4_define([$1],
- m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-
-
-
-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-# ----------------------------------------------------------
-# Produce a SEP delimited list of all paired combinations of elements of
-# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
-# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
-m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
- [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
- [m4_foreach([_Lt_suffix],
- ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
- [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-
-
-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-# -----------------------------------------------------------------------
-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-m4_define([lt_if_append_uniq],
-[m4_ifdef([$1],
- [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
- [lt_append([$1], [$2], [$3])$4],
- [$5])],
- [lt_append([$1], [$2], [$3])$4])])
-
-
-# lt_dict_add(DICT, KEY, VALUE)
-# -----------------------------
-m4_define([lt_dict_add],
-[m4_define([$1($2)], [$3])])
-
-
-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-# --------------------------------------------
-m4_define([lt_dict_add_subkey],
-[m4_define([$1($2:$3)], [$4])])
-
-
-# lt_dict_fetch(DICT, KEY, [SUBKEY])
-# ----------------------------------
-m4_define([lt_dict_fetch],
-[m4_ifval([$3],
- m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
- m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-
-
-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-# -----------------------------------------------------------------
-m4_define([lt_if_dict_fetch],
-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
- [$5],
- [$6])])
-
-
-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-# --------------------------------------------------------------
-m4_define([lt_dict_filter],
-[m4_if([$5], [], [],
- [lt_join(m4_quote(m4_default([$4], [[, ]])),
- lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
- [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-])
diff --git a/src/c/liberasurecode/m4/ltversion.m4 b/src/c/liberasurecode/m4/ltversion.m4
deleted file mode 100644
index 07a8602..0000000
--- a/src/c/liberasurecode/m4/ltversion.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# ltversion.m4 -- version numbers -*- Autoconf -*-
-#
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# @configure_input@
-
-# serial 3337 ltversion.m4
-# This file is part of GNU Libtool
-
-m4_define([LT_PACKAGE_VERSION], [2.4.2])
-m4_define([LT_PACKAGE_REVISION], [1.3337])
-
-AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.2'
-macro_revision='1.3337'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
diff --git a/src/c/liberasurecode/m4/lt~obsolete.m4 b/src/c/liberasurecode/m4/lt~obsolete.m4
deleted file mode 100644
index ffeab56..0000000
--- a/src/c/liberasurecode/m4/lt~obsolete.m4
+++ /dev/null
@@ -1,98 +0,0 @@
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004.
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 5 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else. This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
-m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
-m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
diff --git a/src/c/liberasurecode/missing b/src/c/liberasurecode/missing
deleted file mode 100755
index cdea514..0000000
--- a/src/c/liberasurecode/missing
+++ /dev/null
@@ -1,215 +0,0 @@
-#! /bin/sh
-# Common wrapper for a few potentially missing GNU programs.
-
-scriptversion=2012-06-26.16; # UTC
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program 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 2, 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.
-
-if test $# -eq 0; then
- echo 1>&2 "Try '$0 --help' for more information"
- exit 1
-fi
-
-case $1 in
-
- --is-lightweight)
- # Used by our autoconf macros to check whether the available missing
- # script is modern enough.
- exit 0
- ;;
-
- --run)
- # Back-compat with the calling convention used by older automake.
- shift
- ;;
-
- -h|--h|--he|--hel|--help)
- echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
-to PROGRAM being missing or too old.
-
-Options:
- -h, --help display this help and exit
- -v, --version output version information and exit
-
-Supported PROGRAM values:
- aclocal autoconf autoheader autom4te automake makeinfo
- bison yacc flex lex help2man
-
-Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
-'g' are ignored when checking the name.
-
-Send bug reports to <bug-automake@gnu.org>."
- exit $?
- ;;
-
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing $scriptversion (GNU Automake)"
- exit $?
- ;;
-
- -*)
- echo 1>&2 "$0: unknown '$1' option"
- echo 1>&2 "Try '$0 --help' for more information"
- exit 1
- ;;
-
-esac
-
-# Run the given program, remember its exit status.
-"$@"; st=$?
-
-# If it succeeded, we are done.
-test $st -eq 0 && exit 0
-
-# Also exit now if we it failed (or wasn't found), and '--version' was
-# passed; such an option is passed most likely to detect whether the
-# program is present and works.
-case $2 in --version|--help) exit $st;; esac
-
-# Exit code 63 means version mismatch. This often happens when the user
-# tries to use an ancient version of a tool on a file that requires a
-# minimum version.
-if test $st -eq 63; then
- msg="probably too old"
-elif test $st -eq 127; then
- # Program was missing.
- msg="missing on your system"
-else
- # Program was found and executed, but failed. Give up.
- exit $st
-fi
-
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
-
-program_details ()
-{
- case $1 in
- aclocal|automake)
- echo "The '$1' program is part of the GNU Automake package:"
- echo "<$gnu_software_URL/automake>"
- echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/autoconf>"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- autoconf|autom4te|autoheader)
- echo "The '$1' program is part of the GNU Autoconf package:"
- echo "<$gnu_software_URL/autoconf/>"
- echo "It also requires GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- esac
-}
-
-give_advice ()
-{
- # Normalize program name to check for.
- normalized_program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
- printf '%s\n' "'$1' is $msg."
-
- configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
- case $normalized_program in
- autoconf*)
- echo "You should only need it if you modified 'configure.ac',"
- echo "or m4 files included by it."
- program_details 'autoconf'
- ;;
- autoheader*)
- echo "You should only need it if you modified 'acconfig.h' or"
- echo "$configure_deps."
- program_details 'autoheader'
- ;;
- automake*)
- echo "You should only need it if you modified 'Makefile.am' or"
- echo "$configure_deps."
- program_details 'automake'
- ;;
- aclocal*)
- echo "You should only need it if you modified 'acinclude.m4' or"
- echo "$configure_deps."
- program_details 'aclocal'
- ;;
- autom4te*)
- echo "You might have modified some maintainer files that require"
- echo "the 'automa4te' program to be rebuilt."
- program_details 'autom4te'
- ;;
- bison*|yacc*)
- echo "You should only need it if you modified a '.y' file."
- echo "You may want to install the GNU Bison package:"
- echo "<$gnu_software_URL/bison/>"
- ;;
- lex*|flex*)
- echo "You should only need it if you modified a '.l' file."
- echo "You may want to install the Fast Lexical Analyzer package:"
- echo "<$flex_URL>"
- ;;
- help2man*)
- echo "You should only need it if you modified a dependency" \
- "of a man page."
- echo "You may want to install the GNU Help2man package:"
- echo "<$gnu_software_URL/help2man/>"
- ;;
- makeinfo*)
- echo "You should only need it if you modified a '.texi' file, or"
- echo "any other file indirectly affecting the aspect of the manual."
- echo "You might want to install the Texinfo package:"
- echo "<$gnu_software_URL/texinfo/>"
- echo "The spurious makeinfo call might also be the consequence of"
- echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
- echo "want to install GNU make:"
- echo "<$gnu_software_URL/make/>"
- ;;
- *)
- echo "You might have modified some files without having the proper"
- echo "tools for further handling them. Check the 'README' file, it"
- echo "often tells you about the needed prerequisites for installing"
- echo "this package. You may also peek at any GNU archive site, in"
- echo "case some other package contains this missing '$1' program."
- ;;
- esac
-}
-
-give_advice "$1" | sed -e '1s/^/WARNING: /' \
- -e '2,$s/^/ /' >&2
-
-# Propagate the correct exit status (expected to be 127 for a program
-# not found, 63 for a program that failed due to version mismatch).
-exit $st
-
-# 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:
diff --git a/src/c/liberasurecode/src/Makefile.am b/src/c/liberasurecode/src/Makefile.am
deleted file mode 100644
index 26add4e..0000000
--- a/src/c/liberasurecode/src/Makefile.am
+++ /dev/null
@@ -1,42 +0,0 @@
-SUBDIRS = builtin/xor_codes builtin/null_code
-
-lib_LTLIBRARIES = liberasurecode.la
-
-INCLUDES = \
- -I$(top_srcdir)/include/erasurecode \
- -I$(top_srcdir)/include/xor_codes \
- -I$(top_srcdir)/include/shss
-
-# liberasurecode params
-liberasurecode_la_SOURCES = \
- erasurecode.c \
- erasurecode_helpers.c \
- erasurecode_preprocessing.c \
- erasurecode_postprocessing.c \
- utils/chksum/crc32.c \
- utils/chksum/alg_sig.c \
- backends/null/null.c \
- backends/xor/flat_xor_hd.c \
- backends/jerasure/jerasure_rs_vand.c \
- backends/jerasure/jerasure_rs_cauchy.c \
- backends/isa-l/isa_l_rs_vand.c \
- backends/shss/shss.c
-
-# Install additional header files
-liberasurecodeincludedir = $(includedir)
-liberasurecodeinclude_HEADERS = \
- ../include/erasurecode/erasurecode.h \
- ../include/erasurecode/erasurecode_helpers.h
-
-liberasurecode_la_CPPFLAGS = -Werror @GCOV_FLAGS@
-liberasurecode_la_LIBADD = \
- builtin/xor_codes/libXorcode.la -lpthread -lm @GCOV_LDFLAGS@
-
-# Version format (C - A).(A).(R) for C:R:A input
-liberasurecode_la_LDFLAGS = -rpath '$(libdir)' -version-info 9:10:9
-
-MOSTLYCLEANFILES = *.gcda *.gcno *.gcov utils/chksum/*.gcda utils/chksum/*.gcno utils/chksum/*.gcov \
- backends/null/*.gcda backends/null/*.gcno backends/null/*.gcov \
- backends/xor/*.gcda backends/xor/*.gcno backends/xor/*.gcov \
- backends/jerasure/*.gcda backends/jerasure/*.gcno backends/jerasure/*.gcov \
- backends/shss/*.gcda backends/shss/*.gcno backends/shss/*.gcov
diff --git a/src/c/liberasurecode/src/Makefile.in b/src/c/liberasurecode/src/Makefile.in
deleted file mode 100644
index 25b3005..0000000
--- a/src/c/liberasurecode/src/Makefile.in
+++ /dev/null
@@ -1,1029 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/depcomp $(liberasurecodeinclude_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_ext.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config_liberasurecode.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(libdir)" \
- "$(DESTDIR)$(liberasurecodeincludedir)"
-LTLIBRARIES = $(lib_LTLIBRARIES)
-liberasurecode_la_DEPENDENCIES = builtin/xor_codes/libXorcode.la
-am__dirstamp = $(am__leading_dot)dirstamp
-am_liberasurecode_la_OBJECTS = liberasurecode_la-erasurecode.lo \
- liberasurecode_la-erasurecode_helpers.lo \
- liberasurecode_la-erasurecode_preprocessing.lo \
- liberasurecode_la-erasurecode_postprocessing.lo \
- utils/chksum/liberasurecode_la-crc32.lo \
- utils/chksum/liberasurecode_la-alg_sig.lo \
- backends/null/liberasurecode_la-null.lo \
- backends/xor/liberasurecode_la-flat_xor_hd.lo \
- backends/jerasure/liberasurecode_la-jerasure_rs_vand.lo \
- backends/jerasure/liberasurecode_la-jerasure_rs_cauchy.lo \
- backends/isa-l/liberasurecode_la-isa_l_rs_vand.lo \
- backends/shss/liberasurecode_la-shss.lo
-liberasurecode_la_OBJECTS = $(am_liberasurecode_la_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-liberasurecode_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(AM_CFLAGS) $(CFLAGS) $(liberasurecode_la_LDFLAGS) $(LDFLAGS) \
- -o $@
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(liberasurecode_la_SOURCES)
-DIST_SOURCES = $(liberasurecode_la_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
- ctags-recursive dvi-recursive html-recursive info-recursive \
- install-data-recursive install-dvi-recursive \
- install-exec-recursive install-html-recursive \
- install-info-recursive install-pdf-recursive \
- install-ps-recursive install-recursive installcheck-recursive \
- installdirs-recursive pdf-recursive ps-recursive \
- tags-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-HEADERS = $(liberasurecodeinclude_HEADERS)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
- $(RECURSIVE_TARGETS) \
- $(RECURSIVE_CLEAN_TARGETS) \
- $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- distdir
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DOXYGEN = @DOXYGEN@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GCOV_FLAGS = @GCOV_FLAGS@
-GCOV_LDFLAGS = @GCOV_LDFLAGS@
-GREP = @GREP@
-HAVE_DOXYGEN = @HAVE_DOXYGEN@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJECTS = @OBJECTS@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIMD_FLAGS = @SIMD_FLAGS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_aux_dir = @ac_aux_dir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = builtin/xor_codes builtin/null_code
-lib_LTLIBRARIES = liberasurecode.la
-INCLUDES = \
- -I$(top_srcdir)/include/erasurecode \
- -I$(top_srcdir)/include/xor_codes \
- -I$(top_srcdir)/include/shss
-
-
-# liberasurecode params
-liberasurecode_la_SOURCES = \
- erasurecode.c \
- erasurecode_helpers.c \
- erasurecode_preprocessing.c \
- erasurecode_postprocessing.c \
- utils/chksum/crc32.c \
- utils/chksum/alg_sig.c \
- backends/null/null.c \
- backends/xor/flat_xor_hd.c \
- backends/jerasure/jerasure_rs_vand.c \
- backends/jerasure/jerasure_rs_cauchy.c \
- backends/isa-l/isa_l_rs_vand.c \
- backends/shss/shss.c
-
-
-# Install additional header files
-liberasurecodeincludedir = $(includedir)
-liberasurecodeinclude_HEADERS = \
- ../include/erasurecode/erasurecode.h \
- ../include/erasurecode/erasurecode_helpers.h
-
-liberasurecode_la_CPPFLAGS = -Werror @GCOV_FLAGS@
-liberasurecode_la_LIBADD = \
- builtin/xor_codes/libXorcode.la -lpthread -lm @GCOV_LDFLAGS@
-
-
-# Version format (C - A).(A).(R) for C:R:A input
-liberasurecode_la_LDFLAGS = -rpath '$(libdir)' -version-info 9:10:9
-MOSTLYCLEANFILES = *.gcda *.gcno *.gcov utils/chksum/*.gcda utils/chksum/*.gcno utils/chksum/*.gcov \
- backends/null/*.gcda backends/null/*.gcno backends/null/*.gcov \
- backends/xor/*.gcda backends/xor/*.gcno backends/xor/*.gcov \
- backends/jerasure/*.gcda backends/jerasure/*.gcno backends/jerasure/*.gcov \
- backends/shss/*.gcda backends/shss/*.gcno backends/shss/*.gcov
-
-all: all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu src/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- list2=; for p in $$list; do \
- if test -f $$p; then \
- list2="$$list2 $$p"; \
- else :; fi; \
- done; \
- test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
- }
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- for p in $$list; do \
- $(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
- done
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
- @list='$(lib_LTLIBRARIES)'; \
- locs=`for p in $$list; do echo $$p; done | \
- sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
- sort -u`; \
- test -z "$$locs" || { \
- echo rm -f $${locs}; \
- rm -f $${locs}; \
- }
-utils/chksum/$(am__dirstamp):
- @$(MKDIR_P) utils/chksum
- @: > utils/chksum/$(am__dirstamp)
-utils/chksum/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) utils/chksum/$(DEPDIR)
- @: > utils/chksum/$(DEPDIR)/$(am__dirstamp)
-utils/chksum/liberasurecode_la-crc32.lo: utils/chksum/$(am__dirstamp) \
- utils/chksum/$(DEPDIR)/$(am__dirstamp)
-utils/chksum/liberasurecode_la-alg_sig.lo: \
- utils/chksum/$(am__dirstamp) \
- utils/chksum/$(DEPDIR)/$(am__dirstamp)
-backends/null/$(am__dirstamp):
- @$(MKDIR_P) backends/null
- @: > backends/null/$(am__dirstamp)
-backends/null/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) backends/null/$(DEPDIR)
- @: > backends/null/$(DEPDIR)/$(am__dirstamp)
-backends/null/liberasurecode_la-null.lo: \
- backends/null/$(am__dirstamp) \
- backends/null/$(DEPDIR)/$(am__dirstamp)
-backends/xor/$(am__dirstamp):
- @$(MKDIR_P) backends/xor
- @: > backends/xor/$(am__dirstamp)
-backends/xor/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) backends/xor/$(DEPDIR)
- @: > backends/xor/$(DEPDIR)/$(am__dirstamp)
-backends/xor/liberasurecode_la-flat_xor_hd.lo: \
- backends/xor/$(am__dirstamp) \
- backends/xor/$(DEPDIR)/$(am__dirstamp)
-backends/jerasure/$(am__dirstamp):
- @$(MKDIR_P) backends/jerasure
- @: > backends/jerasure/$(am__dirstamp)
-backends/jerasure/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) backends/jerasure/$(DEPDIR)
- @: > backends/jerasure/$(DEPDIR)/$(am__dirstamp)
-backends/jerasure/liberasurecode_la-jerasure_rs_vand.lo: \
- backends/jerasure/$(am__dirstamp) \
- backends/jerasure/$(DEPDIR)/$(am__dirstamp)
-backends/jerasure/liberasurecode_la-jerasure_rs_cauchy.lo: \
- backends/jerasure/$(am__dirstamp) \
- backends/jerasure/$(DEPDIR)/$(am__dirstamp)
-backends/isa-l/$(am__dirstamp):
- @$(MKDIR_P) backends/isa-l
- @: > backends/isa-l/$(am__dirstamp)
-backends/isa-l/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) backends/isa-l/$(DEPDIR)
- @: > backends/isa-l/$(DEPDIR)/$(am__dirstamp)
-backends/isa-l/liberasurecode_la-isa_l_rs_vand.lo: \
- backends/isa-l/$(am__dirstamp) \
- backends/isa-l/$(DEPDIR)/$(am__dirstamp)
-backends/shss/$(am__dirstamp):
- @$(MKDIR_P) backends/shss
- @: > backends/shss/$(am__dirstamp)
-backends/shss/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) backends/shss/$(DEPDIR)
- @: > backends/shss/$(DEPDIR)/$(am__dirstamp)
-backends/shss/liberasurecode_la-shss.lo: \
- backends/shss/$(am__dirstamp) \
- backends/shss/$(DEPDIR)/$(am__dirstamp)
-
-liberasurecode.la: $(liberasurecode_la_OBJECTS) $(liberasurecode_la_DEPENDENCIES) $(EXTRA_liberasurecode_la_DEPENDENCIES)
- $(AM_V_CCLD)$(liberasurecode_la_LINK) -rpath $(libdir) $(liberasurecode_la_OBJECTS) $(liberasurecode_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
- -rm -f backends/isa-l/*.$(OBJEXT)
- -rm -f backends/isa-l/*.lo
- -rm -f backends/jerasure/*.$(OBJEXT)
- -rm -f backends/jerasure/*.lo
- -rm -f backends/null/*.$(OBJEXT)
- -rm -f backends/null/*.lo
- -rm -f backends/shss/*.$(OBJEXT)
- -rm -f backends/shss/*.lo
- -rm -f backends/xor/*.$(OBJEXT)
- -rm -f backends/xor/*.lo
- -rm -f utils/chksum/*.$(OBJEXT)
- -rm -f utils/chksum/*.lo
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liberasurecode_la-erasurecode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liberasurecode_la-erasurecode_helpers.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liberasurecode_la-erasurecode_postprocessing.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liberasurecode_la-erasurecode_preprocessing.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@backends/isa-l/$(DEPDIR)/liberasurecode_la-isa_l_rs_vand.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@backends/jerasure/$(DEPDIR)/liberasurecode_la-jerasure_rs_cauchy.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@backends/jerasure/$(DEPDIR)/liberasurecode_la-jerasure_rs_vand.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@backends/null/$(DEPDIR)/liberasurecode_la-null.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@backends/shss/$(DEPDIR)/liberasurecode_la-shss.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@backends/xor/$(DEPDIR)/liberasurecode_la-flat_xor_hd.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@utils/chksum/$(DEPDIR)/liberasurecode_la-alg_sig.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@utils/chksum/$(DEPDIR)/liberasurecode_la-crc32.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-liberasurecode_la-erasurecode.lo: erasurecode.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liberasurecode_la-erasurecode.lo -MD -MP -MF $(DEPDIR)/liberasurecode_la-erasurecode.Tpo -c -o liberasurecode_la-erasurecode.lo `test -f 'erasurecode.c' || echo '$(srcdir)/'`erasurecode.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liberasurecode_la-erasurecode.Tpo $(DEPDIR)/liberasurecode_la-erasurecode.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='erasurecode.c' object='liberasurecode_la-erasurecode.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liberasurecode_la-erasurecode.lo `test -f 'erasurecode.c' || echo '$(srcdir)/'`erasurecode.c
-
-liberasurecode_la-erasurecode_helpers.lo: erasurecode_helpers.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liberasurecode_la-erasurecode_helpers.lo -MD -MP -MF $(DEPDIR)/liberasurecode_la-erasurecode_helpers.Tpo -c -o liberasurecode_la-erasurecode_helpers.lo `test -f 'erasurecode_helpers.c' || echo '$(srcdir)/'`erasurecode_helpers.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liberasurecode_la-erasurecode_helpers.Tpo $(DEPDIR)/liberasurecode_la-erasurecode_helpers.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='erasurecode_helpers.c' object='liberasurecode_la-erasurecode_helpers.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liberasurecode_la-erasurecode_helpers.lo `test -f 'erasurecode_helpers.c' || echo '$(srcdir)/'`erasurecode_helpers.c
-
-liberasurecode_la-erasurecode_preprocessing.lo: erasurecode_preprocessing.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liberasurecode_la-erasurecode_preprocessing.lo -MD -MP -MF $(DEPDIR)/liberasurecode_la-erasurecode_preprocessing.Tpo -c -o liberasurecode_la-erasurecode_preprocessing.lo `test -f 'erasurecode_preprocessing.c' || echo '$(srcdir)/'`erasurecode_preprocessing.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liberasurecode_la-erasurecode_preprocessing.Tpo $(DEPDIR)/liberasurecode_la-erasurecode_preprocessing.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='erasurecode_preprocessing.c' object='liberasurecode_la-erasurecode_preprocessing.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liberasurecode_la-erasurecode_preprocessing.lo `test -f 'erasurecode_preprocessing.c' || echo '$(srcdir)/'`erasurecode_preprocessing.c
-
-liberasurecode_la-erasurecode_postprocessing.lo: erasurecode_postprocessing.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liberasurecode_la-erasurecode_postprocessing.lo -MD -MP -MF $(DEPDIR)/liberasurecode_la-erasurecode_postprocessing.Tpo -c -o liberasurecode_la-erasurecode_postprocessing.lo `test -f 'erasurecode_postprocessing.c' || echo '$(srcdir)/'`erasurecode_postprocessing.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liberasurecode_la-erasurecode_postprocessing.Tpo $(DEPDIR)/liberasurecode_la-erasurecode_postprocessing.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='erasurecode_postprocessing.c' object='liberasurecode_la-erasurecode_postprocessing.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liberasurecode_la-erasurecode_postprocessing.lo `test -f 'erasurecode_postprocessing.c' || echo '$(srcdir)/'`erasurecode_postprocessing.c
-
-utils/chksum/liberasurecode_la-crc32.lo: utils/chksum/crc32.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utils/chksum/liberasurecode_la-crc32.lo -MD -MP -MF utils/chksum/$(DEPDIR)/liberasurecode_la-crc32.Tpo -c -o utils/chksum/liberasurecode_la-crc32.lo `test -f 'utils/chksum/crc32.c' || echo '$(srcdir)/'`utils/chksum/crc32.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) utils/chksum/$(DEPDIR)/liberasurecode_la-crc32.Tpo utils/chksum/$(DEPDIR)/liberasurecode_la-crc32.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utils/chksum/crc32.c' object='utils/chksum/liberasurecode_la-crc32.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utils/chksum/liberasurecode_la-crc32.lo `test -f 'utils/chksum/crc32.c' || echo '$(srcdir)/'`utils/chksum/crc32.c
-
-utils/chksum/liberasurecode_la-alg_sig.lo: utils/chksum/alg_sig.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utils/chksum/liberasurecode_la-alg_sig.lo -MD -MP -MF utils/chksum/$(DEPDIR)/liberasurecode_la-alg_sig.Tpo -c -o utils/chksum/liberasurecode_la-alg_sig.lo `test -f 'utils/chksum/alg_sig.c' || echo '$(srcdir)/'`utils/chksum/alg_sig.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) utils/chksum/$(DEPDIR)/liberasurecode_la-alg_sig.Tpo utils/chksum/$(DEPDIR)/liberasurecode_la-alg_sig.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utils/chksum/alg_sig.c' object='utils/chksum/liberasurecode_la-alg_sig.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utils/chksum/liberasurecode_la-alg_sig.lo `test -f 'utils/chksum/alg_sig.c' || echo '$(srcdir)/'`utils/chksum/alg_sig.c
-
-backends/null/liberasurecode_la-null.lo: backends/null/null.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backends/null/liberasurecode_la-null.lo -MD -MP -MF backends/null/$(DEPDIR)/liberasurecode_la-null.Tpo -c -o backends/null/liberasurecode_la-null.lo `test -f 'backends/null/null.c' || echo '$(srcdir)/'`backends/null/null.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) backends/null/$(DEPDIR)/liberasurecode_la-null.Tpo backends/null/$(DEPDIR)/liberasurecode_la-null.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backends/null/null.c' object='backends/null/liberasurecode_la-null.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backends/null/liberasurecode_la-null.lo `test -f 'backends/null/null.c' || echo '$(srcdir)/'`backends/null/null.c
-
-backends/xor/liberasurecode_la-flat_xor_hd.lo: backends/xor/flat_xor_hd.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backends/xor/liberasurecode_la-flat_xor_hd.lo -MD -MP -MF backends/xor/$(DEPDIR)/liberasurecode_la-flat_xor_hd.Tpo -c -o backends/xor/liberasurecode_la-flat_xor_hd.lo `test -f 'backends/xor/flat_xor_hd.c' || echo '$(srcdir)/'`backends/xor/flat_xor_hd.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) backends/xor/$(DEPDIR)/liberasurecode_la-flat_xor_hd.Tpo backends/xor/$(DEPDIR)/liberasurecode_la-flat_xor_hd.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backends/xor/flat_xor_hd.c' object='backends/xor/liberasurecode_la-flat_xor_hd.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backends/xor/liberasurecode_la-flat_xor_hd.lo `test -f 'backends/xor/flat_xor_hd.c' || echo '$(srcdir)/'`backends/xor/flat_xor_hd.c
-
-backends/jerasure/liberasurecode_la-jerasure_rs_vand.lo: backends/jerasure/jerasure_rs_vand.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backends/jerasure/liberasurecode_la-jerasure_rs_vand.lo -MD -MP -MF backends/jerasure/$(DEPDIR)/liberasurecode_la-jerasure_rs_vand.Tpo -c -o backends/jerasure/liberasurecode_la-jerasure_rs_vand.lo `test -f 'backends/jerasure/jerasure_rs_vand.c' || echo '$(srcdir)/'`backends/jerasure/jerasure_rs_vand.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) backends/jerasure/$(DEPDIR)/liberasurecode_la-jerasure_rs_vand.Tpo backends/jerasure/$(DEPDIR)/liberasurecode_la-jerasure_rs_vand.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backends/jerasure/jerasure_rs_vand.c' object='backends/jerasure/liberasurecode_la-jerasure_rs_vand.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backends/jerasure/liberasurecode_la-jerasure_rs_vand.lo `test -f 'backends/jerasure/jerasure_rs_vand.c' || echo '$(srcdir)/'`backends/jerasure/jerasure_rs_vand.c
-
-backends/jerasure/liberasurecode_la-jerasure_rs_cauchy.lo: backends/jerasure/jerasure_rs_cauchy.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backends/jerasure/liberasurecode_la-jerasure_rs_cauchy.lo -MD -MP -MF backends/jerasure/$(DEPDIR)/liberasurecode_la-jerasure_rs_cauchy.Tpo -c -o backends/jerasure/liberasurecode_la-jerasure_rs_cauchy.lo `test -f 'backends/jerasure/jerasure_rs_cauchy.c' || echo '$(srcdir)/'`backends/jerasure/jerasure_rs_cauchy.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) backends/jerasure/$(DEPDIR)/liberasurecode_la-jerasure_rs_cauchy.Tpo backends/jerasure/$(DEPDIR)/liberasurecode_la-jerasure_rs_cauchy.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backends/jerasure/jerasure_rs_cauchy.c' object='backends/jerasure/liberasurecode_la-jerasure_rs_cauchy.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backends/jerasure/liberasurecode_la-jerasure_rs_cauchy.lo `test -f 'backends/jerasure/jerasure_rs_cauchy.c' || echo '$(srcdir)/'`backends/jerasure/jerasure_rs_cauchy.c
-
-backends/isa-l/liberasurecode_la-isa_l_rs_vand.lo: backends/isa-l/isa_l_rs_vand.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backends/isa-l/liberasurecode_la-isa_l_rs_vand.lo -MD -MP -MF backends/isa-l/$(DEPDIR)/liberasurecode_la-isa_l_rs_vand.Tpo -c -o backends/isa-l/liberasurecode_la-isa_l_rs_vand.lo `test -f 'backends/isa-l/isa_l_rs_vand.c' || echo '$(srcdir)/'`backends/isa-l/isa_l_rs_vand.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) backends/isa-l/$(DEPDIR)/liberasurecode_la-isa_l_rs_vand.Tpo backends/isa-l/$(DEPDIR)/liberasurecode_la-isa_l_rs_vand.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backends/isa-l/isa_l_rs_vand.c' object='backends/isa-l/liberasurecode_la-isa_l_rs_vand.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backends/isa-l/liberasurecode_la-isa_l_rs_vand.lo `test -f 'backends/isa-l/isa_l_rs_vand.c' || echo '$(srcdir)/'`backends/isa-l/isa_l_rs_vand.c
-
-backends/shss/liberasurecode_la-shss.lo: backends/shss/shss.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT backends/shss/liberasurecode_la-shss.lo -MD -MP -MF backends/shss/$(DEPDIR)/liberasurecode_la-shss.Tpo -c -o backends/shss/liberasurecode_la-shss.lo `test -f 'backends/shss/shss.c' || echo '$(srcdir)/'`backends/shss/shss.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) backends/shss/$(DEPDIR)/liberasurecode_la-shss.Tpo backends/shss/$(DEPDIR)/liberasurecode_la-shss.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backends/shss/shss.c' object='backends/shss/liberasurecode_la-shss.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o backends/shss/liberasurecode_la-shss.lo `test -f 'backends/shss/shss.c' || echo '$(srcdir)/'`backends/shss/shss.c
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
- -rm -rf backends/isa-l/.libs backends/isa-l/_libs
- -rm -rf backends/jerasure/.libs backends/jerasure/_libs
- -rm -rf backends/null/.libs backends/null/_libs
- -rm -rf backends/shss/.libs backends/shss/_libs
- -rm -rf backends/xor/.libs backends/xor/_libs
- -rm -rf utils/chksum/.libs utils/chksum/_libs
-install-liberasurecodeincludeHEADERS: $(liberasurecodeinclude_HEADERS)
- @$(NORMAL_INSTALL)
- @list='$(liberasurecodeinclude_HEADERS)'; test -n "$(liberasurecodeincludedir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(liberasurecodeincludedir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(liberasurecodeincludedir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(liberasurecodeincludedir)'"; \
- $(INSTALL_HEADER) $$files "$(DESTDIR)$(liberasurecodeincludedir)" || exit $$?; \
- done
-
-uninstall-liberasurecodeincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(liberasurecodeinclude_HEADERS)'; test -n "$(liberasurecodeincludedir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(liberasurecodeincludedir)'; $(am__uninstall_files_from_dir)
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-# (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
- @fail=; \
- if $(am__make_keepgoing); then \
- failcom='fail=yes'; \
- else \
- failcom='exit 1'; \
- fi; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-recursive
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs: installdirs-recursive
-installdirs-am:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(liberasurecodeincludedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
- -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
- -rm -f backends/isa-l/$(DEPDIR)/$(am__dirstamp)
- -rm -f backends/isa-l/$(am__dirstamp)
- -rm -f backends/jerasure/$(DEPDIR)/$(am__dirstamp)
- -rm -f backends/jerasure/$(am__dirstamp)
- -rm -f backends/null/$(DEPDIR)/$(am__dirstamp)
- -rm -f backends/null/$(am__dirstamp)
- -rm -f backends/shss/$(DEPDIR)/$(am__dirstamp)
- -rm -f backends/shss/$(am__dirstamp)
- -rm -f backends/xor/$(DEPDIR)/$(am__dirstamp)
- -rm -f backends/xor/$(am__dirstamp)
- -rm -f utils/chksum/$(DEPDIR)/$(am__dirstamp)
- -rm -f utils/chksum/$(am__dirstamp)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
- mostlyclean-am
-
-distclean: distclean-recursive
- -rm -rf ./$(DEPDIR) backends/isa-l/$(DEPDIR) backends/jerasure/$(DEPDIR) backends/null/$(DEPDIR) backends/shss/$(DEPDIR) backends/xor/$(DEPDIR) utils/chksum/$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am: install-liberasurecodeincludeHEADERS
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am: install-libLTLIBRARIES
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -rf ./$(DEPDIR) backends/isa-l/$(DEPDIR) backends/jerasure/$(DEPDIR) backends/null/$(DEPDIR) backends/shss/$(DEPDIR) backends/xor/$(DEPDIR) utils/chksum/$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-libLTLIBRARIES \
- uninstall-liberasurecodeincludeHEADERS
-
-.MAKE: $(am__recursive_targets) install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
- check-am clean clean-generic clean-libLTLIBRARIES \
- clean-libtool cscopelist-am ctags ctags-am distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am \
- install-libLTLIBRARIES install-liberasurecodeincludeHEADERS \
- install-man install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \
- uninstall-liberasurecodeincludeHEADERS
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/liberasurecode/src/backends/isa-l/isa_l_rs_vand.c b/src/c/liberasurecode/src/backends/isa-l/isa_l_rs_vand.c
deleted file mode 100644
index 541d308..0000000
--- a/src/c/liberasurecode/src/backends/isa-l/isa_l_rs_vand.c
+++ /dev/null
@@ -1,615 +0,0 @@
-/*
- * Copyright 2014 Kevin M Greenan
- * Copyright 2014 Tushar Gohad
- *
- * 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. 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 HOLDER 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.
- *
- * isa_l_rs_vand backend implementation
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "erasurecode.h"
-#include "erasurecode_backend.h"
-#include "erasurecode_helpers.h"
-
-#define ISA_L_RS_VAND_LIB_MAJOR 2
-#define ISA_L_RS_VAND_LIB_MINOR 13
-#define ISA_L_RS_VAND_LIB_REV 0
-#define ISA_L_RS_VAND_LIB_VER_STR "2.13"
-#define ISA_L_RS_VAND_LIB_NAME "isa_l_rs_vand"
-#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define ISA_L_RS_VAND_SO_NAME "libisal.dylib"
-#else
-#define ISA_L_RS_VAND_SO_NAME "libisal.so"
-#endif
-
-/* Forward declarations */
-struct ec_backend_op_stubs isa_l_rs_vand_ops;
-struct ec_backend isa_l_rs_vand;
-struct ec_backend_common backend_isa_l_rs_vand;
-
-typedef void (*ec_encode_data_func)(int, int, int, unsigned char*, unsigned char **, unsigned char **);
-typedef void (*ec_init_tables_func)(int, int, unsigned char*, unsigned char *);
-typedef void (*gf_gen_rs_matrix_func)(unsigned char*, int, int);
-typedef int (*gf_invert_matrix_func)(unsigned char*, unsigned char*, const int);
-typedef unsigned char (*gf_mul_func)(unsigned char, unsigned char);
-
-struct isa_l_rs_vand_descriptor {
- /* calls required for init */
- ec_init_tables_func ec_init_tables;
- gf_gen_rs_matrix_func gf_gen_rs_matrix;
-
- /* calls required for encode */
- ec_encode_data_func ec_encode_data;
-
- /* calls required for decode and reconstruct */
- gf_invert_matrix_func gf_invert_matrix;
-
- /* multiplication function used by ISA-L */
- gf_mul_func gf_mul;
-
- /* fields needed to hold state */
- unsigned char *matrix;
- int k;
- int m;
- int w;
-};
-
-static int isa_l_rs_vand_encode(void *desc, char **data, char **parity,
- int blocksize)
-{
- struct isa_l_rs_vand_descriptor *isa_l_desc =
- (struct isa_l_rs_vand_descriptor*) desc;
-
- unsigned char *g_tbls = NULL;
- int k = isa_l_desc->k;
- int m = isa_l_desc->m;
-
- // Generate g_tbls from encode matrix encode_matrix
- g_tbls = malloc(sizeof(unsigned char) * (k * m * 32));
- if (NULL == g_tbls) {
- return -1;
- }
-
- isa_l_desc->ec_init_tables(k, m, &isa_l_desc->matrix[k * k], g_tbls);
-
- /* FIXME - make ec_encode_data return a value */
- isa_l_desc->ec_encode_data(blocksize, k, m, g_tbls, (unsigned char**)data,
- (unsigned char**)parity);
- free(g_tbls);
- return 0;
-}
-
-static unsigned char* isa_l_get_decode_matrix(int k, int m, unsigned char *encode_matrix, int *missing_idxs)
-{
- int i = 0, j = 0, l = 0;
- int n = k + m;
- unsigned char *decode_matrix = malloc(sizeof(unsigned char) * k * k);
- uint64_t missing_bm = convert_list_to_bitmap(missing_idxs);
-
- while (i < k && l < n) {
- if (((1 << l) & missing_bm) == 0) {
- for (j = 0; j < k; j++) {
- decode_matrix[(k * i) + j] = encode_matrix[(k * l) + j];
- }
- i++;
- }
- l++;
- }
-
- if (i != k) {
- free(decode_matrix);
- decode_matrix = NULL;
- }
-
- return decode_matrix;
-}
-
-static int get_num_missing_elements(int *missing_idxs)
-{
- int i = 0;
-
- while (missing_idxs[i] > -1) {
- i++;
- }
-
- return i;
-}
-
-static void mult_and_xor_row(unsigned char *to_row,
- unsigned char *from_row,
- unsigned char val,
- int num_elems,
- gf_mul_func gf_mul)
-{
- int i;
-
- for (i = 0; i < num_elems; i++) {
- to_row[i] ^= gf_mul(val, from_row[i]);
- }
-}
-
-/*
- * TODO: Add in missing parity rows and adjust the inverse_rows to
- * be used for parity.
- */
-static unsigned char* get_inverse_rows(int k,
- int m,
- unsigned char *decode_inverse,
- unsigned char* encode_matrix,
- int *missing_idxs,
- gf_mul_func gf_mul)
-{
- uint64_t missing_bm = convert_list_to_bitmap(missing_idxs);
- int num_missing_elements = get_num_missing_elements(missing_idxs);
- unsigned char *inverse_rows = (unsigned char*)malloc(sizeof(unsigned
- char*) * k * num_missing_elements);
- int i, j, l = 0;
- int n = k + m;
-
- if (NULL == inverse_rows) {
- return NULL;
- }
-
- memset(inverse_rows, 0, sizeof(unsigned
- char*) * k * num_missing_elements);
-
- /*
- * Fill in rows for missing data
- */
- for (i = 0; i < k; i++) {
- if ((1 << i) & missing_bm) {
- for (j = 0; j < k; j++) {
- inverse_rows[(l * k) + j] = decode_inverse[(i * k) + j];
- }
- l++;
- }
- }
-
- /*
- * Process missing parity.
- *
- * Start with an all-zero row.
- *
- * For each data element, if the data element is:
- *
- * Available: XOR the corresponding coefficient from the
- * encoding matrix.
- *
- * Unavailable: multiply corresponding coefficient with
- * the row that corresponds to the missing data in inverse_rows
- * and XOR the resulting row with this row.
- */
- for (i = k; i < n; i++) {
- // Parity is missing
- if ((1 << i) & missing_bm) {
- int d_idx_avail = 0;
- int d_idx_unavail = 0;
- for (j = 0; j < k; j++) {
- // This data is available, so we can use the encode matrix
- if (((1 << j) & missing_bm) == 0) {
- inverse_rows[(l * k) + d_idx_avail] ^= encode_matrix[(i * k) + j];
- d_idx_avail++;
- } else {
- mult_and_xor_row(&inverse_rows[l * k],
- &inverse_rows[d_idx_unavail * k],
- encode_matrix[(i * k) + j],
- k,
- gf_mul);
- d_idx_unavail++;
- }
- }
- l++;
- }
- }
- return inverse_rows;
-}
-
-static int isa_l_rs_vand_decode(void *desc, char **data, char **parity,
- int *missing_idxs, int blocksize)
-{
- struct isa_l_rs_vand_descriptor *isa_l_desc =
- (struct isa_l_rs_vand_descriptor*)desc;
-
- unsigned char *g_tbls = NULL;
- unsigned char *decode_matrix = NULL;
- unsigned char *decode_inverse = NULL;
- unsigned char *inverse_rows = NULL;
- unsigned char **decoded_elements = NULL;
- unsigned char **available_fragments = NULL;
- int k = isa_l_desc->k;
- int m = isa_l_desc->m;
- int n = k + m;
- int ret = -1;
- int i, j;
-
- int num_missing_elements = get_num_missing_elements(missing_idxs);
- uint64_t missing_bm = convert_list_to_bitmap(missing_idxs);
-
- decode_matrix = isa_l_get_decode_matrix(k, m, isa_l_desc->matrix, missing_idxs);
-
- if (NULL == decode_matrix) {
- goto out;
- }
-
- decode_inverse = (unsigned char*)malloc(sizeof(unsigned char) * k * k);
-
- if (NULL == decode_inverse) {
- goto out;
- }
-
- isa_l_desc->gf_invert_matrix(decode_matrix, decode_inverse, k);
-
- // Generate g_tbls from computed decode matrix (k x k) matrix
- g_tbls = malloc(sizeof(unsigned char) * (k * m * 32));
- if (NULL == g_tbls) {
- goto out;
- }
-
- inverse_rows = get_inverse_rows(k, m, decode_inverse, isa_l_desc->matrix, missing_idxs, isa_l_desc->gf_mul);
-
- decoded_elements = (unsigned char**)malloc(sizeof(unsigned char*)*num_missing_elements);
- if (NULL == decoded_elements) {
- goto out;
- }
-
- available_fragments = (unsigned char**)malloc(sizeof(unsigned char*)*k);
- if (NULL == available_fragments) {
- goto out;
- }
-
- j = 0;
- for (i = 0; i < n; i++) {
- if (missing_bm & (1 << i)) {
- continue;
- }
- if (j == k) {
- break;
- }
- if (i < k) {
- available_fragments[j] = (unsigned char*)data[i];
- } else {
- available_fragments[j] = (unsigned char*)parity[i-k];
- }
- j++;
- }
-
- // Grab pointers to memory needed for missing data fragments
- j = 0;
- for (i = 0; i < k; i++) {
- if (missing_bm & (1 << i)) {
- decoded_elements[j] = (unsigned char*)data[i];
- j++;
- }
- }
- for (i = k; i < n; i++) {
- if (missing_bm & (1 << i)) {
- decoded_elements[j] = (unsigned char*)parity[i - k];
- j++;
- }
- }
-
- isa_l_desc->ec_init_tables(k, num_missing_elements, inverse_rows, g_tbls);
-
- isa_l_desc->ec_encode_data(blocksize, k, num_missing_elements, g_tbls, (unsigned char**)available_fragments,
- (unsigned char**)decoded_elements);
-
- ret = 0;
-
-out:
- free(g_tbls);
- free(decode_matrix);
- free(decode_inverse);
- free(inverse_rows);
- free(decoded_elements);
- free(available_fragments);
-
- return ret;
-}
-
-static int isa_l_rs_vand_reconstruct(void *desc, char **data, char **parity,
- int *missing_idxs, int destination_idx, int blocksize)
-{
- struct isa_l_rs_vand_descriptor *isa_l_desc =
- (struct isa_l_rs_vand_descriptor*) desc;
- unsigned char *g_tbls = NULL;
- unsigned char *decode_matrix = NULL;
- unsigned char *decode_inverse = NULL;
- unsigned char *inverse_rows = NULL;
- unsigned char *reconstruct_buf = NULL;
- unsigned char **available_fragments = NULL;
- int k = isa_l_desc->k;
- int m = isa_l_desc->m;
- int n = k + m;
- int ret = -1;
- int i, j;
- uint64_t missing_bm = convert_list_to_bitmap(missing_idxs);
- int inverse_row = -1;
-
- /**
- * Get available elements and compute the inverse of their
- * corresponding rows.
- */
- decode_matrix = isa_l_get_decode_matrix(k, m, isa_l_desc->matrix, missing_idxs);
-
- if (NULL == decode_matrix) {
- goto out;
- }
-
- decode_inverse = (unsigned char*)malloc(sizeof(unsigned char) * k * k);
-
- if (NULL == decode_inverse) {
- goto out;
- }
-
- isa_l_desc->gf_invert_matrix(decode_matrix, decode_inverse, k);
-
- /**
- * Get the row needed to reconstruct
- */
- inverse_rows = get_inverse_rows(k, m, decode_inverse, isa_l_desc->matrix, missing_idxs, isa_l_desc->gf_mul);
-
- // Generate g_tbls from computed decode matrix (k x k) matrix
- g_tbls = malloc(sizeof(unsigned char) * (k * m * 32));
- if (NULL == g_tbls) {
- goto out;
- }
-
- /**
- * Fill in the available elements
- */
- available_fragments = (unsigned char**)malloc(sizeof(unsigned char*)*k);
- if (NULL == available_fragments) {
- goto out;
- }
-
- j = 0;
- for (i = 0; i < n; i++) {
- if (missing_bm & (1 << i)) {
- continue;
- }
- if (j == k) {
- break;
- }
- if (i < k) {
- available_fragments[j] = (unsigned char*)data[i];
- } else {
- available_fragments[j] = (unsigned char*)parity[i-k];
- }
- j++;
- }
-
- /**
- * Copy pointer of buffer to reconstruct
- */
- j = 0;
- for (i = 0; i < n; i++) {
- if (missing_bm & (1 << i)) {
- if (i == destination_idx) {
- if (i < k) {
- reconstruct_buf = (unsigned char*)data[i];
- } else {
- reconstruct_buf = (unsigned char*)parity[i-k];
- }
- inverse_row = j;
- break;
- }
- j++;
- }
- }
-
- /**
- * Do the reconstruction
- */
- isa_l_desc->ec_init_tables(k, 1, &inverse_rows[inverse_row * k], g_tbls);
-
- isa_l_desc->ec_encode_data(blocksize, k, 1, g_tbls, (unsigned char**)available_fragments,
- (unsigned char**)&reconstruct_buf);
-
- ret = 0;
-out:
- free(g_tbls);
- free(decode_matrix);
- free(decode_inverse);
- free(inverse_rows);
- free(available_fragments);
-
- return ret;
-}
-
-static int isa_l_rs_vand_min_fragments(void *desc, int *missing_idxs,
- int *fragments_to_exclude, int *fragments_needed)
-{
- struct isa_l_rs_vand_descriptor *isa_l_desc =
- (struct isa_l_rs_vand_descriptor*)desc;
-
- uint64_t exclude_bm = convert_list_to_bitmap(fragments_to_exclude);
- uint64_t missing_bm = convert_list_to_bitmap(missing_idxs) | exclude_bm;
- int i;
- int j = 0;
- int ret = -1;
-
- for (i = 0; i < (isa_l_desc->k + isa_l_desc->m); i++) {
- if (!(missing_bm & (1 << i))) {
- fragments_needed[j] = i;
- j++;
- }
- if (j == isa_l_desc->k) {
- ret = 0;
- fragments_needed[j] = -1;
- break;
- }
- }
-
- return ret;
-}
-
-#define ISA_L_W 8
-static void * isa_l_rs_vand_init(struct ec_backend_args *args,
- void *backend_sohandle)
-{
- struct isa_l_rs_vand_descriptor *desc = NULL;
-
- desc = (struct isa_l_rs_vand_descriptor *)
- malloc(sizeof(struct isa_l_rs_vand_descriptor));
- if (NULL == desc) {
- return NULL;
- }
-
- desc->k = args->uargs.k;
- desc->m = args->uargs.m;
- if (args->uargs.w <= 0)
- args->uargs.w = ISA_L_W;
- desc->w = args->uargs.w;
-
- /* validate EC arguments */
- {
- long long max_symbols = 1LL << desc->w;
- if ((desc->k + desc->m) > max_symbols) {
- goto error;
- }
- }
-
- /*
- * ISO C forbids casting a void* to a function pointer.
- * Since dlsym return returns a void*, we use this union to
- * "transform" the void* to a function pointer.
- */
- union {
- ec_encode_data_func encodep;
- ec_init_tables_func init_tablesp;
- gf_gen_rs_matrix_func gen_matrixp;
- gf_invert_matrix_func invert_matrixp;
- gf_mul_func gf_mulp;
- void *vptr;
- } func_handle = {.vptr = NULL};
-
- /* fill in function addresses */
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "ec_encode_data");
- desc->ec_encode_data = func_handle.encodep;
- if (NULL == desc->ec_encode_data) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "ec_init_tables");
- desc->ec_init_tables = func_handle.init_tablesp;
- if (NULL == desc->ec_init_tables) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "gf_gen_rs_matrix");
- desc->gf_gen_rs_matrix = func_handle.gen_matrixp;
- if (NULL == desc->gf_gen_rs_matrix) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "gf_invert_matrix");
- desc->gf_invert_matrix = func_handle.invert_matrixp;
- if (NULL == desc->gf_invert_matrix) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "gf_mul");
- desc->gf_mul = func_handle.gf_mulp;
- if (NULL == desc->gf_mul) {
- goto error;
- }
-
- desc->matrix = malloc(sizeof(char) * desc->k * (desc->k + desc->m));
- if (NULL == desc->matrix) {
- goto error;
- }
-
- /**
- * Generate ISA-L encoding matrix
- */
- desc->gf_gen_rs_matrix(desc->matrix, desc->k + desc->m, desc->k);
-
- return desc;
-
-error:
- free(desc);
-
- return NULL;
-}
-
-/**
- * Return the element-size, which is the number of bits stored
- * on a given device, per codeword. This is always 8 in ISA-L
- *
- * Returns the size in bits!
- */
-static int
-isa_l_rs_vand_element_size(void* desc)
-{
- return 8;
-}
-
-static int isa_l_rs_vand_exit(void *desc)
-{
- struct isa_l_rs_vand_descriptor *isa_l_desc = NULL;
-
- isa_l_desc = (struct isa_l_rs_vand_descriptor*) desc;
-
- free(isa_l_desc);
-
- return 0;
-}
-
-/*
- * For the time being, we only claim compatibility with versions that
- * match exactly
- */
-static bool isa_l_rs_vand_is_compatible_with(uint32_t version) {
- return version == backend_isa_l_rs_vand.ec_backend_version;
-}
-
-struct ec_backend_op_stubs isa_l_rs_vand_op_stubs = {
- .INIT = isa_l_rs_vand_init,
- .EXIT = isa_l_rs_vand_exit,
- .ENCODE = isa_l_rs_vand_encode,
- .DECODE = isa_l_rs_vand_decode,
- .FRAGSNEEDED = isa_l_rs_vand_min_fragments,
- .RECONSTRUCT = isa_l_rs_vand_reconstruct,
- .ELEMENTSIZE = isa_l_rs_vand_element_size,
- .ISCOMPATIBLEWITH = isa_l_rs_vand_is_compatible_with,
-};
-
-struct ec_backend_common backend_isa_l_rs_vand = {
- .id = EC_BACKEND_ISA_L_RS_VAND,
- .name = ISA_L_RS_VAND_LIB_NAME,
- .soname = ISA_L_RS_VAND_SO_NAME,
- .soversion = ISA_L_RS_VAND_LIB_VER_STR,
- .ops = &isa_l_rs_vand_op_stubs,
- .backend_metadata_size = 0,
- .ec_backend_version = _VERSION(ISA_L_RS_VAND_LIB_MAJOR,
- ISA_L_RS_VAND_LIB_MINOR,
- ISA_L_RS_VAND_LIB_REV),
-};
diff --git a/src/c/liberasurecode/src/backends/jerasure/jerasure_rs_cauchy.c b/src/c/liberasurecode/src/backends/jerasure/jerasure_rs_cauchy.c
deleted file mode 100644
index 9759856..0000000
--- a/src/c/liberasurecode/src/backends/jerasure/jerasure_rs_cauchy.c
+++ /dev/null
@@ -1,434 +0,0 @@
-/*
- * Copyright 2014 Kevin M Greenan
- *
- * 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. 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 HOLDER 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.
- *
- * jerasure_rs_cauchy backend implementation
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "erasurecode.h"
-#include "erasurecode_backend.h"
-#include "erasurecode_helpers.h"
-
-#define JERASURE_RS_CAUCHY_LIB_MAJOR 2
-#define JERASURE_RS_CAUCHY_LIB_MINOR 0
-#define JERASURE_RS_CAUCHY_LIB_REV 0
-#define JERASURE_RS_CAUCHY_LIB_VER_STR "2.0"
-#define JERASURE_RS_CAUCHY_LIB_NAME "jerasure_rs_cauchy"
-#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define JERASURE_RS_CAUCHY_SO_NAME "libJerasure.dylib"
-#else
-#define JERASURE_RS_CAUCHY_SO_NAME "libJerasure.so"
-#endif
-
-/* Forward declarations */
-struct ec_backend_op_stubs jerasure_rs_cauchy_ops;
-struct ec_backend jerasure_rs_cauchy;
-struct ec_backend_common backend_jerasure_rs_cauchy;
-
-typedef int* (*cauchy_original_coding_matrix_func)(int, int, int);
-typedef int* (*jerasure_matrix_to_bitmatrix_func)(int, int, int, int *);
-typedef int** (*jerasure_smart_bitmatrix_to_schedule_func)
- (int, int, int, int *);
-typedef void (*jerasure_bitmatrix_encode_func)
- (int, int, int, int *, char **, char **, int, int);
-typedef int (*jerasure_bitmatrix_decode_func)
- (int, int, int, int *, int, int *,char **, char **, int, int);
-typedef int * (*jerasure_erasures_to_erased_func)(int, int, int *);
-typedef int (*jerasure_make_decoding_bitmatrix_func)
- (int, int, int, int *, int *, int *, int *);
-typedef void (*jerasure_bitmatrix_dotprod_func)
- (int, int, int *, int *, int,char **, char **, int, int);
-
-/*
- * ToDo (KMG): Should we make this a parameter, or is that
- * exposing too much b.s. to the client?
- */
-#define PYECC_CAUCHY_PACKETSIZE sizeof(long) * 128
-
-struct jerasure_rs_cauchy_descriptor {
- /* calls required for init */
- cauchy_original_coding_matrix_func cauchy_original_coding_matrix;
- jerasure_matrix_to_bitmatrix_func jerasure_matrix_to_bitmatrix;
- jerasure_smart_bitmatrix_to_schedule_func jerasure_smart_bitmatrix_to_schedule;
-
- /* calls required for encode */
- jerasure_bitmatrix_encode_func jerasure_bitmatrix_encode;
-
-
- /* calls required for decode */
- jerasure_bitmatrix_decode_func jerasure_bitmatrix_decode;
-
-
- /* calls required for reconstruct */
- jerasure_erasures_to_erased_func jerasure_erasures_to_erased;
- jerasure_make_decoding_bitmatrix_func jerasure_make_decoding_bitmatrix;
- jerasure_bitmatrix_dotprod_func jerasure_bitmatrix_dotprod;
-
- /* fields needed to hold state */
- int *matrix;
- int *bitmatrix;
- int **schedule;
- int k;
- int m;
- int w;
-};
-static void free_rs_cauchy_desc(
- struct jerasure_rs_cauchy_descriptor *jerasure_desc );
-
-
-static int jerasure_rs_cauchy_encode(void *desc, char **data, char **parity,
- int blocksize)
-{
- struct jerasure_rs_cauchy_descriptor *jerasure_desc =
- (struct jerasure_rs_cauchy_descriptor*) desc;
-
- /* FIXME - make jerasure_bitmatrix_encode return a value */
- jerasure_desc->jerasure_bitmatrix_encode(jerasure_desc->k, jerasure_desc->m,
- jerasure_desc->w, jerasure_desc->bitmatrix,
- data, parity, blocksize,
- PYECC_CAUCHY_PACKETSIZE);
-
- return 0;
-}
-
-static int jerasure_rs_cauchy_decode(void *desc, char **data, char **parity,
- int *missing_idxs, int blocksize)
-{
- struct jerasure_rs_cauchy_descriptor *jerasure_desc =
- (struct jerasure_rs_cauchy_descriptor*)desc;
-
- return jerasure_desc->jerasure_bitmatrix_decode(jerasure_desc->k,
- jerasure_desc->m,
- jerasure_desc->w,
- jerasure_desc->bitmatrix,
- 0,
- missing_idxs,
- data,
- parity,
- blocksize,
- PYECC_CAUCHY_PACKETSIZE);
-}
-
-static int jerasure_rs_cauchy_reconstruct(void *desc, char **data, char **parity,
- int *missing_idxs, int destination_idx, int blocksize)
-{
- int k, m, w; /* erasure code paramters */
- int ret = 1; /* return code */
- int *decoding_row = NULL; /* decoding matrix row for decode */
- int *erased = NULL; /* k+m length list of erased frag ids */
- int *dm_ids = NULL; /* k length list of fragment ids */
- int *decoding_matrix = NULL; /* matrix for decoding */
-
- struct jerasure_rs_cauchy_descriptor *jerasure_desc =
- (struct jerasure_rs_cauchy_descriptor*) desc;
- k = jerasure_desc->k;
- m = jerasure_desc->m;
- w = jerasure_desc->w;
-
- dm_ids = (int *) alloc_zeroed_buffer(sizeof(int) * k);
- decoding_matrix = (int *) alloc_zeroed_buffer(sizeof(int *) * k * k * w * w);
- erased = jerasure_desc->jerasure_erasures_to_erased(k, m, missing_idxs);
- if (NULL == decoding_matrix || NULL == dm_ids || NULL == erased) {
- goto out;
- }
-
- ret = jerasure_desc->jerasure_make_decoding_bitmatrix(k, m, w,
- jerasure_desc->bitmatrix,
- erased, decoding_matrix, dm_ids);
- if (destination_idx < k) {
- decoding_row = decoding_matrix + (destination_idx * k * w * w);
- } else {
- decoding_row = jerasure_desc->bitmatrix + ((destination_idx - k) * k * w * w);
- }
-
- if (ret == 0) {
- jerasure_desc->jerasure_bitmatrix_dotprod(jerasure_desc->k, jerasure_desc->w,
- decoding_row, dm_ids, destination_idx,
- data, parity, blocksize,
- PYECC_CAUCHY_PACKETSIZE);
- } else {
- goto out;
- }
-
-out:
- free(erased);
- free(decoding_matrix);
- free(dm_ids);
-
- return ret;
-}
-
-/*
- * Caller will allocate an array of size k for fragments_needed
- *
- */
-static int jerasure_rs_cauchy_min_fragments(void *desc, int *missing_idxs,
- int *fragments_to_exclude, int *fragments_needed)
-{
- struct jerasure_rs_cauchy_descriptor *jerasure_desc =
- (struct jerasure_rs_cauchy_descriptor*)desc;
- uint64_t exclude_bm = convert_list_to_bitmap(fragments_to_exclude);
- uint64_t missing_bm = convert_list_to_bitmap(missing_idxs) | exclude_bm;
- int i;
- int j = 0;
- int ret = -1;
-
- for (i = 0; i < (jerasure_desc->k + jerasure_desc->m); i++) {
- if (!(missing_bm & (1 << i))) {
- fragments_needed[j] = i;
- j++;
- }
- if (j == jerasure_desc->k) {
- ret = 0;
- fragments_needed[j] = -1;
- break;
- }
- }
-
- return ret;
-}
-
-#define DEFAULT_W 4
-static void * jerasure_rs_cauchy_init(struct ec_backend_args *args,
- void *backend_sohandle)
-{
- struct jerasure_rs_cauchy_descriptor *desc = NULL;
- int k, m, w;
-
- desc = (struct jerasure_rs_cauchy_descriptor *)
- malloc(sizeof(struct jerasure_rs_cauchy_descriptor));
- if (NULL == desc) {
- return NULL;
- }
-
- /* validate the base EC arguments */
- k = args->uargs.k;
- m = args->uargs.m;
- if (args->uargs.w <= 0)
- args->uargs.w = DEFAULT_W;
- w = args->uargs.w;
-
- /* store the base EC arguments in the descriptor */
- desc->k = k;
- desc->m = m;
- desc->w = w;
-
- /* validate EC arguments */
- {
- long long max_symbols;
- max_symbols = 1LL << w;
- if ((k + m) > max_symbols) {
- goto error;
- }
- }
-
- /*
- * ISO C forbids casting a void* to a function pointer.
- * Since dlsym return returns a void*, we use this union to
- * "transform" the void* to a function pointer.
- */
- union {
- cauchy_original_coding_matrix_func initp;
- jerasure_matrix_to_bitmatrix_func matrixtobitmatrixp;
- jerasure_smart_bitmatrix_to_schedule_func matrixschedulep;
- jerasure_bitmatrix_encode_func encodep;
- jerasure_bitmatrix_decode_func decodep;
- jerasure_erasures_to_erased_func erasedp;
- jerasure_make_decoding_bitmatrix_func decodematrixp;
- jerasure_bitmatrix_dotprod_func dotprodp;
- void *vptr;
- } func_handle = {.vptr = NULL};
-
- /* fill in function addresses */
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "jerasure_bitmatrix_encode");
- desc->jerasure_bitmatrix_encode = func_handle.encodep;
- if (NULL == desc->jerasure_bitmatrix_encode) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "jerasure_bitmatrix_decode");
- desc->jerasure_bitmatrix_decode = func_handle.decodep;
- if (NULL == desc->jerasure_bitmatrix_decode) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "cauchy_original_coding_matrix");
- desc->cauchy_original_coding_matrix = func_handle.initp;
- if (NULL == desc->cauchy_original_coding_matrix) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "jerasure_matrix_to_bitmatrix");
- desc->jerasure_matrix_to_bitmatrix = func_handle.matrixtobitmatrixp;
- if (NULL == desc->jerasure_matrix_to_bitmatrix) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "jerasure_smart_bitmatrix_to_schedule");
- desc->jerasure_smart_bitmatrix_to_schedule = func_handle.matrixschedulep;
- if (NULL == desc->jerasure_smart_bitmatrix_to_schedule) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "jerasure_make_decoding_bitmatrix");
- desc->jerasure_make_decoding_bitmatrix = func_handle.decodematrixp;
- if (NULL == desc->jerasure_make_decoding_bitmatrix) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "jerasure_bitmatrix_dotprod");
- desc->jerasure_bitmatrix_dotprod = func_handle.dotprodp;
- if (NULL == desc->jerasure_bitmatrix_dotprod) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "jerasure_erasures_to_erased");
- desc->jerasure_erasures_to_erased = func_handle.erasedp;
- if (NULL == desc->jerasure_erasures_to_erased) {
- goto error;
- }
-
- /* setup the Cauchy matrices and schedules */
- desc->matrix = desc->cauchy_original_coding_matrix(k, m, w);
- if (NULL == desc->matrix) {
- goto error;
- }
- desc->bitmatrix = desc->jerasure_matrix_to_bitmatrix(k, m, w, desc->matrix);
- if (NULL == desc->bitmatrix) {
- goto error;
- }
- desc->schedule = desc->jerasure_smart_bitmatrix_to_schedule(k, m, w, desc->bitmatrix);
- if (NULL == desc->schedule) {
- goto error;
- }
-
- return desc;
-
-error:
- free_rs_cauchy_desc(desc);
- return NULL;
-}
-
-/**
- * Return the element-size, which is the number of bits stored
- * on a given device, per codeword.
- *
- * Returns the size in bits!
- */
-static int
-jerasure_rs_cauchy_element_size(void* desc)
-{
- struct jerasure_rs_cauchy_descriptor *jerasure_desc =
- (struct jerasure_rs_cauchy_descriptor*)desc;
-
- return jerasure_desc->w * PYECC_CAUCHY_PACKETSIZE * 8;
-}
-
-static void free_rs_cauchy_desc(
- struct jerasure_rs_cauchy_descriptor *jerasure_desc )
-{
- int i = 0;
- int **schedule = NULL;
- bool end_of_array = false;
-
- if (jerasure_desc == NULL) {
- return;
- }
-
- free(jerasure_desc->matrix);
- free(jerasure_desc->bitmatrix);
-
- // NOTE, based on an inspection of the jerasure code used to build the
- // the schedule array, it appears that the sentinal used to signal the end
- // of the array is a value of -1 in the first int field in the dereferenced
- // value. We use this determine when to stop free-ing elements. See the
- // jerasure_smart_bitmatrix_to_schedule and
- // jerasure_dumb_bitmatrix_to_schedule functions in jerasure.c for the
- // details.
- schedule = jerasure_desc->schedule;
- if (schedule != NULL) {
- while (!end_of_array) {
- if (schedule[i] == NULL || schedule[i][0] == -1) {
- end_of_array = true;
- }
- free(schedule[i]);
- i++;
- }
- }
-
- free(schedule);
- free(jerasure_desc);
-}
-
-static int jerasure_rs_cauchy_exit(void *desc)
-{
- struct jerasure_rs_cauchy_descriptor *jerasure_desc =
- (struct jerasure_rs_cauchy_descriptor*)desc;
- free_rs_cauchy_desc(jerasure_desc);
- return 0;
-}
-
-/*
- * For the time being, we only claim compatibility with versions that
- * match exactly
- */
-static bool jerasure_rs_cauchy_is_compatible_with(uint32_t version) {
- return version == backend_jerasure_rs_cauchy.ec_backend_version;
-}
-
-
-struct ec_backend_op_stubs jerasure_rs_cauchy_op_stubs = {
- .INIT = jerasure_rs_cauchy_init,
- .EXIT = jerasure_rs_cauchy_exit,
- .ENCODE = jerasure_rs_cauchy_encode,
- .DECODE = jerasure_rs_cauchy_decode,
- .FRAGSNEEDED = jerasure_rs_cauchy_min_fragments,
- .RECONSTRUCT = jerasure_rs_cauchy_reconstruct,
- .ELEMENTSIZE = jerasure_rs_cauchy_element_size,
- .ISCOMPATIBLEWITH = jerasure_rs_cauchy_is_compatible_with,
-
-};
-
-struct ec_backend_common backend_jerasure_rs_cauchy = {
- .id = EC_BACKEND_JERASURE_RS_CAUCHY,
- .name = JERASURE_RS_CAUCHY_LIB_NAME,
- .soname = JERASURE_RS_CAUCHY_SO_NAME,
- .soversion = JERASURE_RS_CAUCHY_LIB_VER_STR,
- .ops = &jerasure_rs_cauchy_op_stubs,
- .backend_metadata_size = 0,
- .ec_backend_version = _VERSION(JERASURE_RS_CAUCHY_LIB_MAJOR,
- JERASURE_RS_CAUCHY_LIB_MINOR,
- JERASURE_RS_CAUCHY_LIB_REV),
-};
diff --git a/src/c/liberasurecode/src/backends/jerasure/jerasure_rs_vand.c b/src/c/liberasurecode/src/backends/jerasure/jerasure_rs_vand.c
deleted file mode 100644
index 7071e9b..0000000
--- a/src/c/liberasurecode/src/backends/jerasure/jerasure_rs_vand.c
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
- * Copyright 2014 Kevin M Greenan
- *
- * 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. 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 HOLDER 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.
- *
- * jerasure_rs_vand backend implementation
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "erasurecode.h"
-#include "erasurecode_backend.h"
-#include "erasurecode_helpers.h"
-
-#define JERASURE_RS_VAND_LIB_MAJOR 2
-#define JERASURE_RS_VAND_LIB_MINOR 0
-#define JERASURE_RS_VAND_LIB_REV 0
-#define JERASURE_RS_VAND_LIB_VER_STR "2.0"
-#define JERASURE_RS_VAND_LIB_NAME "jerasure_rs_vand"
-#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define JERASURE_RS_VAND_SO_NAME "libJerasure.dylib"
-#else
-#define JERASURE_RS_VAND_SO_NAME "libJerasure.so"
-#endif
-
-/* Forward declarations */
-struct ec_backend_op_stubs jerasure_rs_vand_ops;
-struct ec_backend jerasure_rs_vand;
-struct ec_backend_common backend_jerasure_rs_vand;
-
-typedef int* (*reed_sol_vandermonde_coding_matrix_func)(int, int, int);
-typedef void (*jerasure_matrix_encode_func)(int, int, int, int*, char **, char **, int);
-typedef int (*jerasure_matrix_decode_func)(int, int, int, int *, int, int*, char **, char **, int);
-typedef int (*jerasure_make_decoding_matrix_func)(int, int, int, int *, int *, int *, int *);
-typedef int * (*jerasure_erasures_to_erased_func)(int, int, int *);
-typedef void (*jerasure_matrix_dotprod_func)(int, int, int *,int *, int,char **, char **, int);
-
-struct jerasure_rs_vand_descriptor {
- /* calls required for init */
- reed_sol_vandermonde_coding_matrix_func reed_sol_vandermonde_coding_matrix;
-
- /* calls required for encode */
- jerasure_matrix_encode_func jerasure_matrix_encode;
-
- /* calls required for decode */
- jerasure_matrix_decode_func jerasure_matrix_decode;
-
- /* calls required for reconstruct */
- jerasure_make_decoding_matrix_func jerasure_make_decoding_matrix;
- jerasure_erasures_to_erased_func jerasure_erasures_to_erased;
- jerasure_matrix_dotprod_func jerasure_matrix_dotprod;
-
- /* fields needed to hold state */
- int *matrix;
- int k;
- int m;
- int w;
-};
-
-static int jerasure_rs_vand_encode(void *desc, char **data, char **parity,
- int blocksize)
-{
- struct jerasure_rs_vand_descriptor *jerasure_desc =
- (struct jerasure_rs_vand_descriptor*) desc;
-
- /* FIXME - make jerasure_matrix_encode return a value */
- jerasure_desc->jerasure_matrix_encode(jerasure_desc->k, jerasure_desc->m,
- jerasure_desc->w, jerasure_desc->matrix, data, parity, blocksize);
-
- return 0;
-}
-
-static int jerasure_rs_vand_decode(void *desc, char **data, char **parity,
- int *missing_idxs, int blocksize)
-{
- struct jerasure_rs_vand_descriptor *jerasure_desc =
- (struct jerasure_rs_vand_descriptor*)desc;
-
- /* FIXME - make jerasure_matrix_decode return a value */
- jerasure_desc->jerasure_matrix_decode(jerasure_desc->k,
- jerasure_desc->m, jerasure_desc->w,
- jerasure_desc->matrix, 1, missing_idxs, data, parity, blocksize);
-
- return 0;
-}
-
-static int jerasure_rs_vand_reconstruct(void *desc, char **data, char **parity,
- int *missing_idxs, int destination_idx, int blocksize)
-{
- int ret = 1; /* return code */
- int *decoding_row; /* decoding matrix row for decode */
- int *erased = NULL; /* k+m length list of erased frag ids */
- int *dm_ids = NULL; /* k length list of frag ids */
- int *decoding_matrix = NULL; /* matrix for decoding */
-
- struct jerasure_rs_vand_descriptor *jerasure_desc =
- (struct jerasure_rs_vand_descriptor*) desc;
-
- dm_ids = (int *) alloc_zeroed_buffer(sizeof(int) * jerasure_desc->k);
- decoding_matrix = (int *)
- alloc_zeroed_buffer(sizeof(int*) * jerasure_desc->k * jerasure_desc->k);
- if (NULL == decoding_matrix || NULL == dm_ids) {
- goto out;
- }
-
- erased = jerasure_desc->jerasure_erasures_to_erased(jerasure_desc->k,
- jerasure_desc->m, missing_idxs);
- if (NULL == erased) {
- goto out;
- }
-
- ret = jerasure_desc->jerasure_make_decoding_matrix(jerasure_desc->k,
- jerasure_desc->m, jerasure_desc->w, jerasure_desc->matrix,
- erased, decoding_matrix, dm_ids);
- if (destination_idx < jerasure_desc->k) {
- decoding_row = decoding_matrix + (destination_idx * jerasure_desc->k);
- } else {
- decoding_row = jerasure_desc->matrix +
- ((destination_idx - jerasure_desc->k) * jerasure_desc->k);
- }
-
- if (ret == 0) {
- jerasure_desc->jerasure_matrix_dotprod(jerasure_desc->k,
- jerasure_desc->w, decoding_row, dm_ids, destination_idx,
- data, parity, blocksize);
- } else {
- goto out;
- }
-
-out:
- free(erased);
- free(decoding_matrix);
- free(dm_ids);
-
- return ret;
-}
-
-static int jerasure_rs_vand_min_fragments(void *desc, int *missing_idxs,
- int *fragments_to_exclude, int *fragments_needed)
-{
- struct jerasure_rs_vand_descriptor *jerasure_desc =
- (struct jerasure_rs_vand_descriptor*)desc;
-
- uint64_t exclude_bm = convert_list_to_bitmap(fragments_to_exclude);
- uint64_t missing_bm = convert_list_to_bitmap(missing_idxs) | exclude_bm;
- int i;
- int j = 0;
- int ret = -1;
-
- for (i = 0; i < (jerasure_desc->k + jerasure_desc->m); i++) {
- if (!(missing_bm & (1 << i))) {
- fragments_needed[j] = i;
- j++;
- }
- if (j == jerasure_desc->k) {
- ret = 0;
- fragments_needed[j] = -1;
- break;
- }
- }
-
- return ret;
-}
-
-#define DEFAULT_W 16
-static void * jerasure_rs_vand_init(struct ec_backend_args *args,
- void *backend_sohandle)
-{
- struct jerasure_rs_vand_descriptor *desc = NULL;
-
- desc = (struct jerasure_rs_vand_descriptor *)
- malloc(sizeof(struct jerasure_rs_vand_descriptor));
- if (NULL == desc) {
- return NULL;
- }
-
- desc->k = args->uargs.k;
- desc->m = args->uargs.m;
-
- if (args->uargs.w <= 0)
- args->uargs.w = DEFAULT_W;
-
- /* store w back in args so upper layer can get to it */
- desc->w = args->uargs.w;
-
- /* validate EC arguments */
- {
- long long max_symbols;
- if (desc->w != 8 && desc->w != 16 && desc->w != 32) {
- goto error;
- }
- max_symbols = 1LL << desc->w;
- if ((desc->k + desc->m) > max_symbols) {
- goto error;
- }
- }
-
- /*
- * ISO C forbids casting a void* to a function pointer.
- * Since dlsym return returns a void*, we use this union to
- * "transform" the void* to a function pointer.
- */
- union {
- reed_sol_vandermonde_coding_matrix_func initp;
- jerasure_matrix_encode_func encodep;
- jerasure_matrix_decode_func decodep;
- jerasure_make_decoding_matrix_func decodematrixp;
- jerasure_erasures_to_erased_func erasep;
- jerasure_matrix_dotprod_func dotprodp;
- void *vptr;
- } func_handle = {.vptr = NULL};
-
-
- /* fill in function addresses */
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "jerasure_matrix_encode");
- desc->jerasure_matrix_encode = func_handle.encodep;
- if (NULL == desc->jerasure_matrix_encode) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "jerasure_matrix_decode");
- desc->jerasure_matrix_decode = func_handle.decodep;
- if (NULL == desc->jerasure_matrix_decode) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "jerasure_make_decoding_matrix");
- desc->jerasure_make_decoding_matrix = func_handle.decodematrixp;
- if (NULL == desc->jerasure_make_decoding_matrix) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "jerasure_matrix_dotprod");
- desc->jerasure_matrix_dotprod = func_handle.dotprodp;
- if (NULL == desc->jerasure_matrix_dotprod) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "jerasure_erasures_to_erased");
- desc->jerasure_erasures_to_erased = func_handle.erasep;
- if (NULL == desc->jerasure_erasures_to_erased) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "reed_sol_vandermonde_coding_matrix");
- desc->reed_sol_vandermonde_coding_matrix = func_handle.initp;
- if (NULL == desc->reed_sol_vandermonde_coding_matrix) {
- goto error;
- }
-
- desc->matrix = desc->reed_sol_vandermonde_coding_matrix(
- desc->k, desc->m, desc->w);
- if (NULL == desc->matrix) {
- goto error;
- }
-
- return desc;
-
-error:
- free(desc);
-
- return NULL;
-}
-
-/**
- * Return the element-size, which is the number of bits stored
- * on a given device, per codeword. For Vandermonde, this is
- * 'w'. For somthing like cauchy, this is packetsize * w.
- *
- * Returns the size in bits!
- */
-static int
-jerasure_rs_vand_element_size(void* desc)
-{
- struct jerasure_rs_vand_descriptor *jerasure_desc =
- (struct jerasure_rs_vand_descriptor*)desc;
-
- /* Note that cauchy will return pyeclib_handle->w * PYECC_CAUCHY_PACKETSIZE * 8 */
- return jerasure_desc->w;
-}
-
-static int jerasure_rs_vand_exit(void *desc)
-{
- struct jerasure_rs_vand_descriptor *jerasure_desc = NULL;
-
- jerasure_desc = (struct jerasure_rs_vand_descriptor*) desc;
- free(jerasure_desc->matrix);
- free(jerasure_desc);
-
- return 0;
-}
-
-/*
- * For the time being, we only claim compatibility with versions that
- * match exactly
- */
-static bool jerasure_rs_vand_is_compatible_with(uint32_t version) {
- return version == backend_jerasure_rs_vand.ec_backend_version;
-}
-
-struct ec_backend_op_stubs jerasure_rs_vand_op_stubs = {
- .INIT = jerasure_rs_vand_init,
- .EXIT = jerasure_rs_vand_exit,
- .ENCODE = jerasure_rs_vand_encode,
- .DECODE = jerasure_rs_vand_decode,
- .FRAGSNEEDED = jerasure_rs_vand_min_fragments,
- .RECONSTRUCT = jerasure_rs_vand_reconstruct,
- .ELEMENTSIZE = jerasure_rs_vand_element_size,
- .ISCOMPATIBLEWITH = jerasure_rs_vand_is_compatible_with,
-};
-
-struct ec_backend_common backend_jerasure_rs_vand = {
- .id = EC_BACKEND_JERASURE_RS_VAND,
- .name = JERASURE_RS_VAND_LIB_NAME,
- .soname = JERASURE_RS_VAND_SO_NAME,
- .soversion = JERASURE_RS_VAND_LIB_VER_STR,
- .ops = &jerasure_rs_vand_op_stubs,
- .backend_metadata_size = 0,
- .ec_backend_version = _VERSION(JERASURE_RS_VAND_LIB_MAJOR,
- JERASURE_RS_VAND_LIB_MINOR,
- JERASURE_RS_VAND_LIB_REV),
-};
diff --git a/src/c/liberasurecode/src/backends/null/null.c b/src/c/liberasurecode/src/backends/null/null.c
deleted file mode 100644
index 4ebdc89..0000000
--- a/src/c/liberasurecode/src/backends/null/null.c
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * Copyright 2014 Tushar Gohad
- *
- * 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. 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 HOLDER 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.
- *
- * liberasurecode null backend
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "erasurecode.h"
-#include "erasurecode_backend.h"
-#define NULL_LIB_MAJOR 1
-#define NULL_LIB_MINOR 0
-#define NULL_LIB_REV 0
-#define NULL_LIB_VER_STR "1.0"
-#define NULL_LIB_NAME "null"
-#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define NULL_SO_NAME "libnullcode.dylib"
-#else
-#define NULL_SO_NAME "libnullcode.so"
-#endif
-/* Forward declarations */
-struct ec_backend null;
-struct ec_backend_op_stubs null_ops;
-
-typedef void* (*init_null_code_func)(int, int, int);
-typedef int (*null_code_encode_func)(void *, char **, char **, int);
-typedef int (*null_code_decode_func)(void *, char **, char **, int *, int, int);
-typedef int (*null_reconstruct_func)(char **, int, uint64_t, int, char *);
-typedef int (*null_code_fragments_needed_func)(void *, int *, int *, int *);
-
-struct null_descriptor {
- /* calls required for init */
- init_null_code_func init_null_code;
-
- /* calls required for encode */
- null_code_encode_func null_code_encode;
-
- /* calls required for decode */
- null_code_decode_func null_code_decode;
-
- /* calls required for reconstruct */
- null_reconstruct_func null_reconstruct;
-
- /* set of fragments needed to reconstruct at a minimum */
- null_code_fragments_needed_func null_code_fragments_needed;
-
- /* fields needed to hold state */
- int *matrix;
- int k;
- int m;
- int w;
- int arg1;
-};
-
-#define DEFAULT_W 32
-
-static int null_encode(void *desc, char **data, char **parity, int blocksize)
-{
- return 0;
-}
-
-static int null_decode(void *desc, char **data, char **parity,
- int *missing_idxs, int blocksize)
-{
- return 0;
-}
-
-static int null_reconstruct(void *desc, char **data, char **parity,
- int *missing_idxs, int destination_idx, int blocksize)
-{
- return 0;
-}
-
-static int null_min_fragments(void *desc, int *missing_idxs,
- int *fragments_to_exclude, int *fragments_needed)
-{
- return 0;
-}
-
-/**
- * Return the element-size, which is the number of bits stored
- * on a given device, per codeword. This is usually just 'w'.
- */
-static int
-null_element_size(void* desc)
-{
- return DEFAULT_W;
-}
-
-static void * null_init(struct ec_backend_args *args, void *backend_sohandle)
-{
- struct null_descriptor *xdesc = NULL;
-
- /* allocate and fill in null_descriptor */
- xdesc = (struct null_descriptor *) malloc(sizeof(struct null_descriptor));
- if (NULL == xdesc) {
- return NULL;
- }
- memset(xdesc, 0, sizeof(struct null_descriptor));
-
- xdesc->k = args->uargs.k;
- xdesc->m = args->uargs.m;
- xdesc->w = args->uargs.w;
-
- if (xdesc->w <= 0)
- xdesc->w = DEFAULT_W;
-
- /* Sample on how to pass extra args to the backend */
- xdesc->arg1 = args->uargs.priv_args1.null_args.arg1;
-
- /* store w back in args so upper layer can get to it */
- args->uargs.w = DEFAULT_W;
-
- /* validate EC arguments */
- {
- long long max_symbols;
- if (xdesc->w != 8 && xdesc->w != 16 && xdesc->w != 32) {
- goto error;
- }
- max_symbols = 1LL << xdesc->w;
- if ((xdesc->k + xdesc->m) > max_symbols) {
- goto error;
- }
- }
-
- /*
- * ISO C forbids casting a void* to a function pointer.
- * Since dlsym return returns a void*, we use this union to
- * "transform" the void* to a function pointer.
- */
- union {
- init_null_code_func initp;
- null_code_encode_func encodep;
- null_code_decode_func decodep;
- null_reconstruct_func reconp;
- null_code_fragments_needed_func fragsneededp;
- void *vptr;
- } func_handle = {.vptr = NULL};
-
- /* fill in function addresses */
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "null_code_init");
- xdesc->init_null_code = func_handle.initp;
- if (NULL == xdesc->init_null_code) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "null_code_encode");
- xdesc->null_code_encode = func_handle.encodep;
- if (NULL == xdesc->null_code_encode) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "null_code_decode");
- xdesc->null_code_decode = func_handle.decodep;
- if (NULL == xdesc->null_code_decode) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "null_reconstruct");
- xdesc->null_reconstruct = func_handle.reconp;
- if (NULL == xdesc->null_reconstruct) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "null_code_fragments_needed");
- xdesc->null_code_fragments_needed = func_handle.fragsneededp;
- if (NULL == xdesc->null_code_fragments_needed) {
- goto error;
- }
-
- return (void *) xdesc;
-
-error:
- free (xdesc);
-
- return NULL;
-}
-
-static int null_exit(void *desc)
-{
- struct null_descriptor *xdesc = (struct null_descriptor *) desc;
-
- free (xdesc);
- return 0;
-}
-
-static bool null_is_compatible_with(uint32_t version) {
- return true;
-}
-struct ec_backend_op_stubs null_op_stubs = {
- .INIT = null_init,
- .EXIT = null_exit,
- .ENCODE = null_encode,
- .DECODE = null_decode,
- .FRAGSNEEDED = null_min_fragments,
- .RECONSTRUCT = null_reconstruct,
- .ELEMENTSIZE = null_element_size,
- .ISCOMPATIBLEWITH = null_is_compatible_with,
-};
-
-struct ec_backend_common backend_null = {
- .id = EC_BACKEND_NULL,
- .name = NULL_LIB_NAME,
- .soname = NULL_SO_NAME,
- .soversion = NULL_LIB_VER_STR,
- .ops = &null_op_stubs,
- .backend_metadata_size = 0,
- .ec_backend_version = _VERSION(NULL_LIB_MAJOR, NULL_LIB_MINOR,
- NULL_LIB_REV),
-};
diff --git a/src/c/liberasurecode/src/backends/shss/shss.c b/src/c/liberasurecode/src/backends/shss/shss.c
deleted file mode 100644
index 601fc01..0000000
--- a/src/c/liberasurecode/src/backends/shss/shss.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * Copyright(c) 2015 NTT corp. 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. 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 HOLDER 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.
- *
- * liberasurecode shss backend
- *
- * Please contact us if you are insterested in the NTT backend (welcome!):
- * Kota Tsuyuzaki <tsuyuzaki.kota@lab.ntt.co.jp>
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "erasurecode.h"
-#include "erasurecode_helpers.h"
-#include "erasurecode_backend.h"
-
-/* Forward declarations */
-struct ec_backend shss;
-struct ec_backend_op_stubs shss_ops;
-struct ec_backend_common backend_shss;
-
-typedef int (*shss_encode_func)(char **, size_t, int, int, int, int, long long *);
-typedef int (*shss_decode_func)(char **, size_t, int *, int, int, int, int, int, long long *);
-typedef int (*shss_reconstruct_func)(char **, size_t, int *, int, int *, int, int, int, int, int, long long *);
-
-struct shss_descriptor {
- /* calls required for init */
- shss_encode_func ssencode;
- shss_decode_func ssdecode;
- shss_reconstruct_func ssreconst;
-
- /* fields needed to hold state */
- int k;
- int m;
- int n;
- int w;
- int aes_bit_length;
-};
-
-#define SHSS_LIB_VER_STR "1.0"
-#define SHSS_LIB_NAME "shss"
-#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define SHSS_SO_NAME "libshss.dylib"
-#else
-#define SHSS_SO_NAME "libshss.so"
-#endif
-#define DEFAULT_W 128
-#define METADATA 32
-
-static int shss_encode(void *desc, char **data, char **parity,
- int blocksize)
-{
- int i;
- int ret = 0;
- int priv_bitnum = 128; // privacy bit number 0 or 128(default) or 256
- int chksum = 0; // chksum 0 or 64
- char **encoded;
- long long einfo;
- struct shss_descriptor *xdesc =
- (struct shss_descriptor *) desc;
-
- if (xdesc->aes_bit_length != -1) {
- priv_bitnum = xdesc->aes_bit_length;
- }
-
- encoded = alloca(sizeof(char*)*xdesc->n);
-
- for (i = 0; i<xdesc->k; i++) encoded[i] = (char*)data[i];
- for (i = 0; i<xdesc->m; i++) encoded[i+xdesc->k] = (char*)parity[i];
-
- ret = xdesc->ssencode((char**)encoded, (size_t)blocksize,
- xdesc->k, xdesc->m, priv_bitnum, chksum, &einfo);
-
- if (ret > 0) {
- return -ret;
- }
-
- return 0;
-}
-
-static int shss_decode(void *desc, char **data, char **parity,
- int *missing_idxs, int blocksize)
-{
- int i;
- int missing_size = 0;
- int ret = 0;
- int priv_bitnum = 128; // privacy bit number 0 or 128(default) or 256
- int chksum = 0; // chksum 0 or 64
- char **decoded;
- long long einfo;
- struct shss_descriptor *xdesc =
- (struct shss_descriptor *) desc;
-
- if (xdesc->aes_bit_length != -1) {
- priv_bitnum = xdesc->aes_bit_length;
- }
-
- decoded = alloca(sizeof(char*)*xdesc->n);
-
- for (i = 0; i<xdesc->k; i++) decoded[i] = (char*)data[i];
- for (i = 0; i<xdesc->m; i++) decoded[i+xdesc->k] = (char*)parity[i];
- for (i = 0; i<xdesc->n; i++) {
- if (i == missing_idxs[missing_size]) {
- missing_size++;
- }
- }
-
- ret = xdesc->ssdecode((char**)decoded, (size_t)blocksize, missing_idxs, missing_size,
- xdesc->k, xdesc->m, priv_bitnum, chksum, &einfo);
-
- if (ret > 0) {
- return -ret;
- }
-
- return 0;
-}
-
-static int shss_reconstruct(void *desc, char **data, char **parity,
- int *missing_idxs, int destination_idx, int blocksize)
-{
- int i;
- int missing_size = 0;
- int ret = 0;
- int priv_bitnum = 128; // privacy bit number 0 or 128(default) or 256
- int chksum = 0; // chksum 0 or 64
- int dst_size = 1;
- char **reconstructed;
- long long einfo;
- struct shss_descriptor *xdesc =
- (struct shss_descriptor *) desc;
-
- if (xdesc->aes_bit_length != -1) {
- priv_bitnum = xdesc->aes_bit_length;
- }
-
- reconstructed = alloca(sizeof(char*)*xdesc->n);
-
- for (i = 0; i<xdesc->k; i++) reconstructed[i] = (char*)data[i];
- for (i = 0; i<xdesc->m; i++) reconstructed[i+xdesc->k] = (char*)parity[i];
- for (i = 0; i<xdesc->n; i++) {
- if (i == missing_idxs[missing_size]) {
- missing_size++;
- }
- }
-
- ret = xdesc->ssreconst((char**)reconstructed, (size_t)blocksize,
- &destination_idx, dst_size, missing_idxs, missing_size, xdesc->k,
- xdesc->m, priv_bitnum, chksum, &einfo);
-
- if (ret > 0) {
- return -ret;
- }
-
- return 0;
-}
-
-static int shss_fragments_needed(void *desc, int *missing_idxs,
- int *fragments_to_exclude, int *fragments_needed)
-{
- struct shss_descriptor *xdesc =
- (struct shss_descriptor *) desc;
- uint64_t exclude_bm = convert_list_to_bitmap(fragments_to_exclude);
- uint64_t missing_bm = convert_list_to_bitmap(missing_idxs) | exclude_bm;
- int i;
- int j = 0;
- int ret = -101;
-
- for (i = 0; i < xdesc->n; i++) {
- if (!(missing_bm & (1 << i))) {
- fragments_needed[j] = i;
- j++;
- }
- if (j == xdesc->k) {
- ret = 0;
- fragments_needed[j] = -1;
- break;
- }
- }
-
- return ret;
-}
-
-/**
- * Return the element-size, which is the number of bits stored
- * on a given device, per codeword. This is usually just 'w'.
- */
-static int shss_element_size(void* desc)
-{
- return DEFAULT_W;
-}
-
-static void * shss_init(struct ec_backend_args *args, void *backend_sohandle)
-{
- struct shss_descriptor *desc = NULL;
-
- desc = (struct shss_descriptor *)
- malloc(sizeof(struct shss_descriptor));
- if (NULL == desc) {
- return NULL;
- }
-
- desc->k = args->uargs.k;
- desc->m = args->uargs.m;
- desc->n = args->uargs.k + args->uargs.m;
- desc->w = DEFAULT_W;
- args->uargs.w = DEFAULT_W;
-
- /* Sample on how to pass extra args to the backend */
- // TODO: Need discussion how to pass extra args.
- // tentatively we could pass with priv_args2 as the bit_length
- int *priv = (int *)args->uargs.priv_args2;
- if(priv != NULL){
- desc->aes_bit_length = priv[0]; // AES bit number
- }else{
- desc->aes_bit_length = 128;
- }
-
- union {
- shss_encode_func encodep;
- shss_decode_func decodep;
- shss_reconstruct_func reconp;
- void *vptr;
- } func_handle;
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "ssencode");
- desc->ssencode = func_handle.encodep;
- if (NULL == desc->ssencode) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "ssdecode");
- desc->ssdecode = func_handle.decodep;
- if (NULL == desc->ssdecode) {
- goto error;
- }
-
- func_handle.vptr = NULL;
- func_handle.vptr = dlsym(backend_sohandle, "ssreconst");
- desc->ssreconst = func_handle.reconp;
- if (NULL == desc->ssreconst) {
- goto error;
- }
-
- return desc;
-
-error:
- free(desc);
-
- return NULL;
-}
-
-static int shss_exit(void *desc)
-{
- if (desc != NULL) {
- free(desc);
- }
- return 0;
-}
-
-static bool shss_is_compatible_with(uint32_t version) {
- return version == backend_shss.ec_backend_version;
-}
-
-struct ec_backend_op_stubs shss_op_stubs = {
- .INIT = shss_init,
- .EXIT = shss_exit,
- .ENCODE = shss_encode,
- .DECODE = shss_decode,
- .FRAGSNEEDED = shss_fragments_needed,
- .RECONSTRUCT = shss_reconstruct,
- .ELEMENTSIZE = shss_element_size,
- .ISCOMPATIBLEWITH = shss_is_compatible_with,
-};
-
-struct ec_backend_common backend_shss = {
- .id = EC_BACKEND_SHSS,
- .name = SHSS_LIB_NAME,
- .soname = SHSS_SO_NAME,
- .soversion = SHSS_LIB_VER_STR,
- .ops = &shss_op_stubs,
- .backend_metadata_size = METADATA,
-};
diff --git a/src/c/liberasurecode/src/backends/xor/flat_xor_hd.c b/src/c/liberasurecode/src/backends/xor/flat_xor_hd.c
deleted file mode 100644
index 2e8182e..0000000
--- a/src/c/liberasurecode/src/backends/xor/flat_xor_hd.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright 2014 Tushar Gohad
- *
- * 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. 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 HOLDER 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.
- *
- * liberasurecode flat_xor_hd backend
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <xor_code.h>
-
-#include "erasurecode.h"
-#include "erasurecode_backend.h"
-
-#define FLAT_XOR_LIB_MAJOR 1
-#define FLAT_XOR_LIB_MINOR 0
-#define FLAT_XOR_LIB_REV 0
-#define FLAT_XOR_LIB_VER_STR "1.0"
-#define FLAT_XOR_LIB_NAME "flat_xor_hd"
-#if defined(__MACOS__) || defined(__MACOSX__) || defined(__OSX__) || defined(__APPLE__)
-#define FLAT_XOR_SO_NAME "libXorcode.dylib"
-#else
-#define FLAT_XOR_SO_NAME "libXorcode.so"
-#endif
-#define DEFAULT_W 32
-
-/* Forward declarations */
-struct ec_backend_op_stubs flat_xor_hd_ops;
-struct ec_backend flat_xor_hd;
-struct ec_backend_common backend_flat_xor_hd;
-
-typedef xor_code_t* (*init_xor_hd_code_func)(int, int, int);
-typedef void (*xor_code_encode_func)(xor_code_t *, char **, char **, int);
-typedef int (*xor_code_decode_func)(xor_code_t *, char **, char **, int *, int, int);
-typedef int (*xor_hd_fragments_needed_func)(xor_code_t *, int *, int *, int *);
-
-struct flat_xor_hd_descriptor {
- xor_code_t *xor_desc;
- init_xor_hd_code_func init_xor_hd_code;
- xor_code_encode_func xor_code_encode;
- xor_code_decode_func xor_code_decode;
- xor_hd_fragments_needed_func xor_hd_fragments_needed;
-};
-
-static int flat_xor_hd_encode(void *desc,
- char **data, char **parity, int blocksize)
-{
- struct flat_xor_hd_descriptor *xdesc =
- (struct flat_xor_hd_descriptor *) desc;
-
- xor_code_t *xor_desc = (xor_code_t *) xdesc->xor_desc;
- xor_desc->encode(xor_desc, data, parity, blocksize);
- return 0;
-}
-
-static int flat_xor_hd_decode(void *desc,
- char **data, char **parity, int *missing_idxs,
- int blocksize)
-{
- struct flat_xor_hd_descriptor *xdesc =
- (struct flat_xor_hd_descriptor *) desc;
-
- xor_code_t *xor_desc = (xor_code_t *) xdesc->xor_desc;
- return xor_desc->decode(xor_desc, data, parity, missing_idxs, blocksize, 1);
-}
-
-static int flat_xor_hd_reconstruct(void *desc,
- char **data, char **parity, int *missing_idxs,
- int destination_idx, int blocksize)
-{
- struct flat_xor_hd_descriptor *xdesc =
- (struct flat_xor_hd_descriptor *) desc;
-
- xor_code_t *xor_desc = (xor_code_t *) xdesc->xor_desc;
- xor_reconstruct_one(xor_desc, data, parity,
- missing_idxs, destination_idx, blocksize);
- return 0;
-}
-
-static int flat_xor_hd_min_fragments(void *desc,
- int *missing_idxs, int *fragments_to_exclude,
- int *fragments_needed)
-{
- struct flat_xor_hd_descriptor *xdesc =
- (struct flat_xor_hd_descriptor *) desc;
-
- xor_code_t *xor_desc = (xor_code_t *) xdesc->xor_desc;
- xor_desc->fragments_needed(xor_desc, missing_idxs, fragments_to_exclude, fragments_needed);
- return 0;
-}
-
-/**
- * Return the element-size, which is the number of bits stored
- * on a given device, per codeword. This is usually just 'w'.
- */
-static int
-flar_xor_hd_element_size(void* desc)
-{
- return DEFAULT_W;
-}
-
-static void * flat_xor_hd_init(struct ec_backend_args *args, void *sohandle)
-{
- int k = args->uargs.k;
- int m = args->uargs.m;
- int hd = args->uargs.hd;
-
- xor_code_t *xor_desc = NULL;
- struct flat_xor_hd_descriptor *bdesc = NULL;
-
- /* store w back in args so upper layer can get to it */
- args->uargs.w = DEFAULT_W;
-
- /* init xor_code_t descriptor */
- xor_desc = init_xor_hd_code(k, m, hd);
- if (NULL == xor_desc) {
- return NULL;
- }
-
- /* fill in flat_xor_hd_descriptor */
- bdesc = (struct flat_xor_hd_descriptor *)
- malloc(sizeof(struct flat_xor_hd_descriptor));
- if (NULL == bdesc) {
- free (xor_desc);
- return NULL;
- }
-
- bdesc->xor_desc = xor_desc;
-
- return (void *) bdesc;
-}
-
-static int flat_xor_hd_exit(void *desc)
-{
- struct flat_xor_hd_descriptor *bdesc =
- (struct flat_xor_hd_descriptor *) desc;
-
- free (bdesc->xor_desc);
- free (bdesc);
- return 0;
-}
-
-/*
- * For the time being, we only claim compatibility with versions that
- * match exactly
- */
-static bool flat_xor_is_compatible_with(uint32_t version) {
- return version == backend_flat_xor_hd.ec_backend_version;
-}
-
-struct ec_backend_op_stubs flat_xor_hd_op_stubs = {
- .INIT = flat_xor_hd_init,
- .EXIT = flat_xor_hd_exit,
- .ENCODE = flat_xor_hd_encode,
- .DECODE = flat_xor_hd_decode,
- .FRAGSNEEDED = flat_xor_hd_min_fragments,
- .RECONSTRUCT = flat_xor_hd_reconstruct,
- .ELEMENTSIZE = flar_xor_hd_element_size,
- .ISCOMPATIBLEWITH = flat_xor_is_compatible_with,
-};
-
-struct ec_backend_common backend_flat_xor_hd = {
- .id = EC_BACKEND_FLAT_XOR_HD,
- .name = FLAT_XOR_LIB_NAME,
- .soname = FLAT_XOR_SO_NAME,
- .soversion = FLAT_XOR_LIB_VER_STR,
- .ops = &flat_xor_hd_op_stubs,
- .backend_metadata_size = 0,
- .ec_backend_version = _VERSION(FLAT_XOR_LIB_MAJOR,
- FLAT_XOR_LIB_MINOR,
- FLAT_XOR_LIB_REV),
-};
diff --git a/src/c/liberasurecode/src/builtin/null_code/Makefile.am b/src/c/liberasurecode/src/builtin/null_code/Makefile.am
deleted file mode 100644
index 3cae16f..0000000
--- a/src/c/liberasurecode/src/builtin/null_code/Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
-lib_LTLIBRARIES = libnullcode.la
-
-# libnullcode params
-libnullcode_la_SOURCES = null_code.c
-libnullcode_la_CPPFLAGS = -I$(top_srcdir)/include/null_code @GCOV_FLAGS@
-
-# Version format (C - A).(A).(R) for C:R:A input
-libnullcode_la_LDFLAGS = @GCOV_LDFLAGS@ -rpath '$(libdir)' -version-info 1:1:0
-
-MOSTLYCLEANFILES = *.gcda *.gcno *.gcov
diff --git a/src/c/liberasurecode/src/builtin/null_code/Makefile.in b/src/c/liberasurecode/src/builtin/null_code/Makefile.in
deleted file mode 100644
index f042ac0..0000000
--- a/src/c/liberasurecode/src/builtin/null_code/Makefile.in
+++ /dev/null
@@ -1,663 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/builtin/null_code
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/depcomp
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_ext.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config_liberasurecode.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(libdir)"
-LTLIBRARIES = $(lib_LTLIBRARIES)
-libnullcode_la_LIBADD =
-am_libnullcode_la_OBJECTS = libnullcode_la-null_code.lo
-libnullcode_la_OBJECTS = $(am_libnullcode_la_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-libnullcode_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(AM_CFLAGS) $(CFLAGS) $(libnullcode_la_LDFLAGS) $(LDFLAGS) -o \
- $@
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(libnullcode_la_SOURCES)
-DIST_SOURCES = $(libnullcode_la_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DOXYGEN = @DOXYGEN@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GCOV_FLAGS = @GCOV_FLAGS@
-GCOV_LDFLAGS = @GCOV_LDFLAGS@
-GREP = @GREP@
-HAVE_DOXYGEN = @HAVE_DOXYGEN@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJECTS = @OBJECTS@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIMD_FLAGS = @SIMD_FLAGS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_aux_dir = @ac_aux_dir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-lib_LTLIBRARIES = libnullcode.la
-
-# libnullcode params
-libnullcode_la_SOURCES = null_code.c
-libnullcode_la_CPPFLAGS = -I$(top_srcdir)/include/null_code @GCOV_FLAGS@
-
-# Version format (C - A).(A).(R) for C:R:A input
-libnullcode_la_LDFLAGS = @GCOV_LDFLAGS@ -rpath '$(libdir)' -version-info 1:1:0
-MOSTLYCLEANFILES = *.gcda *.gcno *.gcov
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/builtin/null_code/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu src/builtin/null_code/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- list2=; for p in $$list; do \
- if test -f $$p; then \
- list2="$$list2 $$p"; \
- else :; fi; \
- done; \
- test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
- }
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- for p in $$list; do \
- $(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
- done
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
- @list='$(lib_LTLIBRARIES)'; \
- locs=`for p in $$list; do echo $$p; done | \
- sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
- sort -u`; \
- test -z "$$locs" || { \
- echo rm -f $${locs}; \
- rm -f $${locs}; \
- }
-
-libnullcode.la: $(libnullcode_la_OBJECTS) $(libnullcode_la_DEPENDENCIES) $(EXTRA_libnullcode_la_DEPENDENCIES)
- $(AM_V_CCLD)$(libnullcode_la_LINK) -rpath $(libdir) $(libnullcode_la_OBJECTS) $(libnullcode_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnullcode_la-null_code.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-libnullcode_la-null_code.lo: null_code.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnullcode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnullcode_la-null_code.lo -MD -MP -MF $(DEPDIR)/libnullcode_la-null_code.Tpo -c -o libnullcode_la-null_code.lo `test -f 'null_code.c' || echo '$(srcdir)/'`null_code.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnullcode_la-null_code.Tpo $(DEPDIR)/libnullcode_la-null_code.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='null_code.c' object='libnullcode_la-null_code.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnullcode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnullcode_la-null_code.lo `test -f 'null_code.c' || echo '$(srcdir)/'`null_code.c
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
- -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-libLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-libLTLIBRARIES
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
- ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-libLTLIBRARIES install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/liberasurecode/src/builtin/null_code/null_code.c b/src/c/liberasurecode/src/builtin/null_code/null_code.c
deleted file mode 100644
index efb5873..0000000
--- a/src/c/liberasurecode/src/builtin/null_code/null_code.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * <Copyright>
- *
- * 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. 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 HOLDER 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.
- *
- * null EC backend
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#include <stdlib.h>
-#include <stdint.h>
-
-/* calls required for init */
-void* null_code_init(int k, int m, int hd)
-{
- /* add your code here */
- return NULL;
-}
-
-/* calls required for encode */
-int null_code_encode(void *code_desc, char **data, char **parity,
- int blocksize)
-{
- /* add your code here */
- return 0;
-}
-
-/* calls required for decode */
-int null_code_decode(void *code_desc, char **data, char **parity,
- int *missing_idxs, int blocksize, int decode_parity)
-{
- /* add your code here */
- return 0;
-}
-
-/* calls required for reconstruct */
-int null_reconstruct(char **available_fragments, int num_fragments,
- uint64_t fragment_len, int destination_idx, char* out_fragment)
-{
- /* add your code here */
- return 0;
-}
-
-/* set of fragments needed to reconstruct at a minimum */
-int null_code_fragments_needed(void *code_desc, int *missing_idxs,
- int *fragments_needed)
-{
- /* add your code here */
- return 0;
-}
diff --git a/src/c/liberasurecode/src/builtin/xor_codes/Makefile.am b/src/c/liberasurecode/src/builtin/xor_codes/Makefile.am
deleted file mode 100644
index 417776a..0000000
--- a/src/c/liberasurecode/src/builtin/xor_codes/Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
-lib_LTLIBRARIES = libXorcode.la
-
-# libXorcode params
-libXorcode_la_SOURCES = xor_code.c xor_hd_code.c
-libXorcode_la_CPPFLAGS = -I$(top_srcdir)/include/xor_codes $(SIMD_FLAGS) @GCOV_FLAGS@
-
-# Version format (C - A).(A).(R) for C:R:A input
-libXorcode_la_LDFLAGS = @GCOV_LDFLAGS@ -rpath '$(libdir)' -version-info 1:1:0
-
-MOSTLYCLEANFILES = *.gcda *.gcno *.gcov
diff --git a/src/c/liberasurecode/src/builtin/xor_codes/Makefile.in b/src/c/liberasurecode/src/builtin/xor_codes/Makefile.in
deleted file mode 100644
index 5921374..0000000
--- a/src/c/liberasurecode/src/builtin/xor_codes/Makefile.in
+++ /dev/null
@@ -1,671 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/builtin/xor_codes
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/depcomp
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_ext.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config_liberasurecode.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(libdir)"
-LTLIBRARIES = $(lib_LTLIBRARIES)
-libXorcode_la_LIBADD =
-am_libXorcode_la_OBJECTS = libXorcode_la-xor_code.lo \
- libXorcode_la-xor_hd_code.lo
-libXorcode_la_OBJECTS = $(am_libXorcode_la_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-libXorcode_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(libXorcode_la_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(libXorcode_la_SOURCES)
-DIST_SOURCES = $(libXorcode_la_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DOXYGEN = @DOXYGEN@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GCOV_FLAGS = @GCOV_FLAGS@
-GCOV_LDFLAGS = @GCOV_LDFLAGS@
-GREP = @GREP@
-HAVE_DOXYGEN = @HAVE_DOXYGEN@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJECTS = @OBJECTS@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIMD_FLAGS = @SIMD_FLAGS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_aux_dir = @ac_aux_dir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-lib_LTLIBRARIES = libXorcode.la
-
-# libXorcode params
-libXorcode_la_SOURCES = xor_code.c xor_hd_code.c
-libXorcode_la_CPPFLAGS = -I$(top_srcdir)/include/xor_codes $(SIMD_FLAGS) @GCOV_FLAGS@
-
-# Version format (C - A).(A).(R) for C:R:A input
-libXorcode_la_LDFLAGS = @GCOV_LDFLAGS@ -rpath '$(libdir)' -version-info 1:1:0
-MOSTLYCLEANFILES = *.gcda *.gcno *.gcov
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/builtin/xor_codes/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu src/builtin/xor_codes/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- list2=; for p in $$list; do \
- if test -f $$p; then \
- list2="$$list2 $$p"; \
- else :; fi; \
- done; \
- test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
- }
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- for p in $$list; do \
- $(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
- done
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
- @list='$(lib_LTLIBRARIES)'; \
- locs=`for p in $$list; do echo $$p; done | \
- sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
- sort -u`; \
- test -z "$$locs" || { \
- echo rm -f $${locs}; \
- rm -f $${locs}; \
- }
-
-libXorcode.la: $(libXorcode_la_OBJECTS) $(libXorcode_la_DEPENDENCIES) $(EXTRA_libXorcode_la_DEPENDENCIES)
- $(AM_V_CCLD)$(libXorcode_la_LINK) -rpath $(libdir) $(libXorcode_la_OBJECTS) $(libXorcode_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libXorcode_la-xor_code.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libXorcode_la-xor_hd_code.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-libXorcode_la-xor_code.lo: xor_code.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libXorcode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libXorcode_la-xor_code.lo -MD -MP -MF $(DEPDIR)/libXorcode_la-xor_code.Tpo -c -o libXorcode_la-xor_code.lo `test -f 'xor_code.c' || echo '$(srcdir)/'`xor_code.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libXorcode_la-xor_code.Tpo $(DEPDIR)/libXorcode_la-xor_code.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xor_code.c' object='libXorcode_la-xor_code.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libXorcode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libXorcode_la-xor_code.lo `test -f 'xor_code.c' || echo '$(srcdir)/'`xor_code.c
-
-libXorcode_la-xor_hd_code.lo: xor_hd_code.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libXorcode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libXorcode_la-xor_hd_code.lo -MD -MP -MF $(DEPDIR)/libXorcode_la-xor_hd_code.Tpo -c -o libXorcode_la-xor_hd_code.lo `test -f 'xor_hd_code.c' || echo '$(srcdir)/'`xor_hd_code.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libXorcode_la-xor_hd_code.Tpo $(DEPDIR)/libXorcode_la-xor_hd_code.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xor_hd_code.c' object='libXorcode_la-xor_hd_code.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libXorcode_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libXorcode_la-xor_hd_code.lo `test -f 'xor_hd_code.c' || echo '$(srcdir)/'`xor_hd_code.c
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
- -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-libLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-libLTLIBRARIES
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
- ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-libLTLIBRARIES install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/liberasurecode/src/builtin/xor_codes/xor_code.c b/src/c/liberasurecode/src/builtin/xor_codes/xor_code.c
deleted file mode 100644
index 3e7db21..0000000
--- a/src/c/liberasurecode/src/builtin/xor_codes/xor_code.c
+++ /dev/null
@@ -1,382 +0,0 @@
-/* * Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com)
- * 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. 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 HOLDER 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.
- */
-
-#include <emmintrin.h> //SSE2
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include "xor_code.h"
-
-const int g_bit_lookup[] = {0x1, 0x2, 0x4, 0x8,
- 0x10, 0x20, 0x40, 0x80,
- 0x100, 0x200, 0x400, 0x800,
- 0x1000, 0x2000, 0x4000, 0x8000,
- 0x10000, 0x20000, 0x40000, 0x80000,
- 0x100000, 0x200000, 0x400000, 0x800000,
- 0x1000000, 0x2000000, 0x4000000, 0x8000000,
- 0x10000000, 0x20000000, 0x40000000, 0x80000000};
-
-int is_data_in_parity(int data_idx, unsigned int parity_bm)
-{
- return ((g_bit_lookup[data_idx] & parity_bm) == g_bit_lookup[data_idx]);
-}
-
-int does_parity_have_data(int parity_idx, unsigned int data_bm)
-{
- return ((g_bit_lookup[parity_idx] & data_bm) == g_bit_lookup[parity_idx]);
-}
-
-int parity_bit_lookup(xor_code_t *code_desc, int index)
-{
- return g_bit_lookup[code_desc->k - index];
-}
-
-int data_bit_lookup(xor_code_t *code_desc, int index)
-{
- return g_bit_lookup[index];
-}
-
-int missing_elements_bm(xor_code_t *code_desc, int *missing_elements, int (*bit_lookup_func)(xor_code_t *code_desc, int index))
-{
- int i = 0;
- int bm = 0;
-
- while (missing_elements[i] > -1) {
- bm |= bit_lookup_func(code_desc, missing_elements[i]);
- i++;
- }
-
- return bm;
-}
-
-failure_pattern_t get_failure_pattern(xor_code_t *code_desc, int *missing_idxs)
-{
- int i = 0;
- int num_failures = 0;
- failure_pattern_t pattern = FAIL_PATTERN_0D_0P;
-
- while (missing_idxs[i] > -1) {
- if (num_failures >= code_desc->hd) {
- pattern = FAIL_PATTERN_GE_HD;
- }
- switch(pattern) {
- case FAIL_PATTERN_0D_0P:
- pattern = (missing_idxs[i] < code_desc->k) ? FAIL_PATTERN_1D_0P : FAIL_PATTERN_0D_1P;
- break;
- case FAIL_PATTERN_1D_0P:
- pattern = (missing_idxs[i] < code_desc->k) ? FAIL_PATTERN_2D_0P : FAIL_PATTERN_1D_1P;
- break;
- case FAIL_PATTERN_2D_0P:
- pattern = (missing_idxs[i] < code_desc->k) ? FAIL_PATTERN_3D_0P : FAIL_PATTERN_2D_1P;
- break;
- case FAIL_PATTERN_3D_0P:
- pattern = FAIL_PATTERN_GE_HD;
- break;
- case FAIL_PATTERN_1D_1P:
- pattern = (missing_idxs[i] < code_desc->k) ? FAIL_PATTERN_2D_1P : FAIL_PATTERN_1D_2P;
- break;
- case FAIL_PATTERN_1D_2P:
- pattern = FAIL_PATTERN_GE_HD;
- break;
- case FAIL_PATTERN_2D_1P:
- pattern = FAIL_PATTERN_GE_HD;
- break;
- case FAIL_PATTERN_0D_1P:
- pattern = (missing_idxs[i] < code_desc->k) ? FAIL_PATTERN_1D_1P : FAIL_PATTERN_0D_2P;
- break;
- case FAIL_PATTERN_0D_2P:
- pattern = (missing_idxs[i] < code_desc->k) ? FAIL_PATTERN_1D_2P : FAIL_PATTERN_0D_3P;
- break;
- case FAIL_PATTERN_0D_3P:
- pattern = FAIL_PATTERN_GE_HD;
- break;
- case FAIL_PATTERN_GE_HD:
- default:
- break;
- }
- if (pattern == FAIL_PATTERN_GE_HD) {
- break;
- }
- i++;
- }
-
- return pattern;
-}
-
-void fast_memcpy(char *dst, char *src, int size)
-{
- // Use _mm_stream_si128((__m128i*) _buf2, sum);
- memcpy(dst, src, size);
-}
-
-/*
- * Buffers must be aligned to 16-byte boundaries
- *
- * Store in buf2 (opposite of memcpy convention... Maybe change?)
- */
-void xor_bufs_and_store(char *buf1, char *buf2, int blocksize)
-{
-#ifdef INTEL_SSE2
- int residual_bytes = num_unaligned_end(blocksize);
- int fast_blocksize = blocksize > residual_bytes ? (blocksize - residual_bytes) : 0;
- int fast_int_blocksize = fast_blocksize / sizeof(__m128i);
- int i;
- __m128i *_buf1 = (__m128i*)buf1;
- __m128i *_buf2 = (__m128i*)buf2;
-
- /*
- * XOR aligned region using 128-bit XOR
- */
- for (i=0; i < fast_int_blocksize; i++) {
- _buf2[i] = _mm_xor_si128(_buf1[i], _buf2[i]);
- }
-#else
- int residual_bytes = num_unaligned_end(blocksize);
- int fast_blocksize = blocksize > residual_bytes ? (blocksize - residual_bytes) : 0;
- int fast_int_blocksize = fast_blocksize / sizeof(unsigned long);
- int i;
-
- unsigned long*_buf1 = (unsigned long*)buf1;
- unsigned long*_buf2 = (unsigned long*)buf2;
-
- for (i=0; i < fast_int_blocksize; i++) {
- _buf2[i] = _buf1[i] ^ _buf2[i];
- }
-#endif
-
- /*
- * XOR unaligned end of region
- */
- for (i=fast_blocksize; i < blocksize; i++)
- {
- buf2[i] ^= buf1[i];
- }
-}
-
-void xor_code_encode(xor_code_t *code_desc, char **data, char **parity, int blocksize)
-{
- int i, j;
-
- for (i=0; i < code_desc->k; i++) {
- for (j=0; j < code_desc->m; j++) {
- if (is_data_in_parity(i, code_desc->parity_bms[j])) {
- xor_bufs_and_store(data[i], parity[j], blocksize);
- }
- }
- }
-}
-
-void selective_encode(xor_code_t *code_desc, char **data, char **parity, int *missing_parity, int blocksize)
-{
- int i;
- for (i=0; i < code_desc->k; i++) {
- int j=0;
- while (missing_parity[j] > -1) {
- int parity_index = missing_parity[j] - code_desc->k;
- if (is_data_in_parity(i, code_desc->parity_bms[parity_index])) {
- xor_bufs_and_store(data[i], parity[parity_index], blocksize);
- }
- j++;
- }
- }
-}
-
-int * get_missing_parity(xor_code_t *code_desc, int *missing_idxs)
-{
- int *missing_parity = (int*)malloc(sizeof(int)*MAX_PARITY);
- int i = 0, j = 0;
-
- while (missing_idxs[i] > -1) {
- if (missing_idxs[i] >= code_desc->k) {
- missing_parity[j] = missing_idxs[i];
- j++;
- }
- i++;
- }
-
- missing_parity[j] = -1;
- return missing_parity;
-}
-
-int * get_missing_data(xor_code_t *code_desc, int *missing_idxs)
-{
- int *missing_data = (int*)malloc(sizeof(int)*MAX_DATA);
- int i = 0, j = 0;
-
- while (missing_idxs[i] > -1) {
- if (missing_idxs[i] < code_desc->k) {
- missing_data[j] = missing_idxs[i];
- j++;
- }
- i++;
- }
-
- missing_data[j] = -1;
- return missing_data;
-}
-
-/*
- * Reconstruct a single missing symbol, given other symbols may be missing
- */
-void xor_reconstruct_one(xor_code_t *code_desc, char **data, char **parity, int *missing_idxs, int index_to_reconstruct, int blocksize)
-{
- int *missing_data = get_missing_data(code_desc, missing_idxs);
- int *missing_parity = get_missing_parity(code_desc, missing_idxs);
- int i;
-
- // If it is a data symbol, we need to figure out
- // what data+parity symbols are needed to reconstruct
- // If there is not at least one parity equation with
- // one missing data element (the index to resonstruct),
- // just call the underlying decode function
- if (index_to_reconstruct < code_desc->k) {
- int connected_parity_idx = index_of_connected_parity(code_desc, index_to_reconstruct, missing_parity, missing_data);
-
- if (connected_parity_idx >= 0) {
- // Can do a cheap reoncstruction!
- int relative_parity_idx = connected_parity_idx - code_desc->k;
- int parity_bm = code_desc->parity_bms[relative_parity_idx];
-
- fast_memcpy(data[index_to_reconstruct], parity[relative_parity_idx], blocksize);
-
- for (i=0; i < code_desc->k; i++) {
- if (parity_bm & (1 << i)) {
- if (i != index_to_reconstruct) {
- xor_bufs_and_store(data[i], data[index_to_reconstruct], blocksize);
- }
- }
- }
-
- } else {
- // Just call decode
- code_desc->decode(code_desc, data, parity, missing_idxs, blocksize, 1);
- }
-
- } else {
-
- // If it is a parity symbol, we need to figure out
- // what data symbols are needed to reconstruct the
- // parity. If *any* data symbols in the parity
- // equation are missing, we are better off calling
- // the underlying decode function.
- int num_data_missing = num_missing_data_in_parity(code_desc, index_to_reconstruct, missing_data);
-
- if (num_data_missing == 0) {
- int relative_parity_idx = index_to_reconstruct - code_desc->k;
- int parity_bm = code_desc->parity_bms[relative_parity_idx];
-
- memset(parity[relative_parity_idx], 0, blocksize);
-
- for (i=0; i < code_desc->k; i++) {
- if (parity_bm & (1 << i)) {
- xor_bufs_and_store(data[i], parity[relative_parity_idx], blocksize);
- }
- }
-
- } else {
- // Just call decode
- code_desc->decode(code_desc, data, parity, missing_idxs, blocksize, 1);
- }
- }
- free(missing_data);
- free(missing_parity);
-}
-
-int num_missing_data_in_parity(xor_code_t *code_desc, int parity_idx, int *missing_data)
-{
- int i = 0;
- int num_missing_data = 0;
- int relative_parity_index = parity_idx - code_desc->k;
- if (missing_data == NULL) {
- return 0;
- }
-
- while (missing_data[i] > -1) {
- if (does_parity_have_data(relative_parity_index, code_desc->data_bms[missing_data[i]]) > 0) {
- num_missing_data++;
- }
- i++;
- }
-
- return num_missing_data;
-}
-
-int index_of_connected_parity(xor_code_t *code_desc, int data_index, int *missing_parity, int *missing_data)
-{
- int parity_index = -1;
- int i;
-
- for (i=0; i < code_desc->m; i++) {
- if (num_missing_data_in_parity(code_desc, i + code_desc->k, missing_data) > 1) {
- continue;
- }
- if (is_data_in_parity(data_index, code_desc->parity_bms[i])) {
- int j=0;
- int is_missing = 0;
- if (missing_parity == NULL) {
- parity_index = i;
- break;
- }
- while (missing_parity[j] > -1) {
- if ((code_desc->k + i) == missing_parity[j]) {
- is_missing = 1;
- break;
- }
- j++;
- }
- if (!is_missing) {
- parity_index = i;
- break;
- }
- }
- }
-
- // Must add k to get the absolute
- // index of the parity in the stripe
- return parity_index > -1 ? parity_index + code_desc->k : parity_index;
-}
-
-void remove_from_missing_list(int element, int *missing_list)
-{
- int i = 0;
- int elem_idx = -1;
- int num_elems = 0;
-
- while (missing_list[i] > -1) {
- if (missing_list[i] == element) {
- elem_idx = i;
- missing_list[i] = -1;
- }
- i++;
- }
-
- num_elems = i;
-
- for (i=elem_idx;i < num_elems-1;i++) {
- int tmp = missing_list[i+1];
- missing_list[i+1] = missing_list[i];
- missing_list[i] = tmp;
- }
-}
diff --git a/src/c/liberasurecode/src/builtin/xor_codes/xor_hd_code.c b/src/c/liberasurecode/src/builtin/xor_codes/xor_hd_code.c
deleted file mode 100644
index fd6ac35..0000000
--- a/src/c/liberasurecode/src/builtin/xor_codes/xor_hd_code.c
+++ /dev/null
@@ -1,695 +0,0 @@
-/* * Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com)
- * 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. 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 HOLDER 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.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "xor_code.h"
-#include "xor_hd_code_defs.h"
-
-/*
- * Returns -1 if not possible
- */
-static int fragments_needed_one_data(xor_code_t *code_desc, int *missing_data, int *missing_parity, unsigned int *data_bm, unsigned int *parity_bm)
-{
- int data_index = missing_data[0];
- int parity_index = index_of_connected_parity(code_desc, data_index, missing_parity, missing_data);
-
- if (parity_index < 0) {
- return -1;
- }
-
- // Include all data elements except for this one
- *data_bm |= (code_desc->parity_bms[parity_index-code_desc->k]);
-
- // Include this parity element
- *parity_bm |= (1 << (parity_index-code_desc->k));
- *data_bm &= ~((unsigned int)1 << data_index);
-
- return 0;
-}
-
-/*
- * Returns -1 if not possible
- */
-static int fragments_needed_two_data(xor_code_t *code_desc, int *missing_data, int *missing_parity, unsigned int *data_bm, unsigned int *parity_bm)
-{
- // Verify that missing_data[2] == -1?
- int data_index = missing_data[0];
- int parity_index = index_of_connected_parity(code_desc, data_index, missing_parity, missing_data);
- int ret;
-
- if (parity_index < 0) {
- data_index = missing_data[1];
- parity_index = index_of_connected_parity(code_desc, data_index, missing_parity, missing_data);
- if (parity_index < 0) {
- return -1;
- }
- missing_data[1] = -1;
- } else {
- missing_data[0] = missing_data[1];
- missing_data[1] = -1;
- }
-
- // Include all data elements except for this one
- *data_bm |= (code_desc->parity_bms[parity_index-code_desc->k]);
-
- // Include this parity element
- *parity_bm |= (1 << (parity_index-code_desc->k));
-
- ret = fragments_needed_one_data(code_desc, missing_data, missing_parity, data_bm, parity_bm);
-
- *data_bm &= ~((unsigned int)1 << data_index);
-
- return ret;
-}
-
-/*
- * Returns -1 if not possible
- */
-static int fragments_needed_three_data(xor_code_t *code_desc, int *missing_data, int *missing_parity, unsigned int *data_bm, unsigned int *parity_bm)
-{
- int i = 0;
- int parity_index = -1;
- int data_index = -1;
- int tmp_parity_bm = -1;
- int contains_2d = -1;
- int contains_3d = -1;
- int ret = 0;
-
- /*
- * Try to find a parity that only contains
- * one of the missing data elements.
- */
- while (missing_data[i] > -1) {
- parity_index = index_of_connected_parity(code_desc, missing_data[i], missing_parity, missing_data);
- if (parity_index > -1) {
- data_index = missing_data[i];
- tmp_parity_bm = code_desc->parity_bms[parity_index-code_desc->k];
- break;
- }
- i++;
- }
- /*
- * If we cannot find a parity that is connected to only
- * one missing element, we must find a parity that is
- * connected to exactly 2 (P) and another that is connected
- * to exactly 3 (Q) (it should exist!!!).
- *
- * We XOR those parities together and use it to recover
- * the element that is not connected to P.
- */
- if (parity_index < 0) {
-
- for (i=0;i < code_desc->m;i++) {
- int num_missing = num_missing_data_in_parity(code_desc, code_desc->k+i, missing_data);
- if (num_missing == 2 && contains_2d < 0) {
- contains_2d = i;
- } else if (num_missing == 3 && contains_3d < 0) {
- contains_3d = i;
- }
- }
-
- if (contains_2d < 0 || contains_3d < 0) {
- return -1;
- }
-
- // P XOR Q
- tmp_parity_bm = code_desc->parity_bms[contains_2d] ^ code_desc->parity_bms[contains_3d];
-
- i=0;
- data_index = -1;
- while (missing_data[i] > -1) {
- if (is_data_in_parity(missing_data[i], tmp_parity_bm)) {
- data_index = missing_data[i];
- break;
- }
- i++;
- }
-
- if (data_index < 0) {
- return -1;
- }
- }
-
- remove_from_missing_list(data_index, missing_data);
-
- // Include all data elements except for this one
- *data_bm |= (code_desc->parity_bms[parity_index-code_desc->k]);
-
- // Include this parity element
- if (parity_index > -1) {
- *parity_bm |= (1 << (parity_index-code_desc->k));
- } else {
- *parity_bm |= (1 << (contains_2d-code_desc->k));
- *parity_bm |= (1 << (contains_3d-code_desc->k));
- }
-
- ret = fragments_needed_two_data(code_desc, missing_data, missing_parity, data_bm, parity_bm);
-
- *data_bm &= ~((unsigned int)1 << data_index);
-
- return ret;
-}
-
-static int fragments_needed_one_data_local(xor_code_t *code_desc,
- int fragment_to_reconstruct,
- int *fragments_to_exclude,
- unsigned int *data_bm,
- unsigned int *parity_bm)
-{
- int *missing_data = get_missing_data(code_desc, fragments_to_exclude);
- int *missing_parity = get_missing_parity(code_desc, fragments_to_exclude);
- int parity_index = index_of_connected_parity(code_desc, fragment_to_reconstruct, missing_parity, missing_data);
- free(missing_data);
- free(missing_parity);
-
- if (parity_index < 0) {
- return -1;
- }
-
- // Include all data elements except for this one
- *data_bm |= (code_desc->parity_bms[parity_index-code_desc->k]);
-
- // Include this parity element
- *parity_bm |= (1 << (parity_index-code_desc->k));
- *data_bm &= ~((unsigned int)1 << fragment_to_reconstruct);
-
- return 0;
-}
-
-int xor_hd_fragments_needed(xor_code_t *code_desc, int *fragments_to_reconstruct, int *fragments_to_exclude, int *fragments_needed)
-{
- failure_pattern_t pattern = get_failure_pattern(code_desc, fragments_to_reconstruct);
- unsigned int data_bm = 0, parity_bm = 0;
- int ret = -1;
- int *missing_idxs = NULL;
- int i, j;
-
- /**
- * Re-visit this decision (KMG): This is non-optimal, but good enough in most cases.
- * If there is a single data item to reconstruct, then try to find a connected parity
- * with no items in fragments_to_exclude. If there is a single parity item to reconsturct
- * or more than 1 data/parity element missing, then just work fragments_to_exclude into
- * missing_idxs.
- */
-
- if (pattern == FAIL_PATTERN_1D_0P) {
- // Since we have landed on this failure pattern, fragments_to_reconstruct[0] is defined.
- ret = fragments_needed_one_data_local(code_desc, fragments_to_reconstruct[0], fragments_to_exclude, &data_bm, &parity_bm);
- }
-
- /**
- * There is either more than one failed element, a failed parity element or
- * we were unable to return the fragments needed for a simple reconstruction.
- */
- if (ret == -1) {
- /**
- * Add everything to missing_idxs (basically, give up on optimizing).
- */
- missing_idxs = (int*)malloc(sizeof(int)*(code_desc->k + code_desc->m));
- if (NULL == missing_idxs) {
- ret = -1;
- goto out;
- }
-
- i = 0;
- j = 0;
- while (fragments_to_reconstruct[i] > -1) {
- missing_idxs[j] = fragments_to_reconstruct[i];
- i++;
- j++;
- }
- i = 0;
- while (fragments_to_exclude[i] > -1) {
- missing_idxs[j] = fragments_to_exclude[i];
- i++;
- j++;
- }
- // End of list
- missing_idxs[j] = -1;
-
- pattern = get_failure_pattern(code_desc, missing_idxs);
-
- switch(pattern) {
- case FAIL_PATTERN_0D_0P:
- break;
- case FAIL_PATTERN_1D_0P:
- {
- int *missing_data = get_missing_data(code_desc, missing_idxs);
- ret = fragments_needed_one_data(code_desc, missing_data, NULL, &data_bm, &parity_bm);
- free(missing_data);
- break;
- }
- case FAIL_PATTERN_2D_0P:
- {
- int *missing_data = get_missing_data(code_desc, missing_idxs);
- ret = fragments_needed_two_data(code_desc, missing_data, NULL, &data_bm, &parity_bm);
- free(missing_data);
- break;
- }
- case FAIL_PATTERN_3D_0P:
- {
- int *missing_data = get_missing_data(code_desc, missing_idxs);
- ret = fragments_needed_three_data(code_desc, missing_data, NULL, &data_bm, &parity_bm);
- free(missing_data);
- break;
- }
- case FAIL_PATTERN_1D_1P:
- {
- int *missing_data = get_missing_data(code_desc, missing_idxs);
- int *missing_parity = get_missing_parity(code_desc, missing_idxs);
- unsigned int missing_data_bm = missing_elements_bm(code_desc, missing_data, data_bit_lookup);
- ret = fragments_needed_one_data(code_desc, missing_data, missing_parity, &data_bm, &parity_bm);
- // OR all parities
- i=0;
- while (missing_parity[i] > -1) {
- data_bm |= code_desc->parity_bms[missing_parity[i]-code_desc->k];
- data_bm &= ~(missing_data_bm);
- i++;
- }
- free(missing_parity);
- free(missing_data);
- break;
- }
- case FAIL_PATTERN_1D_2P:
- {
- int *missing_data = get_missing_data(code_desc, missing_idxs);
- int *missing_parity = get_missing_parity(code_desc, missing_idxs);
- int missing_data_bm = missing_elements_bm(code_desc, missing_data, data_bit_lookup);
- ret = fragments_needed_one_data(code_desc, missing_data, missing_parity, &data_bm, &parity_bm);
- // OR all parities
- i=0;
- while (missing_parity[i] > -1) {
- data_bm |= code_desc->parity_bms[missing_parity[i]-code_desc->k];
- data_bm &= ~(missing_data_bm);
- i++;
- }
- free(missing_parity);
- free(missing_data);
- break;
- }
- case FAIL_PATTERN_2D_1P:
- {
- int *missing_data = get_missing_data(code_desc, missing_idxs);
- int *missing_parity = get_missing_parity(code_desc, missing_idxs);
- unsigned int missing_data_bm = missing_elements_bm(code_desc, missing_data, data_bit_lookup);
- ret = fragments_needed_two_data(code_desc, missing_data, missing_parity, &data_bm, &parity_bm);
- // OR all parities
- i=0;
- while (missing_parity[i] > -1) {
- data_bm |= code_desc->parity_bms[missing_parity[i]-code_desc->k];
- data_bm &= ~(missing_data_bm);
- i++;
- }
- free(missing_parity);
- free(missing_data);
- break;
- }
- case FAIL_PATTERN_0D_1P:
- {
- int *missing_parity = get_missing_parity(code_desc, missing_idxs);
- // OR all of the parities
- i=0;
- while (missing_parity[i] > -1) {
- data_bm |= code_desc->parity_bms[missing_parity[i]-code_desc->k];
- i++;
- }
- free(missing_parity);
- ret = 0;
- break;
- }
- case FAIL_PATTERN_0D_2P:
- {
- int *missing_parity = get_missing_parity(code_desc, missing_idxs);
- // OR all of the parities
- i=0;
- while (missing_parity[i] > -1) {
- data_bm |= code_desc->parity_bms[missing_parity[i]-code_desc->k];
- i++;
- }
- free(missing_parity);
- ret = 0;
- break;
- }
- case FAIL_PATTERN_0D_3P:
- {
- int *missing_parity = get_missing_parity(code_desc, missing_idxs);
- // OR all of the parities
- i=0;
- while (missing_parity[i] > -1) {
- data_bm |= code_desc->parity_bms[missing_parity[i]-code_desc->k];
- i++;
- }
- free(missing_parity);
- ret = 0;
- break;
- }
- case FAIL_PATTERN_GE_HD:
- default:
- break;
- }
- }
-
- if (ret >= 0) {
- i=0;
- j=0;
- while (data_bm) {
- if (data_bm & 1) {
- fragments_needed[j] = i;
- j++;
- }
- i++;
- data_bm >>= 1;
- }
-
- i=0;
- while (parity_bm) {
- if (parity_bm & 1) {
- fragments_needed[j] = i + code_desc->k;
- j++;
- }
- i++;
- parity_bm >>= 1;
- }
-
- fragments_needed[j] = -1;
- }
-
-out:
- if (NULL != missing_idxs) {
- free(missing_idxs);
- }
-
- return ret;
-}
-
-/*
- * There is one unavailable data element, so any available parity connected to
- * the data element is sufficient to decode.
- */
-static void decode_one_data(xor_code_t *code_desc, char **data, char **parity, int *missing_data, int *missing_parity, int blocksize)
-{
- // Verify that missing_data[1] == -1?
- int data_index = missing_data[0];
- int parity_index = index_of_connected_parity(code_desc, data_index, missing_parity, missing_data);
- int i;
-
- // Copy the appropriate parity into the data buffer
- fast_memcpy(data[data_index], parity[parity_index-code_desc->k], blocksize);
-
- for (i=0; i < code_desc->k; i++) {
- if (i != data_index && is_data_in_parity(i, code_desc->parity_bms[parity_index-code_desc->k])) {
- xor_bufs_and_store(data[i], data[data_index], blocksize);
- }
- }
-}
-
-static int decode_two_data(xor_code_t *code_desc, char **data, char **parity, int *missing_data, int *missing_parity, int blocksize)
-{
- // Verify that missing_data[2] == -1?
- int data_index = missing_data[0];
- int parity_index = index_of_connected_parity(code_desc, data_index, missing_parity, missing_data);
- int i;
-
- if (parity_index < 0) {
- data_index = missing_data[1];
- parity_index = index_of_connected_parity(code_desc, data_index, missing_parity, missing_data);
- if (parity_index < 0) {
- fprintf(stderr, "Shit is broken, cannot find a proper parity!!!\n");
- return -2;
- }
- missing_data[1] = -1;
- } else {
- missing_data[0] = missing_data[1];
- missing_data[1] = -1;
- }
-
- // Copy the appropriate parity into the data buffer
- fast_memcpy(data[data_index], parity[parity_index-code_desc->k], blocksize);
-
- for (i=0; i < code_desc->k; i++) {
- if (i != data_index && is_data_in_parity(i, code_desc->parity_bms[parity_index-code_desc->k])) {
- xor_bufs_and_store(data[i], data[data_index], blocksize);
- }
- }
- decode_one_data(code_desc, data, parity, missing_data, missing_parity, blocksize);
-
- return 0;
-}
-
-static int decode_three_data(xor_code_t *code_desc, char **data, char **parity, int *missing_data, int *missing_parity, int blocksize)
-{
- int i = 0;
- int parity_index = -1;
- int data_index = -1;
- unsigned int parity_bm = -1;
- char *parity_buffer = NULL;
-
- /*
- * Try to find a parity that only contains
- * one of the missing data elements.
- */
- while (missing_data[i] > -1) {
- parity_index = index_of_connected_parity(code_desc, missing_data[i], missing_parity, missing_data);
- if (parity_index > -1) {
- data_index = missing_data[i];
- parity_buffer = parity[parity_index-code_desc->k];
- parity_bm = code_desc->parity_bms[parity_index-code_desc->k];
- break;
- }
- i++;
- }
-
- /*
- * If we cannot find a parity that is connected to only
- * one missing element, we must find a parity that is
- * connected to exactly 2 (P) and another that is connected
- * to exactly 3 (Q) (it should exist!!!).
- *
- * We XOR those parities together and use it to recover
- * the element that is not connected to P.
- */
- if (parity_index < 0) {
- int contains_2d = -1;
- int contains_3d = -1;
-
- for (i=0;i < code_desc->m;i++) {
- int num_missing = num_missing_data_in_parity(code_desc, code_desc->k+i, missing_data);
- if (num_missing == 2 && contains_2d < 0) {
- contains_2d = i;
- } else if (num_missing == 3 && contains_3d < 0) {
- contains_3d = i;
- }
- }
-
- if (contains_2d < 0 || contains_3d < 0) {
- fprintf(stderr, "Shit is broken, cannot find a proper parity (2 and 3-connected parities)!!!\n");
- return -2;
- }
-
- if (posix_memalign((void **) &parity_buffer, 16, blocksize) != 0) {
- fprintf(stderr, "Can't get aligned memory!\n");
- return -1;
- }
-
- // P XOR Q
- parity_bm = code_desc->parity_bms[contains_2d] ^ code_desc->parity_bms[contains_3d];
-
- // Create buffer with P XOR Q -> parity_buffer
- fast_memcpy(parity_buffer, parity[contains_2d], blocksize);
- xor_bufs_and_store(parity[contains_3d], parity_buffer, blocksize);
-
- i=0;
- data_index = -1;
- while (missing_data[i] > -1) {
- if (is_data_in_parity(missing_data[i], parity_bm)) {
- data_index = missing_data[i];
- break;
- }
- i++;
- }
-
- if (data_index < 0) {
- fprintf(stderr, "Shit is broken, cannot construct equations to repair 3 failures!!!\n");
- return -2;
- }
- // Copy the appropriate parity into the data buffer
- fast_memcpy(data[data_index], parity_buffer, blocksize);
- // Free up the buffer we allocated above
- free(parity_buffer);
- } else {
- // Copy the appropriate parity into the data buffer
- fast_memcpy(data[data_index], parity_buffer, blocksize);
- }
-
-
- for (i=0; i < code_desc->k; i++) {
- if (i != data_index && is_data_in_parity(i, parity_bm)) {
- xor_bufs_and_store(data[i], data[data_index], blocksize);
- }
- }
-
- remove_from_missing_list(data_index, missing_data);
-
- return decode_two_data(code_desc, data, parity, missing_data, missing_parity, blocksize);
-}
-
-int xor_hd_decode(xor_code_t *code_desc, char **data, char **parity, int *missing_idxs, int blocksize, int decode_parity)
-{
- int ret = 0;
- failure_pattern_t pattern = get_failure_pattern(code_desc, missing_idxs);
-
- switch(pattern) {
- case FAIL_PATTERN_0D_0P:
- break;
- case FAIL_PATTERN_1D_0P:
- {
- int *missing_data = get_missing_data(code_desc, missing_idxs);
- decode_one_data(code_desc, data, parity, missing_data, NULL, blocksize);
- free(missing_data);
- break;
- }
- case FAIL_PATTERN_2D_0P:
- {
- int *missing_data = get_missing_data(code_desc, missing_idxs);
- ret = decode_two_data(code_desc, data, parity, missing_data, NULL, blocksize);
- free(missing_data);
- break;
- }
- case FAIL_PATTERN_3D_0P:
- {
- int *missing_data = get_missing_data(code_desc, missing_idxs);
- ret = decode_three_data(code_desc, data, parity, missing_data, NULL, blocksize);
- free(missing_data);
- break;
- }
- case FAIL_PATTERN_1D_1P:
- {
- int *missing_data = get_missing_data(code_desc, missing_idxs);
- int *missing_parity = get_missing_parity(code_desc, missing_idxs);
- decode_one_data(code_desc, data, parity, missing_data, missing_parity, blocksize);
- if (decode_parity) {
- selective_encode(code_desc, data, parity, missing_parity, blocksize);
- }
- free(missing_parity);
- free(missing_data);
- break;
- }
- case FAIL_PATTERN_1D_2P:
- {
- int *missing_data = get_missing_data(code_desc, missing_idxs);
- int *missing_parity = get_missing_parity(code_desc, missing_idxs);
- decode_one_data(code_desc, data, parity, missing_data, missing_parity, blocksize);
- if (decode_parity) {
- selective_encode(code_desc, data, parity, missing_parity, blocksize);
- }
- free(missing_data);
- free(missing_parity);
- break;
- }
- case FAIL_PATTERN_2D_1P:
- {
- int *missing_data = get_missing_data(code_desc, missing_idxs);
- int *missing_parity = get_missing_parity(code_desc, missing_idxs);
- ret = decode_two_data(code_desc, data, parity, missing_data, missing_parity, blocksize);
- if (decode_parity) {
- selective_encode(code_desc, data, parity, missing_parity, blocksize);
- }
- free(missing_parity);
- free(missing_data);
- break;
- }
- case FAIL_PATTERN_0D_1P:
- if (decode_parity) {
- int *missing_parity = get_missing_parity(code_desc, missing_idxs);
- selective_encode(code_desc, data, parity, missing_parity, blocksize);
- free(missing_parity);
- }
- break;
- case FAIL_PATTERN_0D_2P:
- if (decode_parity) {
- int *missing_parity = get_missing_parity(code_desc, missing_idxs);
- selective_encode(code_desc, data, parity, missing_parity, blocksize);
- free(missing_parity);
- }
- break;
- case FAIL_PATTERN_0D_3P:
- if (decode_parity) {
- int *missing_parity = get_missing_parity(code_desc, missing_idxs);
- selective_encode(code_desc, data, parity, missing_parity, blocksize);
- free(missing_parity);
- }
- break;
- case FAIL_PATTERN_GE_HD:
- default:
- break;
- }
-
- return ret;
-}
-
-xor_code_t* init_xor_hd_code(int k, int m, int hd)
-{
- xor_code_t *code_desc = NULL;
- int is_valid = 0;
-
- if (hd == 3) {
- if (m == 6) {
- if (k <= 15 && k >= 6) {
- is_valid = 1;
- }
- } else if (m == 5) {
- if (k <= 10 && k >= 5) {
- is_valid = 1;
- }
- }
- }
-
- if (hd == 4) {
- if (m == 6) {
- if (k <= 20 && k >= 6) {
- is_valid = 1;
- }
- } else if (m == 5) {
- if (k <= 10 && k >= 5) {
- is_valid = 1;
- }
- }
- }
-
- if (is_valid) {
- code_desc = (xor_code_t*)malloc(sizeof(xor_code_t));
- code_desc->parity_bms = PARITY_BM_ARY(k, m, hd);
- code_desc->data_bms = DATA_BM_ARY(k, m, hd);
- code_desc->k = k;
- code_desc->m = m;
- code_desc->hd = hd;
- code_desc->decode = xor_hd_decode;
- code_desc->encode = xor_code_encode;
- code_desc->fragments_needed = xor_hd_fragments_needed;
- }
-
- return code_desc;
-}
diff --git a/src/c/liberasurecode/src/erasurecode.c b/src/c/liberasurecode/src/erasurecode.c
deleted file mode 100644
index 205a9b0..0000000
--- a/src/c/liberasurecode/src/erasurecode.c
+++ /dev/null
@@ -1,1185 +0,0 @@
-/*
- * Copyright 2014 Tushar Gohad, Kevin M Greenan, Eric Lambert, Mark Storer
- *
- * 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. 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 HOLDER 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.
- *
- * liberasurecode API implementation
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#include "list.h"
-#include "erasurecode.h"
-#include "erasurecode_backend.h"
-#include "erasurecode_helpers.h"
-#include "erasurecode_preprocessing.h"
-#include "erasurecode_postprocessing.h"
-#include "erasurecode_stdinc.h"
-#include "alg_sig.h"
-
-/* =~=*=~==~=*=~==~=*=~= Supported EC backends =~=*=~==~=*=~==~=*=~==~=*=~== */
-
-/* EC backend references */
-extern struct ec_backend_common backend_null;
-extern struct ec_backend_common backend_flat_xor_hd;
-extern struct ec_backend_common backend_jerasure_rs_vand;
-extern struct ec_backend_common backend_jerasure_rs_cauchy;
-extern struct ec_backend_common backend_isa_l_rs_vand;
-extern struct ec_backend_common backend_shss;
-
-ec_backend_t ec_backends_supported[] = {
- (ec_backend_t) &backend_null,
- (ec_backend_t) &backend_jerasure_rs_vand,
- (ec_backend_t) &backend_jerasure_rs_cauchy,
- (ec_backend_t) &backend_flat_xor_hd,
- (ec_backend_t) &backend_isa_l_rs_vand,
- (ec_backend_t) &backend_shss,
- NULL,
-};
-
-/* backend list to return to the caller */
-int num_supported_backends = 0;
-char *ec_backends_supported_str[EC_BACKENDS_MAX];
-
-/* =~=*=~==~=*=~==~=*=~= EC backend instance management =~=*=~==~=*=~==~=*= */
-
-/* Registered erasure code backend instances */
-SLIST_HEAD(backend_list, ec_backend) active_instances =
- SLIST_HEAD_INITIALIZER(active_instances);
-rwlock_t active_instances_rwlock = RWLOCK_INITIALIZER;
-
-/* Backend instance id */
-int next_backend_desc = 0;
-
-/**
- * Look up a backend instance by descriptor
- *
- * @returns pointer to a registered liberasurecode instance
- * The caller must hold active_instances_rwlock
- */
-ec_backend_t liberasurecode_backend_instance_get_by_desc(int desc)
-{
- struct ec_backend *b = NULL;
- SLIST_FOREACH(b, &active_instances, link) {
- if (b->idesc == desc)
- break;
- }
- return b;
-}
-
-/**
- * Allocated backend instance descriptor
- *
- * Returns a unique descriptor for a new backend.
- * The caller must hold active_instances_rwlock
- */
-int liberasurecode_backend_alloc_desc(void)
-{
- for (;;) {
- if (++next_backend_desc <= 0)
- next_backend_desc = 1;
- if (!liberasurecode_backend_instance_get_by_desc(next_backend_desc))
- return next_backend_desc;
- }
-}
-
-/**
- * Register a backend instance with liberasurecode
- *
- * @param instance - backend enum
- *
- * @returns new backend descriptor
- */
-int liberasurecode_backend_instance_register(ec_backend_t instance)
-{
- int desc = -1; /* descriptor to return */
- int rc = 0; /* return call value */
-
- rc = rwlock_wrlock(&active_instances_rwlock);
- if (rc == 0) {
- SLIST_INSERT_HEAD(&active_instances, instance, link);
- desc = liberasurecode_backend_alloc_desc();
- if (desc <= 0)
- goto register_out;
- instance->idesc = desc;
- } else {
- goto exit;
- }
-
-register_out:
- rwlock_unlock(&active_instances_rwlock);
-exit:
- return desc;
-}
-
-/**
- * Unregister a backend instance
- *
- * @returns 0 on success, non-0 on error
- */
-int liberasurecode_backend_instance_unregister(ec_backend_t instance)
-{
- int rc = 0; /* return call value */
-
- rc = rwlock_wrlock(&active_instances_rwlock);
- if (rc == 0) {
- SLIST_REMOVE(&active_instances, instance, ec_backend, link);
- } else {
- goto exit;
- }
- rwlock_unlock(&active_instances_rwlock);
-
-exit:
- return rc;
-}
-
-/* =~=*=~==~=*=~== liberasurecode backend API helpers =~=*=~==~=*=~== */
-
-static void print_dlerror(const char *caller)
-{
- char *msg = dlerror();
- if (NULL == msg)
- log_error("%s: unknown dynamic linking error\n", caller);
- else
- log_error("%s: dynamic linking error %s\n", caller, msg);
-}
-
-/* Generic dlopen/dlclose routines */
-int liberasurecode_backend_open(ec_backend_t instance)
-{
- if (instance && NULL != instance->desc.backend_sohandle)
- return 0;
-
- /* Use RTLD_LOCAL to avoid symbol collisions */
- instance->desc.backend_sohandle = dlopen(instance->common.soname,
- RTLD_LAZY | RTLD_LOCAL);
- if (NULL == instance->desc.backend_sohandle) {
- print_dlerror(__func__);
- return -EBACKENDNOTAVAIL;
- }
-
- dlerror(); /* Clear any existing errors */
- return 0;
-}
-
-int liberasurecode_backend_close(ec_backend_t instance)
-{
- if (NULL == instance || NULL == instance->desc.backend_sohandle)
- return 0;
-
- dlclose(instance->desc.backend_sohandle);
- dlerror(); /* Clear any existing errors */
-
- instance->desc.backend_sohandle = NULL;
- return 0;
-}
-
-/* =*=~==~=*=~==~=*=~= liberasurecode init/exit routines =~=*=~==~=*=~==~=*= */
-
-void __attribute__ ((constructor))
-liberasurecode_init(void) {
- /* init logging */
- openlog("liberasurecode", LOG_PID | LOG_CONS, LOG_USER);
-
- /* populate supported backends list as a string */
- {
- int i;
- for (i = 0; ec_backends_supported[i]; ++i) {
- ec_backends_supported_str[i] = strdup(
- ec_backends_supported[i]->common.name);
- }
- num_supported_backends = i;
- }
-}
-
-void __attribute__ ((destructor))
-liberasurecode_exit(void) {
- int i;
- for (i = 0; i < num_supported_backends; ++i)
- free(ec_backends_supported_str[i]);
- closelog();
-}
-
-/* =~=*=~==~=*=~= liberasurecode frontend API implementation =~=*=~==~=*=~== */
-
-/**
- * Create a liberasurecode instance and return a descriptor
- * for use with EC operations (encode, decode, reconstruct)
- *
- * @param id - one of the supported backends as
- * defined by ec_backend_id_t
- * @param ec_args - arguments to the EC backend
- * arguments common to all backends
- * k - number of data fragments
- * m - number of parity fragments
- * w - word size, in bits
- * hd - hamming distance (=m for Reed-Solomon)
- * ct - fragment checksum type (stored with the fragment metadata)
- * backend-specific arguments
- * null_args - arguments for the null backend
- * flat_xor_hd, jerasure do not require any special args
- *
- * @returns liberasurecode instance descriptor (int > 0)
- */
-int liberasurecode_instance_create(const ec_backend_id_t id,
- struct ec_args *args)
-{
- int err = 0;
- ec_backend_t instance = NULL;
- struct ec_backend_args bargs;
- if (!args)
- return -1;
-
- if (id >= EC_BACKENDS_MAX)
- return -EBACKENDNOTSUPP;
-
- /* Allocate memory for ec_backend instance */
- instance = calloc(1, sizeof(*instance));
- if (NULL == instance)
- return -ENOMEM;
-
- /* Copy common backend, args struct */
- instance->common = ec_backends_supported[id]->common;
- memcpy(&(bargs.uargs), args, sizeof (struct ec_args));
- instance->args = bargs;
-
- /* Open backend .so if not already open */
- /* .so handle is returned in instance->desc.backend_sohandle */
- err = liberasurecode_backend_open(instance);
- if (err < 0) {
- /* ignore during init, return the same handle */
- free(instance);
- return err;
- }
-
- /* Call private init() for the backend */
- instance->desc.backend_desc = instance->common.ops->init(
- &instance->args, instance->desc.backend_sohandle);
- if (NULL == instance->desc.backend_desc) {
- free (instance);
- return -EBACKENDINITERR;
- }
-
- /* Register instance and return a descriptor/instance id */
- instance->idesc = liberasurecode_backend_instance_register(instance);
-
- return instance->idesc;
-}
-
-/**
- * Close a liberasurecode instance
- *
- * @param liberasurecode descriptor to close
- */
-int liberasurecode_instance_destroy(int desc)
-{
- ec_backend_t instance = NULL; /* instance to destroy */
- int rc = 0; /* return code */
-
- instance = liberasurecode_backend_instance_get_by_desc(desc);
- if (NULL == instance)
- return -EBACKENDNOTAVAIL;
-
- /* Call private exit() for the backend */
- instance->common.ops->exit(instance->desc.backend_desc);
-
- /* dlclose() backend library */
- liberasurecode_backend_close(instance);
-
- /* Remove instace from registry */
- rc = liberasurecode_backend_instance_unregister(instance);
- if (rc == 0) {
- free(instance);
- }
-
- return rc;
-}
-
-/**
- * Cleanup structures allocated by librasurecode_encode
- *
- * The caller has no context, so cannot safely free memory
- * allocated by liberasurecode, so it must pass the
- * deallocation responsibility back to liberasurecode.
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param encoded_data - (char **) array of k data
- * fragments (char *), allocated by liberasurecode_encode
- * @param encoded_parity - (char **) array of m parity
- * fragments (char *), allocated by liberasurecode_encode
- * @return 0 in success; -error otherwise
- */
-int liberasurecode_encode_cleanup(int desc,
- char **encoded_data,
- char **encoded_parity)
-{
- int i, k, m;
-
- ec_backend_t instance = liberasurecode_backend_instance_get_by_desc(desc);
- if (NULL == instance) {
- return -EBACKENDNOTAVAIL;
- }
-
- k = instance->args.uargs.k;
- m = instance->args.uargs.m;
-
- if (encoded_data) {
- for (i = 0; i < k; i++) {
- free(encoded_data[i]);
- }
-
- free(encoded_data);
- }
-
- if (encoded_parity) {
- for (i = 0; i < m; i++) {
- free(encoded_parity[i]);
- }
- free(encoded_parity);
- }
-
- return 0;
-}
-
-/**
- * Erasure encode a data buffer
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param orig_data - data to encode
- * @param orig_data_size - length of data to encode
- * @param encoded_data - pointer to _output_ array (char **) of k data
- * fragments (char *), allocated by the callee
- * @param encoded_parity - pointer to _output_ array (char **) of m parity
- * fragments (char *), allocated by the callee
- * @param fragment_len - pointer to _output_ length of each fragment, assuming
- * all fragments are the same length
- *
- * @return 0 on success, -error code otherwise
- */
-int liberasurecode_encode(int desc,
- const char *orig_data, uint64_t orig_data_size, /* input */
- char ***encoded_data, char ***encoded_parity, /* output */
- uint64_t *fragment_len) /* output */
-{
- int k, m;
- int ret = 0; /* return code */
-
- int blocksize = 0; /* length of each of k data elements */
-
- if (orig_data == NULL) {
- log_error("Pointer to data buffer is null!");
- ret = -1;
- goto out;
- }
-
- if (orig_data_size <= 0) {
- log_error("Size of data to encode must be a positive value");
- ret = -1;
- goto out;
- }
-
- if (encoded_data == NULL) {
- log_error("Pointer to encoded data buffers is null!");
- return -1;
- }
-
- if (encoded_parity == NULL) {
- log_error("Pointer to encoded parity buffers is null!");
- return -1;
- }
-
- if (fragment_len == NULL) {
- log_error("Pointer to fragment length is null!");
- ret = -1;
- goto out;
- }
-
- ec_backend_t instance = liberasurecode_backend_instance_get_by_desc(desc);
- if (NULL == instance) {
- ret = -EBACKENDNOTAVAIL;
- goto out;
- }
-
- k = instance->args.uargs.k;
- m = instance->args.uargs.m;
-
- /*
- * Allocate arrays for data, parity and missing_idxs
- */
- *encoded_data = (char **) alloc_zeroed_buffer(sizeof(char *) * k);
- if (NULL == *encoded_data) {
- log_error("Could not allocate data buffer!");
- goto out;
- }
-
- *encoded_parity = (char **) alloc_zeroed_buffer(sizeof(char *) * m);
- if (NULL == *encoded_parity) {
- log_error("Could not allocate parity buffer!");
- goto out;
- }
-
- ret = prepare_fragments_for_encode(instance, k, m, orig_data, orig_data_size,
- *encoded_data, *encoded_parity, &blocksize);
- if (ret < 0) {
- // ensure encoded_data/parity point the head of fragment_ptr
- get_fragment_ptr_array_from_data(*encoded_data, *encoded_data, k);
- get_fragment_ptr_array_from_data(*encoded_parity, *encoded_parity, m);
- goto out;
- }
-
- /* call the backend encode function passing it desc instance */
- ret = instance->common.ops->encode(instance->desc.backend_desc,
- *encoded_data, *encoded_parity, blocksize);
- if (ret < 0) {
- // ensure encoded_data/parity point the head of fragment_ptr
- get_fragment_ptr_array_from_data(*encoded_data, *encoded_data, k);
- get_fragment_ptr_array_from_data(*encoded_parity, *encoded_parity, m);
- goto out;
- }
-
- ret = finalize_fragments_after_encode(instance, k, m, blocksize, orig_data_size,
- *encoded_data, *encoded_parity);
-
- *fragment_len = get_fragment_size((*encoded_data)[0]);
-
-out:
- if (ret) {
- /* Cleanup the allocations we have done */
- liberasurecode_encode_cleanup(desc, *encoded_data, *encoded_parity);
- log_error("Error in liberasurecode_encode %d", ret);
- }
- return ret;
-}
-
-/**
- * Cleanup structures allocated by librasurecode_decode
- *
- * The caller has no context, so cannot safely free memory
- * allocated by liberasurecode, so it must pass the
- * deallocation responsibility back to liberasurecode.
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param data - (char *) buffer of data decoded by
- * librasurecode_decode
- * @return 0 in success; -error otherwise
- */
-int liberasurecode_decode_cleanup(int desc, char *data)
-{
- ec_backend_t instance = liberasurecode_backend_instance_get_by_desc(desc);
- if (NULL == instance) {
- return -EBACKENDNOTAVAIL;
- }
-
- free(data);
-
- return 0;
-}
-
-/**
- * Reconstruct original data from a set of k encoded fragments
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param fragments - erasure encoded fragments (> = k)
- * @param num_fragments - number of fragments being passed in
- * @param fragment_len - length of each fragment (assume they are the same)
- * @param force_metadata_checks - force fragment metadata checks (default: 0)
- * @param out_data - _output_ pointer to decoded data
- * @param out_data_len - _output_ length of decoded output
- * @return 0 on success, -error code otherwise
- */
-int liberasurecode_decode(int desc,
- char **available_fragments, /* input */
- int num_fragments, uint64_t fragment_len, /* input */
- int force_metadata_checks, /* input */
- char **out_data, uint64_t *out_data_len) /* output */
-{
- int i, j;
- int ret = 0;
-
- int k = -1, m = -1;
- int orig_data_size = 0;
-
- int blocksize = 0;
- char **data = NULL;
- char **parity = NULL;
- char **data_segments = NULL;
- char **parity_segments = NULL;
- int *missing_idxs = NULL;
-
- uint64_t realloc_bm = 0;
-
- ec_backend_t instance = liberasurecode_backend_instance_get_by_desc(desc);
- if (NULL == instance) {
- ret = -EBACKENDNOTAVAIL;
- goto out;
- }
-
- if (NULL == available_fragments) {
- log_error("Pointer to encoded fragments buffer is null!");
- ret = -1;
- goto out;
- }
-
- if (NULL == out_data) {
- log_error("Pointer to decoded data buffer is null!");
- ret = -1;
- goto out;
- }
-
- if (NULL == out_data_len) {
- log_error("Pointer to decoded data length variable is null!");
- ret = -1;
- goto out;
- }
-
- k = instance->args.uargs.k;
- m = instance->args.uargs.m;
-
- if (num_fragments < k) {
- ret = -EINSUFFFRAGS;
- goto out;
- }
-
- /*
- * Try to re-assebmle the original data before attempting a decode
- */
- ret = fragments_to_string(k, m,
- available_fragments, num_fragments,
- out_data, out_data_len);
-
- /* shss (ntt_backend) must force to decode */
- // TODO: Add a frag and function to handle whether the backend want to decode or not.
- if (ret == 0 && instance->common.id != 5) {
- /* We were able to get the original data without decoding! */
- goto out;
- }
-
- /*
- * Allocate arrays for data, parity and missing_idxs
- */
- data = alloc_zeroed_buffer(sizeof(char*) * k);
- if (NULL == data) {
- log_error("Could not allocate data buffer!");
- goto out;
- }
-
- parity = alloc_zeroed_buffer(sizeof(char*) * m);
- if (NULL == parity) {
- log_error("Could not allocate parity buffer!");
- goto out;
- }
-
- missing_idxs = alloc_and_set_buffer(sizeof(char*) * k, -1);
- if (NULL == missing_idxs) {
- log_error("Could not allocate missing_idxs buffer!");
- goto out;
- }
-
- /* If metadata checks requested, check fragment integrity upfront */
- if (force_metadata_checks) {
- int num_invalid_fragments = 0;
- for (i = 0; i < num_fragments; ++i) {
- if (is_invalid_fragment(desc, available_fragments[i])) {
- ++num_invalid_fragments;
- }
- }
- if ((num_fragments - num_invalid_fragments) < k) {
- ret = -EINSUFFFRAGS;
- log_error("Not enough valid fragments available for decode!");
- goto out;
- }
- }
-
- /*
- * Separate the fragments into data and parity. Also determine which
- * pieces are missing.
- */
- ret = get_fragment_partition(k, m, available_fragments, num_fragments,
- data, parity, missing_idxs);
-
- if (ret < 0) {
- log_error("Could not properly partition the fragments!");
- goto out;
- }
-
- /*
- * Preparing the fragments for decode. This will alloc aligned buffers
- * when unaligned buffers were passed in available_fragments. It passes
- * back a bitmap telling us which buffers need to be freed by us
- * (realloc_bm).
- *
- */
- ret = prepare_fragments_for_decode(k, m,
- data, parity, missing_idxs,
- &orig_data_size, &blocksize,
- fragment_len, &realloc_bm);
- if (ret < 0) {
- log_error("Could not prepare fragments for decode!");
- goto out;
- }
-
- data_segments = alloc_zeroed_buffer(k * sizeof(char *));
- parity_segments = alloc_zeroed_buffer(m * sizeof(char *));
- get_data_ptr_array_from_fragments(data_segments, data, k);
- get_data_ptr_array_from_fragments(parity_segments, parity, m);
-
- /* call the backend decode function passing it desc instance */
- ret = instance->common.ops->decode(instance->desc.backend_desc,
- data_segments, parity_segments,
- missing_idxs, blocksize);
-
- if (ret < 0) {
- log_error("Encountered error in backend decode function!");
- goto out;
- }
-
- /*
- * Need to fill in the missing data headers so we can generate
- * the original string.
- */
- j = 0;
- while (missing_idxs[j] >= 0) {
- int set_chksum = 1;
- int missing_idx = missing_idxs[j];
- if (missing_idx < k) {
- /* Generate headers */
- char *fragment_ptr = data[missing_idx];
- init_fragment_header(fragment_ptr);
- add_fragment_metadata(instance, fragment_ptr, missing_idx,
- orig_data_size, blocksize, instance->args.uargs.ct,
- !set_chksum);
- }
- j++;
- }
-
- /* Try to generate the original string */
- ret = fragments_to_string(k, m, data, k, out_data, out_data_len);
-
- if (ret < 0) {
- log_error("Could not convert decoded fragments to a string!");
- }
-
-out:
- /* Free the buffers allocated in prepare_fragments_for_decode */
- if (realloc_bm != 0) {
- for (i = 0; i < k; i++) {
- if (realloc_bm & (1 << i)) {
- free(data[i]);
- }
- }
-
- for (i = 0; i < m; i++) {
- if (realloc_bm & (1 << (i + k))) {
- free(parity[i]);
- }
- }
- }
-
- free(data);
- free(parity);
- free(missing_idxs);
- free(data_segments);
- free(parity_segments);
-
- return ret;
-}
-
-/**
- * Reconstruct a missing fragment from a subset of available fragments
- *
- * @param desc - liberasurecode descriptor/handle
- * from liberasurecode_instance_create()
- * @param fragment_len - size in bytes of the fragments
- * @param available_fragments - erasure encoded fragments
- * @param num_fragments - number of fragments being passed in
- * @param destination_idx - missing idx to reconstruct
- * @param out_fragment - output of reconstruct
- * @return 0 on success, -error code otherwise
- */
-int liberasurecode_reconstruct_fragment(int desc,
- char **available_fragments, /* input */
- int num_fragments, uint64_t fragment_len, /* input */
- int destination_idx, /* input */
- char* out_fragment) /* output */
-{
- int ret = 0;
- int blocksize = 0;
- int orig_data_size = 0;
- char **data = NULL;
- char **parity = NULL;
- int *missing_idxs = NULL;
- char *fragment_ptr = NULL;
- int k = -1;
- int m = -1;
- int i;
- uint64_t realloc_bm = 0;
- char **data_segments = NULL;
- char **parity_segments = NULL;
- int set_chksum = 1;
-
- ec_backend_t instance = liberasurecode_backend_instance_get_by_desc(desc);
- if (NULL == instance) {
- ret = -EBACKENDNOTAVAIL;
- goto out;
- }
-
- if (NULL == available_fragments) {
- log_error("Can not reconstruct fragment, available fragments pointer is NULL");
- ret = -1;
- goto out;
- }
-
- if (NULL == out_fragment) {
- log_error("Can not reconstruct fragment, output fragment pointer is NULL");
- ret = -1;
- goto out;
- }
-
- k = instance->args.uargs.k;
- m = instance->args.uargs.m;
-
- /*
- * Allocate arrays for data, parity and missing_idxs
- */
- data = alloc_zeroed_buffer(sizeof(char*) * k);
- if (NULL == data) {
- log_error("Could not allocate data buffer!");
- goto out;
- }
-
- parity = alloc_zeroed_buffer(sizeof(char*) * m);
- if (NULL == parity) {
- log_error("Could not allocate parity buffer!");
- goto out;
- }
-
- missing_idxs = alloc_and_set_buffer(sizeof(int*) * k, -1);
- if (NULL == missing_idxs) {
- log_error("Could not allocate missing_idxs buffer!");
- goto out;
- }
-
- /*
- * Separate the fragments into data and parity. Also determine which
- * pieces are missing.
- */
- ret = get_fragment_partition(k, m, available_fragments, num_fragments,
- data, parity, missing_idxs);
-
- if (ret < 0) {
- log_error("Could not properly partition the fragments!");
- goto out;
- }
-
- /*
- * Preparing the fragments for reconstruction. This will alloc aligned
- * buffers when unaligned buffers were passed in available_fragments.
- * It passes back a bitmap telling us which buffers need to be freed by
- * us (realloc_bm).
- */
- ret = prepare_fragments_for_decode(k, m, data, parity, missing_idxs,
- &orig_data_size, &blocksize,
- fragment_len, &realloc_bm);
- if (ret < 0) {
- log_error("Could not prepare fragments for reconstruction!");
- goto out;
- }
- data_segments = alloc_zeroed_buffer(k * sizeof(char *));
- parity_segments = alloc_zeroed_buffer(m * sizeof(char *));
- get_data_ptr_array_from_fragments(data_segments, data, k);
- get_data_ptr_array_from_fragments(parity_segments, parity, m);
-
-
- /* call the backend reconstruct function passing it desc instance */
- ret = instance->common.ops->reconstruct(instance->desc.backend_desc,
- data_segments, parity_segments,
- missing_idxs, destination_idx,
- blocksize);
- if (ret < 0) {
- log_error("Could not reconstruct fragment!");
- goto out;
- }
-
- /*
- * Update the header to reflect the newly constructed fragment
- */
- if (destination_idx < k) {
- fragment_ptr = data[destination_idx];
- } else {
- fragment_ptr = parity[destination_idx - k];
- }
- init_fragment_header(fragment_ptr);
- add_fragment_metadata(instance, fragment_ptr, destination_idx,
- orig_data_size, blocksize, instance->args.uargs.ct,
- set_chksum);
-
- /*
- * Copy the reconstructed fragment to the output buffer
- *
- * Note: the address stored in fragment_ptr will be freed below
- */
- memcpy(out_fragment, fragment_ptr, fragment_len);
-
-out:
- /* Free the buffers allocated in prepare_fragments_for_decode */
- if (realloc_bm != 0) {
- for (i = 0; i < k; i++) {
- if (realloc_bm & (1 << i)) {
- free(data[i]);
- }
- }
-
- for (i = 0; i < m; i++) {
- if (realloc_bm & (1 << (i + k))) {
- free(parity[i]);
- }
- }
- }
-
- free(data);
- free(parity);
- free(missing_idxs);
- free(data_segments);
- free(parity_segments);
-
- return ret;
-}
-
-/**
- * Return a list of lists with valid rebuild indexes given
- * a list of missing indexes.
- *
- * @desc: liberasurecode instance descriptor (obtained with
- * liberasurecode_instance_create)
- * @fragments_to_reconstruct list of indexes to reconstruct
- * @fragments_to_exclude list of indexes to exclude from
- reconstruction equation
- * @fragments_needed list of fragments needed to reconstruct
- fragments in fragments_to_reconstruct
- *
- * @return a list of lists (bitmaps) of indexes to rebuild data
- * from (in 'fragments_needed')
- */
-int liberasurecode_fragments_needed(int desc,
- int *fragments_to_reconstruct,
- int *fragments_to_exclude,
- int *fragments_needed)
-{
- int ret = 0;
-
- ec_backend_t instance = liberasurecode_backend_instance_get_by_desc(desc);
- if (NULL == instance) {
- ret = -EBACKENDNOTAVAIL;
- goto out_error;
- }
- if (NULL == fragments_to_reconstruct) {
- log_error("Unable to determine list of fragments needed, pointer to list of indexes to reconstruct is NULL.");
- ret = -1;
- goto out_error;
- }
-
- if (NULL == fragments_to_exclude) {
- log_error("Unable to determine list of fragments needed, pointer to list of fragments to exclude is NULL.");
- ret = -1;
- goto out_error;
- }
-
- if (NULL == fragments_needed) {
- log_error("Unable to determine list of fragments needed, pointer to list of fragments to reconstruct is NULL.");
- ret = -1;
- goto out_error;
- }
-
- /* FIXME preprocessing */
-
- /* call the backend fragments_needed function passing it desc instance */
- ret = instance->common.ops->fragments_needed(
- instance->desc.backend_desc,
- fragments_to_reconstruct, fragments_to_exclude, fragments_needed);
-
-out_error:
- return ret;
-}
-
-/* =~=*=~==~=*=~==~=*=~==~=*=~===~=*=~==~=*=~===~=*=~==~=*=~===~=*=~==~=*=~= */
-
-/**
- * Get opaque metadata for a fragment. The metadata is opaque to the
- * client, but meaningful to the underlying library. It is used to verify
- * stripes in verify_stripe_metadata().
- *
- * @param fragment - fragment pointer
- *
- * @param fragment_metadata - pointer to output fragment metadata struct
- * (reference passed by the user)
- */
-int liberasurecode_get_fragment_metadata(char *fragment,
- fragment_metadata_t *fragment_metadata)
-{
- int ret = 0;
- fragment_header_t *fragment_hdr = NULL;
-
- if (NULL == fragment) {
- log_error("Need valid fragment object to get metadata for");
- ret = -1;
- goto out;
- }
-
- if (NULL == fragment_metadata) {
- log_error("Need valid fragment_metadata object for return value");
- ret = -2;
- goto out;
- }
-
- memcpy(fragment_metadata, fragment, sizeof(struct fragment_metadata));
- fragment_hdr = (fragment_header_t *) fragment;
- if (LIBERASURECODE_FRAG_HEADER_MAGIC != fragment_hdr->magic) {
- log_error("Invalid fragment, illegal magic value");
- ret = -2;
- goto out;
- }
-
- switch(fragment_hdr->meta.chksum_type) {
- case CHKSUM_CRC32: {
- uint32_t computed_chksum = 0;
- uint32_t stored_chksum = fragment_hdr->meta.chksum[0];
- char *fragment_data = get_data_ptr_from_fragment(fragment);
- uint64_t fragment_size = fragment_hdr->meta.size;
- computed_chksum = crc32(0, fragment_data, fragment_size);
- if (stored_chksum != computed_chksum) {
- fragment_metadata->chksum_mismatch = 1;
- } else {
- fragment_metadata->chksum_mismatch = 0;
- }
- break;
- }
- case CHKSUM_MD5:
- break;
- case CHKSUM_NONE:
- default:
- break;
- }
-
-out:
- return ret;
-}
-
-int liberasurecode_verify_fragment_metadata(ec_backend_t be,
- fragment_metadata_t *md)
-{
- if (md->backend_id != be->common.id) {
- return 1;
- }
- if (!be->common.ops->is_compatible_with(md->backend_version)) {
- return 1;
- }
- return 0;
-}
-
-int is_invalid_fragment(int desc, char *fragment)
-{
- uint32_t ver = 0;
- fragment_metadata_t fragment_metadata;
- ec_backend_t be = liberasurecode_backend_instance_get_by_desc(desc);
- if (!be) {
- log_error("Unable to verify fragment metadata: invalid backend id %d.",
- desc);
- return 1;
- }
- if (!fragment) {
- log_error("Unable to verify fragment validity: fragments missing.");
- return 1;
- }
- if (get_libec_version(fragment, &ver) != 0 ||
- ver != LIBERASURECODE_VERSION) {
- return 1;
- }
- if (liberasurecode_get_fragment_metadata(fragment,
- &fragment_metadata) != 0) {
- return 1;
- }
- if (liberasurecode_verify_fragment_metadata(be,
- &fragment_metadata) != 0) {
- return 1;
- }
- return 0;
-}
-
-int is_valid_fragment_metadata(int desc, fragment_metadata_t *fragment_metadata)
-{
- ec_backend_t be = liberasurecode_backend_instance_get_by_desc(desc);
- if (!be) {
- log_error("Unable to verify stripe metadata: invalid backend id %d.",
- desc);
- return -EINVALIDPARAMS;
- }
- if (liberasurecode_verify_fragment_metadata(be,
- fragment_metadata) != 0) {
- return -EBADHEADER;
- }
- if (!be->common.ops->is_compatible_with(fragment_metadata->backend_version)) {
- return -EBADHEADER;
- }
- if (fragment_metadata->chksum_mismatch == 1) {
- return -EBADCHKSUM;
- }
- return 0;
-}
-
-int liberasurecode_verify_stripe_metadata(int desc,
- char **fragments, int num_fragments)
-{
- int i = 0;
- if (!fragments) {
- log_error("Unable to verify stripe metadata: fragments missing.");
- return -EINVALIDPARAMS;
- }
- if (num_fragments <= 0) {
- log_error("Unable to verify stripe metadata: "
- "number of fragments must be greater than 0.");
- return -EINVALIDPARAMS;
- }
-
- for (i = 0; i < num_fragments; i++) {
- fragment_metadata_t *fragment_metadata = (fragment_metadata_t*)fragments[i];
- int ret = is_valid_fragment_metadata(desc, fragment_metadata);
- if (ret < 0) {
- return ret;
- }
- }
-
- return 0;
-}
-
-/* =~=*=~==~=*=~==~=*=~==~=*=~===~=*=~==~=*=~===~=*=~==~=*=~===~=*=~==~=*=~= */
-
-/**
- * This computes the aligned size of a buffer passed into
- * the encode function. The encode function must pad fragments
- * to be algined with the word size (w) and the last fragment also
- * needs to be aligned. This computes the sum of the algined fragment
- * sizes for a given buffer to encode.
- */
-int liberasurecode_get_aligned_data_size(int desc, uint64_t data_len)
-{
- int k;
- int ret = 0;
- int word_size;
- int alignment_multiple;
-
- ec_backend_t instance = liberasurecode_backend_instance_get_by_desc(desc);
- if (NULL == instance) {
- ret = -EBACKENDNOTAVAIL;
- goto out;
- }
-
- k = instance->args.uargs.k;
-
- word_size = instance->common.ops->element_size(
- instance->desc.backend_desc) / 8;
-
- alignment_multiple = k * word_size;
-
- ret = (int) ceill( (double)
- data_len / alignment_multiple) * alignment_multiple;
-
-out:
- return ret;
-}
-
-/**
- * This will return the minumum encode size, which is the minimum
- * buffer size that can be encoded.
- */
-int liberasurecode_get_minimum_encode_size(int desc)
-{
- return liberasurecode_get_aligned_data_size(desc, 1);
-}
-
-int liberasurecode_get_fragment_size(int desc, int data_len)
-{
- ec_backend_t instance = liberasurecode_backend_instance_get_by_desc(desc);
- // TODO: Create a common function to calculate fragment size also for preprocessing
- int aligned_data_len = get_aligned_data_size(instance, data_len);
- int size = (aligned_data_len / instance->args.uargs.k) + instance->common.backend_metadata_size;
-
- return size;
-}
-
-/* ==~=*=~==~=*=~==~=*=~==~=*=~==~=* misc *=~==~=*=~==~=*=~==~=*=~==~=*=~== */
-
-#if 0
-/* Validate backend before calling init */
-int liberasurecode_backend_validate(ec_backend_t backend)
-{
- /* Verify that the backend implements all required methods */
-}
-
-/* FIXME - do we need to use reference counts if we are creating
-* a new instance per user */
-
-/* Get a reference to an EC backend */
-ec_backend_t liberasurecode_backend_get(const char *name)
-{
- ec_backend_t b = liberasurecode_backend_lookup_by_name(name);
- if (NULL != b)
- ++b->users;
- return b;
-}
-
-/* Drop an EC backend reference held */
-void liberasurecode_backend_put(ec_backend_t backend)
-{
- if (backend->users > 0)
- --backend->users;
-}
-
-/* Query interface for active instances */
-ec_backend_t liberasurecode_backend_instance_active(ec_backend_t instance)
-{
- ec_backend_t b;
-
- SLIST_FOREACH(b, &active_instances, link) {
- if (strcmp(b->name, name) == 0)
- return b;
- }
-
- return NULL;
-}
-
-ec_backend_t liberasurecode_backend_lookup_by_soname(const char *soname)
-{
- ec_backend_t b;
-
- SLIST_FOREACH(b, &active_instances, link) {
- if (strcmp(b->soname, soname) == 0)
- return b;
- }
-
- return NULL;
-}
-#endif
-
-/* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */
diff --git a/src/c/liberasurecode/src/erasurecode_helpers.c b/src/c/liberasurecode/src/erasurecode_helpers.c
deleted file mode 100644
index 2c41eb9..0000000
--- a/src/c/liberasurecode/src/erasurecode_helpers.c
+++ /dev/null
@@ -1,499 +0,0 @@
-/*
- * Copyright 2014 Tushar Gohad, Kevin M Greenan, Eric Lambert
- *
- * 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. 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 HOLDER 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.
- *
- * liberasurecode API helpers implementation
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-#include <assert.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include "erasurecode_backend.h"
-#include "erasurecode_helpers.h"
-#include "erasurecode_stdinc.h"
-#include "erasurecode_version.h"
-#include "alg_sig.h"
-
-/* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */
-
-static bool is_fragment(char *buf)
-{
- fragment_header_t *header = (fragment_header_t *) buf;
-
- assert(NULL != header);
- if (header->magic == LIBERASURECODE_FRAG_HEADER_MAGIC) {
- return true;
- }
-
- return false;
-}
-
-/**
- * Memory Management Methods
- *
- * The following methods provide wrappers for allocating and deallocating
- * memory.
- */
-void *get_aligned_buffer16(int size)
-{
- void *buf;
-
- /**
- * Ensure all memory is aligned to 16-byte boundaries
- * to support 128-bit operations
- */
- if (posix_memalign(&buf, 16, size) < 0) {
- return NULL;
- }
-
- memset(buf, 0, size);
-
- return buf;
-}
-
-/**
- * Allocate a zero-ed buffer of a specific size.
- *
- * @param size integer size in bytes of buffer to allocate
- * @return pointer to start of allocated buffer or NULL on error
- */
-void * alloc_zeroed_buffer(int size)
-{
- return alloc_and_set_buffer(size, 0);
-}
-
-/**
- * Allocate a buffer of a specific size and set its' contents
- * to the specified value.
- *
- * @param size integer size in bytes of buffer to allocate
- * @param value
- * @return pointer to start of allocated buffer or NULL on error
- */
-void * alloc_and_set_buffer(int size, int value) {
- void * buf = NULL; /* buffer to allocate and return */
-
- /* Allocate and zero the buffer, or set the appropriate error */
- buf = malloc((size_t) size);
- if (buf) {
- buf = memset(buf, value, (size_t) size);
- }
- return buf;
-}
-
-/**
- * Deallocate memory buffer if it's not NULL. This methods returns NULL so
- * that you can free and reset a buffer using a single line as follows:
- *
- * my_ptr = check_and_free_buffer(my_ptr);
- *
- * @return NULL
- */
-void * check_and_free_buffer(void * buf)
-{
- if (buf)
- free(buf);
- return NULL;
-}
-
-char *alloc_fragment_buffer(int size)
-{
- char *buf;
- fragment_header_t *header = NULL;
-
- size += sizeof(fragment_header_t);
- buf = get_aligned_buffer16(size);
-
- if (buf) {
- header = (fragment_header_t *) buf;
- header->magic = LIBERASURECODE_FRAG_HEADER_MAGIC;
- }
-
- return buf;
-}
-
-int free_fragment_buffer(char *buf)
-{
- fragment_header_t *header;
-
- if (NULL == buf) {
- return -1;
- }
-
- buf -= sizeof(fragment_header_t);
-
- header = (fragment_header_t *) buf;
- if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- log_error("Invalid fragment header (free fragment)!");
- return -1;
- }
-
- free(buf);
- return 0;
-}
-
-/* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */
-
-/**
- * Return total fragment length (on-disk, on-wire)
- *
- * @param buf - pointer to fragment buffer
- *
- * @return fragment size on disk
- */
-uint64_t get_fragment_size(char *buf)
-{
-
- if (NULL == buf)
- return -1;
-
- return get_fragment_buffer_size(buf) + sizeof(fragment_header_t);
- }
-
-/**
- * Compute a size aligned to the number of data and the underlying wordsize
- * of the EC algorithm.
- *
- * @param instance, ec_backend_t instance (to extract args)
- * @param data_len, integer length of data in bytes
- * @return integer data length aligned with wordsize of EC algorithm
- */
-int get_aligned_data_size(ec_backend_t instance, int data_len)
-{
- int k = instance->args.uargs.k;
- int w = instance->args.uargs.w;
- int word_size = w / 8;
- int alignment_multiple;
- int aligned_size = 0;
-
- /*
- * For Cauchy reed-solomon align to k*word_size*packet_size
- * For Vandermonde reed-solomon and flat-XOR, align to k*word_size
- */
- if (EC_BACKEND_JERASURE_RS_CAUCHY == instance->common.id) {
- alignment_multiple = k * w * (sizeof(long) * 128);
- } else {
- alignment_multiple = k * word_size;
- }
-
- aligned_size = (int)
- ceill((double) data_len / alignment_multiple) * alignment_multiple;
-
- return aligned_size;
-}
-
-/* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */
-
-char *get_data_ptr_from_fragment(char *buf)
-{
- buf += sizeof(fragment_header_t);
-
- return buf;
-}
-
-int get_data_ptr_array_from_fragments(char **data_array, char **fragments,
- int num_fragments)
-{
- int i = 0, num = 0;
- for (i = 0; i < num_fragments; i++) {
- char *frag = fragments[i];
- if (frag == NULL) {
- data_array[i] = NULL;
- continue;
- }
- data_array[i] = get_data_ptr_from_fragment(frag);
- num++;
- }
- return num;
-}
-
-int get_fragment_ptr_array_from_data(char **frag_array, char **data,
- int num_data)
-{
- int i = 0, num = 0;
- for (i = 0; i < num_data; i++) {
- char *data_ptr = frag_array[i];
- if (data_ptr == NULL) {
- data[i] = NULL;
- continue;
- }
- data[i] = get_fragment_ptr_from_data(data_ptr);
- num++;
- }
- return num;
-}
-
-char *get_fragment_ptr_from_data_novalidate(char *buf)
-{
- buf -= sizeof(fragment_header_t);
-
- return buf;
-}
-
-char *get_fragment_ptr_from_data(char *buf)
-{
- fragment_header_t *header;
-
- buf -= sizeof(fragment_header_t);
-
- header = (fragment_header_t *) buf;
-
- if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- log_error("Invalid fragment header (get header ptr)!\n");
- return NULL;
- }
-
- return buf;
-}
-
-/* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */
-
-int set_fragment_idx(char *buf, int idx)
-{
- fragment_header_t *header = (fragment_header_t *) buf;
-
- assert(NULL != header);
- if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- log_error("Invalid fragment header (idx check)!\n");
- return -1;
- }
-
- header->meta.idx = idx;
-
- return 0;
-}
-
-int get_fragment_idx(char *buf)
-{
- fragment_header_t *header = (fragment_header_t *) buf;
-
- assert(NULL != header);
- if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- log_error("Invalid fragment header (get idx)!");
- return -1;
- }
-
- return header->meta.idx;
-}
-
-int set_fragment_payload_size(char *buf, int size)
-{
- fragment_header_t *header = (fragment_header_t *) buf;
-
- assert(NULL != header);
- if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- log_error("Invalid fragment header (size check)!");
- return -1;
- }
-
- header->meta.size = size;
-
- return 0;
-}
-
-int get_fragment_payload_size(char *buf)
-{
- fragment_header_t *header = (fragment_header_t *) buf;
-
- assert(NULL != header);
- if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- log_error("Invalid fragment header (get size)!");
- return -1;
- }
-
- return header->meta.size;
-}
-
-int set_fragment_backend_metadata_size(char *buf, int size)
-{
- fragment_header_t *header = (fragment_header_t *) buf;
-
- assert(NULL != header);
- if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- log_error("Invalid fragment header (set fragment backend metadata size)!");
- return -1;
- }
-
- header->meta.frag_backend_metadata_size = size;
-
- return 0;
-}
-
-int get_fragment_backend_metadata_size(char *buf)
-{
- fragment_header_t *header = (fragment_header_t *) buf;
-
- assert(NULL != header);
- if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- log_error("Invalid fragment header (get fragment backend metadata size)!");
- return -1;
- }
-
- return header->meta.frag_backend_metadata_size;
-}
-
-int get_fragment_buffer_size(char *buf)
-{
- fragment_header_t *header = (fragment_header_t *) buf;
-
- assert(NULL != header);
- if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- log_error("Invalid fragment header (get size)!");
- return -1;
- }
-
- return header->meta.size + header->meta.frag_backend_metadata_size;
-}
-
-int set_orig_data_size(char *buf, int orig_data_size)
-{
- fragment_header_t *header = (fragment_header_t *) buf;
-
- assert(NULL != header);
- if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- log_error("Invalid fragment header (set orig data check)!");
- return -1;
- }
-
- header->meta.orig_data_size = orig_data_size;
-
- return 0;
-}
-
-int get_orig_data_size(char *buf)
-{
- fragment_header_t *header = (fragment_header_t *) buf;
-
- assert(NULL != header);
- if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- log_error("Invalid fragment header (get orig data check)!");
- return -1;
- }
-
- return header->meta.orig_data_size;
-}
-
-int set_libec_version(char *buf)
-{
- if (!is_fragment(buf)) {
- return -1;
- }
- fragment_header_t *header = (fragment_header_t *) buf;
- header->libec_version = (uint32_t)LIBERASURECODE_VERSION;
- return 0;
-}
-
-int get_libec_version(char *buf, uint32_t *ver)
-{
- if (!is_fragment(buf)) {
- return -1;
- }
- fragment_header_t *header = (fragment_header_t *) buf;
- *ver = header->libec_version;
- return 0;
-}
-
-int set_backend_id(char *buf, ec_backend_id_t id)
-{
- if (!is_fragment(buf)) {
- return -1;
- }
- fragment_header_t *header = (fragment_header_t *) buf;
- header->meta.backend_id = (uint8_t)id;
- return 0;
-}
-
-int get_backend_id(char *buf, ec_backend_id_t *id)
-{
- if (!is_fragment(buf)) {
- return -1;
- }
- fragment_header_t *header = (fragment_header_t *) buf;
- *id = header->meta.backend_id;
- return 0;
-}
-
-int set_backend_version(char *buf, uint32_t version)
-{
- if (!is_fragment(buf)) {
- return -1;
- }
- fragment_header_t *header = (fragment_header_t *) buf;
- header->meta.backend_version = version;
- return 0;
-}
-
-int get_backend_version(char *buf, uint32_t *version)
-{
- if (!is_fragment(buf)) {
- return -1;
- }
- fragment_header_t *header = (fragment_header_t *) buf;
- *version = header->meta.backend_version;
- return 0;
-}
-
-/* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */
-
-inline int set_checksum(ec_checksum_type_t ct, char *buf, int blocksize)
-{
- fragment_header_t* header = (fragment_header_t*) buf;
- char *data = get_data_ptr_from_fragment(buf);
-
- assert(NULL != header);
- if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- log_error("Invalid fragment header (set chksum)!\n");
- return -1;
- }
-
- header->meta.chksum_type = ct;
- header->meta.chksum_mismatch = 0;
-
- switch(header->meta.chksum_type) {
- case CHKSUM_CRC32:
- header->meta.chksum[0] = crc32(0, data, blocksize);
- break;
- case CHKSUM_MD5:
- break;
- case CHKSUM_NONE:
- default:
- break;
- }
-
- return 0;
-}
-
-inline uint32_t* get_chksum(char *buf)
-{
- fragment_header_t* header = (fragment_header_t*) buf;
-
- assert(NULL != header);
- if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- log_error("Invalid fragment header (get chksum)!");
- return NULL;
- }
-
- return (uint32_t *) header->meta.chksum;
-}
-
-/* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */
diff --git a/src/c/liberasurecode/src/erasurecode_postprocessing.c b/src/c/liberasurecode/src/erasurecode_postprocessing.c
deleted file mode 100644
index af418fa..0000000
--- a/src/c/liberasurecode/src/erasurecode_postprocessing.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright 2014 Tushar Gohad, Kevin M Greenan, Eric Lambert
- *
- * 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. 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 HOLDER 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.
- *
- * liberasurecode postprocessing helpers implementation
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#include "erasurecode_backend.h"
-#include "erasurecode_helpers.h"
-#include "erasurecode_stdinc.h"
-
-void add_fragment_metadata(ec_backend_t be, char *fragment,
- int idx, uint64_t orig_data_size, int blocksize,
- ec_checksum_type_t ct, int add_chksum)
-{
- //TODO EDL we are ignoring the return codes here, fix that
- set_libec_version(fragment);
- set_fragment_idx(fragment, idx);
- set_orig_data_size(fragment, orig_data_size);
- set_fragment_payload_size(fragment, blocksize);
- set_backend_id(fragment, be->common.id);
- set_backend_version(fragment, be->common.ec_backend_version);
- set_fragment_backend_metadata_size(fragment, be->common.backend_metadata_size);
-
- if (add_chksum) {
- set_checksum(ct, fragment, blocksize);
- }
-}
-
-int finalize_fragments_after_encode(ec_backend_t instance,
- int k, int m, int blocksize, uint64_t orig_data_size,
- char **encoded_data, char **encoded_parity)
-{
- int i, set_chksum = 1;
- ec_checksum_type_t ct = instance->args.uargs.ct;
-
- /* finalize data fragments */
- for (i = 0; i < k; i++) {
- char *fragment = get_fragment_ptr_from_data(encoded_data[i]);
- add_fragment_metadata(instance, fragment, i, orig_data_size,
- blocksize, ct, set_chksum);
- encoded_data[i] = fragment;
- }
-
- /* finalize parity fragments */
- for (i = 0; i < m; i++) {
- char *fragment = get_fragment_ptr_from_data(encoded_parity[i]);
- add_fragment_metadata(instance, fragment, i + k, orig_data_size,
- blocksize, ct, set_chksum);
- encoded_parity[i] = fragment;
- }
-
- return 0;
-}
diff --git a/src/c/liberasurecode/src/erasurecode_preprocessing.c b/src/c/liberasurecode/src/erasurecode_preprocessing.c
deleted file mode 100644
index 8c9f142..0000000
--- a/src/c/liberasurecode/src/erasurecode_preprocessing.c
+++ /dev/null
@@ -1,353 +0,0 @@
-/*
- * Copyright 2014 Tushar Gohad, Kevin M Greenan, Eric Lambert, Mark Storer
- *
- * 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. 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 HOLDER 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.
- *
- * liberasurecode proprocssing helpers implementation
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#include "erasurecode_backend.h"
-#include "erasurecode_helpers.h"
-#include "erasurecode_preprocessing.h"
-#include "erasurecode_stdinc.h"
-
-int prepare_fragments_for_encode(ec_backend_t instance,
- int k, int m,
- const char *orig_data, uint64_t orig_data_size, /* input */
- char **encoded_data, char **encoded_parity, /* output */
- int *blocksize)
-{
- int i, ret = 0;
- int data_len; /* data len to write to fragment headers */
- int aligned_data_len; /* EC algorithm compatible data length */
- int buffer_size, payload_size = 0;
-
- /* Calculate data sizes, aligned_data_len guaranteed to be divisible by k*/
- data_len = orig_data_size;
- aligned_data_len = get_aligned_data_size(instance, orig_data_size);
- *blocksize = payload_size = (aligned_data_len / k);
- buffer_size = payload_size + instance->common.backend_metadata_size;
-
- for (i = 0; i < k; i++) {
- int copy_size = data_len > payload_size ? payload_size : data_len;
- char *fragment = (char *) alloc_fragment_buffer(buffer_size);
- if (NULL == fragment) {
- ret = -ENOMEM;
- goto out_error;
- }
-
- /* Copy existing data into clean, zero'd out buffer */
- encoded_data[i] = get_data_ptr_from_fragment(fragment);
-
- if (data_len > 0) {
- memcpy(encoded_data[i], orig_data, copy_size);
- }
-
- orig_data += copy_size;
- data_len -= copy_size;
- }
-
- for (i = 0; i < m; i++) {
- char *fragment = (char *) alloc_fragment_buffer(buffer_size);
- if (NULL == fragment) {
- ret = -ENOMEM;
- goto out_error;
- }
-
- encoded_parity[i] = get_data_ptr_from_fragment(fragment);
- }
-
-out:
- return ret;
-
-out_error:
- printf ("ERROR in encode\n");
- if (encoded_data) {
- for (i = 0; i < k; i++) {
- if (encoded_data[i])
- free_fragment_buffer(encoded_data[i]);
- }
- check_and_free_buffer(encoded_data);
- }
-
- if (encoded_parity) {
- for (i = 0; i < m; i++) {
- if (encoded_parity[i])
- free_fragment_buffer(encoded_parity[i]);
- }
- check_and_free_buffer(encoded_parity);
- }
-
- goto out;
-}
-
-/*
- * Note that the caller should always check realloc_bm during success or
- * failure to free buffers allocated here. We could free up in this function,
- * but it is internal to this library and only used in a few places. In any
- * case, the caller has to free up in the success case, so it may as well do
- * so in the failure case.
- */
-int prepare_fragments_for_decode(
- int k, int m,
- char **data, char **parity,
- int *missing_idxs,
- int *orig_size, int *fragment_payload_size, int fragment_size,
- uint64_t *realloc_bm)
-{
- int i; /* a counter */
- unsigned long long missing_bm; /* bitmap form of missing indexes list */
- int orig_data_size = -1;
- int payload_size = -1;
-
- missing_bm = convert_list_to_bitmap(missing_idxs);
-
- /*
- * Determine if each data fragment is:
- * 1.) Alloc'd: if not, alloc new buffer (for missing fragments)
- * 2.) Aligned to 16-byte boundaries: if not, alloc a new buffer
- * memcpy the contents and free the old buffer
- */
- for (i = 0; i < k; i++) {
- /*
- * Allocate or replace with aligned buffer if the buffer was not
- * aligned.
- * DO NOT FREE: the python GC should free the original when cleaning up
- * 'data_list'
- */
- if (NULL == data[i]) {
- data[i] = alloc_fragment_buffer(fragment_size - sizeof(fragment_header_t));
- if (NULL == data[i]) {
- log_error("Could not allocate data buffer!");
- return -1;
- }
- *realloc_bm = *realloc_bm | (1 << i);
- } else if (!is_addr_aligned((unsigned long)data[i], 16)) {
- char *tmp_buf = alloc_fragment_buffer(fragment_size - sizeof(fragment_header_t));
- if (NULL == tmp_buf) {
- log_error("Could not allocate temp buffer!");
- return -1;
- }
- memcpy(tmp_buf, data[i], fragment_size);
- data[i] = tmp_buf;
- *realloc_bm = *realloc_bm | (1 << i);
- }
-
- /* Need to determine the size of the original data */
- if (((missing_bm & (1 << i)) == 0) && orig_data_size < 0) {
- orig_data_size = get_orig_data_size(data[i]);
- if (orig_data_size < 0) {
- log_error("Invalid orig_data_size in fragment header!");
- return -1;
- }
- payload_size = get_fragment_payload_size(data[i]);
- if (orig_data_size < 0) {
- log_error("Invalid fragment_size in fragment header!");
- return -1;
- }
- }
- }
-
- /* Perform the same allocation, alignment checks on the parity fragments */
- for (i = 0; i < m; i++) {
- /*
- * Allocate or replace with aligned buffer, if the buffer was not aligned.
- * DO NOT FREE: the python GC should free the original when cleaning up 'data_list'
- */
- if (NULL == parity[i]) {
- parity[i] = alloc_fragment_buffer(fragment_size-sizeof(fragment_header_t));
- if (NULL == parity[i]) {
- log_error("Could not allocate parity buffer!");
- return -1;
- }
- *realloc_bm = *realloc_bm | (1 << (k + i));
- } else if (!is_addr_aligned((unsigned long)parity[i], 16)) {
- char *tmp_buf = alloc_fragment_buffer(fragment_size-sizeof(fragment_header_t));
- if (NULL == tmp_buf) {
- log_error("Could not allocate temp buffer!");
- return -1;
- }
- memcpy(tmp_buf, parity[i], fragment_size);
- parity[i] = tmp_buf;
- *realloc_bm = *realloc_bm | (1 << (k + i));
- }
-
- }
-
- *orig_size = orig_data_size;
- *fragment_payload_size = payload_size;
-
- return 0;
-}
-
-int get_fragment_partition(
- int k, int m,
- char **fragments, int num_fragments,
- char **data, char **parity, int *missing)
-{
- int i = 0;
- int num_missing = 0;
- int index;
-
- /*
- * Set all data and parity entries to NULL
- */
- for (i = 0; i < k; i++) {
- data[i] = NULL;
- }
- for (i = 0; i < m; i++) {
- parity[i] = NULL;
- }
-
- /*
- * Fill in data and parity with available fragments
- */
- for (i = 0; i < num_fragments; i++) {
- index = get_fragment_idx(fragments[i]);
- if (index < k) {
- data[index] = fragments[i];
- } else {
- parity[index - k] = fragments[i];
- }
- }
-
- /*
- * Fill in missing array with missing indexes
- */
- for (i = 0; i < k; i++) {
- if (NULL == data[i]) {
- missing[num_missing] = i;
- num_missing++;
- }
- }
- for (i = 0; i < m; i++) {
- if (NULL == parity[i]) {
- missing[num_missing] = i + k;
- num_missing++;
- }
- }
- // TODO: In general, it is possible to reconstruct one or more fragments
- // when more than m fragments are missing (e.g. flat XOR codes)
- return (num_missing > m) ? -EINSUFFFRAGS : 0;
-}
-
-int fragments_to_string(int k, int m,
- char **fragments, int num_fragments,
- char **orig_payload, uint64_t *payload_len)
-{
- char *internal_payload = NULL;
- char **data = NULL;
- int orig_data_size = -1;
- int i;
- int index;
- int data_size;
- int num_data = 0;
- int string_off = 0;
- int ret = -1;
-
- if (num_fragments < k) {
- /*
- * This is not necessarily an error condition, so *do not log here*
- * We can maybe debug log, if necessary.
- */
- goto out;
- }
-
- data = (char **) get_aligned_buffer16(sizeof(char *) * k);
-
- if (NULL == data) {
- log_error("Could not allocate buffer for data!!");
- goto out;
- }
-
- for (i = 0; i < num_fragments; i++) {
- index = get_fragment_idx(fragments[i]);
- data_size = get_fragment_payload_size(fragments[i]);
- if ((index < 0) || (data_size < 0)) {
- log_error("Invalid fragment header information!");
- goto out;
- }
-
- /* Validate the original data size */
- if (orig_data_size < 0) {
- orig_data_size = get_orig_data_size(fragments[i]);
- } else {
- if (get_orig_data_size(fragments[i]) != orig_data_size) {
- log_error("Inconsistent orig_data_size in fragment header!");
- goto out;
- }
- }
-
- /* Skip parity fragments, put data fragments in index order */
- if (index >= k) {
- continue;
- } else {
- /* Make sure we account for duplicates */
- if (NULL != fragments[index]) {
- data[index] = fragments[i];
- num_data++;
- }
- }
- }
-
- /* We do not have enough data fragments to do this! */
- if (num_data != k) {
- /*
- * This is not necessarily an error condition, so *do not log here*
- * We can maybe debug log, if necessary.
- */
- goto out;
- }
-
- /* Create the string to return */
- internal_payload = (char *) get_aligned_buffer16(orig_data_size);
- if (NULL == internal_payload) {
- log_error("Could not allocate buffer for decoded string!");
- goto out;
- }
-
- /* Pass the original data length back */
- *payload_len = orig_data_size;
-
- /* Copy fragment data into cstring (fragments should be in index order) */
- for (i = 0; i < num_data && orig_data_size > 0; i++) {
- char* fragment_data = get_data_ptr_from_fragment(data[i]);
- int fragment_size = get_fragment_payload_size(data[i]);
- int payload_size = orig_data_size > fragment_size ? fragment_size : orig_data_size;
-
- memcpy(internal_payload + string_off, fragment_data, payload_size);
- orig_data_size -= payload_size;
- string_off += payload_size;
- }
-
- /* Everything worked just fine */
- ret = 0;
-
-out:
- if (NULL != data) {
- free(data);
- }
-
- *orig_payload = internal_payload;
- return ret;
-}
diff --git a/src/c/liberasurecode/src/utils/chksum/alg_sig.c b/src/c/liberasurecode/src/utils/chksum/alg_sig.c
deleted file mode 100644
index fb4ead3..0000000
--- a/src/c/liberasurecode/src/utils/chksum/alg_sig.c
+++ /dev/null
@@ -1,399 +0,0 @@
-/* * Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com)
- * 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. 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 HOLDER 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.
- */
-
-#include <dlfcn.h>
-#include <alg_sig.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#define GALOIS_SINGLE_MULTIPLY "galois_single_multiply"
-
-int valid_gf_w[] = { 8, 16, -1 };
-int valid_pairs[][2] = { { 8, 32}, {16, 32}, {16, 64}, {-1, -1} };
-
-galois_single_multiply_func get_galois_multi_func(void *handle) {
- /*
- * ISO C forbids casting a void* to a function pointer.
- * Since dlsym return returns a void*, we use this union to
- * "transform" the void* to a function pointer.
- */
- union {
- galois_single_multiply_func fptr;
- void *vptr;
- } func_handle = {.vptr = NULL};
- func_handle.vptr = dlsym(handle, GALOIS_SINGLE_MULTIPLY);
- return func_handle.fptr;
-}
-
-void *get_jerasure_sohandle()
-{
- return dlopen(JERASURE_SONAME, RTLD_LAZY | RTLD_LOCAL);
-}
-
-int load_gf_functions(void *sohandle, struct jerasure_mult_routines *routines)
-{
- routines->galois_single_multiply = get_galois_multi_func(sohandle);
- if (NULL == routines->galois_single_multiply) {
- return -1;
- }
- return 0;
-}
-
-static
-alg_sig_t *init_alg_sig_w8(void *jerasure_sohandle, int sig_len)
-{
- alg_sig_t *alg_sig_handle;
- int num_gf_lr_table_syms;
- int i;
- int w = 8;
- int alpha = 2, beta = 4, gamma = 8;
- int num_components = sig_len / w;
-
- alg_sig_handle = (alg_sig_t *)malloc(sizeof(alg_sig_t));
- if (NULL == alg_sig_handle) {
- return NULL;
- }
-
- alg_sig_handle->jerasure_sohandle = jerasure_sohandle;
-
- if (load_gf_functions(alg_sig_handle->jerasure_sohandle, &(alg_sig_handle->mult_routines)) < 0) {
- free(alg_sig_handle);
- return NULL;
- }
-
- alg_sig_handle->sig_len = sig_len;
- alg_sig_handle->gf_w = w;
-
- num_gf_lr_table_syms = 1 << (w >> 1);
-
- if (num_components >= 4) {
- alg_sig_handle->tbl1_l = (int*)malloc(sizeof(int) * num_gf_lr_table_syms);
- alg_sig_handle->tbl1_r = (int*)malloc(sizeof(int) * num_gf_lr_table_syms);
- alg_sig_handle->tbl2_l = (int*)malloc(sizeof(int) * num_gf_lr_table_syms);
- alg_sig_handle->tbl2_r = (int*)malloc(sizeof(int) * num_gf_lr_table_syms);
- alg_sig_handle->tbl3_l = (int*)malloc(sizeof(int) * num_gf_lr_table_syms);
- alg_sig_handle->tbl3_r = (int*)malloc(sizeof(int) * num_gf_lr_table_syms);
- }
-
- /*
- * Note that \alpha = 2
- * Note that \beta = 4 (\alpha ^ 2)
- * Note that \gamme = 8 (\alpha ^ 3)
- */
- for (i = 0; i < 16; i++) {
- if (num_components >= 4) {
- alg_sig_handle->tbl1_l[i] = alg_sig_handle->mult_routines.galois_single_multiply((unsigned char)(i << 4) & 0xf0, alpha, w);
- alg_sig_handle->tbl1_r[i] = alg_sig_handle->mult_routines.galois_single_multiply((unsigned char) i, alpha, w);
-
- alg_sig_handle->tbl2_l[i] = alg_sig_handle->mult_routines.galois_single_multiply((unsigned char) (i << 4) & 0xf0, beta, w);
- alg_sig_handle->tbl2_r[i] = alg_sig_handle->mult_routines.galois_single_multiply((unsigned char) i, beta, w);
-
- alg_sig_handle->tbl3_l[i] = alg_sig_handle->mult_routines.galois_single_multiply((unsigned char) (i << 4) & 0xf0, gamma, w);
- alg_sig_handle->tbl3_r[i] = alg_sig_handle->mult_routines.galois_single_multiply((unsigned char) i, gamma, w);
- }
- }
-
- return alg_sig_handle;
-}
-
-static
-alg_sig_t *init_alg_sig_w16(void *jerasure_sohandle, int sig_len)
-{
- alg_sig_t *alg_sig_handle;
- int num_gf_lr_table_syms;
- int i;
- int w = 16;
- int alpha = 2, beta = 4, gamma = 8;
- int num_components = sig_len / w;
-
- if (NULL == jerasure_sohandle) {
- return NULL;
- }
-
- alg_sig_handle = (alg_sig_t *)malloc(sizeof(alg_sig_t));
- if (NULL == alg_sig_handle) {
- return NULL;
- }
-
- alg_sig_handle->jerasure_sohandle = jerasure_sohandle;
-
- if (load_gf_functions(alg_sig_handle->jerasure_sohandle, &(alg_sig_handle->mult_routines)) < 0) {
- free(alg_sig_handle);
- return NULL;
- }
-
- alg_sig_handle->sig_len = sig_len;
- alg_sig_handle->gf_w = w;
-
- num_gf_lr_table_syms = 1 << (w >> 1);
-
- if (num_components >= 2) {
- alg_sig_handle->tbl1_l = (int*)malloc(sizeof(int) * num_gf_lr_table_syms);
- alg_sig_handle->tbl1_r = (int*)malloc(sizeof(int) * num_gf_lr_table_syms);
- }
-
- if (num_components >= 4) {
- alg_sig_handle->tbl2_l = (int*)malloc(sizeof(int) * num_gf_lr_table_syms);
- alg_sig_handle->tbl2_r = (int*)malloc(sizeof(int) * num_gf_lr_table_syms);
- alg_sig_handle->tbl3_l = (int*)malloc(sizeof(int) * num_gf_lr_table_syms);
- alg_sig_handle->tbl3_r = (int*)malloc(sizeof(int) * num_gf_lr_table_syms);
- }
-
- /*
- * Note that \alpha = 2
- * Note that \beta = 4 (\alpha ^ 2 MOD 2^16)
- * Note that \gamme = 8 (\alpha ^ 3 MOD 2^16)
- */
- for (i = 0; i < 256; i++) {
- alg_sig_handle->tbl1_l[i] = alg_sig_handle->mult_routines.galois_single_multiply((unsigned short) (i << 8), alpha, w);
- alg_sig_handle->tbl1_r[i] = alg_sig_handle->mult_routines.galois_single_multiply((unsigned short) i, alpha, w);
-
- if (num_components >= 4) {
- alg_sig_handle->tbl2_l[i] = alg_sig_handle->mult_routines.galois_single_multiply((unsigned short) (i << 8), beta, w);
- alg_sig_handle->tbl2_r[i] = alg_sig_handle->mult_routines.galois_single_multiply((unsigned short) i, beta, w);
-
- alg_sig_handle->tbl3_l[i] = alg_sig_handle->mult_routines.galois_single_multiply((unsigned short) (i << 8), gamma, w);
- alg_sig_handle->tbl3_r[i] = alg_sig_handle->mult_routines.galois_single_multiply((unsigned short) i, gamma, w);
- }
- }
-
- return alg_sig_handle;
-}
-
-alg_sig_t *init_alg_sig(int sig_len, int gf_w)
-{
- int i=0;
- void *jerasure_sohandle = get_jerasure_sohandle();
-
- if (NULL == jerasure_sohandle) {
- fprintf (stderr, "Could not open Jerasure backend. Install Jerasure or fix LD_LIBRARY_PATH. Passing.\n");
- return NULL;
- }
-
- while (valid_pairs[i][0] > -1) {
- if (gf_w == valid_pairs[i][0] &&
- sig_len == valid_pairs[i][1]) {
- break;
- }
- i++;
- }
-
- if (valid_pairs[i][0] == -1) {
- return NULL;
- }
-
- if (gf_w == 8) {
- return init_alg_sig_w8(jerasure_sohandle, sig_len);
- } else if (gf_w == 16) {
- return init_alg_sig_w16(jerasure_sohandle, sig_len);
- }
- return NULL;
-}
-
-void destroy_alg_sig(alg_sig_t* alg_sig_handle)
-{
- if (alg_sig_handle == NULL) {
- return;
- }
- if (alg_sig_handle->gf_w == 0) {
- free(alg_sig_handle);
- return;
- }
-
- dlclose(alg_sig_handle->jerasure_sohandle);
-
- int num_components = alg_sig_handle->sig_len / alg_sig_handle->gf_w;
-
- free(alg_sig_handle->tbl1_l);
- free(alg_sig_handle->tbl1_r);
- if (num_components >= 4) {
- free(alg_sig_handle->tbl2_l);
- free(alg_sig_handle->tbl2_r);
- free(alg_sig_handle->tbl3_l);
- free(alg_sig_handle->tbl3_r);
- }
- free(alg_sig_handle);
-}
-
-
-static
-int compute_w8_alg_sig_32(alg_sig_t *alg_sig_handle, char *buf, int len, char *sig)
-{
- int i;
-
- if (len == 0) {
- bzero(sig, 4);
- return 0;
- }
-
- sig[0] = buf[len-1];
- sig[1] = buf[len-1];
- sig[2] = buf[len-1];
- sig[3] = buf[len-1];
-
- /**
- * This is the loop to optimize. It is currently optimized enough : using Horner's alg.,
- * shortened mult. tables, and other tricks.
- */
- for (i = len - 2; i >= 0; i--) {
- sig[0] ^= buf[i];
- sig[1] = (buf[i] ^ (alg_sig_handle->tbl1_l[(sig[1] >> 4) & 0x0f] ^ alg_sig_handle->tbl1_r[sig[1] & 0x0f]));
- sig[2] = (buf[i] ^ (alg_sig_handle->tbl2_l[(sig[2] >> 4) & 0x0f] ^ alg_sig_handle->tbl2_r[sig[2] & 0x0f]));
- sig[3] = (buf[i] ^ (alg_sig_handle->tbl3_l[(sig[3] >> 4) & 0x0f] ^ alg_sig_handle->tbl3_r[sig[3] & 0x0f]));
- }
-
- return 0;
-}
-
-static
-int compute_w16_alg_sig_64(alg_sig_t *alg_sig_handle, char *buf, int len, char *sig)
-{
- int bit_mask;
- int adj_len = len / 2;
- int i;
- unsigned short *_buf = (unsigned short *)buf;
- unsigned short sig_buf[4];
-
- if (len == 0) {
- bzero(sig, 8);
- return 0;
- }
-
- switch (len % 2) {
- case 1:
- bit_mask = 0x00ff;
- break;
- default:
- bit_mask = 0xffff;
- break;
- }
-
- if (len % 2 > 0) {
- adj_len++;
- }
-
- // Account for buffer not being uint16_t aligned
- sig_buf[0] = (_buf[adj_len - 1] & bit_mask);
- sig_buf[1] = (_buf[adj_len - 1] & bit_mask);
- sig_buf[2] = (_buf[adj_len - 1] & bit_mask);
- sig_buf[3] = (_buf[adj_len - 1] & bit_mask);
-
- /**
- * This is the loop to optimize. It is currently optimized enough : using Horner's alg.,
- * shortened mult. tables, and other tricks.
- */
- for (i = adj_len - 2; i >= 0; i--) {
- sig_buf[0] ^= _buf[i];
- sig_buf[1] = (_buf[i] ^ (alg_sig_handle->tbl1_l[(sig_buf[1] >> 8) & 0x00ff] ^ alg_sig_handle->tbl1_r[sig_buf[1] & 0x00ff]));
- sig_buf[2] = (_buf[i] ^ (alg_sig_handle->tbl2_l[(sig_buf[2] >> 8) & 0x00ff] ^ alg_sig_handle->tbl2_r[sig_buf[2] & 0x00ff]));
- sig_buf[3] = (_buf[i] ^ (alg_sig_handle->tbl3_l[(sig_buf[3] >> 8) & 0x00ff] ^ alg_sig_handle->tbl3_r[sig_buf[3] & 0x00ff]));
- }
-
- sig[0] = (char) (sig_buf[0] & 0x000ff);
- sig[1] = (char) ((sig_buf[0] >> 8) & 0x000ff);
- sig[2] = (char) (sig_buf[1] & 0x00ff);
- sig[3] = (char) ((sig_buf[1] >> 8) & 0x00ff);
- sig[4] = (char) (sig_buf[2] & 0x00ff);
- sig[5] = (char) ((sig_buf[2] >> 8) & 0x00ff);
- sig[6] = (char) (sig_buf[3] & 0x00ff);
- sig[7] = (char) ((sig_buf[3] >> 8) & 0x00ff);
- return 0;
-}
-
-static
-int compute_w16_alg_sig_32(alg_sig_t *alg_sig_handle, char *buf, int len, char *sig)
-{
- int bit_mask;
- int adj_len = len / 2;
- int i;
- unsigned short *_buf = (unsigned short *)buf;
- unsigned short sig_buf[2];
-
- if (len == 0) {
- bzero(sig, 8);
- return 0;
- }
-
- switch (len % 2) {
- case 1:
- bit_mask = 0x00ff;
- break;
- default:
- bit_mask = 0xffff;
- break;
- }
-
- if (len % 2 > 0) {
- adj_len++;
- }
-
- // Account for buffer not being uint16_t aligned
- sig_buf[0] = (_buf[adj_len - 1] & bit_mask);
- sig_buf[1] = (_buf[adj_len - 1] & bit_mask);
-
- /**
- * This is the loop to optimize. It is currently optimized enough : using Horner's alg.,
- * shortened mult. tables, and other tricks.
- */
- for (i = adj_len - 2; i >= 0; i--) {
- sig_buf[0] ^= _buf[i];
- sig_buf[1] = (_buf[i] ^ (alg_sig_handle->tbl1_l[(sig_buf[1] >> 8) & 0x00ff] ^ alg_sig_handle->tbl1_r[sig_buf[1] & 0x00ff]));
- }
-
- sig[0] = (char) (sig_buf[0] & 0x000ff);
- sig[1] = (char) ((sig_buf[0] >> 8) & 0x000ff);
- sig[2] = (char) (sig_buf[1] & 0x00ff);
- sig[3] = (char) ((sig_buf[1] >> 8) & 0x00ff);
- return 0;
-}
-
-static
-int compute_alg_sig_32(alg_sig_t *alg_sig_handle, char *buf, int len, char *sig)
-{
- if (alg_sig_handle->gf_w == 8) {
- return compute_w8_alg_sig_32(alg_sig_handle, buf, len, sig);
- } else if (alg_sig_handle->gf_w == 16) {
- return compute_w16_alg_sig_32(alg_sig_handle, buf, len, sig);
- }
- return -1;
-}
-
-static
-int compute_alg_sig_64(alg_sig_t *alg_sig_handle, char *buf, int len, char *sig)
-{
- if (alg_sig_handle->gf_w == 16) {
- return compute_w16_alg_sig_64(alg_sig_handle, buf, len, sig);
- }
- return -1;
-}
-
-int compute_alg_sig(alg_sig_t *alg_sig_handle, char *buf, int len, char *sig)
-{
- if (alg_sig_handle->sig_len == 32) {
- return compute_alg_sig_32(alg_sig_handle, buf, len, sig);
- } else if (alg_sig_handle->sig_len == 64) {
- return compute_alg_sig_64(alg_sig_handle, buf, len, sig);
- }
- return -1;
-}
diff --git a/src/c/liberasurecode/src/utils/chksum/crc32.c b/src/c/liberasurecode/src/utils/chksum/crc32.c
deleted file mode 100644
index 5ef23ab..0000000
--- a/src/c/liberasurecode/src/utils/chksum/crc32.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/*-
- * COPYRIGHT (C) 1986 Gary S. Brown. You may use this program, or
- * code or tables extracted from it, as desired without restriction.
- *
- * First, the polynomial itself and its table of feedback terms. The
- * polynomial is
- * X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0
- *
- * Note that we take it "backwards" and put the highest-order term in
- * the lowest-order bit. The X^32 term is "implied"; the LSB is the
- * X^31 term, etc. The X^0 term (usually shown as "+1") results in
- * the MSB being 1
- *
- * Note that the usual hardware shift register implementation, which
- * is what we're using (we're merely optimizing it by doing eight-bit
- * chunks at a time) shifts bits into the lowest-order term. In our
- * implementation, that means shifting towards the right. Why do we
- * do it this way? Because the calculated CRC must be transmitted in
- * order from highest-order term to lowest-order term. UARTs transmit
- * characters in order from LSB to MSB. By storing the CRC this way
- * we hand it to the UART in the order low-byte to high-byte; the UART
- * sends each low-bit to hight-bit; and the result is transmission bit
- * by bit from highest- to lowest-order term without requiring any bit
- * shuffling on our part. Reception works similarly
- *
- * The feedback terms table consists of 256, 32-bit entries. Notes
- *
- * The table can be generated at runtime if desired; code to do so
- * is shown later. It might not be obvious, but the feedback
- * terms simply represent the results of eight shift/xor opera
- * tions for all combinations of data and CRC register values
- *
- * The values must be right-shifted by eight bits by the "updcrc
- * logic; the shift must be unsigned (bring in zeroes). On some
- * hardware you could probably optimize the shift in assembler by
- * using byte-swap instructions
- * polynomial $edb88320
- *
- *
- * CRC32 code derived from work by Gary S. Brown.
- */
-
-#include <sys/param.h>
-
-#if defined(INTEL_SSE4)
-#include <nmmintrin.h>
-
-int
-crc32(int crc, const void *buf, size_t size)
-{
- unsigned long long *current = (unsigned long long*)buf;
- unsigned char *current_char;
-
- crc = crc ^ ~0U;
-
- while(size >= 8) {
- crc = _mm_crc32_u64(crc, *current++);
- size -= 8;
- }
-
- current_char = (unsigned char*)current;
- while (size--) {
- crc = _mm_crc32_u8(crc, *current_char++);
- }
- return crc ^ ~0U;
-}
-#else
-
-static int crc32_tab[] = {
- 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
- 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
- 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,
- 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
- 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
- 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
- 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
- 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
- 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,
- 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
- 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
- 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
- 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,
- 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
- 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
- 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
- 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,
- 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
- 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,
- 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
- 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
- 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
- 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,
- 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
- 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
- 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
- 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,
- 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
- 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,
- 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
- 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
- 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
- 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,
- 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
- 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
- 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
- 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,
- 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
- 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,
- 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
- 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
- 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
- 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
-};
-
-// Use same polynomial as Intel's SSE4 instruction!
-#define POLY_CRC_32 0x11EDC6F41
-
-int
-crc32(int crc, const void *buf, size_t size)
-{
- const char *p;
-
- p = buf;
- crc = crc ^ ~0U;
-
- while (size--)
- crc = crc32_tab[(crc ^ *p++) & 0xFF] ^ (crc >> 8);
-
- return crc ^ ~0U;
-}
-#endif
diff --git a/src/c/liberasurecode/test/Makefile.am b/src/c/liberasurecode/test/Makefile.am
deleted file mode 100644
index 3e9c85f..0000000
--- a/src/c/liberasurecode/test/Makefile.am
+++ /dev/null
@@ -1,28 +0,0 @@
-noinst_HEADERS = builtin/xor_codes/test_xor_hd_code.h
-noinst_PROGRAMS = test_xor_hd_code alg_sig_test liberasurecode_test libec_slap
-
-test_xor_hd_code_SOURCES = \
- builtin/xor_codes/test_xor_hd_code.c \
- builtin/xor_codes/test_xor_hd_code.h
-test_xor_hd_code_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/erasurecode -I$(top_srcdir)/include/xor_codes @GCOV_FLAGS@
-test_xor_hd_code_LDFLAGS = @GCOV_LDFLAGS@ -static-libtool-libs $(top_srcdir)/src/liberasurecode.la $(top_srcdir)/src/builtin/xor_codes/libXorcode.la
-check_PROGRAMS = test_xor_hd_code
-
-alg_sig_test_SOURCES = utils/chksum/test_alg_sig.c
-alg_sig_test_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/erasurecode -I$(top_srcdir)/include/xor_codes @GCOV_FLAGS@
-alg_sig_test_LDFLAGS = @GCOV_LDFLAGS@ -static-libtool-libs $(top_srcdir)/src/liberasurecode.la -ldl
-check_PROGRAMS += alg_sig_test
-
-liberasurecode_test_SOURCES = liberasurecode_test.c
-liberasurecode_test_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/erasurecode @GCOV_FLAGS@
-liberasurecode_test_LDFLAGS = @GCOV_LDFLAGS@ $(top_srcdir)/src/liberasurecode.la -ldl -lpthread
-check_PROGRAMS += liberasurecode_test
-
-libec_slap_SOURCES = libec_slap.c
-libec_slap_CPPFLAGS = -I. -I$(top_srcdir)/include -I$(top_srcdir)/include/erasurecode @GCOV_FLAGS@
-libec_slap_LDFLAGS = @GCOV_LDFLAGS@ $(top_srcdir)/src/liberasurecode.la -ldl -lpthread
-check_PROGRAMS += libec_slap
-
-MOSTLYCLEANFILES = *.gcda *.gcno *.gcov \
- ./builtin/xor_codes/*.gcda ./builtin/xor_codes/*.gcno ./builtin/xor_codes/*.gcov \
- ./utils/chksum/*.gcda ./utils/chksum/*.gcno ./utils/chksum/*.gcov
diff --git a/src/c/liberasurecode/test/Makefile.in b/src/c/liberasurecode/test/Makefile.in
deleted file mode 100644
index b8705e1..0000000
--- a/src/c/liberasurecode/test/Makefile.in
+++ /dev/null
@@ -1,747 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-noinst_PROGRAMS = test_xor_hd_code$(EXEEXT) alg_sig_test$(EXEEXT) \
- liberasurecode_test$(EXEEXT) libec_slap$(EXEEXT)
-check_PROGRAMS = test_xor_hd_code$(EXEEXT) alg_sig_test$(EXEEXT) \
- liberasurecode_test$(EXEEXT) libec_slap$(EXEEXT)
-subdir = test
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/depcomp $(noinst_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_ext.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \
- $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config_liberasurecode.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-PROGRAMS = $(noinst_PROGRAMS)
-am__dirstamp = $(am__leading_dot)dirstamp
-am_alg_sig_test_OBJECTS = \
- utils/chksum/alg_sig_test-test_alg_sig.$(OBJEXT)
-alg_sig_test_OBJECTS = $(am_alg_sig_test_OBJECTS)
-alg_sig_test_LDADD = $(LDADD)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-alg_sig_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(alg_sig_test_LDFLAGS) $(LDFLAGS) -o $@
-am_libec_slap_OBJECTS = libec_slap-libec_slap.$(OBJEXT)
-libec_slap_OBJECTS = $(am_libec_slap_OBJECTS)
-libec_slap_LDADD = $(LDADD)
-libec_slap_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(libec_slap_LDFLAGS) $(LDFLAGS) -o $@
-am_liberasurecode_test_OBJECTS = \
- liberasurecode_test-liberasurecode_test.$(OBJEXT)
-liberasurecode_test_OBJECTS = $(am_liberasurecode_test_OBJECTS)
-liberasurecode_test_LDADD = $(LDADD)
-liberasurecode_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(AM_CFLAGS) $(CFLAGS) $(liberasurecode_test_LDFLAGS) \
- $(LDFLAGS) -o $@
-am_test_xor_hd_code_OBJECTS = \
- builtin/xor_codes/test_xor_hd_code-test_xor_hd_code.$(OBJEXT)
-test_xor_hd_code_OBJECTS = $(am_test_xor_hd_code_OBJECTS)
-test_xor_hd_code_LDADD = $(LDADD)
-test_xor_hd_code_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(AM_CFLAGS) $(CFLAGS) $(test_xor_hd_code_LDFLAGS) $(LDFLAGS) \
- -o $@
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(alg_sig_test_SOURCES) $(libec_slap_SOURCES) \
- $(liberasurecode_test_SOURCES) $(test_xor_hd_code_SOURCES)
-DIST_SOURCES = $(alg_sig_test_SOURCES) $(libec_slap_SOURCES) \
- $(liberasurecode_test_SOURCES) $(test_xor_hd_code_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-HEADERS = $(noinst_HEADERS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DOXYGEN = @DOXYGEN@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GCOV_FLAGS = @GCOV_FLAGS@
-GCOV_LDFLAGS = @GCOV_LDFLAGS@
-GREP = @GREP@
-HAVE_DOXYGEN = @HAVE_DOXYGEN@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJECTS = @OBJECTS@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIMD_FLAGS = @SIMD_FLAGS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_aux_dir = @ac_aux_dir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-noinst_HEADERS = builtin/xor_codes/test_xor_hd_code.h
-test_xor_hd_code_SOURCES = \
- builtin/xor_codes/test_xor_hd_code.c \
- builtin/xor_codes/test_xor_hd_code.h
-
-test_xor_hd_code_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/erasurecode -I$(top_srcdir)/include/xor_codes @GCOV_FLAGS@
-test_xor_hd_code_LDFLAGS = @GCOV_LDFLAGS@ -static-libtool-libs $(top_srcdir)/src/liberasurecode.la $(top_srcdir)/src/builtin/xor_codes/libXorcode.la
-alg_sig_test_SOURCES = utils/chksum/test_alg_sig.c
-alg_sig_test_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/erasurecode -I$(top_srcdir)/include/xor_codes @GCOV_FLAGS@
-alg_sig_test_LDFLAGS = @GCOV_LDFLAGS@ -static-libtool-libs $(top_srcdir)/src/liberasurecode.la -ldl
-liberasurecode_test_SOURCES = liberasurecode_test.c
-liberasurecode_test_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/erasurecode @GCOV_FLAGS@
-liberasurecode_test_LDFLAGS = @GCOV_LDFLAGS@ $(top_srcdir)/src/liberasurecode.la -ldl -lpthread
-libec_slap_SOURCES = libec_slap.c
-libec_slap_CPPFLAGS = -I. -I$(top_srcdir)/include -I$(top_srcdir)/include/erasurecode @GCOV_FLAGS@
-libec_slap_LDFLAGS = @GCOV_LDFLAGS@ $(top_srcdir)/src/liberasurecode.la -ldl -lpthread
-MOSTLYCLEANFILES = *.gcda *.gcno *.gcov \
- ./builtin/xor_codes/*.gcda ./builtin/xor_codes/*.gcno ./builtin/xor_codes/*.gcov \
- ./utils/chksum/*.gcda ./utils/chksum/*.gcno ./utils/chksum/*.gcov
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu test/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-checkPROGRAMS:
- @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-clean-noinstPROGRAMS:
- @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-utils/chksum/$(am__dirstamp):
- @$(MKDIR_P) utils/chksum
- @: > utils/chksum/$(am__dirstamp)
-utils/chksum/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) utils/chksum/$(DEPDIR)
- @: > utils/chksum/$(DEPDIR)/$(am__dirstamp)
-utils/chksum/alg_sig_test-test_alg_sig.$(OBJEXT): \
- utils/chksum/$(am__dirstamp) \
- utils/chksum/$(DEPDIR)/$(am__dirstamp)
-
-alg_sig_test$(EXEEXT): $(alg_sig_test_OBJECTS) $(alg_sig_test_DEPENDENCIES) $(EXTRA_alg_sig_test_DEPENDENCIES)
- @rm -f alg_sig_test$(EXEEXT)
- $(AM_V_CCLD)$(alg_sig_test_LINK) $(alg_sig_test_OBJECTS) $(alg_sig_test_LDADD) $(LIBS)
-
-libec_slap$(EXEEXT): $(libec_slap_OBJECTS) $(libec_slap_DEPENDENCIES) $(EXTRA_libec_slap_DEPENDENCIES)
- @rm -f libec_slap$(EXEEXT)
- $(AM_V_CCLD)$(libec_slap_LINK) $(libec_slap_OBJECTS) $(libec_slap_LDADD) $(LIBS)
-
-liberasurecode_test$(EXEEXT): $(liberasurecode_test_OBJECTS) $(liberasurecode_test_DEPENDENCIES) $(EXTRA_liberasurecode_test_DEPENDENCIES)
- @rm -f liberasurecode_test$(EXEEXT)
- $(AM_V_CCLD)$(liberasurecode_test_LINK) $(liberasurecode_test_OBJECTS) $(liberasurecode_test_LDADD) $(LIBS)
-builtin/xor_codes/$(am__dirstamp):
- @$(MKDIR_P) builtin/xor_codes
- @: > builtin/xor_codes/$(am__dirstamp)
-builtin/xor_codes/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) builtin/xor_codes/$(DEPDIR)
- @: > builtin/xor_codes/$(DEPDIR)/$(am__dirstamp)
-builtin/xor_codes/test_xor_hd_code-test_xor_hd_code.$(OBJEXT): \
- builtin/xor_codes/$(am__dirstamp) \
- builtin/xor_codes/$(DEPDIR)/$(am__dirstamp)
-
-test_xor_hd_code$(EXEEXT): $(test_xor_hd_code_OBJECTS) $(test_xor_hd_code_DEPENDENCIES) $(EXTRA_test_xor_hd_code_DEPENDENCIES)
- @rm -f test_xor_hd_code$(EXEEXT)
- $(AM_V_CCLD)$(test_xor_hd_code_LINK) $(test_xor_hd_code_OBJECTS) $(test_xor_hd_code_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
- -rm -f builtin/xor_codes/*.$(OBJEXT)
- -rm -f utils/chksum/*.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libec_slap-libec_slap.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liberasurecode_test-liberasurecode_test.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@builtin/xor_codes/$(DEPDIR)/test_xor_hd_code-test_xor_hd_code.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@utils/chksum/$(DEPDIR)/alg_sig_test-test_alg_sig.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-utils/chksum/alg_sig_test-test_alg_sig.o: utils/chksum/test_alg_sig.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(alg_sig_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utils/chksum/alg_sig_test-test_alg_sig.o -MD -MP -MF utils/chksum/$(DEPDIR)/alg_sig_test-test_alg_sig.Tpo -c -o utils/chksum/alg_sig_test-test_alg_sig.o `test -f 'utils/chksum/test_alg_sig.c' || echo '$(srcdir)/'`utils/chksum/test_alg_sig.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) utils/chksum/$(DEPDIR)/alg_sig_test-test_alg_sig.Tpo utils/chksum/$(DEPDIR)/alg_sig_test-test_alg_sig.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utils/chksum/test_alg_sig.c' object='utils/chksum/alg_sig_test-test_alg_sig.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(alg_sig_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utils/chksum/alg_sig_test-test_alg_sig.o `test -f 'utils/chksum/test_alg_sig.c' || echo '$(srcdir)/'`utils/chksum/test_alg_sig.c
-
-utils/chksum/alg_sig_test-test_alg_sig.obj: utils/chksum/test_alg_sig.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(alg_sig_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utils/chksum/alg_sig_test-test_alg_sig.obj -MD -MP -MF utils/chksum/$(DEPDIR)/alg_sig_test-test_alg_sig.Tpo -c -o utils/chksum/alg_sig_test-test_alg_sig.obj `if test -f 'utils/chksum/test_alg_sig.c'; then $(CYGPATH_W) 'utils/chksum/test_alg_sig.c'; else $(CYGPATH_W) '$(srcdir)/utils/chksum/test_alg_sig.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) utils/chksum/$(DEPDIR)/alg_sig_test-test_alg_sig.Tpo utils/chksum/$(DEPDIR)/alg_sig_test-test_alg_sig.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utils/chksum/test_alg_sig.c' object='utils/chksum/alg_sig_test-test_alg_sig.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(alg_sig_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utils/chksum/alg_sig_test-test_alg_sig.obj `if test -f 'utils/chksum/test_alg_sig.c'; then $(CYGPATH_W) 'utils/chksum/test_alg_sig.c'; else $(CYGPATH_W) '$(srcdir)/utils/chksum/test_alg_sig.c'; fi`
-
-libec_slap-libec_slap.o: libec_slap.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libec_slap_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libec_slap-libec_slap.o -MD -MP -MF $(DEPDIR)/libec_slap-libec_slap.Tpo -c -o libec_slap-libec_slap.o `test -f 'libec_slap.c' || echo '$(srcdir)/'`libec_slap.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libec_slap-libec_slap.Tpo $(DEPDIR)/libec_slap-libec_slap.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libec_slap.c' object='libec_slap-libec_slap.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libec_slap_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libec_slap-libec_slap.o `test -f 'libec_slap.c' || echo '$(srcdir)/'`libec_slap.c
-
-libec_slap-libec_slap.obj: libec_slap.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libec_slap_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libec_slap-libec_slap.obj -MD -MP -MF $(DEPDIR)/libec_slap-libec_slap.Tpo -c -o libec_slap-libec_slap.obj `if test -f 'libec_slap.c'; then $(CYGPATH_W) 'libec_slap.c'; else $(CYGPATH_W) '$(srcdir)/libec_slap.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libec_slap-libec_slap.Tpo $(DEPDIR)/libec_slap-libec_slap.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libec_slap.c' object='libec_slap-libec_slap.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libec_slap_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libec_slap-libec_slap.obj `if test -f 'libec_slap.c'; then $(CYGPATH_W) 'libec_slap.c'; else $(CYGPATH_W) '$(srcdir)/libec_slap.c'; fi`
-
-liberasurecode_test-liberasurecode_test.o: liberasurecode_test.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liberasurecode_test-liberasurecode_test.o -MD -MP -MF $(DEPDIR)/liberasurecode_test-liberasurecode_test.Tpo -c -o liberasurecode_test-liberasurecode_test.o `test -f 'liberasurecode_test.c' || echo '$(srcdir)/'`liberasurecode_test.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liberasurecode_test-liberasurecode_test.Tpo $(DEPDIR)/liberasurecode_test-liberasurecode_test.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='liberasurecode_test.c' object='liberasurecode_test-liberasurecode_test.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liberasurecode_test-liberasurecode_test.o `test -f 'liberasurecode_test.c' || echo '$(srcdir)/'`liberasurecode_test.c
-
-liberasurecode_test-liberasurecode_test.obj: liberasurecode_test.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liberasurecode_test-liberasurecode_test.obj -MD -MP -MF $(DEPDIR)/liberasurecode_test-liberasurecode_test.Tpo -c -o liberasurecode_test-liberasurecode_test.obj `if test -f 'liberasurecode_test.c'; then $(CYGPATH_W) 'liberasurecode_test.c'; else $(CYGPATH_W) '$(srcdir)/liberasurecode_test.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liberasurecode_test-liberasurecode_test.Tpo $(DEPDIR)/liberasurecode_test-liberasurecode_test.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='liberasurecode_test.c' object='liberasurecode_test-liberasurecode_test.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liberasurecode_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liberasurecode_test-liberasurecode_test.obj `if test -f 'liberasurecode_test.c'; then $(CYGPATH_W) 'liberasurecode_test.c'; else $(CYGPATH_W) '$(srcdir)/liberasurecode_test.c'; fi`
-
-builtin/xor_codes/test_xor_hd_code-test_xor_hd_code.o: builtin/xor_codes/test_xor_hd_code.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_xor_hd_code_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT builtin/xor_codes/test_xor_hd_code-test_xor_hd_code.o -MD -MP -MF builtin/xor_codes/$(DEPDIR)/test_xor_hd_code-test_xor_hd_code.Tpo -c -o builtin/xor_codes/test_xor_hd_code-test_xor_hd_code.o `test -f 'builtin/xor_codes/test_xor_hd_code.c' || echo '$(srcdir)/'`builtin/xor_codes/test_xor_hd_code.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) builtin/xor_codes/$(DEPDIR)/test_xor_hd_code-test_xor_hd_code.Tpo builtin/xor_codes/$(DEPDIR)/test_xor_hd_code-test_xor_hd_code.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='builtin/xor_codes/test_xor_hd_code.c' object='builtin/xor_codes/test_xor_hd_code-test_xor_hd_code.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_xor_hd_code_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o builtin/xor_codes/test_xor_hd_code-test_xor_hd_code.o `test -f 'builtin/xor_codes/test_xor_hd_code.c' || echo '$(srcdir)/'`builtin/xor_codes/test_xor_hd_code.c
-
-builtin/xor_codes/test_xor_hd_code-test_xor_hd_code.obj: builtin/xor_codes/test_xor_hd_code.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_xor_hd_code_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT builtin/xor_codes/test_xor_hd_code-test_xor_hd_code.obj -MD -MP -MF builtin/xor_codes/$(DEPDIR)/test_xor_hd_code-test_xor_hd_code.Tpo -c -o builtin/xor_codes/test_xor_hd_code-test_xor_hd_code.obj `if test -f 'builtin/xor_codes/test_xor_hd_code.c'; then $(CYGPATH_W) 'builtin/xor_codes/test_xor_hd_code.c'; else $(CYGPATH_W) '$(srcdir)/builtin/xor_codes/test_xor_hd_code.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) builtin/xor_codes/$(DEPDIR)/test_xor_hd_code-test_xor_hd_code.Tpo builtin/xor_codes/$(DEPDIR)/test_xor_hd_code-test_xor_hd_code.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='builtin/xor_codes/test_xor_hd_code.c' object='builtin/xor_codes/test_xor_hd_code-test_xor_hd_code.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_xor_hd_code_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o builtin/xor_codes/test_xor_hd_code-test_xor_hd_code.obj `if test -f 'builtin/xor_codes/test_xor_hd_code.c'; then $(CYGPATH_W) 'builtin/xor_codes/test_xor_hd_code.c'; else $(CYGPATH_W) '$(srcdir)/builtin/xor_codes/test_xor_hd_code.c'; fi`
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
-check: check-am
-all-am: Makefile $(PROGRAMS) $(HEADERS)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
- -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
- -rm -f builtin/xor_codes/$(DEPDIR)/$(am__dirstamp)
- -rm -f builtin/xor_codes/$(am__dirstamp)
- -rm -f utils/chksum/$(DEPDIR)/$(am__dirstamp)
- -rm -f utils/chksum/$(am__dirstamp)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
- clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR) builtin/xor_codes/$(DEPDIR) utils/chksum/$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR) builtin/xor_codes/$(DEPDIR) utils/chksum/$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
- clean-checkPROGRAMS clean-generic clean-libtool \
- clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/liberasurecode/test/builtin/xor_codes/test_xor_hd_code.c b/src/c/liberasurecode/test/builtin/xor_codes/test_xor_hd_code.c
deleted file mode 100644
index 2ef017d..0000000
--- a/src/c/liberasurecode/test/builtin/xor_codes/test_xor_hd_code.c
+++ /dev/null
@@ -1,379 +0,0 @@
-/* * Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com)
- * 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. 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 HOLDER 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.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <xor_code.h>
-#include "test_xor_hd_code.h"
-
-void fill_buffer(char *buf, int size, int seed)
-{
- int i;
-
- buf[0] = seed;
-
- for (i=1; i < size; i++) {
- buf[i] = ((buf[i-1] + i) % 256);
- }
-}
-
-int check_buffer(unsigned char *buf, int size, int seed)
-{
- int i;
-
- if (buf[0] != seed) {
- fprintf(stderr, "Seed does not match index 0: %u\n", buf[0]);
- return -1;
- }
-
- for (i=1; i < size; i++) {
- if (buf[i] != ((buf[i-1] + i) % 256)) {
- fprintf(stderr, "Buffer does not match index %d: %u\n", i, (buf[i] & 0xff));
- return -1;
- }
- }
-
- return 0;
-}
-
-int test_hd_code(xor_code_t *code_desc, int num_failure_combs, int failure_combs[][4])
-{
- int i, j, err;
- int num_iter = 1000;
- int blocksize = 32768;
- int missing_idxs[4] = { -1 };
- int ret = 0;
- char **data, **parity;
- clock_t start_time, end_time;
- int *fragments_needed;
-
- /* FIXME: This should actually exclude fragments once XOR codes fully supports the feature */
- int fragments_to_exclude[2] = { -1 };
-
- srand(time(NULL));
-
- data = (char**)malloc(code_desc->k * sizeof(char*));
- parity = (char**)malloc(code_desc->m * sizeof(char*));
- fragments_needed = (int*)malloc(code_desc->k*code_desc->m*sizeof(int));
- if (!fragments_needed) {
- fprintf(stderr, "Could not allocate memory for fragments\n");
- exit(2);
- }
-
- bzero(fragments_needed, code_desc->k*code_desc->m*sizeof(int));
-
- for (i=0; i < code_desc->k; i++) {
- err = posix_memalign((void **) &data[i], 16, blocksize);
- if (err != 0 || !data[i]) {
- fprintf(stderr, "Could not allocate memory for data %d\n", i);
- exit(1);
- }
- fill_buffer(data[i], blocksize, i);
- }
-
- for (i=0; i < code_desc->m; i++) {
- err = posix_memalign((void **) &parity[i], 16, blocksize);
- if (err != 0 || !parity[i]) {
- fprintf(stderr, "Could not allocate memory for parity %d\n", i);
- exit(1);
- }
- memset(parity[i], 0, blocksize);
- }
-
- start_time = clock();
- for (i=0; i < num_iter-1; i++) {
- code_desc->encode(code_desc, data, parity, blocksize);
- }
- end_time = clock();
-
- fprintf(stderr, "Encode: %.2f MB/s\n", ((double)(num_iter * blocksize * code_desc->k) / 1000 / 1000 ) / ((double)(end_time-start_time) / CLOCKS_PER_SEC));
-
- for (i=0; i < code_desc->m; i++) {
- memset(parity[i], 0, blocksize);
- }
-
- code_desc->encode(code_desc, data, parity, blocksize);
-
- for (i=0; i < num_failure_combs; i++) {
- int missing_idx_0 = failure_combs[i][0];
- int missing_idx_1 = failure_combs[i][1];
- int missing_idx_2 = failure_combs[i][2];
-
- missing_idxs[0] = missing_idx_0;
- missing_idxs[1] = missing_idx_1;
- missing_idxs[2] = missing_idx_2;
- missing_idxs[3] = -1;
-
- if (missing_idxs[0] > -1) {
- if (missing_idxs[0] < code_desc->k) {
- memset(data[missing_idxs[0]], 0, blocksize);
- } else {
- memset(parity[missing_idxs[0] - code_desc->k], 0, blocksize);
- }
- }
- if (missing_idxs[1] > -1) {
- if (missing_idxs[1] < code_desc->k) {
- memset(data[missing_idxs[1]], 0, blocksize);
- } else {
- memset(parity[missing_idxs[1] - code_desc->k], 0, blocksize);
- }
- }
- if (missing_idxs[2] > -1) {
- if (missing_idxs[2] < code_desc->k) {
- memset(data[missing_idxs[2]], 0, blocksize);
- } else {
- memset(parity[missing_idxs[2] - code_desc->k], 0, blocksize);
- }
- }
-
- /*
- * Spot check to ensure missing elements are not included in
- * list of fragments needed and that decode is 'doable'
- */
- ret = code_desc->fragments_needed(code_desc, missing_idxs, fragments_to_exclude, fragments_needed);
-
- if (ret < 0) {
- fprintf(stderr, "xor_hd_fragments_needed thinks reconstruction not possible, when it is!\n");
- exit(2);
- }
-
- j = 0;
- while (fragments_needed[j] > -1) {
- if (fragments_needed[j] == missing_idxs[0] ||
- fragments_needed[j] == missing_idxs[1] ||
- fragments_needed[j] == missing_idxs[2]) {
- fprintf(stderr, "fragments_needed[%d]=%d in missing index list: (%d %d %d)!\n", j, fragments_needed[j], missing_idxs[0], missing_idxs[1], missing_idxs[2]);
- exit(2);
- }
- j++;
- }
-
- missing_idxs[0] = missing_idx_0;
- missing_idxs[1] = missing_idx_1;
- missing_idxs[2] = missing_idx_2;
- missing_idxs[3] = -1;
-
- code_desc->decode(code_desc, data, parity, missing_idxs, blocksize, 1);
-
- if (missing_idxs[0] > -1 && missing_idxs[0] < code_desc->k && check_buffer((unsigned char *)data[missing_idx_0], blocksize, missing_idx_0) < 0) {
- fprintf(stderr, "Decode did not work: %d (%d %d %d)!\n", missing_idxs[0], missing_idxs[0], missing_idxs[1], missing_idxs[2]);
- exit(2);
- }
- if (missing_idxs[1] > -1 && missing_idxs[1] < code_desc->k && check_buffer((unsigned char *)data[missing_idx_1], blocksize, missing_idx_1) < 0) {
- fprintf(stderr, "Decode did not work: %d (%d %d %d)!\n", missing_idxs[1], missing_idxs[0], missing_idxs[1], missing_idxs[2]);
- exit(2);
- }
- if (missing_idxs[2] > -1 && missing_idxs[2] < code_desc->k && check_buffer((unsigned char *)data[missing_idx_2], blocksize, missing_idx_2) < 0) {
- fprintf(stderr, "Decode did not work: %d (%d %d %d)!\n", missing_idxs[2], missing_idxs[0], missing_idxs[1], missing_idxs[2]);
- exit(2);
- }
- }
-
- start_time = clock();
- for (i=0; i < num_iter; i++) {
- int j;
-
- missing_idxs[0] = rand() % (code_desc->k + code_desc->m);
- for (j=1; j < code_desc->hd-1;j++) {
- missing_idxs[j] = (missing_idxs[j-1] + 1) % (code_desc->k + code_desc->m);
- }
- missing_idxs[code_desc->hd-1] = -1;
-
- if (missing_idxs[0] > -1 && missing_idxs[0] < code_desc->k) {
- memset(data[missing_idxs[0]], 0, blocksize);
- }
- if (missing_idxs[1] > -1 && missing_idxs[1] < code_desc->k) {
- memset(data[missing_idxs[1]], 0, blocksize);
- }
- if (missing_idxs[2] > -1 && missing_idxs[2] < code_desc->k) {
- memset(data[missing_idxs[2]], 0, blocksize);
- }
-
- code_desc->decode(code_desc, data, parity, missing_idxs, blocksize, 1);
- }
- end_time = clock();
-
- fprintf(stderr, "Decode: %.2f MB/s\n", ((double)(num_iter * blocksize * code_desc->k) / 1000 / 1000 ) / ((double)(end_time-start_time) / CLOCKS_PER_SEC));
- free(fragments_needed);
- for (i = 0; i < code_desc->k; i++) {
- free(data[i]);
- }
- free(data);
- for (i = 0; i < code_desc->m; i++) {
- free(parity[i]);
- }
- free(parity);
-
- return 0;
-}
-
-int run_test(int k, int m, int hd)
-{
- int ret = -1;
- xor_code_t * code_desc = init_xor_hd_code(k, m, hd);
-
- fprintf(stderr, "Running (%d, %d, %d):\n", k, m, hd);
-
- switch(k+m) {
- case 10:
- if (hd == 3) {
- ret = test_hd_code(code_desc, NUM_10_3_COMBS, failure_combs_10_3);
- } else {
- ret = test_hd_code(code_desc, NUM_10_4_COMBS, failure_combs_10_4);
- }
- break;
- case 11:
- if (hd == 3) {
- ret = test_hd_code(code_desc, NUM_11_3_COMBS, failure_combs_11_3);
- } else {
- ret = test_hd_code(code_desc, NUM_11_4_COMBS, failure_combs_11_4);
- }
- break;
- case 12:
- if (hd == 3) {
- ret = test_hd_code(code_desc, NUM_12_3_COMBS, failure_combs_12_3);
- } else {
- ret = test_hd_code(code_desc, NUM_12_4_COMBS, failure_combs_12_4);
- }
- break;
- case 13:
- if (hd == 3) {
- ret = test_hd_code(code_desc, NUM_13_3_COMBS, failure_combs_13_3);
- } else {
- ret = test_hd_code(code_desc, NUM_13_4_COMBS, failure_combs_13_4);
- }
- break;
- case 14:
- if (hd == 3) {
- ret = test_hd_code(code_desc, NUM_14_3_COMBS, failure_combs_14_3);
- } else {
- ret = test_hd_code(code_desc, NUM_14_4_COMBS, failure_combs_14_4);
- }
- break;
- case 15:
- if (hd == 3) {
- ret = test_hd_code(code_desc, NUM_15_3_COMBS, failure_combs_15_3);
- } else {
- ret = test_hd_code(code_desc, NUM_15_4_COMBS, failure_combs_15_4);
- }
- break;
- case 16:
- if (hd == 3) {
- ret = test_hd_code(code_desc, NUM_16_3_COMBS, failure_combs_16_3);
- } else {
- ret = test_hd_code(code_desc, NUM_16_4_COMBS, failure_combs_16_4);
- }
- break;
- case 17:
- if (hd == 3) {
- ret = test_hd_code(code_desc, NUM_17_3_COMBS, failure_combs_17_3);
- } else {
- ret = test_hd_code(code_desc, NUM_17_4_COMBS, failure_combs_17_4);
- }
- break;
- case 18:
- if (hd == 3) {
- ret = test_hd_code(code_desc, NUM_18_3_COMBS, failure_combs_18_3);
- } else {
- ret = test_hd_code(code_desc, NUM_18_4_COMBS, failure_combs_18_4);
- }
- break;
- case 19:
- if (hd == 3) {
- ret = test_hd_code(code_desc, NUM_19_3_COMBS, failure_combs_19_3);
- } else {
- ret = test_hd_code(code_desc, NUM_19_4_COMBS, failure_combs_19_4);
- }
- break;
- case 20:
- if (hd == 3) {
- ret = test_hd_code(code_desc, NUM_20_3_COMBS, failure_combs_20_3);
- } else {
- ret = test_hd_code(code_desc, NUM_20_4_COMBS, failure_combs_20_4);
- }
- break;
- case 21:
- if (hd == 3) {
- ret = test_hd_code(code_desc, NUM_21_3_COMBS, failure_combs_21_3);
- } else {
- ret = test_hd_code(code_desc, NUM_21_4_COMBS, failure_combs_21_4);
- }
- break;
- case 22:
- ret = test_hd_code(code_desc, NUM_22_4_COMBS, failure_combs_22_4);
- break;
- case 23:
- ret = test_hd_code(code_desc, NUM_23_4_COMBS, failure_combs_23_4);
- break;
- case 24:
- ret = test_hd_code(code_desc, NUM_24_4_COMBS, failure_combs_24_4);
- break;
- case 25:
- ret = test_hd_code(code_desc, NUM_25_4_COMBS, failure_combs_25_4);
- break;
- case 26:
- ret = test_hd_code(code_desc, NUM_26_4_COMBS, failure_combs_26_4);
- break;
- default:
- ret = -1;
- }
- free(code_desc);
- return ret;
-}
-
-int main()
-{
- int ret = 0;
- int i;
-
- for (i=6; i < 16; i++) {
- ret = run_test(i, 6, 3);
- if (ret != 0) {
- return ret;
- }
- }
-
- for (i=5; i < 11; i++) {
- ret = run_test(i, 5, 3);
- if (ret != 0) {
- return ret;
- }
- }
-
- for (i=6; i < 21; i++) {
- ret = run_test(i, 6, 4);
- if (ret != 0) {
- return ret;
- }
- }
- for (i=5; i < 11; i++) {
- ret = run_test(i, 5, 4);
- if (ret != 0) {
- return ret;
- }
- }
- exit(0);
-}
diff --git a/src/c/liberasurecode/test/builtin/xor_codes/test_xor_hd_code.h b/src/c/liberasurecode/test/builtin/xor_codes/test_xor_hd_code.h
deleted file mode 100644
index eb96d05..0000000
--- a/src/c/liberasurecode/test/builtin/xor_codes/test_xor_hd_code.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* * Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com)
- * 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. 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 HOLDER 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.
- */
-
-#define NUM_10_3_COMBS 55
-int failure_combs_10_3[NUM_10_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {8, 9, -1, -1}} ;
-#define NUM_10_4_COMBS 175
-int failure_combs_10_4[NUM_10_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {8, 9, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 8, 9, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 8, 9, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 8, 9, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 8, 9, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 8, 9, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 8, 9, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 8, 9, -1}, {7, 8, 9, -1}} ;
-#define NUM_11_3_COMBS 66
-int failure_combs_11_3[NUM_11_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {9, 10, -1, -1}} ;
-#define NUM_11_4_COMBS 231
-int failure_combs_11_4[NUM_11_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {9, 10, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 9, 10, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 9, 10, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 9, 10, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 9, 10, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 9, 10, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 9, 10, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 9, 10, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 9, 10, -1}, {8, 9, 10, -1}} ;
-#define NUM_12_3_COMBS 78
-int failure_combs_12_3[NUM_12_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {10, 11, -1, -1}} ;
-#define NUM_12_4_COMBS 298
-int failure_combs_12_4[NUM_12_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {10, 11, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 10, 11, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 10, 11, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 10, 11, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 10, 11, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 10, 11, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 10, 11, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 10, 11, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 10, 11, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 10, 11, -1}, {9, 10, 11, -1}} ;
-#define NUM_13_3_COMBS 91
-int failure_combs_13_3[NUM_13_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {11, 12, -1, -1}} ;
-#define NUM_13_4_COMBS 377
-int failure_combs_13_4[NUM_13_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {11, 12, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 11, 12, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 11, 12, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 11, 12, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 11, 12, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 11, 12, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 11, 12, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 11, 12, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 11, 12, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 11, 12, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 11, 12, -1}, {10, 11, 12, -1}} ;
-#define NUM_14_3_COMBS 105
-int failure_combs_14_3[NUM_14_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {12, 13, -1, -1}} ;
-#define NUM_14_4_COMBS 469
-int failure_combs_14_4[NUM_14_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {12, 13, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 12, 13, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 12, 13, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 12, 13, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 12, 13, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 12, 13, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 12, 13, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 12, 13, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 12, 13, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 12, 13, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 12, 13, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 12, 13, -1}, {11, 12, 13, -1}} ;
-#define NUM_15_3_COMBS 120
-int failure_combs_15_3[NUM_15_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {13, 14, -1, -1}} ;
-#define NUM_15_4_COMBS 575
-int failure_combs_15_4[NUM_15_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {13, 14, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 13, 14, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 13, 14, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 13, 14, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 13, 14, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 13, 14, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 13, 14, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 13, 14, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 13, 14, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 13, 14, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 13, 14, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 13, 14, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 13, 14, -1}, {12, 13, 14, -1}} ;
-#define NUM_16_3_COMBS 136
-int failure_combs_16_3[NUM_16_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {14, 15, -1, -1}} ;
-#define NUM_16_4_COMBS 696
-int failure_combs_16_4[NUM_16_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {14, 15, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 14, 15, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 14, 15, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 14, 15, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 14, 15, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 14, 15, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 14, 15, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 14, 15, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 14, 15, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 14, 15, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 14, 15, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 14, 15, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 14, 15, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 14, 15, -1}, {13, 14, 15, -1}} ;
-#define NUM_17_3_COMBS 153
-int failure_combs_17_3[NUM_17_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {15, 16, -1, -1}} ;
-#define NUM_17_4_COMBS 833
-int failure_combs_17_4[NUM_17_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {15, 16, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 15, 16, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 15, 16, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 15, 16, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 15, 16, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 15, 16, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 15, 16, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 15, 16, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 15, 16, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 15, 16, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 15, 16, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 15, 16, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 15, 16, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 15, 16, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 15, 16, -1}, {14, 15, 16, -1}} ;
-#define NUM_18_3_COMBS 171
-int failure_combs_18_3[NUM_18_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {16, 17, -1, -1}} ;
-#define NUM_18_4_COMBS 987
-int failure_combs_18_4[NUM_18_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {16, 17, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 16, 17, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 16, 17, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 16, 17, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 16, 17, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 16, 17, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 16, 17, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 16, 17, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 16, 17, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 16, 17, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 16, 17, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 16, 17, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 16, 17, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 16, 17, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 16, 17, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 16, 17, -1}, {15, 16, 17, -1}} ;
-#define NUM_19_3_COMBS 190
-int failure_combs_19_3[NUM_19_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {17, 18, -1, -1}} ;
-#define NUM_19_4_COMBS 1159
-int failure_combs_19_4[NUM_19_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {17, 18, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 17, 18, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 17, 18, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 17, 18, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 17, 18, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 17, 18, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 17, 18, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 17, 18, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 17, 18, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 17, 18, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 17, 18, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 17, 18, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 17, 18, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 17, 18, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 17, 18, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 17, 18, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 17, 18, -1}, {16, 17, 18, -1}} ;
-#define NUM_20_3_COMBS 210
-int failure_combs_20_3[NUM_20_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {18, 19, -1, -1}} ;
-#define NUM_20_4_COMBS 1350
-int failure_combs_20_4[NUM_20_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {18, 19, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 18, 19, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 18, 19, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 18, 19, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 18, 19, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 18, 19, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 18, 19, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 18, 19, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 18, 19, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 18, 19, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 18, 19, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 18, 19, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 18, 19, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 18, 19, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 18, 19, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 18, 19, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 18, 19, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 18, 19, -1}, {17, 18, 19, -1}} ;
-#define NUM_21_3_COMBS 231
-int failure_combs_21_3[NUM_21_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {19, 20, -1, -1}} ;
-#define NUM_21_4_COMBS 1561
-int failure_combs_21_4[NUM_21_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {19, 20, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 19, 20, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 19, 20, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 19, 20, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 19, 20, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 19, 20, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 19, 20, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 19, 20, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 19, 20, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 19, 20, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 19, 20, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 19, 20, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 19, 20, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 19, 20, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 19, 20, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 19, 20, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 19, 20, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 19, 20, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 19, 20, -1}, {18, 19, 20, -1}} ;
-#define NUM_22_3_COMBS 253
-int failure_combs_22_3[NUM_22_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {20, 21, -1, -1}} ;
-#define NUM_22_4_COMBS 1793
-int failure_combs_22_4[NUM_22_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {20, 21, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 20, 21, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 20, 21, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 20, 21, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 20, 21, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 20, 21, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 20, 21, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 20, 21, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 20, 21, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 20, 21, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 20, 21, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 20, 21, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 20, 21, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 20, 21, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 20, 21, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 20, 21, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 20, 21, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 20, 21, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 20, 21, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 20, 21, -1}, {19, 20, 21, -1}} ;
-#define NUM_23_3_COMBS 276
-int failure_combs_23_3[NUM_23_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {21, 22, -1, -1}} ;
-#define NUM_23_4_COMBS 2047
-int failure_combs_23_4[NUM_23_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {21, 22, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 1, 22, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 2, 22, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 3, 22, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 4, 22, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 5, 22, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 6, 22, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 7, 22, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 8, 22, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 9, 22, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 10, 22, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 11, 22, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 12, 22, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 13, 22, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 14, 22, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 15, 22, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 16, 22, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 17, 22, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 18, 22, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 19, 22, -1}, {0, 20, 21, -1}, {0, 20, 22, -1}, {0, 21, 22, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 2, 22, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 3, 22, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 4, 22, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 5, 22, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 6, 22, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 7, 22, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 8, 22, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 9, 22, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 10, 22, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 11, 22, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 12, 22, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 13, 22, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 14, 22, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 15, 22, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 16, 22, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 17, 22, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 18, 22, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 19, 22, -1}, {1, 20, 21, -1}, {1, 20, 22, -1}, {1, 21, 22, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 3, 22, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 4, 22, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 5, 22, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 6, 22, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 7, 22, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 8, 22, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 9, 22, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 10, 22, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 11, 22, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 12, 22, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 13, 22, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 14, 22, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 15, 22, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 16, 22, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 17, 22, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 18, 22, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 19, 22, -1}, {2, 20, 21, -1}, {2, 20, 22, -1}, {2, 21, 22, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 4, 22, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 5, 22, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 6, 22, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 7, 22, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 8, 22, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 9, 22, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 10, 22, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 11, 22, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 12, 22, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 13, 22, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 14, 22, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 15, 22, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 16, 22, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 17, 22, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 18, 22, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 19, 22, -1}, {3, 20, 21, -1}, {3, 20, 22, -1}, {3, 21, 22, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 5, 22, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 6, 22, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 7, 22, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 8, 22, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 9, 22, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 10, 22, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 11, 22, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 12, 22, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 13, 22, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 14, 22, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 15, 22, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 16, 22, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 17, 22, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 18, 22, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 19, 22, -1}, {4, 20, 21, -1}, {4, 20, 22, -1}, {4, 21, 22, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 6, 22, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 7, 22, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 8, 22, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 9, 22, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 10, 22, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 11, 22, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 12, 22, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 13, 22, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 14, 22, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 15, 22, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 16, 22, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 17, 22, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 18, 22, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 19, 22, -1}, {5, 20, 21, -1}, {5, 20, 22, -1}, {5, 21, 22, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 7, 22, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 8, 22, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 9, 22, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 10, 22, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 11, 22, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 12, 22, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 13, 22, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 14, 22, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 15, 22, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 16, 22, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 17, 22, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 18, 22, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 19, 22, -1}, {6, 20, 21, -1}, {6, 20, 22, -1}, {6, 21, 22, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 8, 22, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 9, 22, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 10, 22, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 11, 22, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 12, 22, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 13, 22, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 14, 22, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 15, 22, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 16, 22, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 17, 22, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 18, 22, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 19, 22, -1}, {7, 20, 21, -1}, {7, 20, 22, -1}, {7, 21, 22, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 9, 22, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 10, 22, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 11, 22, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 12, 22, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 13, 22, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 14, 22, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 15, 22, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 16, 22, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 17, 22, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 18, 22, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 19, 22, -1}, {8, 20, 21, -1}, {8, 20, 22, -1}, {8, 21, 22, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 10, 22, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 11, 22, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 12, 22, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 13, 22, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 14, 22, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 15, 22, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 16, 22, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 17, 22, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 18, 22, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 19, 22, -1}, {9, 20, 21, -1}, {9, 20, 22, -1}, {9, 21, 22, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 11, 22, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 12, 22, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 13, 22, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 14, 22, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 15, 22, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 16, 22, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 17, 22, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 18, 22, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 19, 22, -1}, {10, 20, 21, -1}, {10, 20, 22, -1}, {10, 21, 22, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 12, 22, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 13, 22, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 14, 22, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 15, 22, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 16, 22, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 17, 22, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 18, 22, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 19, 22, -1}, {11, 20, 21, -1}, {11, 20, 22, -1}, {11, 21, 22, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 13, 22, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 14, 22, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 15, 22, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 16, 22, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 17, 22, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 18, 22, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 19, 22, -1}, {12, 20, 21, -1}, {12, 20, 22, -1}, {12, 21, 22, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 14, 22, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 15, 22, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 16, 22, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 17, 22, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 18, 22, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 19, 22, -1}, {13, 20, 21, -1}, {13, 20, 22, -1}, {13, 21, 22, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 15, 22, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 16, 22, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 17, 22, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 18, 22, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 19, 22, -1}, {14, 20, 21, -1}, {14, 20, 22, -1}, {14, 21, 22, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 16, 22, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 17, 22, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 18, 22, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 19, 22, -1}, {15, 20, 21, -1}, {15, 20, 22, -1}, {15, 21, 22, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 17, 22, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 18, 22, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 19, 22, -1}, {16, 20, 21, -1}, {16, 20, 22, -1}, {16, 21, 22, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 18, 22, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 19, 22, -1}, {17, 20, 21, -1}, {17, 20, 22, -1}, {17, 21, 22, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 19, 22, -1}, {18, 20, 21, -1}, {18, 20, 22, -1}, {18, 21, 22, -1}, {19, 20, 21, -1}, {19, 20, 22, -1}, {19, 21, 22, -1}, {20, 21, 22, -1}} ;
-#define NUM_24_3_COMBS 300
-int failure_combs_24_3[NUM_24_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {22, 23, -1, -1}} ;
-#define NUM_24_4_COMBS 2324
-int failure_combs_24_4[NUM_24_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {22, 23, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 1, 22, -1}, {0, 1, 23, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 2, 22, -1}, {0, 2, 23, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 3, 22, -1}, {0, 3, 23, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 4, 22, -1}, {0, 4, 23, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 5, 22, -1}, {0, 5, 23, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 6, 22, -1}, {0, 6, 23, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 7, 22, -1}, {0, 7, 23, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 8, 22, -1}, {0, 8, 23, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 9, 22, -1}, {0, 9, 23, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 10, 22, -1}, {0, 10, 23, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 11, 22, -1}, {0, 11, 23, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 12, 22, -1}, {0, 12, 23, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 13, 22, -1}, {0, 13, 23, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 14, 22, -1}, {0, 14, 23, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 15, 22, -1}, {0, 15, 23, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 16, 22, -1}, {0, 16, 23, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 17, 22, -1}, {0, 17, 23, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 18, 22, -1}, {0, 18, 23, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 19, 22, -1}, {0, 19, 23, -1}, {0, 20, 21, -1}, {0, 20, 22, -1}, {0, 20, 23, -1}, {0, 21, 22, -1}, {0, 21, 23, -1}, {0, 22, 23, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 2, 22, -1}, {1, 2, 23, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 3, 22, -1}, {1, 3, 23, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 4, 22, -1}, {1, 4, 23, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 5, 22, -1}, {1, 5, 23, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 6, 22, -1}, {1, 6, 23, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 7, 22, -1}, {1, 7, 23, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 8, 22, -1}, {1, 8, 23, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 9, 22, -1}, {1, 9, 23, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 10, 22, -1}, {1, 10, 23, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 11, 22, -1}, {1, 11, 23, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 12, 22, -1}, {1, 12, 23, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 13, 22, -1}, {1, 13, 23, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 14, 22, -1}, {1, 14, 23, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 15, 22, -1}, {1, 15, 23, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 16, 22, -1}, {1, 16, 23, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 17, 22, -1}, {1, 17, 23, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 18, 22, -1}, {1, 18, 23, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 19, 22, -1}, {1, 19, 23, -1}, {1, 20, 21, -1}, {1, 20, 22, -1}, {1, 20, 23, -1}, {1, 21, 22, -1}, {1, 21, 23, -1}, {1, 22, 23, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 3, 22, -1}, {2, 3, 23, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 4, 22, -1}, {2, 4, 23, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 5, 22, -1}, {2, 5, 23, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 6, 22, -1}, {2, 6, 23, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 7, 22, -1}, {2, 7, 23, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 8, 22, -1}, {2, 8, 23, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 9, 22, -1}, {2, 9, 23, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 10, 22, -1}, {2, 10, 23, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 11, 22, -1}, {2, 11, 23, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 12, 22, -1}, {2, 12, 23, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 13, 22, -1}, {2, 13, 23, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 14, 22, -1}, {2, 14, 23, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 15, 22, -1}, {2, 15, 23, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 16, 22, -1}, {2, 16, 23, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 17, 22, -1}, {2, 17, 23, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 18, 22, -1}, {2, 18, 23, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 19, 22, -1}, {2, 19, 23, -1}, {2, 20, 21, -1}, {2, 20, 22, -1}, {2, 20, 23, -1}, {2, 21, 22, -1}, {2, 21, 23, -1}, {2, 22, 23, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 4, 22, -1}, {3, 4, 23, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 5, 22, -1}, {3, 5, 23, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 6, 22, -1}, {3, 6, 23, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 7, 22, -1}, {3, 7, 23, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 8, 22, -1}, {3, 8, 23, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 9, 22, -1}, {3, 9, 23, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 10, 22, -1}, {3, 10, 23, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 11, 22, -1}, {3, 11, 23, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 12, 22, -1}, {3, 12, 23, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 13, 22, -1}, {3, 13, 23, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 14, 22, -1}, {3, 14, 23, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 15, 22, -1}, {3, 15, 23, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 16, 22, -1}, {3, 16, 23, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 17, 22, -1}, {3, 17, 23, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 18, 22, -1}, {3, 18, 23, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 19, 22, -1}, {3, 19, 23, -1}, {3, 20, 21, -1}, {3, 20, 22, -1}, {3, 20, 23, -1}, {3, 21, 22, -1}, {3, 21, 23, -1}, {3, 22, 23, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 5, 22, -1}, {4, 5, 23, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 6, 22, -1}, {4, 6, 23, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 7, 22, -1}, {4, 7, 23, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 8, 22, -1}, {4, 8, 23, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 9, 22, -1}, {4, 9, 23, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 10, 22, -1}, {4, 10, 23, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 11, 22, -1}, {4, 11, 23, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 12, 22, -1}, {4, 12, 23, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 13, 22, -1}, {4, 13, 23, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 14, 22, -1}, {4, 14, 23, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 15, 22, -1}, {4, 15, 23, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 16, 22, -1}, {4, 16, 23, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 17, 22, -1}, {4, 17, 23, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 18, 22, -1}, {4, 18, 23, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 19, 22, -1}, {4, 19, 23, -1}, {4, 20, 21, -1}, {4, 20, 22, -1}, {4, 20, 23, -1}, {4, 21, 22, -1}, {4, 21, 23, -1}, {4, 22, 23, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 6, 22, -1}, {5, 6, 23, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 7, 22, -1}, {5, 7, 23, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 8, 22, -1}, {5, 8, 23, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 9, 22, -1}, {5, 9, 23, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 10, 22, -1}, {5, 10, 23, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 11, 22, -1}, {5, 11, 23, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 12, 22, -1}, {5, 12, 23, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 13, 22, -1}, {5, 13, 23, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 14, 22, -1}, {5, 14, 23, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 15, 22, -1}, {5, 15, 23, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 16, 22, -1}, {5, 16, 23, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 17, 22, -1}, {5, 17, 23, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 18, 22, -1}, {5, 18, 23, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 19, 22, -1}, {5, 19, 23, -1}, {5, 20, 21, -1}, {5, 20, 22, -1}, {5, 20, 23, -1}, {5, 21, 22, -1}, {5, 21, 23, -1}, {5, 22, 23, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 7, 22, -1}, {6, 7, 23, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 8, 22, -1}, {6, 8, 23, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 9, 22, -1}, {6, 9, 23, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 10, 22, -1}, {6, 10, 23, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 11, 22, -1}, {6, 11, 23, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 12, 22, -1}, {6, 12, 23, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 13, 22, -1}, {6, 13, 23, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 14, 22, -1}, {6, 14, 23, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 15, 22, -1}, {6, 15, 23, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 16, 22, -1}, {6, 16, 23, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 17, 22, -1}, {6, 17, 23, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 18, 22, -1}, {6, 18, 23, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 19, 22, -1}, {6, 19, 23, -1}, {6, 20, 21, -1}, {6, 20, 22, -1}, {6, 20, 23, -1}, {6, 21, 22, -1}, {6, 21, 23, -1}, {6, 22, 23, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 8, 22, -1}, {7, 8, 23, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 9, 22, -1}, {7, 9, 23, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 10, 22, -1}, {7, 10, 23, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 11, 22, -1}, {7, 11, 23, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 12, 22, -1}, {7, 12, 23, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 13, 22, -1}, {7, 13, 23, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 14, 22, -1}, {7, 14, 23, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 15, 22, -1}, {7, 15, 23, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 16, 22, -1}, {7, 16, 23, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 17, 22, -1}, {7, 17, 23, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 18, 22, -1}, {7, 18, 23, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 19, 22, -1}, {7, 19, 23, -1}, {7, 20, 21, -1}, {7, 20, 22, -1}, {7, 20, 23, -1}, {7, 21, 22, -1}, {7, 21, 23, -1}, {7, 22, 23, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 9, 22, -1}, {8, 9, 23, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 10, 22, -1}, {8, 10, 23, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 11, 22, -1}, {8, 11, 23, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 12, 22, -1}, {8, 12, 23, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 13, 22, -1}, {8, 13, 23, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 14, 22, -1}, {8, 14, 23, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 15, 22, -1}, {8, 15, 23, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 16, 22, -1}, {8, 16, 23, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 17, 22, -1}, {8, 17, 23, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 18, 22, -1}, {8, 18, 23, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 19, 22, -1}, {8, 19, 23, -1}, {8, 20, 21, -1}, {8, 20, 22, -1}, {8, 20, 23, -1}, {8, 21, 22, -1}, {8, 21, 23, -1}, {8, 22, 23, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 10, 22, -1}, {9, 10, 23, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 11, 22, -1}, {9, 11, 23, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 12, 22, -1}, {9, 12, 23, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 13, 22, -1}, {9, 13, 23, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 14, 22, -1}, {9, 14, 23, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 15, 22, -1}, {9, 15, 23, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 16, 22, -1}, {9, 16, 23, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 17, 22, -1}, {9, 17, 23, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 18, 22, -1}, {9, 18, 23, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 19, 22, -1}, {9, 19, 23, -1}, {9, 20, 21, -1}, {9, 20, 22, -1}, {9, 20, 23, -1}, {9, 21, 22, -1}, {9, 21, 23, -1}, {9, 22, 23, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 11, 22, -1}, {10, 11, 23, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 12, 22, -1}, {10, 12, 23, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 13, 22, -1}, {10, 13, 23, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 14, 22, -1}, {10, 14, 23, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 15, 22, -1}, {10, 15, 23, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 16, 22, -1}, {10, 16, 23, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 17, 22, -1}, {10, 17, 23, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 18, 22, -1}, {10, 18, 23, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 19, 22, -1}, {10, 19, 23, -1}, {10, 20, 21, -1}, {10, 20, 22, -1}, {10, 20, 23, -1}, {10, 21, 22, -1}, {10, 21, 23, -1}, {10, 22, 23, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 12, 22, -1}, {11, 12, 23, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 13, 22, -1}, {11, 13, 23, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 14, 22, -1}, {11, 14, 23, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 15, 22, -1}, {11, 15, 23, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 16, 22, -1}, {11, 16, 23, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 17, 22, -1}, {11, 17, 23, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 18, 22, -1}, {11, 18, 23, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 19, 22, -1}, {11, 19, 23, -1}, {11, 20, 21, -1}, {11, 20, 22, -1}, {11, 20, 23, -1}, {11, 21, 22, -1}, {11, 21, 23, -1}, {11, 22, 23, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 13, 22, -1}, {12, 13, 23, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 14, 22, -1}, {12, 14, 23, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 15, 22, -1}, {12, 15, 23, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 16, 22, -1}, {12, 16, 23, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 17, 22, -1}, {12, 17, 23, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 18, 22, -1}, {12, 18, 23, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 19, 22, -1}, {12, 19, 23, -1}, {12, 20, 21, -1}, {12, 20, 22, -1}, {12, 20, 23, -1}, {12, 21, 22, -1}, {12, 21, 23, -1}, {12, 22, 23, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 14, 22, -1}, {13, 14, 23, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 15, 22, -1}, {13, 15, 23, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 16, 22, -1}, {13, 16, 23, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 17, 22, -1}, {13, 17, 23, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 18, 22, -1}, {13, 18, 23, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 19, 22, -1}, {13, 19, 23, -1}, {13, 20, 21, -1}, {13, 20, 22, -1}, {13, 20, 23, -1}, {13, 21, 22, -1}, {13, 21, 23, -1}, {13, 22, 23, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 15, 22, -1}, {14, 15, 23, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 16, 22, -1}, {14, 16, 23, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 17, 22, -1}, {14, 17, 23, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 18, 22, -1}, {14, 18, 23, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 19, 22, -1}, {14, 19, 23, -1}, {14, 20, 21, -1}, {14, 20, 22, -1}, {14, 20, 23, -1}, {14, 21, 22, -1}, {14, 21, 23, -1}, {14, 22, 23, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 16, 22, -1}, {15, 16, 23, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 17, 22, -1}, {15, 17, 23, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 18, 22, -1}, {15, 18, 23, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 19, 22, -1}, {15, 19, 23, -1}, {15, 20, 21, -1}, {15, 20, 22, -1}, {15, 20, 23, -1}, {15, 21, 22, -1}, {15, 21, 23, -1}, {15, 22, 23, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 17, 22, -1}, {16, 17, 23, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 18, 22, -1}, {16, 18, 23, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 19, 22, -1}, {16, 19, 23, -1}, {16, 20, 21, -1}, {16, 20, 22, -1}, {16, 20, 23, -1}, {16, 21, 22, -1}, {16, 21, 23, -1}, {16, 22, 23, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 18, 22, -1}, {17, 18, 23, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 19, 22, -1}, {17, 19, 23, -1}, {17, 20, 21, -1}, {17, 20, 22, -1}, {17, 20, 23, -1}, {17, 21, 22, -1}, {17, 21, 23, -1}, {17, 22, 23, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 19, 22, -1}, {18, 19, 23, -1}, {18, 20, 21, -1}, {18, 20, 22, -1}, {18, 20, 23, -1}, {18, 21, 22, -1}, {18, 21, 23, -1}, {18, 22, 23, -1}, {19, 20, 21, -1}, {19, 20, 22, -1}, {19, 20, 23, -1}, {19, 21, 22, -1}, {19, 21, 23, -1}, {19, 22, 23, -1}, {20, 21, 22, -1}, {20, 21, 23, -1}, {20, 22, 23, -1}, {21, 22, 23, -1}} ;
-#define NUM_25_3_COMBS 325
-int failure_combs_25_3[NUM_25_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {24, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {0, 24, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {1, 24, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {2, 24, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {3, 24, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {4, 24, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {5, 24, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {6, 24, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {7, 24, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {8, 24, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {9, 24, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {10, 24, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {11, 24, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {12, 24, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {13, 24, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {14, 24, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {15, 24, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {16, 24, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {17, 24, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {18, 24, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {19, 24, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {20, 24, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {21, 24, -1, -1}, {22, 23, -1, -1}, {22, 24, -1, -1}, {23, 24, -1, -1}} ;
-#define NUM_25_4_COMBS 2625
-int failure_combs_25_4[NUM_25_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {24, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {0, 24, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {1, 24, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {2, 24, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {3, 24, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {4, 24, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {5, 24, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {6, 24, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {7, 24, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {8, 24, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {9, 24, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {10, 24, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {11, 24, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {12, 24, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {13, 24, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {14, 24, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {15, 24, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {16, 24, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {17, 24, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {18, 24, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {19, 24, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {20, 24, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {21, 24, -1, -1}, {22, 23, -1, -1}, {22, 24, -1, -1}, {23, 24, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 1, 22, -1}, {0, 1, 23, -1}, {0, 1, 24, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 2, 22, -1}, {0, 2, 23, -1}, {0, 2, 24, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 3, 22, -1}, {0, 3, 23, -1}, {0, 3, 24, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 4, 22, -1}, {0, 4, 23, -1}, {0, 4, 24, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 5, 22, -1}, {0, 5, 23, -1}, {0, 5, 24, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 6, 22, -1}, {0, 6, 23, -1}, {0, 6, 24, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 7, 22, -1}, {0, 7, 23, -1}, {0, 7, 24, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 8, 22, -1}, {0, 8, 23, -1}, {0, 8, 24, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 9, 22, -1}, {0, 9, 23, -1}, {0, 9, 24, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 10, 22, -1}, {0, 10, 23, -1}, {0, 10, 24, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 11, 22, -1}, {0, 11, 23, -1}, {0, 11, 24, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 12, 22, -1}, {0, 12, 23, -1}, {0, 12, 24, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 13, 22, -1}, {0, 13, 23, -1}, {0, 13, 24, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 14, 22, -1}, {0, 14, 23, -1}, {0, 14, 24, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 15, 22, -1}, {0, 15, 23, -1}, {0, 15, 24, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 16, 22, -1}, {0, 16, 23, -1}, {0, 16, 24, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 17, 22, -1}, {0, 17, 23, -1}, {0, 17, 24, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 18, 22, -1}, {0, 18, 23, -1}, {0, 18, 24, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 19, 22, -1}, {0, 19, 23, -1}, {0, 19, 24, -1}, {0, 20, 21, -1}, {0, 20, 22, -1}, {0, 20, 23, -1}, {0, 20, 24, -1}, {0, 21, 22, -1}, {0, 21, 23, -1}, {0, 21, 24, -1}, {0, 22, 23, -1}, {0, 22, 24, -1}, {0, 23, 24, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 2, 22, -1}, {1, 2, 23, -1}, {1, 2, 24, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 3, 22, -1}, {1, 3, 23, -1}, {1, 3, 24, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 4, 22, -1}, {1, 4, 23, -1}, {1, 4, 24, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 5, 22, -1}, {1, 5, 23, -1}, {1, 5, 24, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 6, 22, -1}, {1, 6, 23, -1}, {1, 6, 24, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 7, 22, -1}, {1, 7, 23, -1}, {1, 7, 24, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 8, 22, -1}, {1, 8, 23, -1}, {1, 8, 24, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 9, 22, -1}, {1, 9, 23, -1}, {1, 9, 24, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 10, 22, -1}, {1, 10, 23, -1}, {1, 10, 24, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 11, 22, -1}, {1, 11, 23, -1}, {1, 11, 24, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 12, 22, -1}, {1, 12, 23, -1}, {1, 12, 24, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 13, 22, -1}, {1, 13, 23, -1}, {1, 13, 24, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 14, 22, -1}, {1, 14, 23, -1}, {1, 14, 24, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 15, 22, -1}, {1, 15, 23, -1}, {1, 15, 24, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 16, 22, -1}, {1, 16, 23, -1}, {1, 16, 24, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 17, 22, -1}, {1, 17, 23, -1}, {1, 17, 24, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 18, 22, -1}, {1, 18, 23, -1}, {1, 18, 24, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 19, 22, -1}, {1, 19, 23, -1}, {1, 19, 24, -1}, {1, 20, 21, -1}, {1, 20, 22, -1}, {1, 20, 23, -1}, {1, 20, 24, -1}, {1, 21, 22, -1}, {1, 21, 23, -1}, {1, 21, 24, -1}, {1, 22, 23, -1}, {1, 22, 24, -1}, {1, 23, 24, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 3, 22, -1}, {2, 3, 23, -1}, {2, 3, 24, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 4, 22, -1}, {2, 4, 23, -1}, {2, 4, 24, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 5, 22, -1}, {2, 5, 23, -1}, {2, 5, 24, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 6, 22, -1}, {2, 6, 23, -1}, {2, 6, 24, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 7, 22, -1}, {2, 7, 23, -1}, {2, 7, 24, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 8, 22, -1}, {2, 8, 23, -1}, {2, 8, 24, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 9, 22, -1}, {2, 9, 23, -1}, {2, 9, 24, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 10, 22, -1}, {2, 10, 23, -1}, {2, 10, 24, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 11, 22, -1}, {2, 11, 23, -1}, {2, 11, 24, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 12, 22, -1}, {2, 12, 23, -1}, {2, 12, 24, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 13, 22, -1}, {2, 13, 23, -1}, {2, 13, 24, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 14, 22, -1}, {2, 14, 23, -1}, {2, 14, 24, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 15, 22, -1}, {2, 15, 23, -1}, {2, 15, 24, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 16, 22, -1}, {2, 16, 23, -1}, {2, 16, 24, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 17, 22, -1}, {2, 17, 23, -1}, {2, 17, 24, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 18, 22, -1}, {2, 18, 23, -1}, {2, 18, 24, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 19, 22, -1}, {2, 19, 23, -1}, {2, 19, 24, -1}, {2, 20, 21, -1}, {2, 20, 22, -1}, {2, 20, 23, -1}, {2, 20, 24, -1}, {2, 21, 22, -1}, {2, 21, 23, -1}, {2, 21, 24, -1}, {2, 22, 23, -1}, {2, 22, 24, -1}, {2, 23, 24, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 4, 22, -1}, {3, 4, 23, -1}, {3, 4, 24, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 5, 22, -1}, {3, 5, 23, -1}, {3, 5, 24, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 6, 22, -1}, {3, 6, 23, -1}, {3, 6, 24, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 7, 22, -1}, {3, 7, 23, -1}, {3, 7, 24, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 8, 22, -1}, {3, 8, 23, -1}, {3, 8, 24, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 9, 22, -1}, {3, 9, 23, -1}, {3, 9, 24, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 10, 22, -1}, {3, 10, 23, -1}, {3, 10, 24, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 11, 22, -1}, {3, 11, 23, -1}, {3, 11, 24, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 12, 22, -1}, {3, 12, 23, -1}, {3, 12, 24, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 13, 22, -1}, {3, 13, 23, -1}, {3, 13, 24, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 14, 22, -1}, {3, 14, 23, -1}, {3, 14, 24, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 15, 22, -1}, {3, 15, 23, -1}, {3, 15, 24, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 16, 22, -1}, {3, 16, 23, -1}, {3, 16, 24, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 17, 22, -1}, {3, 17, 23, -1}, {3, 17, 24, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 18, 22, -1}, {3, 18, 23, -1}, {3, 18, 24, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 19, 22, -1}, {3, 19, 23, -1}, {3, 19, 24, -1}, {3, 20, 21, -1}, {3, 20, 22, -1}, {3, 20, 23, -1}, {3, 20, 24, -1}, {3, 21, 22, -1}, {3, 21, 23, -1}, {3, 21, 24, -1}, {3, 22, 23, -1}, {3, 22, 24, -1}, {3, 23, 24, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 5, 22, -1}, {4, 5, 23, -1}, {4, 5, 24, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 6, 22, -1}, {4, 6, 23, -1}, {4, 6, 24, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 7, 22, -1}, {4, 7, 23, -1}, {4, 7, 24, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 8, 22, -1}, {4, 8, 23, -1}, {4, 8, 24, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 9, 22, -1}, {4, 9, 23, -1}, {4, 9, 24, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 10, 22, -1}, {4, 10, 23, -1}, {4, 10, 24, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 11, 22, -1}, {4, 11, 23, -1}, {4, 11, 24, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 12, 22, -1}, {4, 12, 23, -1}, {4, 12, 24, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 13, 22, -1}, {4, 13, 23, -1}, {4, 13, 24, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 14, 22, -1}, {4, 14, 23, -1}, {4, 14, 24, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 15, 22, -1}, {4, 15, 23, -1}, {4, 15, 24, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 16, 22, -1}, {4, 16, 23, -1}, {4, 16, 24, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 17, 22, -1}, {4, 17, 23, -1}, {4, 17, 24, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 18, 22, -1}, {4, 18, 23, -1}, {4, 18, 24, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 19, 22, -1}, {4, 19, 23, -1}, {4, 19, 24, -1}, {4, 20, 21, -1}, {4, 20, 22, -1}, {4, 20, 23, -1}, {4, 20, 24, -1}, {4, 21, 22, -1}, {4, 21, 23, -1}, {4, 21, 24, -1}, {4, 22, 23, -1}, {4, 22, 24, -1}, {4, 23, 24, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 6, 22, -1}, {5, 6, 23, -1}, {5, 6, 24, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 7, 22, -1}, {5, 7, 23, -1}, {5, 7, 24, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 8, 22, -1}, {5, 8, 23, -1}, {5, 8, 24, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 9, 22, -1}, {5, 9, 23, -1}, {5, 9, 24, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 10, 22, -1}, {5, 10, 23, -1}, {5, 10, 24, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 11, 22, -1}, {5, 11, 23, -1}, {5, 11, 24, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 12, 22, -1}, {5, 12, 23, -1}, {5, 12, 24, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 13, 22, -1}, {5, 13, 23, -1}, {5, 13, 24, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 14, 22, -1}, {5, 14, 23, -1}, {5, 14, 24, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 15, 22, -1}, {5, 15, 23, -1}, {5, 15, 24, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 16, 22, -1}, {5, 16, 23, -1}, {5, 16, 24, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 17, 22, -1}, {5, 17, 23, -1}, {5, 17, 24, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 18, 22, -1}, {5, 18, 23, -1}, {5, 18, 24, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 19, 22, -1}, {5, 19, 23, -1}, {5, 19, 24, -1}, {5, 20, 21, -1}, {5, 20, 22, -1}, {5, 20, 23, -1}, {5, 20, 24, -1}, {5, 21, 22, -1}, {5, 21, 23, -1}, {5, 21, 24, -1}, {5, 22, 23, -1}, {5, 22, 24, -1}, {5, 23, 24, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 7, 22, -1}, {6, 7, 23, -1}, {6, 7, 24, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 8, 22, -1}, {6, 8, 23, -1}, {6, 8, 24, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 9, 22, -1}, {6, 9, 23, -1}, {6, 9, 24, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 10, 22, -1}, {6, 10, 23, -1}, {6, 10, 24, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 11, 22, -1}, {6, 11, 23, -1}, {6, 11, 24, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 12, 22, -1}, {6, 12, 23, -1}, {6, 12, 24, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 13, 22, -1}, {6, 13, 23, -1}, {6, 13, 24, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 14, 22, -1}, {6, 14, 23, -1}, {6, 14, 24, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 15, 22, -1}, {6, 15, 23, -1}, {6, 15, 24, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 16, 22, -1}, {6, 16, 23, -1}, {6, 16, 24, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 17, 22, -1}, {6, 17, 23, -1}, {6, 17, 24, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 18, 22, -1}, {6, 18, 23, -1}, {6, 18, 24, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 19, 22, -1}, {6, 19, 23, -1}, {6, 19, 24, -1}, {6, 20, 21, -1}, {6, 20, 22, -1}, {6, 20, 23, -1}, {6, 20, 24, -1}, {6, 21, 22, -1}, {6, 21, 23, -1}, {6, 21, 24, -1}, {6, 22, 23, -1}, {6, 22, 24, -1}, {6, 23, 24, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 8, 22, -1}, {7, 8, 23, -1}, {7, 8, 24, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 9, 22, -1}, {7, 9, 23, -1}, {7, 9, 24, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 10, 22, -1}, {7, 10, 23, -1}, {7, 10, 24, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 11, 22, -1}, {7, 11, 23, -1}, {7, 11, 24, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 12, 22, -1}, {7, 12, 23, -1}, {7, 12, 24, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 13, 22, -1}, {7, 13, 23, -1}, {7, 13, 24, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 14, 22, -1}, {7, 14, 23, -1}, {7, 14, 24, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 15, 22, -1}, {7, 15, 23, -1}, {7, 15, 24, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 16, 22, -1}, {7, 16, 23, -1}, {7, 16, 24, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 17, 22, -1}, {7, 17, 23, -1}, {7, 17, 24, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 18, 22, -1}, {7, 18, 23, -1}, {7, 18, 24, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 19, 22, -1}, {7, 19, 23, -1}, {7, 19, 24, -1}, {7, 20, 21, -1}, {7, 20, 22, -1}, {7, 20, 23, -1}, {7, 20, 24, -1}, {7, 21, 22, -1}, {7, 21, 23, -1}, {7, 21, 24, -1}, {7, 22, 23, -1}, {7, 22, 24, -1}, {7, 23, 24, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 9, 22, -1}, {8, 9, 23, -1}, {8, 9, 24, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 10, 22, -1}, {8, 10, 23, -1}, {8, 10, 24, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 11, 22, -1}, {8, 11, 23, -1}, {8, 11, 24, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 12, 22, -1}, {8, 12, 23, -1}, {8, 12, 24, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 13, 22, -1}, {8, 13, 23, -1}, {8, 13, 24, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 14, 22, -1}, {8, 14, 23, -1}, {8, 14, 24, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 15, 22, -1}, {8, 15, 23, -1}, {8, 15, 24, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 16, 22, -1}, {8, 16, 23, -1}, {8, 16, 24, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 17, 22, -1}, {8, 17, 23, -1}, {8, 17, 24, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 18, 22, -1}, {8, 18, 23, -1}, {8, 18, 24, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 19, 22, -1}, {8, 19, 23, -1}, {8, 19, 24, -1}, {8, 20, 21, -1}, {8, 20, 22, -1}, {8, 20, 23, -1}, {8, 20, 24, -1}, {8, 21, 22, -1}, {8, 21, 23, -1}, {8, 21, 24, -1}, {8, 22, 23, -1}, {8, 22, 24, -1}, {8, 23, 24, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 10, 22, -1}, {9, 10, 23, -1}, {9, 10, 24, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 11, 22, -1}, {9, 11, 23, -1}, {9, 11, 24, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 12, 22, -1}, {9, 12, 23, -1}, {9, 12, 24, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 13, 22, -1}, {9, 13, 23, -1}, {9, 13, 24, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 14, 22, -1}, {9, 14, 23, -1}, {9, 14, 24, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 15, 22, -1}, {9, 15, 23, -1}, {9, 15, 24, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 16, 22, -1}, {9, 16, 23, -1}, {9, 16, 24, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 17, 22, -1}, {9, 17, 23, -1}, {9, 17, 24, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 18, 22, -1}, {9, 18, 23, -1}, {9, 18, 24, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 19, 22, -1}, {9, 19, 23, -1}, {9, 19, 24, -1}, {9, 20, 21, -1}, {9, 20, 22, -1}, {9, 20, 23, -1}, {9, 20, 24, -1}, {9, 21, 22, -1}, {9, 21, 23, -1}, {9, 21, 24, -1}, {9, 22, 23, -1}, {9, 22, 24, -1}, {9, 23, 24, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 11, 22, -1}, {10, 11, 23, -1}, {10, 11, 24, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 12, 22, -1}, {10, 12, 23, -1}, {10, 12, 24, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 13, 22, -1}, {10, 13, 23, -1}, {10, 13, 24, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 14, 22, -1}, {10, 14, 23, -1}, {10, 14, 24, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 15, 22, -1}, {10, 15, 23, -1}, {10, 15, 24, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 16, 22, -1}, {10, 16, 23, -1}, {10, 16, 24, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 17, 22, -1}, {10, 17, 23, -1}, {10, 17, 24, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 18, 22, -1}, {10, 18, 23, -1}, {10, 18, 24, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 19, 22, -1}, {10, 19, 23, -1}, {10, 19, 24, -1}, {10, 20, 21, -1}, {10, 20, 22, -1}, {10, 20, 23, -1}, {10, 20, 24, -1}, {10, 21, 22, -1}, {10, 21, 23, -1}, {10, 21, 24, -1}, {10, 22, 23, -1}, {10, 22, 24, -1}, {10, 23, 24, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 12, 22, -1}, {11, 12, 23, -1}, {11, 12, 24, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 13, 22, -1}, {11, 13, 23, -1}, {11, 13, 24, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 14, 22, -1}, {11, 14, 23, -1}, {11, 14, 24, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 15, 22, -1}, {11, 15, 23, -1}, {11, 15, 24, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 16, 22, -1}, {11, 16, 23, -1}, {11, 16, 24, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 17, 22, -1}, {11, 17, 23, -1}, {11, 17, 24, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 18, 22, -1}, {11, 18, 23, -1}, {11, 18, 24, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 19, 22, -1}, {11, 19, 23, -1}, {11, 19, 24, -1}, {11, 20, 21, -1}, {11, 20, 22, -1}, {11, 20, 23, -1}, {11, 20, 24, -1}, {11, 21, 22, -1}, {11, 21, 23, -1}, {11, 21, 24, -1}, {11, 22, 23, -1}, {11, 22, 24, -1}, {11, 23, 24, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 13, 22, -1}, {12, 13, 23, -1}, {12, 13, 24, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 14, 22, -1}, {12, 14, 23, -1}, {12, 14, 24, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 15, 22, -1}, {12, 15, 23, -1}, {12, 15, 24, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 16, 22, -1}, {12, 16, 23, -1}, {12, 16, 24, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 17, 22, -1}, {12, 17, 23, -1}, {12, 17, 24, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 18, 22, -1}, {12, 18, 23, -1}, {12, 18, 24, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 19, 22, -1}, {12, 19, 23, -1}, {12, 19, 24, -1}, {12, 20, 21, -1}, {12, 20, 22, -1}, {12, 20, 23, -1}, {12, 20, 24, -1}, {12, 21, 22, -1}, {12, 21, 23, -1}, {12, 21, 24, -1}, {12, 22, 23, -1}, {12, 22, 24, -1}, {12, 23, 24, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 14, 22, -1}, {13, 14, 23, -1}, {13, 14, 24, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 15, 22, -1}, {13, 15, 23, -1}, {13, 15, 24, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 16, 22, -1}, {13, 16, 23, -1}, {13, 16, 24, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 17, 22, -1}, {13, 17, 23, -1}, {13, 17, 24, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 18, 22, -1}, {13, 18, 23, -1}, {13, 18, 24, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 19, 22, -1}, {13, 19, 23, -1}, {13, 19, 24, -1}, {13, 20, 21, -1}, {13, 20, 22, -1}, {13, 20, 23, -1}, {13, 20, 24, -1}, {13, 21, 22, -1}, {13, 21, 23, -1}, {13, 21, 24, -1}, {13, 22, 23, -1}, {13, 22, 24, -1}, {13, 23, 24, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 15, 22, -1}, {14, 15, 23, -1}, {14, 15, 24, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 16, 22, -1}, {14, 16, 23, -1}, {14, 16, 24, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 17, 22, -1}, {14, 17, 23, -1}, {14, 17, 24, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 18, 22, -1}, {14, 18, 23, -1}, {14, 18, 24, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 19, 22, -1}, {14, 19, 23, -1}, {14, 19, 24, -1}, {14, 20, 21, -1}, {14, 20, 22, -1}, {14, 20, 23, -1}, {14, 20, 24, -1}, {14, 21, 22, -1}, {14, 21, 23, -1}, {14, 21, 24, -1}, {14, 22, 23, -1}, {14, 22, 24, -1}, {14, 23, 24, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 16, 22, -1}, {15, 16, 23, -1}, {15, 16, 24, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 17, 22, -1}, {15, 17, 23, -1}, {15, 17, 24, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 18, 22, -1}, {15, 18, 23, -1}, {15, 18, 24, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 19, 22, -1}, {15, 19, 23, -1}, {15, 19, 24, -1}, {15, 20, 21, -1}, {15, 20, 22, -1}, {15, 20, 23, -1}, {15, 20, 24, -1}, {15, 21, 22, -1}, {15, 21, 23, -1}, {15, 21, 24, -1}, {15, 22, 23, -1}, {15, 22, 24, -1}, {15, 23, 24, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 17, 22, -1}, {16, 17, 23, -1}, {16, 17, 24, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 18, 22, -1}, {16, 18, 23, -1}, {16, 18, 24, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 19, 22, -1}, {16, 19, 23, -1}, {16, 19, 24, -1}, {16, 20, 21, -1}, {16, 20, 22, -1}, {16, 20, 23, -1}, {16, 20, 24, -1}, {16, 21, 22, -1}, {16, 21, 23, -1}, {16, 21, 24, -1}, {16, 22, 23, -1}, {16, 22, 24, -1}, {16, 23, 24, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 18, 22, -1}, {17, 18, 23, -1}, {17, 18, 24, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 19, 22, -1}, {17, 19, 23, -1}, {17, 19, 24, -1}, {17, 20, 21, -1}, {17, 20, 22, -1}, {17, 20, 23, -1}, {17, 20, 24, -1}, {17, 21, 22, -1}, {17, 21, 23, -1}, {17, 21, 24, -1}, {17, 22, 23, -1}, {17, 22, 24, -1}, {17, 23, 24, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 19, 22, -1}, {18, 19, 23, -1}, {18, 19, 24, -1}, {18, 20, 21, -1}, {18, 20, 22, -1}, {18, 20, 23, -1}, {18, 20, 24, -1}, {18, 21, 22, -1}, {18, 21, 23, -1}, {18, 21, 24, -1}, {18, 22, 23, -1}, {18, 22, 24, -1}, {18, 23, 24, -1}, {19, 20, 21, -1}, {19, 20, 22, -1}, {19, 20, 23, -1}, {19, 20, 24, -1}, {19, 21, 22, -1}, {19, 21, 23, -1}, {19, 21, 24, -1}, {19, 22, 23, -1}, {19, 22, 24, -1}, {19, 23, 24, -1}, {20, 21, 22, -1}, {20, 21, 23, -1}, {20, 21, 24, -1}, {20, 22, 23, -1}, {20, 22, 24, -1}, {20, 23, 24, -1}, {21, 22, 23, -1}, {21, 22, 24, -1}, {21, 23, 24, -1}, {22, 23, 24, -1}} ;
-#define NUM_26_3_COMBS 351
-int failure_combs_26_3[NUM_26_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {24, -1, -1, -1}, {25, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {0, 24, -1, -1}, {0, 25, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {1, 24, -1, -1}, {1, 25, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {2, 24, -1, -1}, {2, 25, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {3, 24, -1, -1}, {3, 25, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {4, 24, -1, -1}, {4, 25, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {5, 24, -1, -1}, {5, 25, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {6, 24, -1, -1}, {6, 25, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {7, 24, -1, -1}, {7, 25, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {8, 24, -1, -1}, {8, 25, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {9, 24, -1, -1}, {9, 25, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {10, 24, -1, -1}, {10, 25, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {11, 24, -1, -1}, {11, 25, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {12, 24, -1, -1}, {12, 25, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {13, 24, -1, -1}, {13, 25, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {14, 24, -1, -1}, {14, 25, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {15, 24, -1, -1}, {15, 25, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {16, 24, -1, -1}, {16, 25, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {17, 24, -1, -1}, {17, 25, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {18, 24, -1, -1}, {18, 25, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {19, 24, -1, -1}, {19, 25, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {20, 24, -1, -1}, {20, 25, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {21, 24, -1, -1}, {21, 25, -1, -1}, {22, 23, -1, -1}, {22, 24, -1, -1}, {22, 25, -1, -1}, {23, 24, -1, -1}, {23, 25, -1, -1}, {24, 25, -1, -1}} ;
-#define NUM_26_4_COMBS 2951
-int failure_combs_26_4[NUM_26_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {24, -1, -1, -1}, {25, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {0, 24, -1, -1}, {0, 25, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {1, 24, -1, -1}, {1, 25, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {2, 24, -1, -1}, {2, 25, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {3, 24, -1, -1}, {3, 25, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {4, 24, -1, -1}, {4, 25, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {5, 24, -1, -1}, {5, 25, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {6, 24, -1, -1}, {6, 25, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {7, 24, -1, -1}, {7, 25, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {8, 24, -1, -1}, {8, 25, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {9, 24, -1, -1}, {9, 25, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {10, 24, -1, -1}, {10, 25, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {11, 24, -1, -1}, {11, 25, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {12, 24, -1, -1}, {12, 25, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {13, 24, -1, -1}, {13, 25, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {14, 24, -1, -1}, {14, 25, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {15, 24, -1, -1}, {15, 25, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {16, 24, -1, -1}, {16, 25, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {17, 24, -1, -1}, {17, 25, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {18, 24, -1, -1}, {18, 25, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {19, 24, -1, -1}, {19, 25, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {20, 24, -1, -1}, {20, 25, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {21, 24, -1, -1}, {21, 25, -1, -1}, {22, 23, -1, -1}, {22, 24, -1, -1}, {22, 25, -1, -1}, {23, 24, -1, -1}, {23, 25, -1, -1}, {24, 25, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 1, 22, -1}, {0, 1, 23, -1}, {0, 1, 24, -1}, {0, 1, 25, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 2, 22, -1}, {0, 2, 23, -1}, {0, 2, 24, -1}, {0, 2, 25, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 3, 22, -1}, {0, 3, 23, -1}, {0, 3, 24, -1}, {0, 3, 25, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 4, 22, -1}, {0, 4, 23, -1}, {0, 4, 24, -1}, {0, 4, 25, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 5, 22, -1}, {0, 5, 23, -1}, {0, 5, 24, -1}, {0, 5, 25, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 6, 22, -1}, {0, 6, 23, -1}, {0, 6, 24, -1}, {0, 6, 25, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 7, 22, -1}, {0, 7, 23, -1}, {0, 7, 24, -1}, {0, 7, 25, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 8, 22, -1}, {0, 8, 23, -1}, {0, 8, 24, -1}, {0, 8, 25, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 9, 22, -1}, {0, 9, 23, -1}, {0, 9, 24, -1}, {0, 9, 25, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 10, 22, -1}, {0, 10, 23, -1}, {0, 10, 24, -1}, {0, 10, 25, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 11, 22, -1}, {0, 11, 23, -1}, {0, 11, 24, -1}, {0, 11, 25, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 12, 22, -1}, {0, 12, 23, -1}, {0, 12, 24, -1}, {0, 12, 25, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 13, 22, -1}, {0, 13, 23, -1}, {0, 13, 24, -1}, {0, 13, 25, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 14, 22, -1}, {0, 14, 23, -1}, {0, 14, 24, -1}, {0, 14, 25, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 15, 22, -1}, {0, 15, 23, -1}, {0, 15, 24, -1}, {0, 15, 25, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 16, 22, -1}, {0, 16, 23, -1}, {0, 16, 24, -1}, {0, 16, 25, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 17, 22, -1}, {0, 17, 23, -1}, {0, 17, 24, -1}, {0, 17, 25, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 18, 22, -1}, {0, 18, 23, -1}, {0, 18, 24, -1}, {0, 18, 25, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 19, 22, -1}, {0, 19, 23, -1}, {0, 19, 24, -1}, {0, 19, 25, -1}, {0, 20, 21, -1}, {0, 20, 22, -1}, {0, 20, 23, -1}, {0, 20, 24, -1}, {0, 20, 25, -1}, {0, 21, 22, -1}, {0, 21, 23, -1}, {0, 21, 24, -1}, {0, 21, 25, -1}, {0, 22, 23, -1}, {0, 22, 24, -1}, {0, 22, 25, -1}, {0, 23, 24, -1}, {0, 23, 25, -1}, {0, 24, 25, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 2, 22, -1}, {1, 2, 23, -1}, {1, 2, 24, -1}, {1, 2, 25, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 3, 22, -1}, {1, 3, 23, -1}, {1, 3, 24, -1}, {1, 3, 25, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 4, 22, -1}, {1, 4, 23, -1}, {1, 4, 24, -1}, {1, 4, 25, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 5, 22, -1}, {1, 5, 23, -1}, {1, 5, 24, -1}, {1, 5, 25, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 6, 22, -1}, {1, 6, 23, -1}, {1, 6, 24, -1}, {1, 6, 25, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 7, 22, -1}, {1, 7, 23, -1}, {1, 7, 24, -1}, {1, 7, 25, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 8, 22, -1}, {1, 8, 23, -1}, {1, 8, 24, -1}, {1, 8, 25, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 9, 22, -1}, {1, 9, 23, -1}, {1, 9, 24, -1}, {1, 9, 25, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 10, 22, -1}, {1, 10, 23, -1}, {1, 10, 24, -1}, {1, 10, 25, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 11, 22, -1}, {1, 11, 23, -1}, {1, 11, 24, -1}, {1, 11, 25, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 12, 22, -1}, {1, 12, 23, -1}, {1, 12, 24, -1}, {1, 12, 25, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 13, 22, -1}, {1, 13, 23, -1}, {1, 13, 24, -1}, {1, 13, 25, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 14, 22, -1}, {1, 14, 23, -1}, {1, 14, 24, -1}, {1, 14, 25, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 15, 22, -1}, {1, 15, 23, -1}, {1, 15, 24, -1}, {1, 15, 25, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 16, 22, -1}, {1, 16, 23, -1}, {1, 16, 24, -1}, {1, 16, 25, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 17, 22, -1}, {1, 17, 23, -1}, {1, 17, 24, -1}, {1, 17, 25, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 18, 22, -1}, {1, 18, 23, -1}, {1, 18, 24, -1}, {1, 18, 25, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 19, 22, -1}, {1, 19, 23, -1}, {1, 19, 24, -1}, {1, 19, 25, -1}, {1, 20, 21, -1}, {1, 20, 22, -1}, {1, 20, 23, -1}, {1, 20, 24, -1}, {1, 20, 25, -1}, {1, 21, 22, -1}, {1, 21, 23, -1}, {1, 21, 24, -1}, {1, 21, 25, -1}, {1, 22, 23, -1}, {1, 22, 24, -1}, {1, 22, 25, -1}, {1, 23, 24, -1}, {1, 23, 25, -1}, {1, 24, 25, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 3, 22, -1}, {2, 3, 23, -1}, {2, 3, 24, -1}, {2, 3, 25, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 4, 22, -1}, {2, 4, 23, -1}, {2, 4, 24, -1}, {2, 4, 25, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 5, 22, -1}, {2, 5, 23, -1}, {2, 5, 24, -1}, {2, 5, 25, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 6, 22, -1}, {2, 6, 23, -1}, {2, 6, 24, -1}, {2, 6, 25, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 7, 22, -1}, {2, 7, 23, -1}, {2, 7, 24, -1}, {2, 7, 25, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 8, 22, -1}, {2, 8, 23, -1}, {2, 8, 24, -1}, {2, 8, 25, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 9, 22, -1}, {2, 9, 23, -1}, {2, 9, 24, -1}, {2, 9, 25, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 10, 22, -1}, {2, 10, 23, -1}, {2, 10, 24, -1}, {2, 10, 25, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 11, 22, -1}, {2, 11, 23, -1}, {2, 11, 24, -1}, {2, 11, 25, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 12, 22, -1}, {2, 12, 23, -1}, {2, 12, 24, -1}, {2, 12, 25, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 13, 22, -1}, {2, 13, 23, -1}, {2, 13, 24, -1}, {2, 13, 25, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 14, 22, -1}, {2, 14, 23, -1}, {2, 14, 24, -1}, {2, 14, 25, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 15, 22, -1}, {2, 15, 23, -1}, {2, 15, 24, -1}, {2, 15, 25, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 16, 22, -1}, {2, 16, 23, -1}, {2, 16, 24, -1}, {2, 16, 25, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 17, 22, -1}, {2, 17, 23, -1}, {2, 17, 24, -1}, {2, 17, 25, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 18, 22, -1}, {2, 18, 23, -1}, {2, 18, 24, -1}, {2, 18, 25, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 19, 22, -1}, {2, 19, 23, -1}, {2, 19, 24, -1}, {2, 19, 25, -1}, {2, 20, 21, -1}, {2, 20, 22, -1}, {2, 20, 23, -1}, {2, 20, 24, -1}, {2, 20, 25, -1}, {2, 21, 22, -1}, {2, 21, 23, -1}, {2, 21, 24, -1}, {2, 21, 25, -1}, {2, 22, 23, -1}, {2, 22, 24, -1}, {2, 22, 25, -1}, {2, 23, 24, -1}, {2, 23, 25, -1}, {2, 24, 25, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 4, 22, -1}, {3, 4, 23, -1}, {3, 4, 24, -1}, {3, 4, 25, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 5, 22, -1}, {3, 5, 23, -1}, {3, 5, 24, -1}, {3, 5, 25, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 6, 22, -1}, {3, 6, 23, -1}, {3, 6, 24, -1}, {3, 6, 25, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 7, 22, -1}, {3, 7, 23, -1}, {3, 7, 24, -1}, {3, 7, 25, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 8, 22, -1}, {3, 8, 23, -1}, {3, 8, 24, -1}, {3, 8, 25, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 9, 22, -1}, {3, 9, 23, -1}, {3, 9, 24, -1}, {3, 9, 25, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 10, 22, -1}, {3, 10, 23, -1}, {3, 10, 24, -1}, {3, 10, 25, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 11, 22, -1}, {3, 11, 23, -1}, {3, 11, 24, -1}, {3, 11, 25, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 12, 22, -1}, {3, 12, 23, -1}, {3, 12, 24, -1}, {3, 12, 25, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 13, 22, -1}, {3, 13, 23, -1}, {3, 13, 24, -1}, {3, 13, 25, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 14, 22, -1}, {3, 14, 23, -1}, {3, 14, 24, -1}, {3, 14, 25, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 15, 22, -1}, {3, 15, 23, -1}, {3, 15, 24, -1}, {3, 15, 25, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 16, 22, -1}, {3, 16, 23, -1}, {3, 16, 24, -1}, {3, 16, 25, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 17, 22, -1}, {3, 17, 23, -1}, {3, 17, 24, -1}, {3, 17, 25, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 18, 22, -1}, {3, 18, 23, -1}, {3, 18, 24, -1}, {3, 18, 25, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 19, 22, -1}, {3, 19, 23, -1}, {3, 19, 24, -1}, {3, 19, 25, -1}, {3, 20, 21, -1}, {3, 20, 22, -1}, {3, 20, 23, -1}, {3, 20, 24, -1}, {3, 20, 25, -1}, {3, 21, 22, -1}, {3, 21, 23, -1}, {3, 21, 24, -1}, {3, 21, 25, -1}, {3, 22, 23, -1}, {3, 22, 24, -1}, {3, 22, 25, -1}, {3, 23, 24, -1}, {3, 23, 25, -1}, {3, 24, 25, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 5, 22, -1}, {4, 5, 23, -1}, {4, 5, 24, -1}, {4, 5, 25, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 6, 22, -1}, {4, 6, 23, -1}, {4, 6, 24, -1}, {4, 6, 25, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 7, 22, -1}, {4, 7, 23, -1}, {4, 7, 24, -1}, {4, 7, 25, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 8, 22, -1}, {4, 8, 23, -1}, {4, 8, 24, -1}, {4, 8, 25, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 9, 22, -1}, {4, 9, 23, -1}, {4, 9, 24, -1}, {4, 9, 25, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 10, 22, -1}, {4, 10, 23, -1}, {4, 10, 24, -1}, {4, 10, 25, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 11, 22, -1}, {4, 11, 23, -1}, {4, 11, 24, -1}, {4, 11, 25, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 12, 22, -1}, {4, 12, 23, -1}, {4, 12, 24, -1}, {4, 12, 25, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 13, 22, -1}, {4, 13, 23, -1}, {4, 13, 24, -1}, {4, 13, 25, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 14, 22, -1}, {4, 14, 23, -1}, {4, 14, 24, -1}, {4, 14, 25, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 15, 22, -1}, {4, 15, 23, -1}, {4, 15, 24, -1}, {4, 15, 25, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 16, 22, -1}, {4, 16, 23, -1}, {4, 16, 24, -1}, {4, 16, 25, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 17, 22, -1}, {4, 17, 23, -1}, {4, 17, 24, -1}, {4, 17, 25, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 18, 22, -1}, {4, 18, 23, -1}, {4, 18, 24, -1}, {4, 18, 25, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 19, 22, -1}, {4, 19, 23, -1}, {4, 19, 24, -1}, {4, 19, 25, -1}, {4, 20, 21, -1}, {4, 20, 22, -1}, {4, 20, 23, -1}, {4, 20, 24, -1}, {4, 20, 25, -1}, {4, 21, 22, -1}, {4, 21, 23, -1}, {4, 21, 24, -1}, {4, 21, 25, -1}, {4, 22, 23, -1}, {4, 22, 24, -1}, {4, 22, 25, -1}, {4, 23, 24, -1}, {4, 23, 25, -1}, {4, 24, 25, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 6, 22, -1}, {5, 6, 23, -1}, {5, 6, 24, -1}, {5, 6, 25, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 7, 22, -1}, {5, 7, 23, -1}, {5, 7, 24, -1}, {5, 7, 25, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 8, 22, -1}, {5, 8, 23, -1}, {5, 8, 24, -1}, {5, 8, 25, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 9, 22, -1}, {5, 9, 23, -1}, {5, 9, 24, -1}, {5, 9, 25, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 10, 22, -1}, {5, 10, 23, -1}, {5, 10, 24, -1}, {5, 10, 25, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 11, 22, -1}, {5, 11, 23, -1}, {5, 11, 24, -1}, {5, 11, 25, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 12, 22, -1}, {5, 12, 23, -1}, {5, 12, 24, -1}, {5, 12, 25, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 13, 22, -1}, {5, 13, 23, -1}, {5, 13, 24, -1}, {5, 13, 25, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 14, 22, -1}, {5, 14, 23, -1}, {5, 14, 24, -1}, {5, 14, 25, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 15, 22, -1}, {5, 15, 23, -1}, {5, 15, 24, -1}, {5, 15, 25, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 16, 22, -1}, {5, 16, 23, -1}, {5, 16, 24, -1}, {5, 16, 25, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 17, 22, -1}, {5, 17, 23, -1}, {5, 17, 24, -1}, {5, 17, 25, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 18, 22, -1}, {5, 18, 23, -1}, {5, 18, 24, -1}, {5, 18, 25, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 19, 22, -1}, {5, 19, 23, -1}, {5, 19, 24, -1}, {5, 19, 25, -1}, {5, 20, 21, -1}, {5, 20, 22, -1}, {5, 20, 23, -1}, {5, 20, 24, -1}, {5, 20, 25, -1}, {5, 21, 22, -1}, {5, 21, 23, -1}, {5, 21, 24, -1}, {5, 21, 25, -1}, {5, 22, 23, -1}, {5, 22, 24, -1}, {5, 22, 25, -1}, {5, 23, 24, -1}, {5, 23, 25, -1}, {5, 24, 25, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 7, 22, -1}, {6, 7, 23, -1}, {6, 7, 24, -1}, {6, 7, 25, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 8, 22, -1}, {6, 8, 23, -1}, {6, 8, 24, -1}, {6, 8, 25, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 9, 22, -1}, {6, 9, 23, -1}, {6, 9, 24, -1}, {6, 9, 25, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 10, 22, -1}, {6, 10, 23, -1}, {6, 10, 24, -1}, {6, 10, 25, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 11, 22, -1}, {6, 11, 23, -1}, {6, 11, 24, -1}, {6, 11, 25, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 12, 22, -1}, {6, 12, 23, -1}, {6, 12, 24, -1}, {6, 12, 25, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 13, 22, -1}, {6, 13, 23, -1}, {6, 13, 24, -1}, {6, 13, 25, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 14, 22, -1}, {6, 14, 23, -1}, {6, 14, 24, -1}, {6, 14, 25, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 15, 22, -1}, {6, 15, 23, -1}, {6, 15, 24, -1}, {6, 15, 25, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 16, 22, -1}, {6, 16, 23, -1}, {6, 16, 24, -1}, {6, 16, 25, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 17, 22, -1}, {6, 17, 23, -1}, {6, 17, 24, -1}, {6, 17, 25, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 18, 22, -1}, {6, 18, 23, -1}, {6, 18, 24, -1}, {6, 18, 25, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 19, 22, -1}, {6, 19, 23, -1}, {6, 19, 24, -1}, {6, 19, 25, -1}, {6, 20, 21, -1}, {6, 20, 22, -1}, {6, 20, 23, -1}, {6, 20, 24, -1}, {6, 20, 25, -1}, {6, 21, 22, -1}, {6, 21, 23, -1}, {6, 21, 24, -1}, {6, 21, 25, -1}, {6, 22, 23, -1}, {6, 22, 24, -1}, {6, 22, 25, -1}, {6, 23, 24, -1}, {6, 23, 25, -1}, {6, 24, 25, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 8, 22, -1}, {7, 8, 23, -1}, {7, 8, 24, -1}, {7, 8, 25, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 9, 22, -1}, {7, 9, 23, -1}, {7, 9, 24, -1}, {7, 9, 25, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 10, 22, -1}, {7, 10, 23, -1}, {7, 10, 24, -1}, {7, 10, 25, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 11, 22, -1}, {7, 11, 23, -1}, {7, 11, 24, -1}, {7, 11, 25, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 12, 22, -1}, {7, 12, 23, -1}, {7, 12, 24, -1}, {7, 12, 25, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 13, 22, -1}, {7, 13, 23, -1}, {7, 13, 24, -1}, {7, 13, 25, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 14, 22, -1}, {7, 14, 23, -1}, {7, 14, 24, -1}, {7, 14, 25, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 15, 22, -1}, {7, 15, 23, -1}, {7, 15, 24, -1}, {7, 15, 25, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 16, 22, -1}, {7, 16, 23, -1}, {7, 16, 24, -1}, {7, 16, 25, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 17, 22, -1}, {7, 17, 23, -1}, {7, 17, 24, -1}, {7, 17, 25, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 18, 22, -1}, {7, 18, 23, -1}, {7, 18, 24, -1}, {7, 18, 25, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 19, 22, -1}, {7, 19, 23, -1}, {7, 19, 24, -1}, {7, 19, 25, -1}, {7, 20, 21, -1}, {7, 20, 22, -1}, {7, 20, 23, -1}, {7, 20, 24, -1}, {7, 20, 25, -1}, {7, 21, 22, -1}, {7, 21, 23, -1}, {7, 21, 24, -1}, {7, 21, 25, -1}, {7, 22, 23, -1}, {7, 22, 24, -1}, {7, 22, 25, -1}, {7, 23, 24, -1}, {7, 23, 25, -1}, {7, 24, 25, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 9, 22, -1}, {8, 9, 23, -1}, {8, 9, 24, -1}, {8, 9, 25, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 10, 22, -1}, {8, 10, 23, -1}, {8, 10, 24, -1}, {8, 10, 25, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 11, 22, -1}, {8, 11, 23, -1}, {8, 11, 24, -1}, {8, 11, 25, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 12, 22, -1}, {8, 12, 23, -1}, {8, 12, 24, -1}, {8, 12, 25, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 13, 22, -1}, {8, 13, 23, -1}, {8, 13, 24, -1}, {8, 13, 25, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 14, 22, -1}, {8, 14, 23, -1}, {8, 14, 24, -1}, {8, 14, 25, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 15, 22, -1}, {8, 15, 23, -1}, {8, 15, 24, -1}, {8, 15, 25, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 16, 22, -1}, {8, 16, 23, -1}, {8, 16, 24, -1}, {8, 16, 25, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 17, 22, -1}, {8, 17, 23, -1}, {8, 17, 24, -1}, {8, 17, 25, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 18, 22, -1}, {8, 18, 23, -1}, {8, 18, 24, -1}, {8, 18, 25, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 19, 22, -1}, {8, 19, 23, -1}, {8, 19, 24, -1}, {8, 19, 25, -1}, {8, 20, 21, -1}, {8, 20, 22, -1}, {8, 20, 23, -1}, {8, 20, 24, -1}, {8, 20, 25, -1}, {8, 21, 22, -1}, {8, 21, 23, -1}, {8, 21, 24, -1}, {8, 21, 25, -1}, {8, 22, 23, -1}, {8, 22, 24, -1}, {8, 22, 25, -1}, {8, 23, 24, -1}, {8, 23, 25, -1}, {8, 24, 25, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 10, 22, -1}, {9, 10, 23, -1}, {9, 10, 24, -1}, {9, 10, 25, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 11, 22, -1}, {9, 11, 23, -1}, {9, 11, 24, -1}, {9, 11, 25, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 12, 22, -1}, {9, 12, 23, -1}, {9, 12, 24, -1}, {9, 12, 25, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 13, 22, -1}, {9, 13, 23, -1}, {9, 13, 24, -1}, {9, 13, 25, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 14, 22, -1}, {9, 14, 23, -1}, {9, 14, 24, -1}, {9, 14, 25, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 15, 22, -1}, {9, 15, 23, -1}, {9, 15, 24, -1}, {9, 15, 25, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 16, 22, -1}, {9, 16, 23, -1}, {9, 16, 24, -1}, {9, 16, 25, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 17, 22, -1}, {9, 17, 23, -1}, {9, 17, 24, -1}, {9, 17, 25, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 18, 22, -1}, {9, 18, 23, -1}, {9, 18, 24, -1}, {9, 18, 25, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 19, 22, -1}, {9, 19, 23, -1}, {9, 19, 24, -1}, {9, 19, 25, -1}, {9, 20, 21, -1}, {9, 20, 22, -1}, {9, 20, 23, -1}, {9, 20, 24, -1}, {9, 20, 25, -1}, {9, 21, 22, -1}, {9, 21, 23, -1}, {9, 21, 24, -1}, {9, 21, 25, -1}, {9, 22, 23, -1}, {9, 22, 24, -1}, {9, 22, 25, -1}, {9, 23, 24, -1}, {9, 23, 25, -1}, {9, 24, 25, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 11, 22, -1}, {10, 11, 23, -1}, {10, 11, 24, -1}, {10, 11, 25, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 12, 22, -1}, {10, 12, 23, -1}, {10, 12, 24, -1}, {10, 12, 25, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 13, 22, -1}, {10, 13, 23, -1}, {10, 13, 24, -1}, {10, 13, 25, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 14, 22, -1}, {10, 14, 23, -1}, {10, 14, 24, -1}, {10, 14, 25, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 15, 22, -1}, {10, 15, 23, -1}, {10, 15, 24, -1}, {10, 15, 25, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 16, 22, -1}, {10, 16, 23, -1}, {10, 16, 24, -1}, {10, 16, 25, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 17, 22, -1}, {10, 17, 23, -1}, {10, 17, 24, -1}, {10, 17, 25, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 18, 22, -1}, {10, 18, 23, -1}, {10, 18, 24, -1}, {10, 18, 25, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 19, 22, -1}, {10, 19, 23, -1}, {10, 19, 24, -1}, {10, 19, 25, -1}, {10, 20, 21, -1}, {10, 20, 22, -1}, {10, 20, 23, -1}, {10, 20, 24, -1}, {10, 20, 25, -1}, {10, 21, 22, -1}, {10, 21, 23, -1}, {10, 21, 24, -1}, {10, 21, 25, -1}, {10, 22, 23, -1}, {10, 22, 24, -1}, {10, 22, 25, -1}, {10, 23, 24, -1}, {10, 23, 25, -1}, {10, 24, 25, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 12, 22, -1}, {11, 12, 23, -1}, {11, 12, 24, -1}, {11, 12, 25, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 13, 22, -1}, {11, 13, 23, -1}, {11, 13, 24, -1}, {11, 13, 25, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 14, 22, -1}, {11, 14, 23, -1}, {11, 14, 24, -1}, {11, 14, 25, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 15, 22, -1}, {11, 15, 23, -1}, {11, 15, 24, -1}, {11, 15, 25, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 16, 22, -1}, {11, 16, 23, -1}, {11, 16, 24, -1}, {11, 16, 25, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 17, 22, -1}, {11, 17, 23, -1}, {11, 17, 24, -1}, {11, 17, 25, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 18, 22, -1}, {11, 18, 23, -1}, {11, 18, 24, -1}, {11, 18, 25, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 19, 22, -1}, {11, 19, 23, -1}, {11, 19, 24, -1}, {11, 19, 25, -1}, {11, 20, 21, -1}, {11, 20, 22, -1}, {11, 20, 23, -1}, {11, 20, 24, -1}, {11, 20, 25, -1}, {11, 21, 22, -1}, {11, 21, 23, -1}, {11, 21, 24, -1}, {11, 21, 25, -1}, {11, 22, 23, -1}, {11, 22, 24, -1}, {11, 22, 25, -1}, {11, 23, 24, -1}, {11, 23, 25, -1}, {11, 24, 25, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 13, 22, -1}, {12, 13, 23, -1}, {12, 13, 24, -1}, {12, 13, 25, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 14, 22, -1}, {12, 14, 23, -1}, {12, 14, 24, -1}, {12, 14, 25, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 15, 22, -1}, {12, 15, 23, -1}, {12, 15, 24, -1}, {12, 15, 25, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 16, 22, -1}, {12, 16, 23, -1}, {12, 16, 24, -1}, {12, 16, 25, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 17, 22, -1}, {12, 17, 23, -1}, {12, 17, 24, -1}, {12, 17, 25, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 18, 22, -1}, {12, 18, 23, -1}, {12, 18, 24, -1}, {12, 18, 25, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 19, 22, -1}, {12, 19, 23, -1}, {12, 19, 24, -1}, {12, 19, 25, -1}, {12, 20, 21, -1}, {12, 20, 22, -1}, {12, 20, 23, -1}, {12, 20, 24, -1}, {12, 20, 25, -1}, {12, 21, 22, -1}, {12, 21, 23, -1}, {12, 21, 24, -1}, {12, 21, 25, -1}, {12, 22, 23, -1}, {12, 22, 24, -1}, {12, 22, 25, -1}, {12, 23, 24, -1}, {12, 23, 25, -1}, {12, 24, 25, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 14, 22, -1}, {13, 14, 23, -1}, {13, 14, 24, -1}, {13, 14, 25, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 15, 22, -1}, {13, 15, 23, -1}, {13, 15, 24, -1}, {13, 15, 25, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 16, 22, -1}, {13, 16, 23, -1}, {13, 16, 24, -1}, {13, 16, 25, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 17, 22, -1}, {13, 17, 23, -1}, {13, 17, 24, -1}, {13, 17, 25, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 18, 22, -1}, {13, 18, 23, -1}, {13, 18, 24, -1}, {13, 18, 25, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 19, 22, -1}, {13, 19, 23, -1}, {13, 19, 24, -1}, {13, 19, 25, -1}, {13, 20, 21, -1}, {13, 20, 22, -1}, {13, 20, 23, -1}, {13, 20, 24, -1}, {13, 20, 25, -1}, {13, 21, 22, -1}, {13, 21, 23, -1}, {13, 21, 24, -1}, {13, 21, 25, -1}, {13, 22, 23, -1}, {13, 22, 24, -1}, {13, 22, 25, -1}, {13, 23, 24, -1}, {13, 23, 25, -1}, {13, 24, 25, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 15, 22, -1}, {14, 15, 23, -1}, {14, 15, 24, -1}, {14, 15, 25, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 16, 22, -1}, {14, 16, 23, -1}, {14, 16, 24, -1}, {14, 16, 25, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 17, 22, -1}, {14, 17, 23, -1}, {14, 17, 24, -1}, {14, 17, 25, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 18, 22, -1}, {14, 18, 23, -1}, {14, 18, 24, -1}, {14, 18, 25, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 19, 22, -1}, {14, 19, 23, -1}, {14, 19, 24, -1}, {14, 19, 25, -1}, {14, 20, 21, -1}, {14, 20, 22, -1}, {14, 20, 23, -1}, {14, 20, 24, -1}, {14, 20, 25, -1}, {14, 21, 22, -1}, {14, 21, 23, -1}, {14, 21, 24, -1}, {14, 21, 25, -1}, {14, 22, 23, -1}, {14, 22, 24, -1}, {14, 22, 25, -1}, {14, 23, 24, -1}, {14, 23, 25, -1}, {14, 24, 25, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 16, 22, -1}, {15, 16, 23, -1}, {15, 16, 24, -1}, {15, 16, 25, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 17, 22, -1}, {15, 17, 23, -1}, {15, 17, 24, -1}, {15, 17, 25, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 18, 22, -1}, {15, 18, 23, -1}, {15, 18, 24, -1}, {15, 18, 25, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 19, 22, -1}, {15, 19, 23, -1}, {15, 19, 24, -1}, {15, 19, 25, -1}, {15, 20, 21, -1}, {15, 20, 22, -1}, {15, 20, 23, -1}, {15, 20, 24, -1}, {15, 20, 25, -1}, {15, 21, 22, -1}, {15, 21, 23, -1}, {15, 21, 24, -1}, {15, 21, 25, -1}, {15, 22, 23, -1}, {15, 22, 24, -1}, {15, 22, 25, -1}, {15, 23, 24, -1}, {15, 23, 25, -1}, {15, 24, 25, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 17, 22, -1}, {16, 17, 23, -1}, {16, 17, 24, -1}, {16, 17, 25, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 18, 22, -1}, {16, 18, 23, -1}, {16, 18, 24, -1}, {16, 18, 25, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 19, 22, -1}, {16, 19, 23, -1}, {16, 19, 24, -1}, {16, 19, 25, -1}, {16, 20, 21, -1}, {16, 20, 22, -1}, {16, 20, 23, -1}, {16, 20, 24, -1}, {16, 20, 25, -1}, {16, 21, 22, -1}, {16, 21, 23, -1}, {16, 21, 24, -1}, {16, 21, 25, -1}, {16, 22, 23, -1}, {16, 22, 24, -1}, {16, 22, 25, -1}, {16, 23, 24, -1}, {16, 23, 25, -1}, {16, 24, 25, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 18, 22, -1}, {17, 18, 23, -1}, {17, 18, 24, -1}, {17, 18, 25, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 19, 22, -1}, {17, 19, 23, -1}, {17, 19, 24, -1}, {17, 19, 25, -1}, {17, 20, 21, -1}, {17, 20, 22, -1}, {17, 20, 23, -1}, {17, 20, 24, -1}, {17, 20, 25, -1}, {17, 21, 22, -1}, {17, 21, 23, -1}, {17, 21, 24, -1}, {17, 21, 25, -1}, {17, 22, 23, -1}, {17, 22, 24, -1}, {17, 22, 25, -1}, {17, 23, 24, -1}, {17, 23, 25, -1}, {17, 24, 25, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 19, 22, -1}, {18, 19, 23, -1}, {18, 19, 24, -1}, {18, 19, 25, -1}, {18, 20, 21, -1}, {18, 20, 22, -1}, {18, 20, 23, -1}, {18, 20, 24, -1}, {18, 20, 25, -1}, {18, 21, 22, -1}, {18, 21, 23, -1}, {18, 21, 24, -1}, {18, 21, 25, -1}, {18, 22, 23, -1}, {18, 22, 24, -1}, {18, 22, 25, -1}, {18, 23, 24, -1}, {18, 23, 25, -1}, {18, 24, 25, -1}, {19, 20, 21, -1}, {19, 20, 22, -1}, {19, 20, 23, -1}, {19, 20, 24, -1}, {19, 20, 25, -1}, {19, 21, 22, -1}, {19, 21, 23, -1}, {19, 21, 24, -1}, {19, 21, 25, -1}, {19, 22, 23, -1}, {19, 22, 24, -1}, {19, 22, 25, -1}, {19, 23, 24, -1}, {19, 23, 25, -1}, {19, 24, 25, -1}, {20, 21, 22, -1}, {20, 21, 23, -1}, {20, 21, 24, -1}, {20, 21, 25, -1}, {20, 22, 23, -1}, {20, 22, 24, -1}, {20, 22, 25, -1}, {20, 23, 24, -1}, {20, 23, 25, -1}, {20, 24, 25, -1}, {21, 22, 23, -1}, {21, 22, 24, -1}, {21, 22, 25, -1}, {21, 23, 24, -1}, {21, 23, 25, -1}, {21, 24, 25, -1}, {22, 23, 24, -1}, {22, 23, 25, -1}, {22, 24, 25, -1}, {23, 24, 25, -1}} ;
diff --git a/src/c/liberasurecode/test/libec_slap.c b/src/c/liberasurecode/test/libec_slap.c
deleted file mode 100644
index f677e23..0000000
--- a/src/c/liberasurecode/test/libec_slap.c
+++ /dev/null
@@ -1,487 +0,0 @@
-/*
- * Copyright 2014 Eric Lambert
- *
- * 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. 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 HOLDER 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.
- */
-
-/*
- * EDL 8/26/2014: This test is based on the test/test_xor_hd_code. It runs
- * through a similar set of conditions but instead uses the liberasurecode
- * API as opposed to directly talking to xor implementation. In the original
- * test_xor_hd_code, we measured the performance of a series of encode/decode
- * ops. For the time being, I have "disabled" the performance measurement in
- * this test ... the main reason for doing so was that we need to some more
- * memory management when using the API and I did not want those management
- * ops polluting the resutls. When I have some time I will renable address
- * this (figure out how to make sure memory management does not affect perf
- * numbers).
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <assert.h>
-#include "erasurecode.h"
-#include "erasurecode_helpers.h"
-#include "builtin/xor_codes/test_xor_hd_code.h"
-
-struct frag_array_set {
- unsigned int num_fragments;
- char **array;
-};
-
-void print_mask(unsigned long mask)
-{
- unsigned int i = 0;
- unsigned long pos = 1;
-
- if (mask == 0) {
- fprintf(stderr," No Missing fragments");
- return;
- }
- fprintf(stderr," Missing fragments = ");
- for (i = 0; i < (sizeof(size_t) * 8) - 1; i++) {
- if ((mask & (pos << i)) != 0) {
- fprintf(stderr,"%d ",i);
- }
- }
-}
-
-void missing_mask_to_array(long mask, int *missing)
-{
- unsigned int i = 0;
- unsigned long pos = 1;
-
- for (i = 0; i < (sizeof(size_t) * 8) - 1; i++) {
- if ((mask & (pos << i)) != 0) {
- *missing = i;
- }
- }
-}
-
-size_t add_item_to_missing_mask(unsigned long mask, unsigned int pos)
-{
- if (pos < 0) {
- return mask;
- }
- unsigned long f = 1L << pos;
- mask |= f;
- return mask;
-}
-
-static int create_frags_array_set(struct frag_array_set *set,
- char **data,
- unsigned int num_data_frags,
- char **parity,
- unsigned int num_parity_frags,
- unsigned long missing_mask)
-{
- int rc =0;
- unsigned int num_frags = 0;
- unsigned long i = 0;
- fragment_header_t *header = NULL;
- size_t size = (num_data_frags + num_parity_frags) * sizeof(char *);
- char **array = malloc(size);
-
- if (array == NULL) {
- rc = -1;
- goto out;
- }
-
- //add data frags
- memset(array, 0, size);
- for (i = 0; i < num_data_frags; i++) {
- if ( (missing_mask | 1L << i) == 1) {
- continue;
- }
- header = (fragment_header_t*)data[i];
- if (header == NULL ||
- header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- continue;
- }
- array[num_frags++] = data[i];
- }
-
- //add parity frags
- for (i = 0; i < num_parity_frags; i++) {
- if ( (missing_mask | 1L << (i + num_data_frags)) == 1) {
- continue;
- }
- header = (fragment_header_t*)parity[i];
- if (header == NULL ||
- header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) {
- continue;
- }
- array[num_frags++] = parity[i];
- }
-
- set->num_fragments = num_frags;
- set->array = array;
-out:
- return rc;
-}
-
-static void fill_buffer(char *buf, size_t size, int seed)
-{
- size_t i;
- buf[0] = seed;
-
- for (i=1; i < size; i++) {
- buf[i] = ((buf[i-1] + i) % 256);
- }
-}
-
-static int test_hd_code(struct ec_args *args,
- int num_failure_combs,
- int failure_combs[][4])
-{
- int i, j, err;
- unsigned int num_iter = 1000;
- size_t blocksize = 32768;
- int missing_idxs[4] = { -1, -1, -1, -1 };
- int excluded_idxs[4] = { -1, -1, -1, -1 };
- int ret = 0;
- char *data, **parity;
- int *fragments_needed;
- char **encoded_data = NULL;
- char **encoded_parity = NULL;
- uint64_t encoded_fragment_len = 0;
- int rc = 0;
- char *out_data = NULL;
- uint64_t out_data_len = 0;
- unsigned long mask = 0;
- int desc = -1;
- struct frag_array_set frags; //MOVE ME
-
- srand(time(NULL));
-
- /*
- * Set up data and parity fragments.
- */
-
- fragments_needed = (int*)malloc(args->k*args->m*sizeof(int));
- if (!fragments_needed) {
- fprintf(stderr, "Could not allocate memory for fragments\n");
- exit(2);
- }
- memset(fragments_needed, 0, args->k*args->m*sizeof(int));
-
- err = posix_memalign((void **) &data, 16, blocksize * args->k);
- if (err != 0 || !data) {
- fprintf(stderr, "Could not allocate memory for data\n");
- exit(1);
- }
- fill_buffer(data, blocksize * args->k, 0);
-
- parity = (char**)malloc(args->m * sizeof(char*));
- for (i=0; i < args->m; i++) {
- err = posix_memalign((void **) &parity[i], 16, blocksize);
- if (err != 0 || !parity[i]) {
- fprintf(stderr, "Could not allocate memory for parity %d\n", i);
- exit(1);
- }
- memset(parity[i], 0, blocksize);
- }
-
- /*
- * Get handle
- */
- desc = liberasurecode_instance_create(EC_BACKEND_FLAT_XOR_HD, args);
- if (desc <= 0) {
- fprintf(stderr, "Could not create libec descriptor\n");
- exit(1);
- }
-
- /*
- * Run Encode test
- */
- for (i=0; i < num_iter-1; i++) {
- rc = liberasurecode_encode(desc, data, blocksize * args->k,
- &encoded_data, &encoded_parity,
- &encoded_fragment_len);
- //FIXME: this and the following free's taint the perf test
- assert(0 == rc);
- for (j = 0; j < args->k; j++) {
- free(encoded_data[j]);
- }
- free(encoded_data);
- for (j = 0; j < args->m; j++) {
- free(encoded_parity[j]);
- }
- free(encoded_parity);
- }
- fprintf(stderr, " Encode: OK\n");
-
- for (i=0; i < args->m; i++) {
- memset(parity[i], 0, blocksize);
- }
- rc = liberasurecode_encode(desc, data, blocksize * args->k, &encoded_data,
- &encoded_parity, &encoded_fragment_len);
- assert(0 == rc);
-
- /*
- * Run Decode Test
- */
- for (i=0; i < num_failure_combs; i++) {
- mask = 0;
- for (j = 0; j < 3; j++) {
- int idx = failure_combs[i][j];
- if (idx == -1) {
- continue;
- }
- mask = add_item_to_missing_mask(mask, idx);
- }
-
- /*
- * Spot check to ensure missing elements are not included in
- * list of fragments needed and that decode is 'doable'
- */
- missing_mask_to_array(mask, missing_idxs);
- ret = liberasurecode_fragments_needed(desc, missing_idxs, excluded_idxs,
- fragments_needed); //known leak
- if (ret < 0) {
- fprintf(stderr,"xor_hd_fragments_needed thinks reconstruction not possible, when it is!\n");
- exit(2);
- }
-
- /*
- * Make sure that none of the missig fragments are in the set of
- * fragments needed to reconstruct the object.
- */
- j = 0;
- while (fragments_needed[j] > -1) {
- if (fragments_needed[j] == missing_idxs[0] ||
- fragments_needed[j] == missing_idxs[1] ||
- fragments_needed[j] == missing_idxs[2]) {
- fprintf(stderr,
- "fragments_needed[%d]=%d in missing index list: (%d %d %d)!\n",
- j, fragments_needed[j], missing_idxs[0],
- missing_idxs[1], missing_idxs[2]);
- exit(2);
- }
- j++;
- }
- create_frags_array_set(&frags,encoded_data, args->k, encoded_parity,
- args->m, mask);
- rc = liberasurecode_decode(desc, frags.array, frags.num_fragments,
- encoded_fragment_len, 1,
- &out_data, &out_data_len);
- assert(rc == 0);
- assert(out_data_len == blocksize * args->k);
- if (memcmp(data, out_data, out_data_len) != 0) {
- fprintf(stderr, "Decode did not work: (%d %d %d)!\n",
- missing_idxs[0], missing_idxs[1], missing_idxs[2]);
- exit(2);
- }
- free(frags.array);
- free(out_data);
- }
-
- for (i=0; i < num_iter; i++) {
- mask = 0;
- int mi = rand() % (args->k + args->m);
-
- mask = add_item_to_missing_mask(mask, mi);
- for (j=1; j < args->hd-1;j++) {
- mi = mi + 1 % (args->k + args->m);
- mask = add_item_to_missing_mask(mask, mi);
- }
- create_frags_array_set(&frags,encoded_data, args->k, encoded_parity,
- args->m, mask);
- rc = liberasurecode_decode(desc, frags.array, frags.num_fragments,
- encoded_fragment_len, 1,
- &out_data, &out_data_len);
- free(frags.array);
- free(out_data);
-
- assert(rc == 0);
- //print_mask(mask);
- }
- for (j = 0; j < args->k; j++) {
- free(encoded_data[j]);
- }
- free(encoded_data);
- for (j = 0; j < args->m; j++) {
- free(encoded_parity[j]);
- }
- free(encoded_parity);
- free(fragments_needed);
- free(data);
- for (i = 0; i < args->m; i++) {
- free(parity[i]);
- }
- free(parity);
-
- liberasurecode_instance_destroy(desc);
- return 0;
-}
-
-static int run_test(int k, int m, int hd)
-{
- int ret = -1;
- struct ec_args args = {
- .k = k,
- .m = m,
- .hd = hd,
- };
-
- fprintf(stderr, "Running (%d, %d, %d):\n", k, m, hd);
-
- switch(k+m)
- {
- case 10:
- if (hd == 3) {
- ret = test_hd_code(&args, NUM_10_3_COMBS, failure_combs_10_3);
- } else {
- ret = test_hd_code(&args, NUM_10_4_COMBS, failure_combs_10_4);
- }
- break;
- case 11:
- if (hd == 3) {
- ret = test_hd_code(&args, NUM_11_3_COMBS, failure_combs_11_3);
- } else {
- ret = test_hd_code(&args, NUM_11_4_COMBS, failure_combs_11_4);
- }
- break;
- case 12:
- if (hd == 3) {
- ret = test_hd_code(&args, NUM_12_3_COMBS, failure_combs_12_3);
- } else {
- ret = test_hd_code(&args, NUM_12_4_COMBS, failure_combs_12_4);
- }
- break;
- case 13:
- if (hd == 3) {
- ret = test_hd_code(&args, NUM_13_3_COMBS, failure_combs_13_3);
- } else {
- ret = test_hd_code(&args, NUM_13_4_COMBS, failure_combs_13_4);
- }
- break;
- case 14:
- if (hd == 3) {
- ret = test_hd_code(&args, NUM_14_3_COMBS, failure_combs_14_3);
- } else {
- ret = test_hd_code(&args, NUM_14_4_COMBS, failure_combs_14_4);
- }
- break;
- case 15:
- if (hd == 3) {
- ret = test_hd_code(&args, NUM_15_3_COMBS, failure_combs_15_3);
- } else {
- ret = test_hd_code(&args, NUM_15_4_COMBS, failure_combs_15_4);
- }
- break;
- case 16:
- if (hd == 3) {
- ret = test_hd_code(&args, NUM_16_3_COMBS, failure_combs_16_3);
- } else {
- ret = test_hd_code(&args, NUM_16_4_COMBS, failure_combs_16_4);
- }
- break;
- case 17:
- if (hd == 3) {
- ret = test_hd_code(&args, NUM_17_3_COMBS, failure_combs_17_3);
- } else {
- ret = test_hd_code(&args, NUM_17_4_COMBS, failure_combs_17_4);
- }
- break;
- case 18:
- if (hd == 3) {
- ret = test_hd_code(&args, NUM_18_3_COMBS, failure_combs_18_3);
- } else {
- ret = test_hd_code(&args, NUM_18_4_COMBS, failure_combs_18_4);
- }
- break;
- case 19:
- if (hd == 3) {
- ret = test_hd_code(&args, NUM_19_3_COMBS, failure_combs_19_3);
- } else {
- ret = test_hd_code(&args, NUM_19_4_COMBS, failure_combs_19_4);
- }
- break;
- case 20:
- if (hd == 3) {
- ret = test_hd_code(&args, NUM_20_3_COMBS, failure_combs_20_3);
- } else {
- ret = test_hd_code(&args, NUM_20_4_COMBS, failure_combs_20_4);
- }
- break;
- case 21:
- if (hd == 3) {
- ret = test_hd_code(&args, NUM_21_3_COMBS, failure_combs_21_3);
- } else {
- ret = test_hd_code(&args, NUM_21_4_COMBS, failure_combs_21_4);
- }
- break;
- case 22:
- ret = test_hd_code(&args, NUM_22_4_COMBS, failure_combs_22_4);
- break;
- case 23:
- ret = test_hd_code(&args, NUM_23_4_COMBS, failure_combs_23_4);
- break;
- case 24:
- ret = test_hd_code(&args, NUM_24_4_COMBS, failure_combs_24_4);
- break;
- case 25:
- ret = test_hd_code(&args, NUM_25_4_COMBS, failure_combs_25_4);
- break;
- case 26:
- ret = test_hd_code(&args, NUM_26_4_COMBS, failure_combs_26_4);
- break;
- default:
- ret = -1;
- }
- return ret;
-}
-
-int main()
-{
- int ret = 0;
- int i;
- for (i=6; i < 16; i++) {
- ret = run_test(i, 6, 3);
- if (ret != 0) {
- return ret;
- }
- }
-
- for (i=5; i < 11; i++) {
- ret = run_test(i, 5, 3);
- if (ret != 0) {
- return ret;
- }
- }
-
- for (i=6; i < 21; i++) {
- ret = run_test(i, 6, 4);
- if (ret != 0) {
- return ret;
- }
- }
- for (i=5; i < 11; i++) {
- ret = run_test(i, 5, 4);
- if (ret != 0) {
- return ret;
- }
- }
- exit(ret);
-}
diff --git a/src/c/liberasurecode/test/libec_slap.h b/src/c/liberasurecode/test/libec_slap.h
deleted file mode 100644
index eb96d05..0000000
--- a/src/c/liberasurecode/test/libec_slap.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* * Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com)
- * 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. 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 HOLDER 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.
- */
-
-#define NUM_10_3_COMBS 55
-int failure_combs_10_3[NUM_10_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {8, 9, -1, -1}} ;
-#define NUM_10_4_COMBS 175
-int failure_combs_10_4[NUM_10_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {8, 9, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 8, 9, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 8, 9, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 8, 9, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 8, 9, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 8, 9, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 8, 9, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 8, 9, -1}, {7, 8, 9, -1}} ;
-#define NUM_11_3_COMBS 66
-int failure_combs_11_3[NUM_11_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {9, 10, -1, -1}} ;
-#define NUM_11_4_COMBS 231
-int failure_combs_11_4[NUM_11_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {9, 10, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 9, 10, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 9, 10, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 9, 10, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 9, 10, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 9, 10, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 9, 10, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 9, 10, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 9, 10, -1}, {8, 9, 10, -1}} ;
-#define NUM_12_3_COMBS 78
-int failure_combs_12_3[NUM_12_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {10, 11, -1, -1}} ;
-#define NUM_12_4_COMBS 298
-int failure_combs_12_4[NUM_12_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {10, 11, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 10, 11, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 10, 11, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 10, 11, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 10, 11, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 10, 11, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 10, 11, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 10, 11, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 10, 11, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 10, 11, -1}, {9, 10, 11, -1}} ;
-#define NUM_13_3_COMBS 91
-int failure_combs_13_3[NUM_13_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {11, 12, -1, -1}} ;
-#define NUM_13_4_COMBS 377
-int failure_combs_13_4[NUM_13_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {11, 12, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 11, 12, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 11, 12, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 11, 12, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 11, 12, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 11, 12, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 11, 12, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 11, 12, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 11, 12, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 11, 12, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 11, 12, -1}, {10, 11, 12, -1}} ;
-#define NUM_14_3_COMBS 105
-int failure_combs_14_3[NUM_14_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {12, 13, -1, -1}} ;
-#define NUM_14_4_COMBS 469
-int failure_combs_14_4[NUM_14_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {12, 13, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 12, 13, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 12, 13, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 12, 13, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 12, 13, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 12, 13, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 12, 13, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 12, 13, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 12, 13, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 12, 13, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 12, 13, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 12, 13, -1}, {11, 12, 13, -1}} ;
-#define NUM_15_3_COMBS 120
-int failure_combs_15_3[NUM_15_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {13, 14, -1, -1}} ;
-#define NUM_15_4_COMBS 575
-int failure_combs_15_4[NUM_15_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {13, 14, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 13, 14, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 13, 14, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 13, 14, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 13, 14, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 13, 14, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 13, 14, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 13, 14, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 13, 14, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 13, 14, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 13, 14, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 13, 14, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 13, 14, -1}, {12, 13, 14, -1}} ;
-#define NUM_16_3_COMBS 136
-int failure_combs_16_3[NUM_16_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {14, 15, -1, -1}} ;
-#define NUM_16_4_COMBS 696
-int failure_combs_16_4[NUM_16_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {14, 15, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 14, 15, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 14, 15, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 14, 15, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 14, 15, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 14, 15, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 14, 15, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 14, 15, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 14, 15, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 14, 15, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 14, 15, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 14, 15, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 14, 15, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 14, 15, -1}, {13, 14, 15, -1}} ;
-#define NUM_17_3_COMBS 153
-int failure_combs_17_3[NUM_17_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {15, 16, -1, -1}} ;
-#define NUM_17_4_COMBS 833
-int failure_combs_17_4[NUM_17_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {15, 16, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 15, 16, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 15, 16, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 15, 16, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 15, 16, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 15, 16, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 15, 16, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 15, 16, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 15, 16, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 15, 16, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 15, 16, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 15, 16, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 15, 16, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 15, 16, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 15, 16, -1}, {14, 15, 16, -1}} ;
-#define NUM_18_3_COMBS 171
-int failure_combs_18_3[NUM_18_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {16, 17, -1, -1}} ;
-#define NUM_18_4_COMBS 987
-int failure_combs_18_4[NUM_18_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {16, 17, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 16, 17, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 16, 17, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 16, 17, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 16, 17, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 16, 17, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 16, 17, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 16, 17, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 16, 17, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 16, 17, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 16, 17, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 16, 17, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 16, 17, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 16, 17, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 16, 17, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 16, 17, -1}, {15, 16, 17, -1}} ;
-#define NUM_19_3_COMBS 190
-int failure_combs_19_3[NUM_19_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {17, 18, -1, -1}} ;
-#define NUM_19_4_COMBS 1159
-int failure_combs_19_4[NUM_19_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {17, 18, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 17, 18, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 17, 18, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 17, 18, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 17, 18, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 17, 18, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 17, 18, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 17, 18, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 17, 18, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 17, 18, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 17, 18, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 17, 18, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 17, 18, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 17, 18, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 17, 18, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 17, 18, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 17, 18, -1}, {16, 17, 18, -1}} ;
-#define NUM_20_3_COMBS 210
-int failure_combs_20_3[NUM_20_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {18, 19, -1, -1}} ;
-#define NUM_20_4_COMBS 1350
-int failure_combs_20_4[NUM_20_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {18, 19, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 18, 19, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 18, 19, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 18, 19, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 18, 19, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 18, 19, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 18, 19, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 18, 19, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 18, 19, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 18, 19, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 18, 19, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 18, 19, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 18, 19, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 18, 19, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 18, 19, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 18, 19, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 18, 19, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 18, 19, -1}, {17, 18, 19, -1}} ;
-#define NUM_21_3_COMBS 231
-int failure_combs_21_3[NUM_21_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {19, 20, -1, -1}} ;
-#define NUM_21_4_COMBS 1561
-int failure_combs_21_4[NUM_21_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {19, 20, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 19, 20, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 19, 20, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 19, 20, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 19, 20, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 19, 20, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 19, 20, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 19, 20, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 19, 20, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 19, 20, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 19, 20, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 19, 20, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 19, 20, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 19, 20, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 19, 20, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 19, 20, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 19, 20, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 19, 20, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 19, 20, -1}, {18, 19, 20, -1}} ;
-#define NUM_22_3_COMBS 253
-int failure_combs_22_3[NUM_22_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {20, 21, -1, -1}} ;
-#define NUM_22_4_COMBS 1793
-int failure_combs_22_4[NUM_22_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {20, 21, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 20, 21, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 20, 21, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 20, 21, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 20, 21, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 20, 21, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 20, 21, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 20, 21, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 20, 21, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 20, 21, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 20, 21, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 20, 21, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 20, 21, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 20, 21, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 20, 21, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 20, 21, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 20, 21, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 20, 21, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 20, 21, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 20, 21, -1}, {19, 20, 21, -1}} ;
-#define NUM_23_3_COMBS 276
-int failure_combs_23_3[NUM_23_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {21, 22, -1, -1}} ;
-#define NUM_23_4_COMBS 2047
-int failure_combs_23_4[NUM_23_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {21, 22, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 1, 22, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 2, 22, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 3, 22, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 4, 22, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 5, 22, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 6, 22, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 7, 22, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 8, 22, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 9, 22, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 10, 22, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 11, 22, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 12, 22, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 13, 22, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 14, 22, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 15, 22, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 16, 22, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 17, 22, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 18, 22, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 19, 22, -1}, {0, 20, 21, -1}, {0, 20, 22, -1}, {0, 21, 22, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 2, 22, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 3, 22, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 4, 22, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 5, 22, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 6, 22, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 7, 22, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 8, 22, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 9, 22, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 10, 22, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 11, 22, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 12, 22, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 13, 22, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 14, 22, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 15, 22, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 16, 22, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 17, 22, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 18, 22, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 19, 22, -1}, {1, 20, 21, -1}, {1, 20, 22, -1}, {1, 21, 22, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 3, 22, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 4, 22, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 5, 22, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 6, 22, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 7, 22, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 8, 22, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 9, 22, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 10, 22, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 11, 22, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 12, 22, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 13, 22, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 14, 22, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 15, 22, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 16, 22, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 17, 22, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 18, 22, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 19, 22, -1}, {2, 20, 21, -1}, {2, 20, 22, -1}, {2, 21, 22, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 4, 22, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 5, 22, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 6, 22, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 7, 22, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 8, 22, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 9, 22, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 10, 22, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 11, 22, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 12, 22, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 13, 22, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 14, 22, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 15, 22, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 16, 22, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 17, 22, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 18, 22, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 19, 22, -1}, {3, 20, 21, -1}, {3, 20, 22, -1}, {3, 21, 22, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 5, 22, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 6, 22, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 7, 22, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 8, 22, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 9, 22, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 10, 22, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 11, 22, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 12, 22, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 13, 22, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 14, 22, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 15, 22, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 16, 22, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 17, 22, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 18, 22, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 19, 22, -1}, {4, 20, 21, -1}, {4, 20, 22, -1}, {4, 21, 22, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 6, 22, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 7, 22, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 8, 22, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 9, 22, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 10, 22, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 11, 22, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 12, 22, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 13, 22, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 14, 22, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 15, 22, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 16, 22, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 17, 22, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 18, 22, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 19, 22, -1}, {5, 20, 21, -1}, {5, 20, 22, -1}, {5, 21, 22, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 7, 22, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 8, 22, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 9, 22, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 10, 22, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 11, 22, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 12, 22, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 13, 22, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 14, 22, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 15, 22, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 16, 22, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 17, 22, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 18, 22, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 19, 22, -1}, {6, 20, 21, -1}, {6, 20, 22, -1}, {6, 21, 22, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 8, 22, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 9, 22, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 10, 22, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 11, 22, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 12, 22, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 13, 22, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 14, 22, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 15, 22, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 16, 22, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 17, 22, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 18, 22, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 19, 22, -1}, {7, 20, 21, -1}, {7, 20, 22, -1}, {7, 21, 22, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 9, 22, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 10, 22, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 11, 22, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 12, 22, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 13, 22, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 14, 22, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 15, 22, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 16, 22, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 17, 22, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 18, 22, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 19, 22, -1}, {8, 20, 21, -1}, {8, 20, 22, -1}, {8, 21, 22, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 10, 22, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 11, 22, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 12, 22, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 13, 22, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 14, 22, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 15, 22, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 16, 22, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 17, 22, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 18, 22, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 19, 22, -1}, {9, 20, 21, -1}, {9, 20, 22, -1}, {9, 21, 22, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 11, 22, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 12, 22, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 13, 22, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 14, 22, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 15, 22, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 16, 22, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 17, 22, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 18, 22, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 19, 22, -1}, {10, 20, 21, -1}, {10, 20, 22, -1}, {10, 21, 22, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 12, 22, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 13, 22, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 14, 22, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 15, 22, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 16, 22, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 17, 22, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 18, 22, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 19, 22, -1}, {11, 20, 21, -1}, {11, 20, 22, -1}, {11, 21, 22, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 13, 22, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 14, 22, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 15, 22, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 16, 22, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 17, 22, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 18, 22, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 19, 22, -1}, {12, 20, 21, -1}, {12, 20, 22, -1}, {12, 21, 22, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 14, 22, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 15, 22, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 16, 22, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 17, 22, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 18, 22, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 19, 22, -1}, {13, 20, 21, -1}, {13, 20, 22, -1}, {13, 21, 22, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 15, 22, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 16, 22, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 17, 22, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 18, 22, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 19, 22, -1}, {14, 20, 21, -1}, {14, 20, 22, -1}, {14, 21, 22, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 16, 22, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 17, 22, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 18, 22, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 19, 22, -1}, {15, 20, 21, -1}, {15, 20, 22, -1}, {15, 21, 22, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 17, 22, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 18, 22, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 19, 22, -1}, {16, 20, 21, -1}, {16, 20, 22, -1}, {16, 21, 22, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 18, 22, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 19, 22, -1}, {17, 20, 21, -1}, {17, 20, 22, -1}, {17, 21, 22, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 19, 22, -1}, {18, 20, 21, -1}, {18, 20, 22, -1}, {18, 21, 22, -1}, {19, 20, 21, -1}, {19, 20, 22, -1}, {19, 21, 22, -1}, {20, 21, 22, -1}} ;
-#define NUM_24_3_COMBS 300
-int failure_combs_24_3[NUM_24_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {22, 23, -1, -1}} ;
-#define NUM_24_4_COMBS 2324
-int failure_combs_24_4[NUM_24_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {22, 23, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 1, 22, -1}, {0, 1, 23, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 2, 22, -1}, {0, 2, 23, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 3, 22, -1}, {0, 3, 23, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 4, 22, -1}, {0, 4, 23, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 5, 22, -1}, {0, 5, 23, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 6, 22, -1}, {0, 6, 23, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 7, 22, -1}, {0, 7, 23, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 8, 22, -1}, {0, 8, 23, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 9, 22, -1}, {0, 9, 23, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 10, 22, -1}, {0, 10, 23, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 11, 22, -1}, {0, 11, 23, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 12, 22, -1}, {0, 12, 23, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 13, 22, -1}, {0, 13, 23, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 14, 22, -1}, {0, 14, 23, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 15, 22, -1}, {0, 15, 23, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 16, 22, -1}, {0, 16, 23, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 17, 22, -1}, {0, 17, 23, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 18, 22, -1}, {0, 18, 23, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 19, 22, -1}, {0, 19, 23, -1}, {0, 20, 21, -1}, {0, 20, 22, -1}, {0, 20, 23, -1}, {0, 21, 22, -1}, {0, 21, 23, -1}, {0, 22, 23, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 2, 22, -1}, {1, 2, 23, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 3, 22, -1}, {1, 3, 23, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 4, 22, -1}, {1, 4, 23, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 5, 22, -1}, {1, 5, 23, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 6, 22, -1}, {1, 6, 23, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 7, 22, -1}, {1, 7, 23, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 8, 22, -1}, {1, 8, 23, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 9, 22, -1}, {1, 9, 23, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 10, 22, -1}, {1, 10, 23, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 11, 22, -1}, {1, 11, 23, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 12, 22, -1}, {1, 12, 23, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 13, 22, -1}, {1, 13, 23, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 14, 22, -1}, {1, 14, 23, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 15, 22, -1}, {1, 15, 23, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 16, 22, -1}, {1, 16, 23, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 17, 22, -1}, {1, 17, 23, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 18, 22, -1}, {1, 18, 23, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 19, 22, -1}, {1, 19, 23, -1}, {1, 20, 21, -1}, {1, 20, 22, -1}, {1, 20, 23, -1}, {1, 21, 22, -1}, {1, 21, 23, -1}, {1, 22, 23, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 3, 22, -1}, {2, 3, 23, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 4, 22, -1}, {2, 4, 23, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 5, 22, -1}, {2, 5, 23, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 6, 22, -1}, {2, 6, 23, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 7, 22, -1}, {2, 7, 23, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 8, 22, -1}, {2, 8, 23, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 9, 22, -1}, {2, 9, 23, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 10, 22, -1}, {2, 10, 23, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 11, 22, -1}, {2, 11, 23, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 12, 22, -1}, {2, 12, 23, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 13, 22, -1}, {2, 13, 23, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 14, 22, -1}, {2, 14, 23, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 15, 22, -1}, {2, 15, 23, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 16, 22, -1}, {2, 16, 23, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 17, 22, -1}, {2, 17, 23, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 18, 22, -1}, {2, 18, 23, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 19, 22, -1}, {2, 19, 23, -1}, {2, 20, 21, -1}, {2, 20, 22, -1}, {2, 20, 23, -1}, {2, 21, 22, -1}, {2, 21, 23, -1}, {2, 22, 23, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 4, 22, -1}, {3, 4, 23, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 5, 22, -1}, {3, 5, 23, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 6, 22, -1}, {3, 6, 23, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 7, 22, -1}, {3, 7, 23, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 8, 22, -1}, {3, 8, 23, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 9, 22, -1}, {3, 9, 23, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 10, 22, -1}, {3, 10, 23, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 11, 22, -1}, {3, 11, 23, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 12, 22, -1}, {3, 12, 23, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 13, 22, -1}, {3, 13, 23, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 14, 22, -1}, {3, 14, 23, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 15, 22, -1}, {3, 15, 23, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 16, 22, -1}, {3, 16, 23, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 17, 22, -1}, {3, 17, 23, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 18, 22, -1}, {3, 18, 23, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 19, 22, -1}, {3, 19, 23, -1}, {3, 20, 21, -1}, {3, 20, 22, -1}, {3, 20, 23, -1}, {3, 21, 22, -1}, {3, 21, 23, -1}, {3, 22, 23, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 5, 22, -1}, {4, 5, 23, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 6, 22, -1}, {4, 6, 23, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 7, 22, -1}, {4, 7, 23, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 8, 22, -1}, {4, 8, 23, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 9, 22, -1}, {4, 9, 23, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 10, 22, -1}, {4, 10, 23, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 11, 22, -1}, {4, 11, 23, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 12, 22, -1}, {4, 12, 23, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 13, 22, -1}, {4, 13, 23, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 14, 22, -1}, {4, 14, 23, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 15, 22, -1}, {4, 15, 23, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 16, 22, -1}, {4, 16, 23, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 17, 22, -1}, {4, 17, 23, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 18, 22, -1}, {4, 18, 23, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 19, 22, -1}, {4, 19, 23, -1}, {4, 20, 21, -1}, {4, 20, 22, -1}, {4, 20, 23, -1}, {4, 21, 22, -1}, {4, 21, 23, -1}, {4, 22, 23, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 6, 22, -1}, {5, 6, 23, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 7, 22, -1}, {5, 7, 23, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 8, 22, -1}, {5, 8, 23, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 9, 22, -1}, {5, 9, 23, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 10, 22, -1}, {5, 10, 23, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 11, 22, -1}, {5, 11, 23, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 12, 22, -1}, {5, 12, 23, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 13, 22, -1}, {5, 13, 23, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 14, 22, -1}, {5, 14, 23, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 15, 22, -1}, {5, 15, 23, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 16, 22, -1}, {5, 16, 23, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 17, 22, -1}, {5, 17, 23, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 18, 22, -1}, {5, 18, 23, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 19, 22, -1}, {5, 19, 23, -1}, {5, 20, 21, -1}, {5, 20, 22, -1}, {5, 20, 23, -1}, {5, 21, 22, -1}, {5, 21, 23, -1}, {5, 22, 23, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 7, 22, -1}, {6, 7, 23, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 8, 22, -1}, {6, 8, 23, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 9, 22, -1}, {6, 9, 23, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 10, 22, -1}, {6, 10, 23, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 11, 22, -1}, {6, 11, 23, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 12, 22, -1}, {6, 12, 23, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 13, 22, -1}, {6, 13, 23, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 14, 22, -1}, {6, 14, 23, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 15, 22, -1}, {6, 15, 23, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 16, 22, -1}, {6, 16, 23, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 17, 22, -1}, {6, 17, 23, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 18, 22, -1}, {6, 18, 23, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 19, 22, -1}, {6, 19, 23, -1}, {6, 20, 21, -1}, {6, 20, 22, -1}, {6, 20, 23, -1}, {6, 21, 22, -1}, {6, 21, 23, -1}, {6, 22, 23, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 8, 22, -1}, {7, 8, 23, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 9, 22, -1}, {7, 9, 23, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 10, 22, -1}, {7, 10, 23, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 11, 22, -1}, {7, 11, 23, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 12, 22, -1}, {7, 12, 23, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 13, 22, -1}, {7, 13, 23, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 14, 22, -1}, {7, 14, 23, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 15, 22, -1}, {7, 15, 23, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 16, 22, -1}, {7, 16, 23, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 17, 22, -1}, {7, 17, 23, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 18, 22, -1}, {7, 18, 23, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 19, 22, -1}, {7, 19, 23, -1}, {7, 20, 21, -1}, {7, 20, 22, -1}, {7, 20, 23, -1}, {7, 21, 22, -1}, {7, 21, 23, -1}, {7, 22, 23, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 9, 22, -1}, {8, 9, 23, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 10, 22, -1}, {8, 10, 23, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 11, 22, -1}, {8, 11, 23, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 12, 22, -1}, {8, 12, 23, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 13, 22, -1}, {8, 13, 23, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 14, 22, -1}, {8, 14, 23, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 15, 22, -1}, {8, 15, 23, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 16, 22, -1}, {8, 16, 23, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 17, 22, -1}, {8, 17, 23, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 18, 22, -1}, {8, 18, 23, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 19, 22, -1}, {8, 19, 23, -1}, {8, 20, 21, -1}, {8, 20, 22, -1}, {8, 20, 23, -1}, {8, 21, 22, -1}, {8, 21, 23, -1}, {8, 22, 23, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 10, 22, -1}, {9, 10, 23, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 11, 22, -1}, {9, 11, 23, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 12, 22, -1}, {9, 12, 23, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 13, 22, -1}, {9, 13, 23, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 14, 22, -1}, {9, 14, 23, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 15, 22, -1}, {9, 15, 23, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 16, 22, -1}, {9, 16, 23, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 17, 22, -1}, {9, 17, 23, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 18, 22, -1}, {9, 18, 23, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 19, 22, -1}, {9, 19, 23, -1}, {9, 20, 21, -1}, {9, 20, 22, -1}, {9, 20, 23, -1}, {9, 21, 22, -1}, {9, 21, 23, -1}, {9, 22, 23, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 11, 22, -1}, {10, 11, 23, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 12, 22, -1}, {10, 12, 23, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 13, 22, -1}, {10, 13, 23, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 14, 22, -1}, {10, 14, 23, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 15, 22, -1}, {10, 15, 23, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 16, 22, -1}, {10, 16, 23, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 17, 22, -1}, {10, 17, 23, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 18, 22, -1}, {10, 18, 23, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 19, 22, -1}, {10, 19, 23, -1}, {10, 20, 21, -1}, {10, 20, 22, -1}, {10, 20, 23, -1}, {10, 21, 22, -1}, {10, 21, 23, -1}, {10, 22, 23, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 12, 22, -1}, {11, 12, 23, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 13, 22, -1}, {11, 13, 23, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 14, 22, -1}, {11, 14, 23, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 15, 22, -1}, {11, 15, 23, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 16, 22, -1}, {11, 16, 23, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 17, 22, -1}, {11, 17, 23, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 18, 22, -1}, {11, 18, 23, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 19, 22, -1}, {11, 19, 23, -1}, {11, 20, 21, -1}, {11, 20, 22, -1}, {11, 20, 23, -1}, {11, 21, 22, -1}, {11, 21, 23, -1}, {11, 22, 23, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 13, 22, -1}, {12, 13, 23, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 14, 22, -1}, {12, 14, 23, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 15, 22, -1}, {12, 15, 23, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 16, 22, -1}, {12, 16, 23, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 17, 22, -1}, {12, 17, 23, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 18, 22, -1}, {12, 18, 23, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 19, 22, -1}, {12, 19, 23, -1}, {12, 20, 21, -1}, {12, 20, 22, -1}, {12, 20, 23, -1}, {12, 21, 22, -1}, {12, 21, 23, -1}, {12, 22, 23, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 14, 22, -1}, {13, 14, 23, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 15, 22, -1}, {13, 15, 23, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 16, 22, -1}, {13, 16, 23, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 17, 22, -1}, {13, 17, 23, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 18, 22, -1}, {13, 18, 23, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 19, 22, -1}, {13, 19, 23, -1}, {13, 20, 21, -1}, {13, 20, 22, -1}, {13, 20, 23, -1}, {13, 21, 22, -1}, {13, 21, 23, -1}, {13, 22, 23, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 15, 22, -1}, {14, 15, 23, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 16, 22, -1}, {14, 16, 23, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 17, 22, -1}, {14, 17, 23, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 18, 22, -1}, {14, 18, 23, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 19, 22, -1}, {14, 19, 23, -1}, {14, 20, 21, -1}, {14, 20, 22, -1}, {14, 20, 23, -1}, {14, 21, 22, -1}, {14, 21, 23, -1}, {14, 22, 23, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 16, 22, -1}, {15, 16, 23, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 17, 22, -1}, {15, 17, 23, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 18, 22, -1}, {15, 18, 23, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 19, 22, -1}, {15, 19, 23, -1}, {15, 20, 21, -1}, {15, 20, 22, -1}, {15, 20, 23, -1}, {15, 21, 22, -1}, {15, 21, 23, -1}, {15, 22, 23, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 17, 22, -1}, {16, 17, 23, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 18, 22, -1}, {16, 18, 23, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 19, 22, -1}, {16, 19, 23, -1}, {16, 20, 21, -1}, {16, 20, 22, -1}, {16, 20, 23, -1}, {16, 21, 22, -1}, {16, 21, 23, -1}, {16, 22, 23, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 18, 22, -1}, {17, 18, 23, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 19, 22, -1}, {17, 19, 23, -1}, {17, 20, 21, -1}, {17, 20, 22, -1}, {17, 20, 23, -1}, {17, 21, 22, -1}, {17, 21, 23, -1}, {17, 22, 23, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 19, 22, -1}, {18, 19, 23, -1}, {18, 20, 21, -1}, {18, 20, 22, -1}, {18, 20, 23, -1}, {18, 21, 22, -1}, {18, 21, 23, -1}, {18, 22, 23, -1}, {19, 20, 21, -1}, {19, 20, 22, -1}, {19, 20, 23, -1}, {19, 21, 22, -1}, {19, 21, 23, -1}, {19, 22, 23, -1}, {20, 21, 22, -1}, {20, 21, 23, -1}, {20, 22, 23, -1}, {21, 22, 23, -1}} ;
-#define NUM_25_3_COMBS 325
-int failure_combs_25_3[NUM_25_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {24, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {0, 24, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {1, 24, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {2, 24, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {3, 24, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {4, 24, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {5, 24, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {6, 24, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {7, 24, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {8, 24, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {9, 24, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {10, 24, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {11, 24, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {12, 24, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {13, 24, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {14, 24, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {15, 24, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {16, 24, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {17, 24, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {18, 24, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {19, 24, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {20, 24, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {21, 24, -1, -1}, {22, 23, -1, -1}, {22, 24, -1, -1}, {23, 24, -1, -1}} ;
-#define NUM_25_4_COMBS 2625
-int failure_combs_25_4[NUM_25_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {24, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {0, 24, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {1, 24, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {2, 24, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {3, 24, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {4, 24, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {5, 24, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {6, 24, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {7, 24, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {8, 24, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {9, 24, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {10, 24, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {11, 24, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {12, 24, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {13, 24, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {14, 24, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {15, 24, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {16, 24, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {17, 24, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {18, 24, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {19, 24, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {20, 24, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {21, 24, -1, -1}, {22, 23, -1, -1}, {22, 24, -1, -1}, {23, 24, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 1, 22, -1}, {0, 1, 23, -1}, {0, 1, 24, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 2, 22, -1}, {0, 2, 23, -1}, {0, 2, 24, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 3, 22, -1}, {0, 3, 23, -1}, {0, 3, 24, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 4, 22, -1}, {0, 4, 23, -1}, {0, 4, 24, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 5, 22, -1}, {0, 5, 23, -1}, {0, 5, 24, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 6, 22, -1}, {0, 6, 23, -1}, {0, 6, 24, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 7, 22, -1}, {0, 7, 23, -1}, {0, 7, 24, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 8, 22, -1}, {0, 8, 23, -1}, {0, 8, 24, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 9, 22, -1}, {0, 9, 23, -1}, {0, 9, 24, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 10, 22, -1}, {0, 10, 23, -1}, {0, 10, 24, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 11, 22, -1}, {0, 11, 23, -1}, {0, 11, 24, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 12, 22, -1}, {0, 12, 23, -1}, {0, 12, 24, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 13, 22, -1}, {0, 13, 23, -1}, {0, 13, 24, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 14, 22, -1}, {0, 14, 23, -1}, {0, 14, 24, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 15, 22, -1}, {0, 15, 23, -1}, {0, 15, 24, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 16, 22, -1}, {0, 16, 23, -1}, {0, 16, 24, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 17, 22, -1}, {0, 17, 23, -1}, {0, 17, 24, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 18, 22, -1}, {0, 18, 23, -1}, {0, 18, 24, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 19, 22, -1}, {0, 19, 23, -1}, {0, 19, 24, -1}, {0, 20, 21, -1}, {0, 20, 22, -1}, {0, 20, 23, -1}, {0, 20, 24, -1}, {0, 21, 22, -1}, {0, 21, 23, -1}, {0, 21, 24, -1}, {0, 22, 23, -1}, {0, 22, 24, -1}, {0, 23, 24, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 2, 22, -1}, {1, 2, 23, -1}, {1, 2, 24, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 3, 22, -1}, {1, 3, 23, -1}, {1, 3, 24, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 4, 22, -1}, {1, 4, 23, -1}, {1, 4, 24, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 5, 22, -1}, {1, 5, 23, -1}, {1, 5, 24, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 6, 22, -1}, {1, 6, 23, -1}, {1, 6, 24, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 7, 22, -1}, {1, 7, 23, -1}, {1, 7, 24, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 8, 22, -1}, {1, 8, 23, -1}, {1, 8, 24, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 9, 22, -1}, {1, 9, 23, -1}, {1, 9, 24, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 10, 22, -1}, {1, 10, 23, -1}, {1, 10, 24, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 11, 22, -1}, {1, 11, 23, -1}, {1, 11, 24, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 12, 22, -1}, {1, 12, 23, -1}, {1, 12, 24, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 13, 22, -1}, {1, 13, 23, -1}, {1, 13, 24, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 14, 22, -1}, {1, 14, 23, -1}, {1, 14, 24, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 15, 22, -1}, {1, 15, 23, -1}, {1, 15, 24, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 16, 22, -1}, {1, 16, 23, -1}, {1, 16, 24, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 17, 22, -1}, {1, 17, 23, -1}, {1, 17, 24, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 18, 22, -1}, {1, 18, 23, -1}, {1, 18, 24, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 19, 22, -1}, {1, 19, 23, -1}, {1, 19, 24, -1}, {1, 20, 21, -1}, {1, 20, 22, -1}, {1, 20, 23, -1}, {1, 20, 24, -1}, {1, 21, 22, -1}, {1, 21, 23, -1}, {1, 21, 24, -1}, {1, 22, 23, -1}, {1, 22, 24, -1}, {1, 23, 24, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 3, 22, -1}, {2, 3, 23, -1}, {2, 3, 24, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 4, 22, -1}, {2, 4, 23, -1}, {2, 4, 24, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 5, 22, -1}, {2, 5, 23, -1}, {2, 5, 24, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 6, 22, -1}, {2, 6, 23, -1}, {2, 6, 24, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 7, 22, -1}, {2, 7, 23, -1}, {2, 7, 24, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 8, 22, -1}, {2, 8, 23, -1}, {2, 8, 24, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 9, 22, -1}, {2, 9, 23, -1}, {2, 9, 24, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 10, 22, -1}, {2, 10, 23, -1}, {2, 10, 24, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 11, 22, -1}, {2, 11, 23, -1}, {2, 11, 24, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 12, 22, -1}, {2, 12, 23, -1}, {2, 12, 24, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 13, 22, -1}, {2, 13, 23, -1}, {2, 13, 24, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 14, 22, -1}, {2, 14, 23, -1}, {2, 14, 24, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 15, 22, -1}, {2, 15, 23, -1}, {2, 15, 24, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 16, 22, -1}, {2, 16, 23, -1}, {2, 16, 24, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 17, 22, -1}, {2, 17, 23, -1}, {2, 17, 24, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 18, 22, -1}, {2, 18, 23, -1}, {2, 18, 24, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 19, 22, -1}, {2, 19, 23, -1}, {2, 19, 24, -1}, {2, 20, 21, -1}, {2, 20, 22, -1}, {2, 20, 23, -1}, {2, 20, 24, -1}, {2, 21, 22, -1}, {2, 21, 23, -1}, {2, 21, 24, -1}, {2, 22, 23, -1}, {2, 22, 24, -1}, {2, 23, 24, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 4, 22, -1}, {3, 4, 23, -1}, {3, 4, 24, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 5, 22, -1}, {3, 5, 23, -1}, {3, 5, 24, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 6, 22, -1}, {3, 6, 23, -1}, {3, 6, 24, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 7, 22, -1}, {3, 7, 23, -1}, {3, 7, 24, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 8, 22, -1}, {3, 8, 23, -1}, {3, 8, 24, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 9, 22, -1}, {3, 9, 23, -1}, {3, 9, 24, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 10, 22, -1}, {3, 10, 23, -1}, {3, 10, 24, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 11, 22, -1}, {3, 11, 23, -1}, {3, 11, 24, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 12, 22, -1}, {3, 12, 23, -1}, {3, 12, 24, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 13, 22, -1}, {3, 13, 23, -1}, {3, 13, 24, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 14, 22, -1}, {3, 14, 23, -1}, {3, 14, 24, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 15, 22, -1}, {3, 15, 23, -1}, {3, 15, 24, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 16, 22, -1}, {3, 16, 23, -1}, {3, 16, 24, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 17, 22, -1}, {3, 17, 23, -1}, {3, 17, 24, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 18, 22, -1}, {3, 18, 23, -1}, {3, 18, 24, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 19, 22, -1}, {3, 19, 23, -1}, {3, 19, 24, -1}, {3, 20, 21, -1}, {3, 20, 22, -1}, {3, 20, 23, -1}, {3, 20, 24, -1}, {3, 21, 22, -1}, {3, 21, 23, -1}, {3, 21, 24, -1}, {3, 22, 23, -1}, {3, 22, 24, -1}, {3, 23, 24, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 5, 22, -1}, {4, 5, 23, -1}, {4, 5, 24, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 6, 22, -1}, {4, 6, 23, -1}, {4, 6, 24, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 7, 22, -1}, {4, 7, 23, -1}, {4, 7, 24, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 8, 22, -1}, {4, 8, 23, -1}, {4, 8, 24, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 9, 22, -1}, {4, 9, 23, -1}, {4, 9, 24, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 10, 22, -1}, {4, 10, 23, -1}, {4, 10, 24, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 11, 22, -1}, {4, 11, 23, -1}, {4, 11, 24, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 12, 22, -1}, {4, 12, 23, -1}, {4, 12, 24, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 13, 22, -1}, {4, 13, 23, -1}, {4, 13, 24, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 14, 22, -1}, {4, 14, 23, -1}, {4, 14, 24, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 15, 22, -1}, {4, 15, 23, -1}, {4, 15, 24, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 16, 22, -1}, {4, 16, 23, -1}, {4, 16, 24, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 17, 22, -1}, {4, 17, 23, -1}, {4, 17, 24, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 18, 22, -1}, {4, 18, 23, -1}, {4, 18, 24, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 19, 22, -1}, {4, 19, 23, -1}, {4, 19, 24, -1}, {4, 20, 21, -1}, {4, 20, 22, -1}, {4, 20, 23, -1}, {4, 20, 24, -1}, {4, 21, 22, -1}, {4, 21, 23, -1}, {4, 21, 24, -1}, {4, 22, 23, -1}, {4, 22, 24, -1}, {4, 23, 24, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 6, 22, -1}, {5, 6, 23, -1}, {5, 6, 24, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 7, 22, -1}, {5, 7, 23, -1}, {5, 7, 24, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 8, 22, -1}, {5, 8, 23, -1}, {5, 8, 24, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 9, 22, -1}, {5, 9, 23, -1}, {5, 9, 24, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 10, 22, -1}, {5, 10, 23, -1}, {5, 10, 24, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 11, 22, -1}, {5, 11, 23, -1}, {5, 11, 24, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 12, 22, -1}, {5, 12, 23, -1}, {5, 12, 24, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 13, 22, -1}, {5, 13, 23, -1}, {5, 13, 24, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 14, 22, -1}, {5, 14, 23, -1}, {5, 14, 24, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 15, 22, -1}, {5, 15, 23, -1}, {5, 15, 24, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 16, 22, -1}, {5, 16, 23, -1}, {5, 16, 24, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 17, 22, -1}, {5, 17, 23, -1}, {5, 17, 24, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 18, 22, -1}, {5, 18, 23, -1}, {5, 18, 24, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 19, 22, -1}, {5, 19, 23, -1}, {5, 19, 24, -1}, {5, 20, 21, -1}, {5, 20, 22, -1}, {5, 20, 23, -1}, {5, 20, 24, -1}, {5, 21, 22, -1}, {5, 21, 23, -1}, {5, 21, 24, -1}, {5, 22, 23, -1}, {5, 22, 24, -1}, {5, 23, 24, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 7, 22, -1}, {6, 7, 23, -1}, {6, 7, 24, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 8, 22, -1}, {6, 8, 23, -1}, {6, 8, 24, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 9, 22, -1}, {6, 9, 23, -1}, {6, 9, 24, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 10, 22, -1}, {6, 10, 23, -1}, {6, 10, 24, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 11, 22, -1}, {6, 11, 23, -1}, {6, 11, 24, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 12, 22, -1}, {6, 12, 23, -1}, {6, 12, 24, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 13, 22, -1}, {6, 13, 23, -1}, {6, 13, 24, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 14, 22, -1}, {6, 14, 23, -1}, {6, 14, 24, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 15, 22, -1}, {6, 15, 23, -1}, {6, 15, 24, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 16, 22, -1}, {6, 16, 23, -1}, {6, 16, 24, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 17, 22, -1}, {6, 17, 23, -1}, {6, 17, 24, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 18, 22, -1}, {6, 18, 23, -1}, {6, 18, 24, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 19, 22, -1}, {6, 19, 23, -1}, {6, 19, 24, -1}, {6, 20, 21, -1}, {6, 20, 22, -1}, {6, 20, 23, -1}, {6, 20, 24, -1}, {6, 21, 22, -1}, {6, 21, 23, -1}, {6, 21, 24, -1}, {6, 22, 23, -1}, {6, 22, 24, -1}, {6, 23, 24, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 8, 22, -1}, {7, 8, 23, -1}, {7, 8, 24, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 9, 22, -1}, {7, 9, 23, -1}, {7, 9, 24, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 10, 22, -1}, {7, 10, 23, -1}, {7, 10, 24, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 11, 22, -1}, {7, 11, 23, -1}, {7, 11, 24, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 12, 22, -1}, {7, 12, 23, -1}, {7, 12, 24, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 13, 22, -1}, {7, 13, 23, -1}, {7, 13, 24, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 14, 22, -1}, {7, 14, 23, -1}, {7, 14, 24, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 15, 22, -1}, {7, 15, 23, -1}, {7, 15, 24, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 16, 22, -1}, {7, 16, 23, -1}, {7, 16, 24, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 17, 22, -1}, {7, 17, 23, -1}, {7, 17, 24, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 18, 22, -1}, {7, 18, 23, -1}, {7, 18, 24, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 19, 22, -1}, {7, 19, 23, -1}, {7, 19, 24, -1}, {7, 20, 21, -1}, {7, 20, 22, -1}, {7, 20, 23, -1}, {7, 20, 24, -1}, {7, 21, 22, -1}, {7, 21, 23, -1}, {7, 21, 24, -1}, {7, 22, 23, -1}, {7, 22, 24, -1}, {7, 23, 24, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 9, 22, -1}, {8, 9, 23, -1}, {8, 9, 24, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 10, 22, -1}, {8, 10, 23, -1}, {8, 10, 24, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 11, 22, -1}, {8, 11, 23, -1}, {8, 11, 24, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 12, 22, -1}, {8, 12, 23, -1}, {8, 12, 24, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 13, 22, -1}, {8, 13, 23, -1}, {8, 13, 24, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 14, 22, -1}, {8, 14, 23, -1}, {8, 14, 24, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 15, 22, -1}, {8, 15, 23, -1}, {8, 15, 24, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 16, 22, -1}, {8, 16, 23, -1}, {8, 16, 24, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 17, 22, -1}, {8, 17, 23, -1}, {8, 17, 24, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 18, 22, -1}, {8, 18, 23, -1}, {8, 18, 24, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 19, 22, -1}, {8, 19, 23, -1}, {8, 19, 24, -1}, {8, 20, 21, -1}, {8, 20, 22, -1}, {8, 20, 23, -1}, {8, 20, 24, -1}, {8, 21, 22, -1}, {8, 21, 23, -1}, {8, 21, 24, -1}, {8, 22, 23, -1}, {8, 22, 24, -1}, {8, 23, 24, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 10, 22, -1}, {9, 10, 23, -1}, {9, 10, 24, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 11, 22, -1}, {9, 11, 23, -1}, {9, 11, 24, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 12, 22, -1}, {9, 12, 23, -1}, {9, 12, 24, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 13, 22, -1}, {9, 13, 23, -1}, {9, 13, 24, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 14, 22, -1}, {9, 14, 23, -1}, {9, 14, 24, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 15, 22, -1}, {9, 15, 23, -1}, {9, 15, 24, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 16, 22, -1}, {9, 16, 23, -1}, {9, 16, 24, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 17, 22, -1}, {9, 17, 23, -1}, {9, 17, 24, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 18, 22, -1}, {9, 18, 23, -1}, {9, 18, 24, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 19, 22, -1}, {9, 19, 23, -1}, {9, 19, 24, -1}, {9, 20, 21, -1}, {9, 20, 22, -1}, {9, 20, 23, -1}, {9, 20, 24, -1}, {9, 21, 22, -1}, {9, 21, 23, -1}, {9, 21, 24, -1}, {9, 22, 23, -1}, {9, 22, 24, -1}, {9, 23, 24, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 11, 22, -1}, {10, 11, 23, -1}, {10, 11, 24, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 12, 22, -1}, {10, 12, 23, -1}, {10, 12, 24, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 13, 22, -1}, {10, 13, 23, -1}, {10, 13, 24, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 14, 22, -1}, {10, 14, 23, -1}, {10, 14, 24, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 15, 22, -1}, {10, 15, 23, -1}, {10, 15, 24, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 16, 22, -1}, {10, 16, 23, -1}, {10, 16, 24, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 17, 22, -1}, {10, 17, 23, -1}, {10, 17, 24, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 18, 22, -1}, {10, 18, 23, -1}, {10, 18, 24, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 19, 22, -1}, {10, 19, 23, -1}, {10, 19, 24, -1}, {10, 20, 21, -1}, {10, 20, 22, -1}, {10, 20, 23, -1}, {10, 20, 24, -1}, {10, 21, 22, -1}, {10, 21, 23, -1}, {10, 21, 24, -1}, {10, 22, 23, -1}, {10, 22, 24, -1}, {10, 23, 24, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 12, 22, -1}, {11, 12, 23, -1}, {11, 12, 24, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 13, 22, -1}, {11, 13, 23, -1}, {11, 13, 24, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 14, 22, -1}, {11, 14, 23, -1}, {11, 14, 24, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 15, 22, -1}, {11, 15, 23, -1}, {11, 15, 24, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 16, 22, -1}, {11, 16, 23, -1}, {11, 16, 24, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 17, 22, -1}, {11, 17, 23, -1}, {11, 17, 24, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 18, 22, -1}, {11, 18, 23, -1}, {11, 18, 24, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 19, 22, -1}, {11, 19, 23, -1}, {11, 19, 24, -1}, {11, 20, 21, -1}, {11, 20, 22, -1}, {11, 20, 23, -1}, {11, 20, 24, -1}, {11, 21, 22, -1}, {11, 21, 23, -1}, {11, 21, 24, -1}, {11, 22, 23, -1}, {11, 22, 24, -1}, {11, 23, 24, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 13, 22, -1}, {12, 13, 23, -1}, {12, 13, 24, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 14, 22, -1}, {12, 14, 23, -1}, {12, 14, 24, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 15, 22, -1}, {12, 15, 23, -1}, {12, 15, 24, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 16, 22, -1}, {12, 16, 23, -1}, {12, 16, 24, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 17, 22, -1}, {12, 17, 23, -1}, {12, 17, 24, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 18, 22, -1}, {12, 18, 23, -1}, {12, 18, 24, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 19, 22, -1}, {12, 19, 23, -1}, {12, 19, 24, -1}, {12, 20, 21, -1}, {12, 20, 22, -1}, {12, 20, 23, -1}, {12, 20, 24, -1}, {12, 21, 22, -1}, {12, 21, 23, -1}, {12, 21, 24, -1}, {12, 22, 23, -1}, {12, 22, 24, -1}, {12, 23, 24, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 14, 22, -1}, {13, 14, 23, -1}, {13, 14, 24, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 15, 22, -1}, {13, 15, 23, -1}, {13, 15, 24, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 16, 22, -1}, {13, 16, 23, -1}, {13, 16, 24, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 17, 22, -1}, {13, 17, 23, -1}, {13, 17, 24, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 18, 22, -1}, {13, 18, 23, -1}, {13, 18, 24, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 19, 22, -1}, {13, 19, 23, -1}, {13, 19, 24, -1}, {13, 20, 21, -1}, {13, 20, 22, -1}, {13, 20, 23, -1}, {13, 20, 24, -1}, {13, 21, 22, -1}, {13, 21, 23, -1}, {13, 21, 24, -1}, {13, 22, 23, -1}, {13, 22, 24, -1}, {13, 23, 24, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 15, 22, -1}, {14, 15, 23, -1}, {14, 15, 24, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 16, 22, -1}, {14, 16, 23, -1}, {14, 16, 24, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 17, 22, -1}, {14, 17, 23, -1}, {14, 17, 24, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 18, 22, -1}, {14, 18, 23, -1}, {14, 18, 24, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 19, 22, -1}, {14, 19, 23, -1}, {14, 19, 24, -1}, {14, 20, 21, -1}, {14, 20, 22, -1}, {14, 20, 23, -1}, {14, 20, 24, -1}, {14, 21, 22, -1}, {14, 21, 23, -1}, {14, 21, 24, -1}, {14, 22, 23, -1}, {14, 22, 24, -1}, {14, 23, 24, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 16, 22, -1}, {15, 16, 23, -1}, {15, 16, 24, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 17, 22, -1}, {15, 17, 23, -1}, {15, 17, 24, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 18, 22, -1}, {15, 18, 23, -1}, {15, 18, 24, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 19, 22, -1}, {15, 19, 23, -1}, {15, 19, 24, -1}, {15, 20, 21, -1}, {15, 20, 22, -1}, {15, 20, 23, -1}, {15, 20, 24, -1}, {15, 21, 22, -1}, {15, 21, 23, -1}, {15, 21, 24, -1}, {15, 22, 23, -1}, {15, 22, 24, -1}, {15, 23, 24, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 17, 22, -1}, {16, 17, 23, -1}, {16, 17, 24, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 18, 22, -1}, {16, 18, 23, -1}, {16, 18, 24, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 19, 22, -1}, {16, 19, 23, -1}, {16, 19, 24, -1}, {16, 20, 21, -1}, {16, 20, 22, -1}, {16, 20, 23, -1}, {16, 20, 24, -1}, {16, 21, 22, -1}, {16, 21, 23, -1}, {16, 21, 24, -1}, {16, 22, 23, -1}, {16, 22, 24, -1}, {16, 23, 24, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 18, 22, -1}, {17, 18, 23, -1}, {17, 18, 24, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 19, 22, -1}, {17, 19, 23, -1}, {17, 19, 24, -1}, {17, 20, 21, -1}, {17, 20, 22, -1}, {17, 20, 23, -1}, {17, 20, 24, -1}, {17, 21, 22, -1}, {17, 21, 23, -1}, {17, 21, 24, -1}, {17, 22, 23, -1}, {17, 22, 24, -1}, {17, 23, 24, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 19, 22, -1}, {18, 19, 23, -1}, {18, 19, 24, -1}, {18, 20, 21, -1}, {18, 20, 22, -1}, {18, 20, 23, -1}, {18, 20, 24, -1}, {18, 21, 22, -1}, {18, 21, 23, -1}, {18, 21, 24, -1}, {18, 22, 23, -1}, {18, 22, 24, -1}, {18, 23, 24, -1}, {19, 20, 21, -1}, {19, 20, 22, -1}, {19, 20, 23, -1}, {19, 20, 24, -1}, {19, 21, 22, -1}, {19, 21, 23, -1}, {19, 21, 24, -1}, {19, 22, 23, -1}, {19, 22, 24, -1}, {19, 23, 24, -1}, {20, 21, 22, -1}, {20, 21, 23, -1}, {20, 21, 24, -1}, {20, 22, 23, -1}, {20, 22, 24, -1}, {20, 23, 24, -1}, {21, 22, 23, -1}, {21, 22, 24, -1}, {21, 23, 24, -1}, {22, 23, 24, -1}} ;
-#define NUM_26_3_COMBS 351
-int failure_combs_26_3[NUM_26_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {24, -1, -1, -1}, {25, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {0, 24, -1, -1}, {0, 25, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {1, 24, -1, -1}, {1, 25, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {2, 24, -1, -1}, {2, 25, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {3, 24, -1, -1}, {3, 25, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {4, 24, -1, -1}, {4, 25, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {5, 24, -1, -1}, {5, 25, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {6, 24, -1, -1}, {6, 25, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {7, 24, -1, -1}, {7, 25, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {8, 24, -1, -1}, {8, 25, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {9, 24, -1, -1}, {9, 25, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {10, 24, -1, -1}, {10, 25, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {11, 24, -1, -1}, {11, 25, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {12, 24, -1, -1}, {12, 25, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {13, 24, -1, -1}, {13, 25, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {14, 24, -1, -1}, {14, 25, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {15, 24, -1, -1}, {15, 25, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {16, 24, -1, -1}, {16, 25, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {17, 24, -1, -1}, {17, 25, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {18, 24, -1, -1}, {18, 25, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {19, 24, -1, -1}, {19, 25, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {20, 24, -1, -1}, {20, 25, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {21, 24, -1, -1}, {21, 25, -1, -1}, {22, 23, -1, -1}, {22, 24, -1, -1}, {22, 25, -1, -1}, {23, 24, -1, -1}, {23, 25, -1, -1}, {24, 25, -1, -1}} ;
-#define NUM_26_4_COMBS 2951
-int failure_combs_26_4[NUM_26_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {24, -1, -1, -1}, {25, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {0, 24, -1, -1}, {0, 25, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {1, 24, -1, -1}, {1, 25, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {2, 24, -1, -1}, {2, 25, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {3, 24, -1, -1}, {3, 25, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {4, 24, -1, -1}, {4, 25, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {5, 24, -1, -1}, {5, 25, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {6, 24, -1, -1}, {6, 25, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {7, 24, -1, -1}, {7, 25, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {8, 24, -1, -1}, {8, 25, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {9, 24, -1, -1}, {9, 25, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {10, 24, -1, -1}, {10, 25, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {11, 24, -1, -1}, {11, 25, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {12, 24, -1, -1}, {12, 25, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {13, 24, -1, -1}, {13, 25, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {14, 24, -1, -1}, {14, 25, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {15, 24, -1, -1}, {15, 25, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {16, 24, -1, -1}, {16, 25, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {17, 24, -1, -1}, {17, 25, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {18, 24, -1, -1}, {18, 25, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {19, 24, -1, -1}, {19, 25, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {20, 24, -1, -1}, {20, 25, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {21, 24, -1, -1}, {21, 25, -1, -1}, {22, 23, -1, -1}, {22, 24, -1, -1}, {22, 25, -1, -1}, {23, 24, -1, -1}, {23, 25, -1, -1}, {24, 25, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 1, 22, -1}, {0, 1, 23, -1}, {0, 1, 24, -1}, {0, 1, 25, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 2, 22, -1}, {0, 2, 23, -1}, {0, 2, 24, -1}, {0, 2, 25, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 3, 22, -1}, {0, 3, 23, -1}, {0, 3, 24, -1}, {0, 3, 25, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 4, 22, -1}, {0, 4, 23, -1}, {0, 4, 24, -1}, {0, 4, 25, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 5, 22, -1}, {0, 5, 23, -1}, {0, 5, 24, -1}, {0, 5, 25, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 6, 22, -1}, {0, 6, 23, -1}, {0, 6, 24, -1}, {0, 6, 25, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 7, 22, -1}, {0, 7, 23, -1}, {0, 7, 24, -1}, {0, 7, 25, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 8, 22, -1}, {0, 8, 23, -1}, {0, 8, 24, -1}, {0, 8, 25, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 9, 22, -1}, {0, 9, 23, -1}, {0, 9, 24, -1}, {0, 9, 25, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 10, 22, -1}, {0, 10, 23, -1}, {0, 10, 24, -1}, {0, 10, 25, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 11, 22, -1}, {0, 11, 23, -1}, {0, 11, 24, -1}, {0, 11, 25, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 12, 22, -1}, {0, 12, 23, -1}, {0, 12, 24, -1}, {0, 12, 25, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 13, 22, -1}, {0, 13, 23, -1}, {0, 13, 24, -1}, {0, 13, 25, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 14, 22, -1}, {0, 14, 23, -1}, {0, 14, 24, -1}, {0, 14, 25, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 15, 22, -1}, {0, 15, 23, -1}, {0, 15, 24, -1}, {0, 15, 25, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 16, 22, -1}, {0, 16, 23, -1}, {0, 16, 24, -1}, {0, 16, 25, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 17, 22, -1}, {0, 17, 23, -1}, {0, 17, 24, -1}, {0, 17, 25, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 18, 22, -1}, {0, 18, 23, -1}, {0, 18, 24, -1}, {0, 18, 25, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 19, 22, -1}, {0, 19, 23, -1}, {0, 19, 24, -1}, {0, 19, 25, -1}, {0, 20, 21, -1}, {0, 20, 22, -1}, {0, 20, 23, -1}, {0, 20, 24, -1}, {0, 20, 25, -1}, {0, 21, 22, -1}, {0, 21, 23, -1}, {0, 21, 24, -1}, {0, 21, 25, -1}, {0, 22, 23, -1}, {0, 22, 24, -1}, {0, 22, 25, -1}, {0, 23, 24, -1}, {0, 23, 25, -1}, {0, 24, 25, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 2, 22, -1}, {1, 2, 23, -1}, {1, 2, 24, -1}, {1, 2, 25, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 3, 22, -1}, {1, 3, 23, -1}, {1, 3, 24, -1}, {1, 3, 25, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 4, 22, -1}, {1, 4, 23, -1}, {1, 4, 24, -1}, {1, 4, 25, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 5, 22, -1}, {1, 5, 23, -1}, {1, 5, 24, -1}, {1, 5, 25, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 6, 22, -1}, {1, 6, 23, -1}, {1, 6, 24, -1}, {1, 6, 25, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 7, 22, -1}, {1, 7, 23, -1}, {1, 7, 24, -1}, {1, 7, 25, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 8, 22, -1}, {1, 8, 23, -1}, {1, 8, 24, -1}, {1, 8, 25, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 9, 22, -1}, {1, 9, 23, -1}, {1, 9, 24, -1}, {1, 9, 25, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 10, 22, -1}, {1, 10, 23, -1}, {1, 10, 24, -1}, {1, 10, 25, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 11, 22, -1}, {1, 11, 23, -1}, {1, 11, 24, -1}, {1, 11, 25, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 12, 22, -1}, {1, 12, 23, -1}, {1, 12, 24, -1}, {1, 12, 25, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 13, 22, -1}, {1, 13, 23, -1}, {1, 13, 24, -1}, {1, 13, 25, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 14, 22, -1}, {1, 14, 23, -1}, {1, 14, 24, -1}, {1, 14, 25, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 15, 22, -1}, {1, 15, 23, -1}, {1, 15, 24, -1}, {1, 15, 25, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 16, 22, -1}, {1, 16, 23, -1}, {1, 16, 24, -1}, {1, 16, 25, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 17, 22, -1}, {1, 17, 23, -1}, {1, 17, 24, -1}, {1, 17, 25, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 18, 22, -1}, {1, 18, 23, -1}, {1, 18, 24, -1}, {1, 18, 25, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 19, 22, -1}, {1, 19, 23, -1}, {1, 19, 24, -1}, {1, 19, 25, -1}, {1, 20, 21, -1}, {1, 20, 22, -1}, {1, 20, 23, -1}, {1, 20, 24, -1}, {1, 20, 25, -1}, {1, 21, 22, -1}, {1, 21, 23, -1}, {1, 21, 24, -1}, {1, 21, 25, -1}, {1, 22, 23, -1}, {1, 22, 24, -1}, {1, 22, 25, -1}, {1, 23, 24, -1}, {1, 23, 25, -1}, {1, 24, 25, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 3, 22, -1}, {2, 3, 23, -1}, {2, 3, 24, -1}, {2, 3, 25, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 4, 22, -1}, {2, 4, 23, -1}, {2, 4, 24, -1}, {2, 4, 25, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 5, 22, -1}, {2, 5, 23, -1}, {2, 5, 24, -1}, {2, 5, 25, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 6, 22, -1}, {2, 6, 23, -1}, {2, 6, 24, -1}, {2, 6, 25, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 7, 22, -1}, {2, 7, 23, -1}, {2, 7, 24, -1}, {2, 7, 25, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 8, 22, -1}, {2, 8, 23, -1}, {2, 8, 24, -1}, {2, 8, 25, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 9, 22, -1}, {2, 9, 23, -1}, {2, 9, 24, -1}, {2, 9, 25, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 10, 22, -1}, {2, 10, 23, -1}, {2, 10, 24, -1}, {2, 10, 25, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 11, 22, -1}, {2, 11, 23, -1}, {2, 11, 24, -1}, {2, 11, 25, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 12, 22, -1}, {2, 12, 23, -1}, {2, 12, 24, -1}, {2, 12, 25, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 13, 22, -1}, {2, 13, 23, -1}, {2, 13, 24, -1}, {2, 13, 25, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 14, 22, -1}, {2, 14, 23, -1}, {2, 14, 24, -1}, {2, 14, 25, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 15, 22, -1}, {2, 15, 23, -1}, {2, 15, 24, -1}, {2, 15, 25, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 16, 22, -1}, {2, 16, 23, -1}, {2, 16, 24, -1}, {2, 16, 25, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 17, 22, -1}, {2, 17, 23, -1}, {2, 17, 24, -1}, {2, 17, 25, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 18, 22, -1}, {2, 18, 23, -1}, {2, 18, 24, -1}, {2, 18, 25, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 19, 22, -1}, {2, 19, 23, -1}, {2, 19, 24, -1}, {2, 19, 25, -1}, {2, 20, 21, -1}, {2, 20, 22, -1}, {2, 20, 23, -1}, {2, 20, 24, -1}, {2, 20, 25, -1}, {2, 21, 22, -1}, {2, 21, 23, -1}, {2, 21, 24, -1}, {2, 21, 25, -1}, {2, 22, 23, -1}, {2, 22, 24, -1}, {2, 22, 25, -1}, {2, 23, 24, -1}, {2, 23, 25, -1}, {2, 24, 25, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 4, 22, -1}, {3, 4, 23, -1}, {3, 4, 24, -1}, {3, 4, 25, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 5, 22, -1}, {3, 5, 23, -1}, {3, 5, 24, -1}, {3, 5, 25, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 6, 22, -1}, {3, 6, 23, -1}, {3, 6, 24, -1}, {3, 6, 25, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 7, 22, -1}, {3, 7, 23, -1}, {3, 7, 24, -1}, {3, 7, 25, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 8, 22, -1}, {3, 8, 23, -1}, {3, 8, 24, -1}, {3, 8, 25, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 9, 22, -1}, {3, 9, 23, -1}, {3, 9, 24, -1}, {3, 9, 25, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 10, 22, -1}, {3, 10, 23, -1}, {3, 10, 24, -1}, {3, 10, 25, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 11, 22, -1}, {3, 11, 23, -1}, {3, 11, 24, -1}, {3, 11, 25, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 12, 22, -1}, {3, 12, 23, -1}, {3, 12, 24, -1}, {3, 12, 25, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 13, 22, -1}, {3, 13, 23, -1}, {3, 13, 24, -1}, {3, 13, 25, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 14, 22, -1}, {3, 14, 23, -1}, {3, 14, 24, -1}, {3, 14, 25, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 15, 22, -1}, {3, 15, 23, -1}, {3, 15, 24, -1}, {3, 15, 25, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 16, 22, -1}, {3, 16, 23, -1}, {3, 16, 24, -1}, {3, 16, 25, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 17, 22, -1}, {3, 17, 23, -1}, {3, 17, 24, -1}, {3, 17, 25, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 18, 22, -1}, {3, 18, 23, -1}, {3, 18, 24, -1}, {3, 18, 25, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 19, 22, -1}, {3, 19, 23, -1}, {3, 19, 24, -1}, {3, 19, 25, -1}, {3, 20, 21, -1}, {3, 20, 22, -1}, {3, 20, 23, -1}, {3, 20, 24, -1}, {3, 20, 25, -1}, {3, 21, 22, -1}, {3, 21, 23, -1}, {3, 21, 24, -1}, {3, 21, 25, -1}, {3, 22, 23, -1}, {3, 22, 24, -1}, {3, 22, 25, -1}, {3, 23, 24, -1}, {3, 23, 25, -1}, {3, 24, 25, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 5, 22, -1}, {4, 5, 23, -1}, {4, 5, 24, -1}, {4, 5, 25, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 6, 22, -1}, {4, 6, 23, -1}, {4, 6, 24, -1}, {4, 6, 25, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 7, 22, -1}, {4, 7, 23, -1}, {4, 7, 24, -1}, {4, 7, 25, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 8, 22, -1}, {4, 8, 23, -1}, {4, 8, 24, -1}, {4, 8, 25, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 9, 22, -1}, {4, 9, 23, -1}, {4, 9, 24, -1}, {4, 9, 25, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 10, 22, -1}, {4, 10, 23, -1}, {4, 10, 24, -1}, {4, 10, 25, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 11, 22, -1}, {4, 11, 23, -1}, {4, 11, 24, -1}, {4, 11, 25, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 12, 22, -1}, {4, 12, 23, -1}, {4, 12, 24, -1}, {4, 12, 25, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 13, 22, -1}, {4, 13, 23, -1}, {4, 13, 24, -1}, {4, 13, 25, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 14, 22, -1}, {4, 14, 23, -1}, {4, 14, 24, -1}, {4, 14, 25, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 15, 22, -1}, {4, 15, 23, -1}, {4, 15, 24, -1}, {4, 15, 25, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 16, 22, -1}, {4, 16, 23, -1}, {4, 16, 24, -1}, {4, 16, 25, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 17, 22, -1}, {4, 17, 23, -1}, {4, 17, 24, -1}, {4, 17, 25, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 18, 22, -1}, {4, 18, 23, -1}, {4, 18, 24, -1}, {4, 18, 25, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 19, 22, -1}, {4, 19, 23, -1}, {4, 19, 24, -1}, {4, 19, 25, -1}, {4, 20, 21, -1}, {4, 20, 22, -1}, {4, 20, 23, -1}, {4, 20, 24, -1}, {4, 20, 25, -1}, {4, 21, 22, -1}, {4, 21, 23, -1}, {4, 21, 24, -1}, {4, 21, 25, -1}, {4, 22, 23, -1}, {4, 22, 24, -1}, {4, 22, 25, -1}, {4, 23, 24, -1}, {4, 23, 25, -1}, {4, 24, 25, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 6, 22, -1}, {5, 6, 23, -1}, {5, 6, 24, -1}, {5, 6, 25, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 7, 22, -1}, {5, 7, 23, -1}, {5, 7, 24, -1}, {5, 7, 25, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 8, 22, -1}, {5, 8, 23, -1}, {5, 8, 24, -1}, {5, 8, 25, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 9, 22, -1}, {5, 9, 23, -1}, {5, 9, 24, -1}, {5, 9, 25, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 10, 22, -1}, {5, 10, 23, -1}, {5, 10, 24, -1}, {5, 10, 25, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 11, 22, -1}, {5, 11, 23, -1}, {5, 11, 24, -1}, {5, 11, 25, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 12, 22, -1}, {5, 12, 23, -1}, {5, 12, 24, -1}, {5, 12, 25, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 13, 22, -1}, {5, 13, 23, -1}, {5, 13, 24, -1}, {5, 13, 25, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 14, 22, -1}, {5, 14, 23, -1}, {5, 14, 24, -1}, {5, 14, 25, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 15, 22, -1}, {5, 15, 23, -1}, {5, 15, 24, -1}, {5, 15, 25, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 16, 22, -1}, {5, 16, 23, -1}, {5, 16, 24, -1}, {5, 16, 25, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 17, 22, -1}, {5, 17, 23, -1}, {5, 17, 24, -1}, {5, 17, 25, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 18, 22, -1}, {5, 18, 23, -1}, {5, 18, 24, -1}, {5, 18, 25, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 19, 22, -1}, {5, 19, 23, -1}, {5, 19, 24, -1}, {5, 19, 25, -1}, {5, 20, 21, -1}, {5, 20, 22, -1}, {5, 20, 23, -1}, {5, 20, 24, -1}, {5, 20, 25, -1}, {5, 21, 22, -1}, {5, 21, 23, -1}, {5, 21, 24, -1}, {5, 21, 25, -1}, {5, 22, 23, -1}, {5, 22, 24, -1}, {5, 22, 25, -1}, {5, 23, 24, -1}, {5, 23, 25, -1}, {5, 24, 25, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 7, 22, -1}, {6, 7, 23, -1}, {6, 7, 24, -1}, {6, 7, 25, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 8, 22, -1}, {6, 8, 23, -1}, {6, 8, 24, -1}, {6, 8, 25, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 9, 22, -1}, {6, 9, 23, -1}, {6, 9, 24, -1}, {6, 9, 25, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 10, 22, -1}, {6, 10, 23, -1}, {6, 10, 24, -1}, {6, 10, 25, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 11, 22, -1}, {6, 11, 23, -1}, {6, 11, 24, -1}, {6, 11, 25, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 12, 22, -1}, {6, 12, 23, -1}, {6, 12, 24, -1}, {6, 12, 25, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 13, 22, -1}, {6, 13, 23, -1}, {6, 13, 24, -1}, {6, 13, 25, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 14, 22, -1}, {6, 14, 23, -1}, {6, 14, 24, -1}, {6, 14, 25, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 15, 22, -1}, {6, 15, 23, -1}, {6, 15, 24, -1}, {6, 15, 25, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 16, 22, -1}, {6, 16, 23, -1}, {6, 16, 24, -1}, {6, 16, 25, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 17, 22, -1}, {6, 17, 23, -1}, {6, 17, 24, -1}, {6, 17, 25, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 18, 22, -1}, {6, 18, 23, -1}, {6, 18, 24, -1}, {6, 18, 25, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 19, 22, -1}, {6, 19, 23, -1}, {6, 19, 24, -1}, {6, 19, 25, -1}, {6, 20, 21, -1}, {6, 20, 22, -1}, {6, 20, 23, -1}, {6, 20, 24, -1}, {6, 20, 25, -1}, {6, 21, 22, -1}, {6, 21, 23, -1}, {6, 21, 24, -1}, {6, 21, 25, -1}, {6, 22, 23, -1}, {6, 22, 24, -1}, {6, 22, 25, -1}, {6, 23, 24, -1}, {6, 23, 25, -1}, {6, 24, 25, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 8, 22, -1}, {7, 8, 23, -1}, {7, 8, 24, -1}, {7, 8, 25, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 9, 22, -1}, {7, 9, 23, -1}, {7, 9, 24, -1}, {7, 9, 25, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 10, 22, -1}, {7, 10, 23, -1}, {7, 10, 24, -1}, {7, 10, 25, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 11, 22, -1}, {7, 11, 23, -1}, {7, 11, 24, -1}, {7, 11, 25, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 12, 22, -1}, {7, 12, 23, -1}, {7, 12, 24, -1}, {7, 12, 25, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 13, 22, -1}, {7, 13, 23, -1}, {7, 13, 24, -1}, {7, 13, 25, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 14, 22, -1}, {7, 14, 23, -1}, {7, 14, 24, -1}, {7, 14, 25, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 15, 22, -1}, {7, 15, 23, -1}, {7, 15, 24, -1}, {7, 15, 25, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 16, 22, -1}, {7, 16, 23, -1}, {7, 16, 24, -1}, {7, 16, 25, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 17, 22, -1}, {7, 17, 23, -1}, {7, 17, 24, -1}, {7, 17, 25, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 18, 22, -1}, {7, 18, 23, -1}, {7, 18, 24, -1}, {7, 18, 25, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 19, 22, -1}, {7, 19, 23, -1}, {7, 19, 24, -1}, {7, 19, 25, -1}, {7, 20, 21, -1}, {7, 20, 22, -1}, {7, 20, 23, -1}, {7, 20, 24, -1}, {7, 20, 25, -1}, {7, 21, 22, -1}, {7, 21, 23, -1}, {7, 21, 24, -1}, {7, 21, 25, -1}, {7, 22, 23, -1}, {7, 22, 24, -1}, {7, 22, 25, -1}, {7, 23, 24, -1}, {7, 23, 25, -1}, {7, 24, 25, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 9, 22, -1}, {8, 9, 23, -1}, {8, 9, 24, -1}, {8, 9, 25, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 10, 22, -1}, {8, 10, 23, -1}, {8, 10, 24, -1}, {8, 10, 25, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 11, 22, -1}, {8, 11, 23, -1}, {8, 11, 24, -1}, {8, 11, 25, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 12, 22, -1}, {8, 12, 23, -1}, {8, 12, 24, -1}, {8, 12, 25, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 13, 22, -1}, {8, 13, 23, -1}, {8, 13, 24, -1}, {8, 13, 25, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 14, 22, -1}, {8, 14, 23, -1}, {8, 14, 24, -1}, {8, 14, 25, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 15, 22, -1}, {8, 15, 23, -1}, {8, 15, 24, -1}, {8, 15, 25, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 16, 22, -1}, {8, 16, 23, -1}, {8, 16, 24, -1}, {8, 16, 25, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 17, 22, -1}, {8, 17, 23, -1}, {8, 17, 24, -1}, {8, 17, 25, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 18, 22, -1}, {8, 18, 23, -1}, {8, 18, 24, -1}, {8, 18, 25, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 19, 22, -1}, {8, 19, 23, -1}, {8, 19, 24, -1}, {8, 19, 25, -1}, {8, 20, 21, -1}, {8, 20, 22, -1}, {8, 20, 23, -1}, {8, 20, 24, -1}, {8, 20, 25, -1}, {8, 21, 22, -1}, {8, 21, 23, -1}, {8, 21, 24, -1}, {8, 21, 25, -1}, {8, 22, 23, -1}, {8, 22, 24, -1}, {8, 22, 25, -1}, {8, 23, 24, -1}, {8, 23, 25, -1}, {8, 24, 25, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 10, 22, -1}, {9, 10, 23, -1}, {9, 10, 24, -1}, {9, 10, 25, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 11, 22, -1}, {9, 11, 23, -1}, {9, 11, 24, -1}, {9, 11, 25, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 12, 22, -1}, {9, 12, 23, -1}, {9, 12, 24, -1}, {9, 12, 25, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 13, 22, -1}, {9, 13, 23, -1}, {9, 13, 24, -1}, {9, 13, 25, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 14, 22, -1}, {9, 14, 23, -1}, {9, 14, 24, -1}, {9, 14, 25, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 15, 22, -1}, {9, 15, 23, -1}, {9, 15, 24, -1}, {9, 15, 25, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 16, 22, -1}, {9, 16, 23, -1}, {9, 16, 24, -1}, {9, 16, 25, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 17, 22, -1}, {9, 17, 23, -1}, {9, 17, 24, -1}, {9, 17, 25, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 18, 22, -1}, {9, 18, 23, -1}, {9, 18, 24, -1}, {9, 18, 25, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 19, 22, -1}, {9, 19, 23, -1}, {9, 19, 24, -1}, {9, 19, 25, -1}, {9, 20, 21, -1}, {9, 20, 22, -1}, {9, 20, 23, -1}, {9, 20, 24, -1}, {9, 20, 25, -1}, {9, 21, 22, -1}, {9, 21, 23, -1}, {9, 21, 24, -1}, {9, 21, 25, -1}, {9, 22, 23, -1}, {9, 22, 24, -1}, {9, 22, 25, -1}, {9, 23, 24, -1}, {9, 23, 25, -1}, {9, 24, 25, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 11, 22, -1}, {10, 11, 23, -1}, {10, 11, 24, -1}, {10, 11, 25, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 12, 22, -1}, {10, 12, 23, -1}, {10, 12, 24, -1}, {10, 12, 25, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 13, 22, -1}, {10, 13, 23, -1}, {10, 13, 24, -1}, {10, 13, 25, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 14, 22, -1}, {10, 14, 23, -1}, {10, 14, 24, -1}, {10, 14, 25, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 15, 22, -1}, {10, 15, 23, -1}, {10, 15, 24, -1}, {10, 15, 25, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 16, 22, -1}, {10, 16, 23, -1}, {10, 16, 24, -1}, {10, 16, 25, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 17, 22, -1}, {10, 17, 23, -1}, {10, 17, 24, -1}, {10, 17, 25, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 18, 22, -1}, {10, 18, 23, -1}, {10, 18, 24, -1}, {10, 18, 25, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 19, 22, -1}, {10, 19, 23, -1}, {10, 19, 24, -1}, {10, 19, 25, -1}, {10, 20, 21, -1}, {10, 20, 22, -1}, {10, 20, 23, -1}, {10, 20, 24, -1}, {10, 20, 25, -1}, {10, 21, 22, -1}, {10, 21, 23, -1}, {10, 21, 24, -1}, {10, 21, 25, -1}, {10, 22, 23, -1}, {10, 22, 24, -1}, {10, 22, 25, -1}, {10, 23, 24, -1}, {10, 23, 25, -1}, {10, 24, 25, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 12, 22, -1}, {11, 12, 23, -1}, {11, 12, 24, -1}, {11, 12, 25, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 13, 22, -1}, {11, 13, 23, -1}, {11, 13, 24, -1}, {11, 13, 25, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 14, 22, -1}, {11, 14, 23, -1}, {11, 14, 24, -1}, {11, 14, 25, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 15, 22, -1}, {11, 15, 23, -1}, {11, 15, 24, -1}, {11, 15, 25, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 16, 22, -1}, {11, 16, 23, -1}, {11, 16, 24, -1}, {11, 16, 25, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 17, 22, -1}, {11, 17, 23, -1}, {11, 17, 24, -1}, {11, 17, 25, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 18, 22, -1}, {11, 18, 23, -1}, {11, 18, 24, -1}, {11, 18, 25, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 19, 22, -1}, {11, 19, 23, -1}, {11, 19, 24, -1}, {11, 19, 25, -1}, {11, 20, 21, -1}, {11, 20, 22, -1}, {11, 20, 23, -1}, {11, 20, 24, -1}, {11, 20, 25, -1}, {11, 21, 22, -1}, {11, 21, 23, -1}, {11, 21, 24, -1}, {11, 21, 25, -1}, {11, 22, 23, -1}, {11, 22, 24, -1}, {11, 22, 25, -1}, {11, 23, 24, -1}, {11, 23, 25, -1}, {11, 24, 25, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 13, 22, -1}, {12, 13, 23, -1}, {12, 13, 24, -1}, {12, 13, 25, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 14, 22, -1}, {12, 14, 23, -1}, {12, 14, 24, -1}, {12, 14, 25, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 15, 22, -1}, {12, 15, 23, -1}, {12, 15, 24, -1}, {12, 15, 25, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 16, 22, -1}, {12, 16, 23, -1}, {12, 16, 24, -1}, {12, 16, 25, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 17, 22, -1}, {12, 17, 23, -1}, {12, 17, 24, -1}, {12, 17, 25, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 18, 22, -1}, {12, 18, 23, -1}, {12, 18, 24, -1}, {12, 18, 25, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 19, 22, -1}, {12, 19, 23, -1}, {12, 19, 24, -1}, {12, 19, 25, -1}, {12, 20, 21, -1}, {12, 20, 22, -1}, {12, 20, 23, -1}, {12, 20, 24, -1}, {12, 20, 25, -1}, {12, 21, 22, -1}, {12, 21, 23, -1}, {12, 21, 24, -1}, {12, 21, 25, -1}, {12, 22, 23, -1}, {12, 22, 24, -1}, {12, 22, 25, -1}, {12, 23, 24, -1}, {12, 23, 25, -1}, {12, 24, 25, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 14, 22, -1}, {13, 14, 23, -1}, {13, 14, 24, -1}, {13, 14, 25, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 15, 22, -1}, {13, 15, 23, -1}, {13, 15, 24, -1}, {13, 15, 25, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 16, 22, -1}, {13, 16, 23, -1}, {13, 16, 24, -1}, {13, 16, 25, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 17, 22, -1}, {13, 17, 23, -1}, {13, 17, 24, -1}, {13, 17, 25, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 18, 22, -1}, {13, 18, 23, -1}, {13, 18, 24, -1}, {13, 18, 25, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 19, 22, -1}, {13, 19, 23, -1}, {13, 19, 24, -1}, {13, 19, 25, -1}, {13, 20, 21, -1}, {13, 20, 22, -1}, {13, 20, 23, -1}, {13, 20, 24, -1}, {13, 20, 25, -1}, {13, 21, 22, -1}, {13, 21, 23, -1}, {13, 21, 24, -1}, {13, 21, 25, -1}, {13, 22, 23, -1}, {13, 22, 24, -1}, {13, 22, 25, -1}, {13, 23, 24, -1}, {13, 23, 25, -1}, {13, 24, 25, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 15, 22, -1}, {14, 15, 23, -1}, {14, 15, 24, -1}, {14, 15, 25, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 16, 22, -1}, {14, 16, 23, -1}, {14, 16, 24, -1}, {14, 16, 25, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 17, 22, -1}, {14, 17, 23, -1}, {14, 17, 24, -1}, {14, 17, 25, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 18, 22, -1}, {14, 18, 23, -1}, {14, 18, 24, -1}, {14, 18, 25, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 19, 22, -1}, {14, 19, 23, -1}, {14, 19, 24, -1}, {14, 19, 25, -1}, {14, 20, 21, -1}, {14, 20, 22, -1}, {14, 20, 23, -1}, {14, 20, 24, -1}, {14, 20, 25, -1}, {14, 21, 22, -1}, {14, 21, 23, -1}, {14, 21, 24, -1}, {14, 21, 25, -1}, {14, 22, 23, -1}, {14, 22, 24, -1}, {14, 22, 25, -1}, {14, 23, 24, -1}, {14, 23, 25, -1}, {14, 24, 25, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 16, 22, -1}, {15, 16, 23, -1}, {15, 16, 24, -1}, {15, 16, 25, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 17, 22, -1}, {15, 17, 23, -1}, {15, 17, 24, -1}, {15, 17, 25, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 18, 22, -1}, {15, 18, 23, -1}, {15, 18, 24, -1}, {15, 18, 25, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 19, 22, -1}, {15, 19, 23, -1}, {15, 19, 24, -1}, {15, 19, 25, -1}, {15, 20, 21, -1}, {15, 20, 22, -1}, {15, 20, 23, -1}, {15, 20, 24, -1}, {15, 20, 25, -1}, {15, 21, 22, -1}, {15, 21, 23, -1}, {15, 21, 24, -1}, {15, 21, 25, -1}, {15, 22, 23, -1}, {15, 22, 24, -1}, {15, 22, 25, -1}, {15, 23, 24, -1}, {15, 23, 25, -1}, {15, 24, 25, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 17, 22, -1}, {16, 17, 23, -1}, {16, 17, 24, -1}, {16, 17, 25, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 18, 22, -1}, {16, 18, 23, -1}, {16, 18, 24, -1}, {16, 18, 25, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 19, 22, -1}, {16, 19, 23, -1}, {16, 19, 24, -1}, {16, 19, 25, -1}, {16, 20, 21, -1}, {16, 20, 22, -1}, {16, 20, 23, -1}, {16, 20, 24, -1}, {16, 20, 25, -1}, {16, 21, 22, -1}, {16, 21, 23, -1}, {16, 21, 24, -1}, {16, 21, 25, -1}, {16, 22, 23, -1}, {16, 22, 24, -1}, {16, 22, 25, -1}, {16, 23, 24, -1}, {16, 23, 25, -1}, {16, 24, 25, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 18, 22, -1}, {17, 18, 23, -1}, {17, 18, 24, -1}, {17, 18, 25, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 19, 22, -1}, {17, 19, 23, -1}, {17, 19, 24, -1}, {17, 19, 25, -1}, {17, 20, 21, -1}, {17, 20, 22, -1}, {17, 20, 23, -1}, {17, 20, 24, -1}, {17, 20, 25, -1}, {17, 21, 22, -1}, {17, 21, 23, -1}, {17, 21, 24, -1}, {17, 21, 25, -1}, {17, 22, 23, -1}, {17, 22, 24, -1}, {17, 22, 25, -1}, {17, 23, 24, -1}, {17, 23, 25, -1}, {17, 24, 25, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 19, 22, -1}, {18, 19, 23, -1}, {18, 19, 24, -1}, {18, 19, 25, -1}, {18, 20, 21, -1}, {18, 20, 22, -1}, {18, 20, 23, -1}, {18, 20, 24, -1}, {18, 20, 25, -1}, {18, 21, 22, -1}, {18, 21, 23, -1}, {18, 21, 24, -1}, {18, 21, 25, -1}, {18, 22, 23, -1}, {18, 22, 24, -1}, {18, 22, 25, -1}, {18, 23, 24, -1}, {18, 23, 25, -1}, {18, 24, 25, -1}, {19, 20, 21, -1}, {19, 20, 22, -1}, {19, 20, 23, -1}, {19, 20, 24, -1}, {19, 20, 25, -1}, {19, 21, 22, -1}, {19, 21, 23, -1}, {19, 21, 24, -1}, {19, 21, 25, -1}, {19, 22, 23, -1}, {19, 22, 24, -1}, {19, 22, 25, -1}, {19, 23, 24, -1}, {19, 23, 25, -1}, {19, 24, 25, -1}, {20, 21, 22, -1}, {20, 21, 23, -1}, {20, 21, 24, -1}, {20, 21, 25, -1}, {20, 22, 23, -1}, {20, 22, 24, -1}, {20, 22, 25, -1}, {20, 23, 24, -1}, {20, 23, 25, -1}, {20, 24, 25, -1}, {21, 22, 23, -1}, {21, 22, 24, -1}, {21, 22, 25, -1}, {21, 23, 24, -1}, {21, 23, 25, -1}, {21, 24, 25, -1}, {22, 23, 24, -1}, {22, 23, 25, -1}, {22, 24, 25, -1}, {23, 24, 25, -1}} ;
diff --git a/src/c/liberasurecode/test/liberasurecode_test.c b/src/c/liberasurecode/test/liberasurecode_test.c
deleted file mode 100644
index 33ba5a5..0000000
--- a/src/c/liberasurecode/test/liberasurecode_test.c
+++ /dev/null
@@ -1,1560 +0,0 @@
-/*
- * Copyright 2014 Eric Lambert, Tushar Gohad, Kevin Greenan
- *
- * 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. 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 HOLDER 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.
- *
- * liberasurecode frontend API header
- *
- * vi: set noai tw=79 ts=4 sw=4:
- */
-
-#include <assert.h>
-#include <stdbool.h>
-#include "erasurecode.h"
-#include "erasurecode_helpers.h"
-#include "erasurecode_preprocessing.h"
-#include "erasurecode_backend.h"
-#include "alg_sig.h"
-#define NULL_BACKEND "null"
-#define FLAT_XOR_HD_BACKEND "flat_xor_hd"
-#define JERASURE_RS_VAND_BACKEND "jerasure_rs_vand"
-#define JERASURE_RS_CAUCHY_BACKEND "jerasure_rs_cauchy"
-#define ISA_L_RS_VAND_BACKEND "isa_l_rs_vand"
-#define SHSS_BACKEND "shss"
-
-typedef void (*TEST_FUNC)();
-
-struct testcase {
- const char *description;
- TEST_FUNC function;
- ec_backend_id_t be_id;
- ec_checksum_type_t ct;
- bool skip;
-};
-
-struct ec_args null_args = {
- .k = 8,
- .m = 4,
- .priv_args1.null_args.arg1 = 11,
- .ct = CHKSUM_NONE,
-};
-
-struct ec_args flat_xor_hd_args = {
- .k = 10,
- .m = 6,
- .hd = 4,
- .ct = CHKSUM_NONE,
-};
-
-struct ec_args jerasure_rs_vand_args = {
- .k = 10,
- .m = 4,
- .w = 16,
- .hd = 5,
- .ct = CHKSUM_NONE,
-};
-
-struct ec_args jerasure_rs_cauchy_args = {
- .k = 10,
- .m = 4,
- .w = 4,
- .hd = 5,
- .ct = CHKSUM_NONE,
-};
-
-struct ec_args isa_l_args = {
- .k = 10,
- .m = 4,
- .w = 8,
- .hd = 5,
-};
-
-int priv = 128;
-struct ec_args shss_args = {
- .k = 6,
- .m = 3,
- .hd = 3,
- .priv_args2 = &priv,
-};
-
-
-typedef enum {
- LIBEC_VERSION_MISMATCH,
- MAGIC_MISMATCH,
- BACKEND_ID_MISMATCH,
- BACKEND_VERSION_MISMATCH,
-} fragment_mismatch_scenario_t;
-
-char * get_name_from_backend_id(ec_backend_id_t be) {
- switch(be) {
- case EC_BACKEND_NULL:
- return NULL_BACKEND;
- case EC_BACKEND_JERASURE_RS_VAND:
- return JERASURE_RS_VAND_BACKEND;
- case EC_BACKEND_JERASURE_RS_CAUCHY:
- return JERASURE_RS_CAUCHY_BACKEND;
- case EC_BACKEND_FLAT_XOR_HD:
- return FLAT_XOR_HD_BACKEND;
- case EC_BACKEND_ISA_L_RS_VAND:
- return ISA_L_RS_VAND_BACKEND;
- case EC_BACKEND_SHSS:
- return SHSS_BACKEND;
- default:
- return "UNKNOWN";
- }
-}
-
-struct ec_args *create_ec_args(ec_backend_id_t be, ec_checksum_type_t ct)
-{
- size_t ec_args_size = sizeof(struct ec_args);
- struct ec_args *template = NULL;
- switch(be) {
- case EC_BACKEND_NULL:
- template = &null_args;
- break;
- case EC_BACKEND_JERASURE_RS_VAND:
- template = &jerasure_rs_vand_args;
- break;
- case EC_BACKEND_JERASURE_RS_CAUCHY:
- template = &jerasure_rs_cauchy_args;
- break;
- case EC_BACKEND_FLAT_XOR_HD:
- template = &flat_xor_hd_args;
- break;
- case EC_BACKEND_ISA_L_RS_VAND:
- template = &isa_l_args;
- break;
- case EC_BACKEND_SHSS:
- template = &shss_args;
- break;
- default:
- return NULL;
- }
- struct ec_args *args = malloc(ec_args_size);
- assert(args);
- memcpy(args, template, ec_args_size);
- args->ct = ct;
- return args;
-}
-
-char *create_buffer(int size, int fill)
-{
- char *buf = malloc(size);
- memset(buf, fill, size);
- return buf;
-}
-
-int *create_skips_array(struct ec_args *args, int skip)
-{
- int num = args->k + args->m;
- size_t array_size = sizeof(int) * num;
- int *buf = malloc(array_size);
- if (buf == NULL) {
- return NULL;
- }
- memset(buf, 0, array_size);
- if (skip >= 0 && skip < num) {
- buf[skip] = 1;
- }
- return buf;
-}
-
-static int create_frags_array(char ***array,
- char **data,
- char **parity,
- struct ec_args *args,
- int *skips)
-{
- int num_frags = 0;
- int i = 0;
- char **ptr = NULL;
- *array = malloc((args->k + args->m) * sizeof(char *));
- if (array == NULL) {
- num_frags = -1;
- goto out;
- }
- //add data frags
- ptr = *array;
- for (i = 0; i < args->k; i++) {
- if (data[i] == NULL || skips[i] == 1)
- {
- continue;
- }
- *ptr++ = data[i];
- num_frags++;
- }
- //add parity frags
- for (i = 0; i < args->m; i++) {
- if (parity[i] == NULL || skips[i + args->k] == 1) {
- continue;
- }
- *ptr++ = parity[i];
- num_frags++;
- }
-out:
- return num_frags;
-}
-
-static int encode_failure_stub(void *desc, char **data,
- char **parity, int blocksize)
-{
- return -1;
-}
-
-static void validate_fragment_checksum(struct ec_args *args,
- fragment_metadata_t *metadata, char *fragment_data)
-{
- uint32_t chksum = metadata->chksum[0];
- uint32_t computed = 0;
- uint32_t size = metadata->size;
- switch (args->ct) {
- case CHKSUM_MD5:
- assert(false); //currently only have support crc32
- break;
- case CHKSUM_CRC32:
- computed = crc32(0, fragment_data, size);
- break;
- case CHKSUM_NONE:
- assert(metadata->chksum_mismatch == 0);
- break;
- default:
- assert(false);
- break;
- }
- if (metadata->chksum_mismatch) {
- assert(chksum != computed);
- } else {
- assert(chksum == computed);
- }
-}
-
-static void test_create_and_destroy_backend(
- ec_backend_id_t be_id,
- struct ec_args *args)
-{
- int desc = liberasurecode_instance_create(be_id, args);
- if (-EBACKENDNOTAVAIL == desc) {
- fprintf (stderr, "Backend library not available!\n");
- return;
- }
- assert(desc > 0);
- assert(0 == liberasurecode_instance_destroy(desc));
-}
-
-static void test_create_backend_invalid_args()
-{
- assert(liberasurecode_instance_create(-1, &null_args) < 0);
- assert(liberasurecode_instance_create(EC_BACKENDS_MAX, &null_args) < 0);
- assert(liberasurecode_instance_create(EC_BACKEND_NULL, NULL) < 0);
-}
-
-static void test_destroy_backend_invalid_args()
-{
- int desc = -1;
- assert(liberasurecode_instance_destroy(desc) < 0);
- desc = 1;
- assert(liberasurecode_instance_destroy(desc) < 0);
- desc = liberasurecode_instance_create(EC_BACKEND_NULL, &null_args);
- assert(desc > 0);
- assert(0 == liberasurecode_instance_destroy(desc));
- assert(liberasurecode_instance_destroy(desc) < 0);
-}
-
-static void test_encode_invalid_args()
-{
- int rc = 0;
- int desc = -1;
- int orig_data_size = 1024 * 1024;
- char *orig_data = create_buffer(orig_data_size, 'x');
- char **encoded_data = NULL, **encoded_parity = NULL;
- uint64_t encoded_fragment_len = 0;
- ec_backend_t instance = NULL;
- int (*orig_encode_func)(void *, char **, char **, int);
-
- assert(orig_data != NULL);
- rc = liberasurecode_encode(desc, orig_data, orig_data_size,
- &encoded_data, &encoded_parity, &encoded_fragment_len);
- assert(rc < 0);
-
- desc = liberasurecode_instance_create(EC_BACKEND_NULL, &null_args);
- assert(desc > 0);
-
- rc = liberasurecode_encode(desc, NULL, orig_data_size,
- &encoded_data, &encoded_parity, &encoded_fragment_len);
- assert(rc < 0);
-
- rc = liberasurecode_encode(desc, orig_data, 0,
- &encoded_data, &encoded_parity, &encoded_fragment_len);
- assert(rc < 0);
-
- rc = liberasurecode_encode(desc, orig_data, orig_data_size,
- NULL, &encoded_parity, &encoded_fragment_len);
- assert(rc < 0);
-
- rc = liberasurecode_encode(desc, orig_data, orig_data_size,
- &encoded_data, NULL, &encoded_fragment_len);
- assert(rc < 0);
-
- rc = liberasurecode_encode(desc, orig_data, orig_data_size,
- &encoded_data, &encoded_parity, NULL);
- assert(rc < 0);
-
- instance = liberasurecode_backend_instance_get_by_desc(desc);
- orig_encode_func = instance->common.ops->encode;
- instance->common.ops->encode = encode_failure_stub;
- rc = liberasurecode_encode(desc, orig_data, orig_data_size,
- &encoded_data, &encoded_parity, &encoded_fragment_len);
- assert(rc < 0);
- instance->common.ops->encode = orig_encode_func;
-
- free(orig_data);
-}
-
-static void test_encode_cleanup_invalid_args()
-{
- int rc = 0;
- int desc = -1;
- int orig_data_size = 1024 * 1024;
- char *orig_data = create_buffer(orig_data_size, 'x');
- char **encoded_data = NULL, **encoded_parity = NULL;
- uint64_t encoded_fragment_len = 0;
-
- desc = liberasurecode_instance_create(EC_BACKEND_NULL, &null_args);
- assert(desc > 0);
-
- rc = liberasurecode_encode(desc, orig_data, orig_data_size,
- &encoded_data, &encoded_parity, &encoded_fragment_len);
- assert(rc == 0);
-
- rc = liberasurecode_encode_cleanup(-1, encoded_data, encoded_parity);
- assert(rc < 0);
-
- rc = liberasurecode_encode_cleanup(desc, NULL, NULL);
- assert(rc == 0);
-
- rc = liberasurecode_encode_cleanup(desc, encoded_data, encoded_parity);
- assert(rc == 0);
- free(orig_data);
-}
-
-static void test_decode_invalid_args()
-{
- int rc = 0;
- int desc = -1;
- int orig_data_size = 1024 * 1024;
- char *orig_data = create_buffer(orig_data_size, 'x');
- char **encoded_data = NULL, **encoded_parity = NULL;
- uint64_t encoded_fragment_len = 0;
- int num_avail_frags = -1;
- char **avail_frags = NULL;
- int *skips = create_skips_array(&null_args, -1);
- char *decoded_data = NULL;
- uint64_t decoded_data_len = 0;
-
- desc = liberasurecode_instance_create(EC_BACKEND_NULL, &null_args);
- assert(desc > 0);
- rc = liberasurecode_encode(desc, orig_data, orig_data_size,
- &encoded_data, &encoded_parity, &encoded_fragment_len);
- assert(0 == rc);
-
- num_avail_frags = create_frags_array(&avail_frags, encoded_data,
- encoded_parity, &null_args, skips);
-
- rc = liberasurecode_decode(-1, avail_frags, num_avail_frags,
- encoded_fragment_len, 1,
- &decoded_data, &decoded_data_len);
- assert(rc < 0);
-
- rc = liberasurecode_decode(desc, NULL, num_avail_frags,
- encoded_fragment_len, 1,
- &decoded_data, &decoded_data_len);
- assert(rc < 0);
-
- rc = liberasurecode_decode(desc, avail_frags, num_avail_frags,
- encoded_fragment_len, 1,
- NULL, &decoded_data_len);
- assert(rc < 0);
-
- rc = liberasurecode_decode(desc, avail_frags, num_avail_frags,
- encoded_fragment_len, 1,
- &decoded_data, NULL);
- assert(rc < 0);
- free(skips);
- liberasurecode_encode_cleanup(desc, encoded_data, encoded_parity);
- free(avail_frags);
- free(orig_data);
-
-}
-
-static void test_decode_cleanup_invalid_args()
-{
- int rc = 0;
- int desc = 1;
- char *orig_data = create_buffer(1024, 'x');
-
- rc = liberasurecode_decode_cleanup(desc, orig_data);
- assert(rc < 0);
-
- desc = liberasurecode_instance_create(EC_BACKEND_NULL, &null_args);
- assert(desc > 0);
-
- rc = liberasurecode_decode_cleanup(desc, NULL);
- assert(rc == 0);
-
- free(orig_data);
-}
-
-static void test_reconstruct_fragment_invalid_args()
-{
- int rc = -1;
- int desc = 1;
- int frag_len = 10;
- char **avail_frags = malloc(sizeof(char *) * 2);
- char *out_frag = malloc(frag_len);
- int orig_data_size = 1024 * 1024;
- char *orig_data = create_buffer(orig_data_size, 'x');
- char **encoded_data = NULL, **encoded_parity = NULL;
- uint64_t encoded_fragment_len = 0;
-
- assert(avail_frags);
- assert(out_frag);
-
- rc = liberasurecode_reconstruct_fragment(desc, avail_frags, 1, frag_len, 1, out_frag);
- assert(rc < 0);
-
- desc = liberasurecode_instance_create(EC_BACKEND_NULL, &null_args);
- assert(desc > 0);
-
- rc = liberasurecode_reconstruct_fragment(desc, NULL, 1, frag_len, 1, out_frag);
- assert(rc < 0);
-
- rc = liberasurecode_reconstruct_fragment(desc, avail_frags, 1, frag_len, 1, NULL);
- assert(rc < 0);
-
- free(out_frag);
- free(avail_frags);
-
- // Test for EINSUFFFRAGS
- // we have to call encode to get fragments which have valid header.
- rc = liberasurecode_encode(desc, orig_data, orig_data_size,
- &encoded_data, &encoded_parity, &encoded_fragment_len);
- assert(rc == 0);
-
- out_frag = malloc(encoded_fragment_len);
-
- assert(out_frag != NULL);
- rc = liberasurecode_reconstruct_fragment(desc, avail_frags, 1, encoded_fragment_len, 1, out_frag);
-
- assert(rc == -EINSUFFFRAGS);
-
- free(out_frag);
- free(avail_frags);
-}
-
-static void test_fragments_needed_invalid_args()
-{
- int rc = -1;
- int desc = 1;
- int frags_to_recon = -1;
- int frags_to_exclude = -1;
- int *frags_needed= NULL;
-
- rc = liberasurecode_fragments_needed(desc, &frags_to_recon, &frags_to_exclude, frags_needed);
- assert(rc < 0);
-
- desc = liberasurecode_instance_create(EC_BACKEND_NULL, &null_args);
- assert(desc > 0);
-
- rc = liberasurecode_fragments_needed(desc, NULL, &frags_to_exclude, frags_needed);
- assert(rc < 0);
-
- rc = liberasurecode_fragments_needed(desc, &frags_to_recon, NULL, frags_needed);
- assert(rc < 0);
-
- rc = liberasurecode_fragments_needed(desc, &frags_to_recon, &frags_to_exclude, NULL);
- assert(rc < 0);
-}
-
-static void test_get_fragment_metadata_invalid_args() {
- int rc = -1;
- char *frag = malloc(1024);
- fragment_metadata_t metadata;
-
- assert(frag);
- memset(frag, 0, 1024);
- fragment_header_t *fragment_hdr = (fragment_header_t *)frag;
- fragment_hdr->magic = LIBERASURECODE_FRAG_HEADER_MAGIC;
-
-
- rc = liberasurecode_get_fragment_metadata(NULL, &metadata);
- assert(rc < 0);
-
- rc = liberasurecode_get_fragment_metadata(frag, NULL);
- assert(rc < 0);
-
- memset(frag, 0, 1024); //clears magic
- rc = liberasurecode_get_fragment_metadata(frag, &metadata);
- assert(rc < 0);
-
- free(frag);
-}
-
-static void test_verify_stripe_metadata_invalid_args() {
- int rc = -1;
- int num_frags = 6;
- int desc = -1;
- char **frags = malloc(sizeof(char *) * num_frags);
-
- rc = liberasurecode_verify_stripe_metadata(desc, frags, num_frags);
- assert(rc == -EINVALIDPARAMS);
-
- desc = liberasurecode_instance_create(EC_BACKEND_NULL, &null_args);
- assert(desc > 0);
-
- rc = liberasurecode_verify_stripe_metadata(desc, NULL, num_frags);
- assert(rc == -EINVALIDPARAMS);
-
- rc = liberasurecode_verify_stripe_metadata(desc, frags, -1);
- assert(rc == -EINVALIDPARAMS);
-
- rc = liberasurecode_verify_stripe_metadata(desc, frags, 0);
- assert(rc == -EINVALIDPARAMS);
-
-}
-
-static void test_get_fragment_partition()
-{
- int i;
- int rc = 0;
- int desc = -1;
- int orig_data_size = 1024 * 1024;
- char *orig_data = create_buffer(orig_data_size, 'x');
- char **encoded_data = NULL, **encoded_parity = NULL;
- uint64_t encoded_fragment_len = 0;
- int num_avail_frags = -1;
- char **avail_frags = NULL;
- int *skips = create_skips_array(&null_args, -1);
- int *missing;
-
- desc = liberasurecode_instance_create(EC_BACKEND_NULL, &null_args);
- assert(desc > 0);
- rc = liberasurecode_encode(desc, orig_data, orig_data_size,
- &encoded_data, &encoded_parity, &encoded_fragment_len);
- assert(0 == rc);
-
- missing = alloc_and_set_buffer(sizeof(char*) * null_args.k, -1);
-
- for(i = 0; i < null_args.m; i++) skips[i] = 1;
- num_avail_frags = create_frags_array(&avail_frags, encoded_data,
- encoded_parity, &null_args, skips);
-
- rc = get_fragment_partition(null_args.k, null_args.m, avail_frags, num_avail_frags,
- encoded_data, encoded_parity, missing);
- assert(0 == rc);
-
- for(i = 0; i < null_args.m; i++) assert(missing[i] == i);
- assert(missing[++i] == -1);
-
- free(missing);
-
- for(i = 0; i < null_args.m + 1; i++) skips[i] = 1;
- num_avail_frags = create_frags_array(&avail_frags, encoded_data,
- encoded_parity, &null_args, skips);
-
- missing = alloc_and_set_buffer(sizeof(char*) * null_args.k, -1);
- rc = get_fragment_partition(null_args.k, null_args.m, avail_frags, num_avail_frags,
- encoded_data, encoded_parity, missing);
-
- for(i = 0; i < null_args.m + 1; i++) assert(missing[i] == i);
- assert(missing[++i] == -1);
-
- assert(rc < 0);
-
- free(missing);
- free(skips);
- liberasurecode_encode_cleanup(desc, encoded_data, encoded_parity);
- free(avail_frags);
- free(orig_data);
-}
-
-static void encode_decode_test_impl(const ec_backend_id_t be_id,
- struct ec_args *args,
- int *skip)
-{
- int i = 0;
- int rc = 0;
- int desc = -1;
- int orig_data_size = 1024 * 1024;
- char *orig_data = NULL;
- char **encoded_data = NULL, **encoded_parity = NULL;
- uint64_t encoded_fragment_len = 0;
- uint64_t decoded_data_len = 0;
- char *decoded_data = NULL;
- size_t frag_header_size = sizeof(fragment_header_t);
- char **avail_frags = NULL;
- int num_avail_frags = 0;
- char *orig_data_ptr = NULL;
- int remaining = 0;
- ec_backend_t be = NULL;
-
- desc = liberasurecode_instance_create(be_id, args);
- be = liberasurecode_backend_instance_get_by_desc(desc);
-
- if (-EBACKENDNOTAVAIL == desc) {
- fprintf (stderr, "Backend library not available!\n");
- return;
- }
- assert(desc > 0);
-
- orig_data = create_buffer(orig_data_size, 'x');
- assert(orig_data != NULL);
- rc = liberasurecode_encode(desc, orig_data, orig_data_size,
- &encoded_data, &encoded_parity, &encoded_fragment_len);
- assert(0 == rc);
- orig_data_ptr = orig_data;
- remaining = orig_data_size;
- for (i = 0; i < args->k; i++)
- {
- char *frag = encoded_data[i];
- fragment_header_t *header = (fragment_header_t*)frag;
- assert(header != NULL);
- fragment_metadata_t metadata = header->meta;
- assert(metadata.idx == i);
- assert(metadata.size == encoded_fragment_len - frag_header_size - be->common.backend_metadata_size);
- assert(metadata.orig_data_size == orig_data_size);
- char *data_ptr = frag + frag_header_size;
- int cmp_size = remaining >= metadata.size ? metadata.size : remaining;
- // shss doesn't keep original data on data fragments
- if (be_id != 5) {
- assert(memcmp(data_ptr, orig_data_ptr, cmp_size) == 0);
- }
- remaining -= cmp_size;
- orig_data_ptr += metadata.size;
- }
-
- num_avail_frags = create_frags_array(&avail_frags, encoded_data,
- encoded_parity, args, skip);
- assert(num_avail_frags != -1);
- rc = liberasurecode_decode(desc, avail_frags, num_avail_frags,
- encoded_fragment_len, 1,
- &decoded_data, &decoded_data_len);
- assert(0 == rc);
- assert(decoded_data_len == orig_data_size);
- assert(memcmp(decoded_data, orig_data, orig_data_size) == 0);
-
- rc = liberasurecode_encode_cleanup(desc, encoded_data, encoded_parity);
- assert(rc == 0);
-
- rc = liberasurecode_decode_cleanup(desc, decoded_data);
- assert(rc == 0);
-
- if (desc) {
- assert(0 == liberasurecode_instance_destroy(desc));
- }
-
- free(orig_data);
- free(avail_frags);
-}
-
-static void reconstruct_test_impl(const ec_backend_id_t be_id,
- struct ec_args *args,
- int *skip)
-{
- int rc = 0;
- int desc = -1;
- int orig_data_size = 1024 * 1024;
- char *orig_data = NULL;
- char **encoded_data = NULL, **encoded_parity = NULL;
- uint64_t encoded_fragment_len = 0;
- int num_fragments = args-> k + args->m;
- char **avail_frags = NULL;
- int num_avail_frags = 0;
- int i = 0;
- char *out = NULL;
-
- desc = liberasurecode_instance_create(be_id, args);
- if (-EBACKENDNOTAVAIL == desc) {
- fprintf (stderr, "Backend library not available!\n");
- return;
- }
- assert(desc > 0);
-
- orig_data = create_buffer(orig_data_size, 'x');
- assert(orig_data != NULL);
- rc = liberasurecode_encode(desc, orig_data, orig_data_size,
- &encoded_data, &encoded_parity, &encoded_fragment_len);
- assert(rc == 0);
- num_avail_frags = create_frags_array(&avail_frags, encoded_data,
- encoded_parity, args, skip);
- out = malloc(encoded_fragment_len);
- assert(out != NULL);
- for (i = 0; i < num_fragments; i++) {
- if (skip[i] == 0) {
- continue;
- }
- char *cmp = NULL;
- if (i < args->k) {
- cmp = encoded_data[i];
- }
- else {
- cmp = encoded_parity[i - args->k];
- }
- memset(out, 0, encoded_fragment_len);
- rc = liberasurecode_reconstruct_fragment(desc, avail_frags, num_avail_frags, encoded_fragment_len, i, out);
- assert(rc == 0);
- assert(memcmp(out, cmp, encoded_fragment_len) == 0);
- }
- free(orig_data);
- free(out);
- free(avail_frags);
- liberasurecode_encode_cleanup(desc, encoded_data, encoded_parity);
-}
-
-static void test_fragments_needed_impl(const ec_backend_id_t be_id,
- struct ec_args *args)
-{
- int *fragments_to_reconstruct = NULL;
- int *fragments_to_exclude = NULL;
- int *fragments_needed = NULL;
- int *new_fragments_needed = NULL;
- int desc = liberasurecode_instance_create(be_id, args);
- int ret = -1;
- int i = 0, j = 0;
- int n = args->k + args->m;
-
- if (-EBACKENDNOTAVAIL == desc) {
- fprintf (stderr, "Backend library not available!\n");
- return;
- }
- assert(desc > 0);
-
- /*
- * ToDo (KMG): In an effort to make this test "general"
- * it makes assumptions about how reconstruction equations
- * are derived. It assumes the lowest-numbered parity
- * will be used when reconstructing a single failure.
- * This is typically true for many RS implementations,
- * since the first parity is the XOR of all data elements.
- * This is also the case for our internal flat XOR implementation.
- *
- * We will have to do something else for more complicated cases...
- *
- * Here is the gist:
- *
- * First get all of the data elements connected to the
- * first parity element. Select one of the data elements
- * as the item to reconstruct and select one not in that
- * set as the missing element. Elements needed should
- * be equal to the parity element, plus all other data
- * elements connected to it.
- *
- * Simple example with XOR code (k=10, m=5):
- *
- * p_0 = d_0 + d_1 + d_2
- * p_1 = d_0 + d_3 + d_5
- * ...
- *
- * Call to fragments_needed(desc, [0, -1], [3, -1], [])
- * should return: [10, 1, 2]
- */
- fragments_to_reconstruct = (int*)malloc(sizeof(int) * n);
- assert(fragments_to_reconstruct != NULL);
- fragments_to_exclude = (int*)malloc(sizeof(int) * n);
- assert(fragments_to_exclude != NULL);
- fragments_needed = (int*)malloc(sizeof(int) * n);
- assert(fragments_needed != NULL);
- new_fragments_needed = (int*)malloc(sizeof(int) * n);
- assert(fragments_needed != NULL);
-
- // This is the first parity element
- fragments_to_reconstruct[0] = args->k;
- fragments_to_reconstruct[1] = -1;
- fragments_to_exclude[0] = -1;
-
- ret = liberasurecode_fragments_needed(desc,
- fragments_to_reconstruct,
- fragments_to_exclude,
- fragments_needed);
- assert(ret > -1);
-
- // "Reconstruct" the first data in the parity equation
- fragments_to_reconstruct[0] = fragments_needed[0];
- fragments_to_reconstruct[1] = -1;
-
- fragments_to_exclude[0] = -1;
- // Find a proper fragment to exlcude
- for (i = 0; i < n; i++) {
- j = 1;
- while (fragments_needed[j] > -1) {
- if (fragments_needed[j] == i) {
- break;
- }
- j++;
- }
- // Found one!
- if (fragments_needed[j] == -1) {
- fragments_to_exclude[0] = i;
- fragments_to_exclude[1] = -1;
- break;
- }
- }
-
- assert(fragments_to_exclude[0] > -1);
-
- ret = liberasurecode_fragments_needed(desc,
- fragments_to_reconstruct,
- fragments_to_exclude,
- new_fragments_needed);
- assert(ret > -1);
-
- // Verify that new_fragments_needed contains the
- // first parity element and all data elements connected
- // to that parity element sans the data to reconstruct.
- i = 0;
- while (new_fragments_needed[i] > -1) {
- int is_valid_fragment = 0;
-
- // This is the first parity
- if (new_fragments_needed[i] == args->k) {
- is_valid_fragment = 1;
- } else {
- // This checks for all of the other data elements
- j = 1;
- while (fragments_needed[j] > -1) {
- if (fragments_needed[j] == new_fragments_needed[i]) {
- is_valid_fragment = 1;
- break;
- }
- j++;
- }
- }
- assert(is_valid_fragment == 1);
- i++;
- }
- free(fragments_to_reconstruct);
- free(fragments_to_exclude);
- free(fragments_needed);
- free(new_fragments_needed);
-}
-
-static void test_get_fragment_metadata(const ec_backend_id_t be_id, struct ec_args *args)
-{
- int i = 0;
- int rc = 0;
- int desc = -1;
- int orig_data_size = 1024 * 1024;
- char *orig_data = NULL;
- char **encoded_data = NULL, **encoded_parity = NULL;
- int num_fragments = args-> k + args->m;
- uint64_t encoded_fragment_len = 0;
- fragment_metadata_t cur_frag;
- fragment_metadata_t cmp_frag;
- ec_backend_id_t rtv_be_id = -1;
- uint32_t be_version = 0;
- ec_backend_t be = NULL;
-
- desc = liberasurecode_instance_create(be_id, args);
- if (-EBACKENDNOTAVAIL == desc) {
- fprintf (stderr, "Backend library not available!\n");
- return;
- }
- assert(desc > 0);
- be = liberasurecode_backend_instance_get_by_desc(desc);
- assert(be != NULL);
-
- orig_data = create_buffer(orig_data_size, 'x');
- assert(orig_data != NULL);
-
- rc = liberasurecode_encode(desc, orig_data, orig_data_size,
- &encoded_data, &encoded_parity, &encoded_fragment_len);
- assert(0 == rc);
-
- memset(&cmp_frag, -1, sizeof(fragment_metadata_t));
-
- for (i = 0; i < num_fragments; i++) {
- char * data = NULL;
- uint32_t ver = 0;
- char *header = NULL;
- memset(&cur_frag, -1, sizeof(fragment_metadata_t));
- if (i < args->k) {
- rc = liberasurecode_get_fragment_metadata(encoded_data[i], &cur_frag);
- data = get_data_ptr_from_fragment(encoded_data[i]);
- header = encoded_data[i];
- } else {
- rc = liberasurecode_get_fragment_metadata(encoded_parity[i - args->k], &cur_frag);
- data = get_data_ptr_from_fragment(encoded_parity[i - args->k]);
- header = encoded_parity[i - args->k];
- }
- assert(rc == 0);
- assert(cur_frag.orig_data_size == orig_data_size);
- assert(cur_frag.size != 0);
- assert(cur_frag.chksum_type == args->ct);
- validate_fragment_checksum(args, &cur_frag, data);
- rc = memcmp(&cur_frag, &cmp_frag, sizeof(fragment_metadata_t));
- assert(rc != 0);
- rc = get_libec_version(header, &ver);
- assert(rc == 0);
- assert(ver == LIBERASURECODE_VERSION);
- rc = get_backend_id(header, &rtv_be_id);
- assert(rc == 0);
- assert(rtv_be_id == be_id);
- rc = get_backend_version(header, &be_version);
- assert(rc == 0);
- assert(be_version == be->common.ec_backend_version);
- }
- liberasurecode_encode_cleanup(desc, encoded_data, encoded_parity);
- free(orig_data);
-}
-
-static void test_decode_with_missing_data(const ec_backend_id_t be_id,
- struct ec_args *args)
-{
- int i;
- int *skip = create_skips_array(args, -1);
- assert(skip != NULL);
- for (i = 0; i < args->k; i++)
- {
- skip[i] = 1;
- encode_decode_test_impl(be_id, args, skip);
- skip[i] = 0;
- }
- free(skip);
-}
-
-static void test_decode_with_missing_parity(const ec_backend_id_t be_id,
- struct ec_args *args)
-{
- int i;
- int *skip = create_skips_array(args,args->k);
- assert(skip != NULL);
- for (i = args->k; i < args->m; i++)
- {
- skip[i] = 1;
- encode_decode_test_impl(be_id, args, skip);
- skip[i] = 0;
- }
- free(skip);
-}
-
-static void test_decode_with_missing_multi_data(const ec_backend_id_t be_id,
- struct ec_args *args)
-{
- int max_num_missing = args->hd - 1;
- int i,j;
- for (i = 0; i < args->k - max_num_missing + 1; i++) {
- int *skip = create_skips_array(args,-1);
- assert(skip != NULL);
- for (j = i; j < i + max_num_missing; j++) {
- skip[j]=1;
- }
- encode_decode_test_impl(be_id, args, skip);
- free(skip);
- }
-}
-
-static void test_decode_with_missing_multi_parity(const ec_backend_id_t be_id,
- struct ec_args *args)
-{
- int i,j;
- int max_num_missing = args->hd - 1;
- for (i = args->k; i < args->k + args->m - max_num_missing + 1; i++) {
- int *skip = create_skips_array(args,-1);
- assert(skip != NULL);
- for (j = i; j < i + max_num_missing; j++) {
- skip[j]=1;
- }
- encode_decode_test_impl(be_id, args, skip);
- free(skip);
- }
-}
-
-static void test_decode_with_missing_multi_data_parity(
- const ec_backend_id_t be_id, struct ec_args *args)
-{
- int i,j;
- int max_num_missing = args->hd - 1;
- int start = args->k - max_num_missing + 1;
- for (i = start; i < start + max_num_missing -1; i++) {
- int *skip = create_skips_array(args,-1);
- assert(skip != NULL);
- for (j = i; j < i + max_num_missing; j++) {
- skip[j]=1;
- }
- encode_decode_test_impl(be_id, args, skip);
- free(skip);
- }
-}
-
-static void test_simple_encode_decode(const ec_backend_id_t be_id,
- struct ec_args *args)
-{
- int *skip = create_skips_array(args,-1);
- assert(skip != NULL);
- encode_decode_test_impl(be_id, args, skip);
- free(skip);
-}
-
-static void test_simple_reconstruct(const ec_backend_id_t be_id,
- struct ec_args *args)
-{
- int i = 0;
- for (i = 0; i < args->k + args->m; i++) {
- int *skip = create_skips_array(args,i);
- assert(skip != NULL);
- reconstruct_test_impl(be_id, args, skip);
- free(skip);
- }
-}
-
-static void test_fragments_needed(const ec_backend_id_t be_id,
- struct ec_args *args)
-{
- test_fragments_needed_impl(be_id, args);
-}
-
-static void test_verify_stripe_metadata(const ec_backend_id_t be_id,
- struct ec_args *args)
-{
- int orig_data_size = 1024;
- char **encoded_data = NULL, **encoded_parity = NULL;
- char **avail_frags = NULL;
- uint64_t encoded_fragment_len = 0;
- int rc = -1;
- int num_avail_frags = -1;
- int *skip = create_skips_array(args,-1);
- char *orig_data = create_buffer(orig_data_size, 'x');
- int desc = liberasurecode_instance_create(be_id, args);
-
- if (-EBACKENDNOTAVAIL == desc) {
- fprintf (stderr, "Backend library not available!\n");
- return;
- }
- assert(desc > 0);
-
- assert(orig_data != NULL);
- rc = liberasurecode_encode(desc, orig_data, orig_data_size,
- &encoded_data, &encoded_parity, &encoded_fragment_len);
- assert(0 == rc);
-
- num_avail_frags = create_frags_array(&avail_frags, encoded_data,
- encoded_parity, args, skip);
-
- rc = liberasurecode_verify_stripe_metadata(desc, avail_frags,
- num_avail_frags);
- assert(0 == rc);
-
- liberasurecode_encode_cleanup(desc, encoded_data, encoded_parity);
- free(orig_data);
- free(skip);
-}
-
-static void verify_fragment_metadata_mismatch_impl(const ec_backend_id_t be_id, struct ec_args *args,
- fragment_mismatch_scenario_t scenario)
-{
- int orig_data_size = 1024;
- char **encoded_data = NULL, **encoded_parity = NULL;
- char **avail_frags = NULL;
- uint64_t encoded_fragment_len = 0;
- int rc = -1;
- int num_avail_frags = -1;
- int i = 0;
- uint32_t orig_libec_ver = 0;
- uint32_t orig_be_ver = 0;
- uint8_t orig_be_id = 0;
- int *skip = create_skips_array(args,-1);
- char *orig_data = create_buffer(orig_data_size, 'x');
- int desc = liberasurecode_instance_create(be_id, args);
-
- if (-EBACKENDNOTAVAIL == desc) {
- fprintf (stderr, "Backend library not available!\n");
- return;
- }
- assert(desc > 0);
- assert(orig_data != NULL);
- rc = liberasurecode_encode(desc, orig_data, orig_data_size,
- &encoded_data, &encoded_parity, &encoded_fragment_len);
- assert(0 == rc);
- num_avail_frags = create_frags_array(&avail_frags, encoded_data,
- encoded_parity, args, skip);
- for (i = 0; i < num_avail_frags; i++) {
- char * cur_frag = avail_frags[i];
- //corrupt fragment
- switch (scenario) {
- case LIBEC_VERSION_MISMATCH:
- orig_libec_ver = ((fragment_header_t*)cur_frag)->libec_version;
- ((fragment_header_t*)cur_frag)->libec_version = orig_libec_ver + 1;
- break;
- case MAGIC_MISMATCH:
- ((fragment_header_t*)cur_frag)->magic = 0;
- break;
- case BACKEND_ID_MISMATCH:
- orig_be_id = ((fragment_header_t*)cur_frag)->meta.backend_id;
- ((fragment_header_t*)cur_frag)->meta.backend_id = orig_be_id + 1;
- break;
- case BACKEND_VERSION_MISMATCH:
- orig_be_ver = ((fragment_header_t*)cur_frag)->meta.backend_version;
- ((fragment_header_t*)cur_frag)->meta.backend_version = orig_be_ver + 1;
- break;
- default:
- assert(false);
- }
- rc = is_invalid_fragment(desc, avail_frags[i]);
- assert(rc == 1);
- //heal fragment
- switch (scenario) {
- case LIBEC_VERSION_MISMATCH:
- ((fragment_header_t*)cur_frag)->libec_version = orig_libec_ver;
- break;
- case MAGIC_MISMATCH:
- ((fragment_header_t*)cur_frag)->magic = LIBERASURECODE_FRAG_HEADER_MAGIC;
- break;
- case BACKEND_ID_MISMATCH:
- ((fragment_header_t*)cur_frag)->meta.backend_id = orig_be_id;
- break;
- case BACKEND_VERSION_MISMATCH:
- ((fragment_header_t*)cur_frag)->meta.backend_version = orig_be_ver;
- break;
- default:
- break;
- }
- }
- liberasurecode_encode_cleanup(desc, encoded_data, encoded_parity);
- free(orig_data);
- free(skip);
-}
-static void test_verify_stripe_metadata_libec_mismatch(
- const ec_backend_id_t be_id, struct ec_args *args)
-{
- verify_fragment_metadata_mismatch_impl(be_id, args, LIBEC_VERSION_MISMATCH);
-}
-
-static void test_verify_stripe_metadata_magic_mismatch(
- const ec_backend_id_t be_id, struct ec_args *args)
-{
- verify_fragment_metadata_mismatch_impl(be_id, args, MAGIC_MISMATCH);
-}
-
-static void test_verify_stripe_metadata_be_id_mismatch(
- const ec_backend_id_t be_id, struct ec_args *args)
-{
- verify_fragment_metadata_mismatch_impl(be_id, args, BACKEND_ID_MISMATCH);
-}
-
-static void test_verify_stripe_metadata_be_ver_mismatch(
- const ec_backend_id_t be_id, struct ec_args *args)
-{
- verify_fragment_metadata_mismatch_impl(be_id, args, BACKEND_VERSION_MISMATCH);
-}
-
-
-//static void test_verify_str
-
-struct testcase testcases[] = {
- {"test_create_backend_invalid_args",
- test_create_backend_invalid_args,
- EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
- .skip = false},
- {"test_create_backend_invalid_args",
- test_destroy_backend_invalid_args,
- EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
- .skip = false},
- {"test_encode_invalid_args",
- test_encode_invalid_args,
- EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
- .skip = false},
- {"test_encode_cleanup_invalid_args",
- test_encode_cleanup_invalid_args,
- EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
- .skip = false},
- {"test_decode_invalid_args",
- test_decode_invalid_args,
- EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
- .skip = false},
- {"test_decode_cleanup_invalid_args",
- test_decode_cleanup_invalid_args,
- EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
- .skip = false},
- {"test_reconstruct_fragment_invalid_args",
- test_reconstruct_fragment_invalid_args,
- EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
- .skip = false},
- {"test_get_fragment_metadata_invalid_args",
- test_get_fragment_metadata_invalid_args,
- EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
- .skip = false},
- {"test_verify_stripe_metadata_invalid_args",
- test_verify_stripe_metadata_invalid_args,
- EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
- .skip = false},
- {"test_fragments_needed_invalid_args",
- test_fragments_needed_invalid_args,
- EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
- .skip = false},
- {"test_get_fragment_partition",
- test_get_fragment_partition,
- EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
- .skip = false},
- // NULL backend test
- {"create_and_destroy_backend",
- test_create_and_destroy_backend,
- EC_BACKEND_NULL, CHKSUM_NONE,
- .skip = false},
- {"simple_encode_null",
- test_simple_encode_decode,
- EC_BACKEND_NULL, CHKSUM_NONE,
- .skip = false},
- {"test_get_fragment_metadata",
- test_get_fragment_metadata,
- EC_BACKEND_NULL, CHKSUM_NONE,
- .skip = false},
- // Flat XOR backend tests
- {"create_and_destroy_backend",
- test_create_and_destroy_backend,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
- .skip = false},
- {"simple_encode_flat_xor_hd",
- test_simple_encode_decode,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_data_flat_xor_hd",
- test_decode_with_missing_data,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_parity_flat_xor_hd",
- test_decode_with_missing_parity,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_multi_data_flat_xor_hd",
- test_decode_with_missing_multi_data,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_multi_parity_flat_xor_hd",
- test_decode_with_missing_multi_parity,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
- .skip = false},
- {"test_decode_with_missing_multi_data_parity_flat_xor_hd",
- test_decode_with_missing_multi_data_parity,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
- .skip = false},
- {"simple_reconstruct_flat_xor_hd",
- test_simple_reconstruct,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
- .skip = false},
- {"test_fragments_needed_flat_xor_hd",
- test_fragments_needed,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
- .skip = false},
- {"test_get_fragment_metadata_flat_xor_hd",
- test_get_fragment_metadata,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
- .skip = false},
- {"test_get_fragment_metadata_flat_xor_hd_crc32",
- test_get_fragment_metadata,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata",
- test_verify_stripe_metadata,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_libec_mismatch",
- test_verify_stripe_metadata_libec_mismatch,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_magic_mismatch",
- test_verify_stripe_metadata_magic_mismatch,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_be_id_mismatch",
- test_verify_stripe_metadata_be_id_mismatch,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_be_ver_mismatch",
- test_verify_stripe_metadata_be_ver_mismatch,
- EC_BACKEND_FLAT_XOR_HD, CHKSUM_CRC32,
- .skip = false},
- // Jerasure RS Vand backend tests
- {"create_and_destroy_backend",
- test_create_and_destroy_backend,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"simple_encode_jerasure_rs_vand",
- test_simple_encode_decode,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_data_jerasure_rs_vand",
- test_decode_with_missing_data,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_multi_data_jerasure_rs_vand",
- test_decode_with_missing_multi_data,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_multi_parity_jerasure_rs_vand",
- test_decode_with_missing_multi_parity,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"test_decode_with_missing_multi_data_parity_jerasure_rs_vand",
- test_decode_with_missing_multi_data_parity,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"simple_reconstruct_jerasure_rs_vand",
- test_simple_reconstruct,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"test_fragments_needed_jerasure_rs_vand",
- test_fragments_needed,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"test_get_fragment_metadata_jerasure_rs_vand",
- test_get_fragment_metadata,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"test_get_fragment_metadata_jerasure_rs_vand_crc32",
- test_get_fragment_metadata,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata",
- test_verify_stripe_metadata,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_libec_mismatch",
- test_verify_stripe_metadata_libec_mismatch,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_magic_mismatch",
- test_verify_stripe_metadata_magic_mismatch,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_be_id_mismatch",
- test_verify_stripe_metadata_be_id_mismatch,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_be_ver_mismatch",
- test_verify_stripe_metadata_be_ver_mismatch,
- EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
- .skip = false},
- // Jerasure RS Cauchy backend tests
- {"create_and_destroy_backend",
- test_create_and_destroy_backend,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
- .skip = false},
- {"simple_encode_jerasure_rs_cauchy",
- test_simple_encode_decode,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_data_jerasure_rs_cauchy",
- test_decode_with_missing_data,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_multi_data_jerasure_rs_cauchy",
- test_decode_with_missing_multi_data,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_multi_parity_jerasure_rs_cauchy",
- test_decode_with_missing_multi_parity,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_multi_data_parity_jerasure_rs_cauchy",
- test_decode_with_missing_multi_data_parity,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
- .skip = false},
- {"simple_reconstruct_jerasure_rs_cauchy",
- test_simple_reconstruct,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
- .skip = false},
- {"test_fragments_needed_jerasure_rs_cauchy",
- test_fragments_needed,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
- .skip = false},
- {"test_get_fragment_metadata_jerasure_rs_cauchy",
- test_get_fragment_metadata,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
- .skip = false},
- {"test_get_fragment_metadata_jerasure_rs_cauchy_crc32",
- test_get_fragment_metadata,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata",
- test_verify_stripe_metadata,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_libec_mismatch",
- test_verify_stripe_metadata_libec_mismatch,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_magic_mismatch",
- test_verify_stripe_metadata_magic_mismatch,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_be_id_mismatch",
- test_verify_stripe_metadata_be_id_mismatch,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_be_ver_mismatch",
- test_verify_stripe_metadata_be_ver_mismatch,
- EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_CRC32,
- .skip = false},
- // ISA-L tests
- {"create_and_destroy_backend",
- test_create_and_destroy_backend,
- EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"simple_encode_isa_l",
- test_simple_encode_decode,
- EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_data_isa_l",
- test_decode_with_missing_data,
- EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_multi_data_isa_l",
- test_decode_with_missing_multi_data,
- EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_multi_parity_isa_l",
- test_decode_with_missing_multi_parity,
- EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"test_decode_with_missing_multi_data_parity_isa_l",
- test_decode_with_missing_multi_data_parity,
- EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"simple_reconstruct_isa_l",
- test_simple_reconstruct,
- EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"test_fragments_needed_isa_l",
- test_fragments_needed,
- EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"test_get_fragment_metadata_isa_l",
- test_get_fragment_metadata,
- EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
- .skip = false},
- {"test_verify_stripe_metadata",
- test_verify_stripe_metadata,
- EC_BACKEND_ISA_L_RS_VAND, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_libec_mismatch",
- test_verify_stripe_metadata_libec_mismatch,
- EC_BACKEND_ISA_L_RS_VAND, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_magic_mismatch",
- test_verify_stripe_metadata_magic_mismatch,
- EC_BACKEND_ISA_L_RS_VAND, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_be_id_mismatch",
- test_verify_stripe_metadata_be_id_mismatch,
- EC_BACKEND_ISA_L_RS_VAND, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_be_ver_mismatch",
- test_verify_stripe_metadata_be_ver_mismatch,
- EC_BACKEND_ISA_L_RS_VAND, CHKSUM_CRC32,
- .skip = false},
- // shss tests
- {"create_and_destroy_backend",
- test_create_and_destroy_backend,
- EC_BACKEND_SHSS, CHKSUM_NONE,
- .skip = false},
- {"simple_encode_shss",
- test_simple_encode_decode,
- EC_BACKEND_SHSS, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_data_shss",
- test_decode_with_missing_data,
- EC_BACKEND_SHSS, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_multi_data_shss",
- test_decode_with_missing_multi_data,
- EC_BACKEND_SHSS, CHKSUM_NONE,
- .skip = false},
- {"decode_with_missing_multi_parity_shss",
- test_decode_with_missing_multi_parity,
- EC_BACKEND_SHSS, CHKSUM_NONE,
- .skip = false},
- {"test_decode_with_missing_multi_data_parity_shss",
- test_decode_with_missing_multi_data_parity,
- EC_BACKEND_SHSS, CHKSUM_NONE,
- .skip = false},
- {"simple_reconstruct_shss",
- test_simple_reconstruct,
- EC_BACKEND_SHSS, CHKSUM_NONE,
- .skip = false},
- {"test_fragments_needed_shss",
- test_fragments_needed,
- EC_BACKEND_SHSS, CHKSUM_NONE,
- .skip = false},
- {"test_get_fragment_metadata_shss",
- test_get_fragment_metadata,
- EC_BACKEND_SHSS, CHKSUM_NONE,
- .skip = false},
- {"test_verify_stripe_metadata",
- test_verify_stripe_metadata,
- EC_BACKEND_SHSS, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_libec_mismatch",
- test_verify_stripe_metadata_libec_mismatch,
- EC_BACKEND_SHSS, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_magic_mismatch",
- test_verify_stripe_metadata_magic_mismatch,
- EC_BACKEND_SHSS, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_be_id_mismatch",
- test_verify_stripe_metadata_be_id_mismatch,
- EC_BACKEND_SHSS, CHKSUM_CRC32,
- .skip = false},
- {"test_verify_stripe_metadata_be_ver_mismatch",
- test_verify_stripe_metadata_be_ver_mismatch,
- EC_BACKEND_SHSS, CHKSUM_CRC32,
- .skip = false},
- { NULL, NULL, 0, 0, false },
-};
-
-int main(int argc, char **argv)
-{
- int ii = 0, num_cases = 0;
-
- for (num_cases = 0; testcases[num_cases].description; num_cases++) {
- /* Just counting */
- }
-
- printf("1..%d\n", num_cases);
-
- for (ii = 0; testcases[ii].description != NULL; ++ii) {
- const char *testname = get_name_from_backend_id(testcases[ii].be_id);
- fflush(stdout);
- if (testcases[ii].skip) {
- fprintf(stdout, "ok # SKIP %d - %s: %s\n", ii + 1,
- testcases[ii].description,
- (testname) ? testname : "");
- continue;
- }
- struct ec_args *args = create_ec_args(testcases[ii].be_id, testcases[ii].ct);
- testcases[ii].function(testcases[ii].be_id, args);
- fprintf(stdout, "ok %d - %s: %s\n", ii + 1,
- testcases[ii].description,
- (testname) ? testname : "");
- fflush(stdout);
- free(args);
- }
- return 0;
-}
diff --git a/src/c/liberasurecode/test/utils/chksum/test_alg_sig.c b/src/c/liberasurecode/test/utils/chksum/test_alg_sig.c
deleted file mode 100644
index 09c9111..0000000
--- a/src/c/liberasurecode/test/utils/chksum/test_alg_sig.c
+++ /dev/null
@@ -1,263 +0,0 @@
-/* * Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com)
- * 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. 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 HOLDER 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.
- */
-
-#include "alg_sig.h"
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-
-// Max is 8 bytes right now (64-bits)
-#define MAX_SIG_LEN 8
-
-void fill_random_buffer(char *buf, int size)
-{
- int i;
-
- for (i=0; i < size; i++) {
- buf[i] = (char)(rand() % 256);
- }
-}
-
-void compute_parity(char **data, char* parity, int num_data, int size)
-{
- int i, j;
-
- bzero(parity, size);
-
- for (i=0; i < num_data; i++) {
- for (j=0; j < size; j++) {
- parity[j] ^= data[i][j];
- }
- }
-}
-
-int check_parity_of_sigs(char **sigs, int num_data, int size)
-{
- int i, j;
- int ret = 0;
- char *parity_sig = (char*)malloc(MAX_SIG_LEN);
-
- bzero(parity_sig, MAX_SIG_LEN);
-
- for (i=0; i < num_data; i++) {
- for (j=0; j < MAX_SIG_LEN; j++) {
- parity_sig[j] ^= sigs[i][j];
- }
- }
-
- if (memcmp(parity_sig, sigs[num_data], MAX_SIG_LEN) != 0) {
- fprintf(stderr, "Signatures do not match:\n");
- for (i=0; i < MAX_SIG_LEN; i++) {
- fprintf(stderr, "parity_sig[%d] = 0x%x, sigs[%d][%d] = 0x%x\n", i, parity_sig[i], num_data, i, sigs[num_data][i]);
- }
- ret = 1;
- }
-
- free(parity_sig);
-
- return ret;
-}
-
-static int basic_xor_test_8_32()
-{
- int blocksize = 65536;
- int num_data = 12;
- char **data;
- char *parity;
- char **sigs;
- int i;
- int ret = 0;
-
- alg_sig_t* sig_handle = init_alg_sig(32, 8);
- if (NULL == sig_handle) {
- goto out;
- }
- data = (char**)malloc(sizeof(char*) * num_data);
- sigs = (char**)malloc(sizeof(char*) * (num_data + 1));
- for (i=0; i < num_data; i++) {
- data[i] = (char*)malloc(sizeof(char)*blocksize);
- fill_random_buffer(data[i], blocksize);
- sigs[i] = (char*)malloc(MAX_SIG_LEN);
-
- }
- parity = (char*)malloc(sizeof(char)*blocksize);
- sigs[i] = (char*)malloc(MAX_SIG_LEN);
-
- compute_parity(data, parity, num_data, blocksize);
-
- for (i=0; i < num_data; i++) {
- bzero(sigs[i], MAX_SIG_LEN);
- compute_alg_sig(sig_handle, data[i], blocksize, sigs[i]);
- }
- bzero(sigs[i], MAX_SIG_LEN);
- compute_alg_sig(sig_handle, parity, blocksize, sigs[i]);
-
- ret = check_parity_of_sigs(sigs, num_data, blocksize);
-
- for (i=0; i < num_data; i++) {
- free(data[i]);
- free(sigs[i]);
- }
-
- free(parity);
- free(sigs[num_data]);
- free(sigs);
- free(data);
- destroy_alg_sig(sig_handle);
-
-out:
- return ret;
-}
-
-static int basic_xor_test_16_64()
-{
- int blocksize = 65536;
- int num_data = 12;
- char **data;
- char *parity;
- char **sigs;
- int i;
- int ret = 0;
-
- alg_sig_t* sig_handle = init_alg_sig(64, 16);
- if (NULL == sig_handle) {
- goto out;
- }
-
- data = (char**)malloc(sizeof(char*) * num_data);
- sigs = (char**)malloc(sizeof(char*) * (num_data + 1));
- for (i=0; i < num_data; i++) {
- data[i] = (char*)malloc(sizeof(char)*blocksize);
- fill_random_buffer(data[i], blocksize);
- sigs[i] = (char*)malloc(MAX_SIG_LEN);
- }
- parity = (char*)malloc(sizeof(char)*blocksize);
- sigs[i] = (char*)malloc(MAX_SIG_LEN);
-
- compute_parity(data, parity, num_data, blocksize);
-
- for (i=0; i < num_data; i++) {
- bzero(sigs[i], MAX_SIG_LEN);
- compute_alg_sig(sig_handle, data[i], blocksize, sigs[i]);
- }
- bzero(sigs[i], MAX_SIG_LEN);
- compute_alg_sig(sig_handle, parity, blocksize, sigs[i]);
-
- ret = check_parity_of_sigs(sigs, num_data, blocksize);
-
- for (i=0; i < num_data; i++) {
- free(data[i]);
- free(sigs[i]);
- }
-
- free(parity);
- free(sigs[num_data]);
- free(sigs);
- free(data);
- destroy_alg_sig(sig_handle);
-
-out:
- return ret;
-}
-
-static int basic_xor_test_16_32()
-{
- int blocksize = 65536;
- int num_data = 12;
- char **data;
- char *parity;
- char **sigs;
- int i;
- int ret = 0;
-
- alg_sig_t* sig_handle = init_alg_sig(32, 16);
- if (NULL == sig_handle) {
- goto out;
- }
- data = (char**)malloc(sizeof(char*) * num_data);
- sigs = (char**)malloc(sizeof(char*) * (num_data + 1));
- for (i=0; i < num_data; i++) {
- data[i] = (char*)malloc(sizeof(char)*blocksize);
- fill_random_buffer(data[i], blocksize);
- sigs[i] = (char*)malloc(MAX_SIG_LEN);
-
- }
- parity = (char*)malloc(sizeof(char)*blocksize);
- sigs[i] = (char*)malloc(MAX_SIG_LEN);
-
- compute_parity(data, parity, num_data, blocksize);
-
- for (i=0; i < num_data; i++) {
- bzero(sigs[i], MAX_SIG_LEN);
- compute_alg_sig(sig_handle, data[i], blocksize, sigs[i]);
- }
- bzero(sigs[i], MAX_SIG_LEN);
- compute_alg_sig(sig_handle, parity, blocksize, sigs[i]);
-
- ret = check_parity_of_sigs(sigs, num_data, blocksize);
-
- for (i=0; i < num_data; i++) {
- free(data[i]);
- free(sigs[i]);
- }
-
- free(parity);
- free(sigs[num_data]);
- free(sigs);
- free(data);
- destroy_alg_sig(sig_handle);
-
-out:
- return ret;
-}
-
-int main(int argc, char**argv)
-{
- int ret;
- int num_failed = 0;
-
- srand(time(NULL));
-
- ret = basic_xor_test_16_32();
- if (ret) {
- fprintf(stderr, "basic_xor_test_16_32 has failed!\n");
- num_failed++;
- }
- ret = basic_xor_test_16_64();
- if (ret) {
- fprintf(stderr, "basic_xor_test_16_64 has failed!\n");
- num_failed++;
- }
- ret = basic_xor_test_8_32();
- if (ret) {
- fprintf(stderr, "basic_xor_test_8_32 has failed!\n");
- num_failed++;
- }
-
- if (num_failed == 0) {
- fprintf(stderr, "Tests pass!!!\n");
- }
- return num_failed;
-}