From 78b590d61483c6578d582af2b996a03cb51fe864 Mon Sep 17 00:00:00 2001 From: saq10002 Date: Sat, 25 Oct 2014 22:37:24 -0400 Subject: [PATCH] Initial commit Signed-off-by: saq10002 --- .gitignore | 4 + Makefile | 37 + README | 4 + common.h | 101 + ds.DynamicBitset.cpp | 17 + ds.DynamicBitset.h | 382 + ds.DynamicBitset.test.h | 390 + dynamicbitset_test | Bin 0 -> 865792 bytes dynamicbitset_test.cpp | 20 + gtest-1.7.0/CHANGES | 157 + gtest-1.7.0/CMakeLists.txt | 252 + gtest-1.7.0/CONTRIBUTORS | 37 + gtest-1.7.0/LICENSE | 28 + gtest-1.7.0/Makefile | 1360 ++ gtest-1.7.0/Makefile.am | 306 + gtest-1.7.0/Makefile.in | 1360 ++ gtest-1.7.0/README | 435 + gtest-1.7.0/aclocal.m4 | 1198 + gtest-1.7.0/build-aux/config.guess | 1530 ++ gtest-1.7.0/build-aux/config.h | 70 + gtest-1.7.0/build-aux/config.h.in | 69 + gtest-1.7.0/build-aux/config.sub | 1773 ++ gtest-1.7.0/build-aux/depcomp | 688 + gtest-1.7.0/build-aux/install-sh | 527 + gtest-1.7.0/build-aux/ltmain.sh | 9661 ++++++++ gtest-1.7.0/build-aux/missing | 331 + gtest-1.7.0/build-aux/stamp-h1 | 1 + gtest-1.7.0/cmake/internal_utils.cmake | 227 + gtest-1.7.0/codegear/gtest.cbproj | 138 + gtest-1.7.0/codegear/gtest.groupproj | 54 + gtest-1.7.0/codegear/gtest_all.cc | 38 + gtest-1.7.0/codegear/gtest_link.cc | 40 + gtest-1.7.0/codegear/gtest_main.cbproj | 82 + gtest-1.7.0/codegear/gtest_unittest.cbproj | 88 + gtest-1.7.0/config.log | 970 + gtest-1.7.0/config.status | 2296 ++ gtest-1.7.0/configure | 18222 ++++++++++++++++ gtest-1.7.0/configure.ac | 68 + gtest-1.7.0/include/gtest/gtest-death-test.h | 294 + gtest-1.7.0/include/gtest/gtest-message.h | 250 + gtest-1.7.0/include/gtest/gtest-param-test.h | 1421 ++ .../include/gtest/gtest-param-test.h.pump | 487 + gtest-1.7.0/include/gtest/gtest-printers.h | 855 + gtest-1.7.0/include/gtest/gtest-spi.h | 232 + gtest-1.7.0/include/gtest/gtest-test-part.h | 179 + gtest-1.7.0/include/gtest/gtest-typed-test.h | 259 + gtest-1.7.0/include/gtest/gtest.h | 2291 ++ gtest-1.7.0/include/gtest/gtest_pred_impl.h | 358 + gtest-1.7.0/include/gtest/gtest_prod.h | 58 + .../internal/gtest-death-test-internal.h | 319 + .../include/gtest/internal/gtest-filepath.h | 206 + .../include/gtest/internal/gtest-internal.h | 1158 + .../include/gtest/internal/gtest-linked_ptr.h | 233 + .../internal/gtest-param-util-generated.h | 5143 +++++ .../gtest-param-util-generated.h.pump | 301 + .../include/gtest/internal/gtest-param-util.h | 619 + .../include/gtest/internal/gtest-port.h | 1947 ++ .../include/gtest/internal/gtest-string.h | 167 + .../include/gtest/internal/gtest-tuple.h | 1012 + .../include/gtest/internal/gtest-tuple.h.pump | 339 + .../include/gtest/internal/gtest-type-util.h | 3331 +++ .../gtest/internal/gtest-type-util.h.pump | 297 + gtest-1.7.0/lib/.dirstamp | 0 gtest-1.7.0/lib/.libs/libgtest.a | Bin 0 -> 3301202 bytes gtest-1.7.0/lib/.libs/libgtest.la | 1 + gtest-1.7.0/lib/.libs/libgtest.lai | 41 + gtest-1.7.0/lib/.libs/libgtest.so | 1 + gtest-1.7.0/lib/.libs/libgtest.so.0 | 1 + gtest-1.7.0/lib/.libs/libgtest.so.0.0.0 | Bin 0 -> 1732510 bytes gtest-1.7.0/lib/.libs/libgtest_main.a | Bin 0 -> 257316 bytes gtest-1.7.0/lib/.libs/libgtest_main.la | 1 + gtest-1.7.0/lib/.libs/libgtest_main.lai | 41 + gtest-1.7.0/lib/.libs/libgtest_main.so | 1 + gtest-1.7.0/lib/.libs/libgtest_main.so.0 | 1 + gtest-1.7.0/lib/.libs/libgtest_main.so.0.0.0 | Bin 0 -> 140669 bytes gtest-1.7.0/lib/libgtest.la | 41 + gtest-1.7.0/lib/libgtest_main.la | 42 + gtest-1.7.0/libgtest.a | Bin 0 -> 1294210 bytes gtest-1.7.0/libtool | 10246 +++++++++ gtest-1.7.0/m4/acx_pthread.m4 | 363 + gtest-1.7.0/m4/gtest.m4 | 74 + gtest-1.7.0/m4/libtool.m4 | 8001 +++++++ gtest-1.7.0/m4/ltoptions.m4 | 384 + gtest-1.7.0/m4/ltsugar.m4 | 123 + gtest-1.7.0/m4/ltversion.m4 | 23 + gtest-1.7.0/make/Makefile | 82 + gtest-1.7.0/msvc/gtest-md.sln | 45 + gtest-1.7.0/msvc/gtest-md.vcproj | 126 + gtest-1.7.0/msvc/gtest.sln | 45 + gtest-1.7.0/msvc/gtest.vcproj | 126 + gtest-1.7.0/msvc/gtest_main-md.vcproj | 129 + gtest-1.7.0/msvc/gtest_main.vcproj | 129 + gtest-1.7.0/msvc/gtest_prod_test-md.vcproj | 164 + gtest-1.7.0/msvc/gtest_prod_test.vcproj | 164 + gtest-1.7.0/msvc/gtest_unittest-md.vcproj | 147 + gtest-1.7.0/msvc/gtest_unittest.vcproj | 147 + gtest-1.7.0/nbproject/configurations.xml | 82 + .../CodeAssistancePathMapper.properties | 1 + .../nbproject/private/Default-build.log | 49 + .../nbproject/private/Default-exec.log | 419 + .../nbproject/private/Default.properties | 5 + .../nbproject/private/configurations.xml | 208 + .../nbproject/private/launcher.properties | 40 + gtest-1.7.0/nbproject/private/private.xml | 10 + gtest-1.7.0/nbproject/project.xml | 26 + gtest-1.7.0/samples/.deps/.dirstamp | 0 gtest-1.7.0/samples/.deps/sample1.Plo | 3 + .../samples/.deps/sample10_unittest.Po | 1 + gtest-1.7.0/samples/.deps/sample1_unittest.Po | 1 + gtest-1.7.0/samples/.deps/sample2.Plo | 29 + gtest-1.7.0/samples/.deps/sample4.Plo | 47 + gtest-1.7.0/samples/.dirstamp | 0 gtest-1.7.0/samples/.libs/libsamples.a | Bin 0 -> 102400 bytes gtest-1.7.0/samples/.libs/libsamples.la | 1 + gtest-1.7.0/samples/libsamples.la | 41 + gtest-1.7.0/samples/prime_tables.h | 123 + gtest-1.7.0/samples/sample1.cc | 68 + gtest-1.7.0/samples/sample1.h | 43 + gtest-1.7.0/samples/sample1.lo | 12 + gtest-1.7.0/samples/sample10_unittest.cc | 144 + gtest-1.7.0/samples/sample1_unittest.cc | 153 + gtest-1.7.0/samples/sample2.cc | 56 + gtest-1.7.0/samples/sample2.h | 85 + gtest-1.7.0/samples/sample2.lo | 12 + gtest-1.7.0/samples/sample2_unittest.cc | 109 + gtest-1.7.0/samples/sample3-inl.h | 172 + gtest-1.7.0/samples/sample3_unittest.cc | 151 + gtest-1.7.0/samples/sample4.cc | 46 + gtest-1.7.0/samples/sample4.h | 53 + gtest-1.7.0/samples/sample4.lo | 12 + gtest-1.7.0/samples/sample4_unittest.cc | 45 + gtest-1.7.0/samples/sample5_unittest.cc | 199 + gtest-1.7.0/samples/sample6_unittest.cc | 224 + gtest-1.7.0/samples/sample7_unittest.cc | 130 + gtest-1.7.0/samples/sample8_unittest.cc | 173 + gtest-1.7.0/samples/sample9_unittest.cc | 160 + gtest-1.7.0/scripts/gen_gtest_pred_impl.py | 730 + gtest-1.7.0/scripts/gtest-config | 274 + gtest-1.7.0/scripts/gtest-config.in | 274 + gtest-1.7.0/scripts/pump.py | 855 + gtest-1.7.0/scripts/test/Makefile | 59 + gtest-1.7.0/src/.deps/.dirstamp | 0 gtest-1.7.0/src/.deps/gtest-all.Plo | 633 + gtest-1.7.0/src/.deps/gtest_main.Plo | 470 + gtest-1.7.0/src/.dirstamp | 0 gtest-1.7.0/src/gtest-all.cc | 48 + gtest-1.7.0/src/gtest-all.lo | 12 + gtest-1.7.0/src/gtest-death-test.cc | 1344 ++ gtest-1.7.0/src/gtest-filepath.cc | 382 + gtest-1.7.0/src/gtest-internal-inl.h | 1218 ++ gtest-1.7.0/src/gtest-port.cc | 805 + gtest-1.7.0/src/gtest-printers.cc | 363 + gtest-1.7.0/src/gtest-test-part.cc | 110 + gtest-1.7.0/src/gtest-typed-test.cc | 110 + gtest-1.7.0/src/gtest.cc | 5015 +++++ gtest-1.7.0/src/gtest_main.cc | 38 + gtest-1.7.0/src/gtest_main.lo | 12 + gtest-1.7.0/test/.deps/gtest_all_test.Po | 1 + gtest-1.7.0/test/gtest-death-test_ex_test.cc | 93 + gtest-1.7.0/test/gtest-death-test_test.cc | 1367 ++ gtest-1.7.0/test/gtest-filepath_test.cc | 680 + gtest-1.7.0/test/gtest-linked_ptr_test.cc | 154 + gtest-1.7.0/test/gtest-listener_test.cc | 310 + gtest-1.7.0/test/gtest-message_test.cc | 159 + gtest-1.7.0/test/gtest-options_test.cc | 215 + gtest-1.7.0/test/gtest-param-test2_test.cc | 65 + gtest-1.7.0/test/gtest-param-test_test.cc | 904 + gtest-1.7.0/test/gtest-param-test_test.h | 57 + gtest-1.7.0/test/gtest-port_test.cc | 1253 ++ gtest-1.7.0/test/gtest-printers_test.cc | 1566 ++ gtest-1.7.0/test/gtest-test-part_test.cc | 208 + gtest-1.7.0/test/gtest-tuple_test.cc | 320 + gtest-1.7.0/test/gtest-typed-test2_test.cc | 45 + gtest-1.7.0/test/gtest-typed-test_test.cc | 360 + gtest-1.7.0/test/gtest-typed-test_test.h | 66 + gtest-1.7.0/test/gtest-unittest-api_test.cc | 341 + gtest-1.7.0/test/gtest_all_test.cc | 47 + .../test/gtest_break_on_failure_unittest.py | 212 + .../test/gtest_break_on_failure_unittest_.cc | 88 + .../test/gtest_catch_exceptions_test.py | 237 + .../test/gtest_catch_exceptions_test_.cc | 311 + gtest-1.7.0/test/gtest_color_test.py | 130 + gtest-1.7.0/test/gtest_color_test_.cc | 71 + gtest-1.7.0/test/gtest_env_var_test.py | 103 + gtest-1.7.0/test/gtest_env_var_test_.cc | 126 + gtest-1.7.0/test/gtest_environment_test.cc | 192 + gtest-1.7.0/test/gtest_filter_unittest.py | 633 + gtest-1.7.0/test/gtest_filter_unittest_.cc | 140 + gtest-1.7.0/test/gtest_help_test.py | 172 + gtest-1.7.0/test/gtest_help_test_.cc | 46 + gtest-1.7.0/test/gtest_list_tests_unittest.py | 207 + .../test/gtest_list_tests_unittest_.cc | 157 + gtest-1.7.0/test/gtest_main_unittest.cc | 45 + gtest-1.7.0/test/gtest_no_test_unittest.cc | 56 + gtest-1.7.0/test/gtest_output_test.py | 335 + gtest-1.7.0/test/gtest_output_test_.cc | 1034 + .../test/gtest_output_test_golden_lin.txt | 720 + gtest-1.7.0/test/gtest_pred_impl_unittest.cc | 2427 ++ gtest-1.7.0/test/gtest_premature_exit_test.cc | 141 + gtest-1.7.0/test/gtest_prod_test.cc | 57 + gtest-1.7.0/test/gtest_repeat_test.cc | 253 + gtest-1.7.0/test/gtest_shuffle_test.py | 325 + gtest-1.7.0/test/gtest_shuffle_test_.cc | 103 + gtest-1.7.0/test/gtest_sole_header_test.cc | 57 + gtest-1.7.0/test/gtest_stress_test.cc | 256 + gtest-1.7.0/test/gtest_test_utils.py | 320 + .../test/gtest_throw_on_failure_ex_test.cc | 92 + .../test/gtest_throw_on_failure_test.py | 171 + .../test/gtest_throw_on_failure_test_.cc | 72 + gtest-1.7.0/test/gtest_uninitialized_test.py | 70 + gtest-1.7.0/test/gtest_uninitialized_test_.cc | 43 + gtest-1.7.0/test/gtest_unittest.cc | 7415 +++++++ gtest-1.7.0/test/gtest_xml_outfile1_test_.cc | 49 + gtest-1.7.0/test/gtest_xml_outfile2_test_.cc | 49 + gtest-1.7.0/test/gtest_xml_outfiles_test.py | 132 + gtest-1.7.0/test/gtest_xml_output_unittest.py | 307 + .../test/gtest_xml_output_unittest_.cc | 181 + gtest-1.7.0/test/gtest_xml_test_utils.py | 194 + gtest-1.7.0/test/production.cc | 36 + gtest-1.7.0/test/production.h | 55 + .../xcode/Config/DebugProject.xcconfig | 30 + .../xcode/Config/FrameworkTarget.xcconfig | 17 + gtest-1.7.0/xcode/Config/General.xcconfig | 41 + .../xcode/Config/ReleaseProject.xcconfig | 32 + .../xcode/Config/StaticLibraryTarget.xcconfig | 18 + gtest-1.7.0/xcode/Config/TestTarget.xcconfig | 8 + gtest-1.7.0/xcode/Resources/Info.plist | 30 + .../xcode/Samples/FrameworkSample/Info.plist | 28 + .../WidgetFramework.xcodeproj/project.pbxproj | 457 + .../xcode/Samples/FrameworkSample/runtests.sh | 62 + .../xcode/Samples/FrameworkSample/widget.cc | 63 + .../xcode/Samples/FrameworkSample/widget.h | 59 + .../Samples/FrameworkSample/widget_test.cc | 68 + gtest-1.7.0/xcode/Scripts/runtests.sh | 65 + gtest-1.7.0/xcode/Scripts/versiongenerate.py | 100 + .../xcode/gtest.xcodeproj/project.pbxproj | 1135 + nbproject/configurations.xml | 63 + nbproject/project.xml | 26 + test.h | 39 + test.this.module.h | 17 + 240 files changed, 129680 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 README create mode 100644 common.h create mode 100644 ds.DynamicBitset.cpp create mode 100644 ds.DynamicBitset.h create mode 100644 ds.DynamicBitset.test.h create mode 100644 dynamicbitset_test create mode 100644 dynamicbitset_test.cpp create mode 100644 gtest-1.7.0/CHANGES create mode 100644 gtest-1.7.0/CMakeLists.txt create mode 100644 gtest-1.7.0/CONTRIBUTORS create mode 100644 gtest-1.7.0/LICENSE create mode 100644 gtest-1.7.0/Makefile create mode 100644 gtest-1.7.0/Makefile.am create mode 100644 gtest-1.7.0/Makefile.in create mode 100644 gtest-1.7.0/README create mode 100644 gtest-1.7.0/aclocal.m4 create mode 100644 gtest-1.7.0/build-aux/config.guess create mode 100644 gtest-1.7.0/build-aux/config.h create mode 100644 gtest-1.7.0/build-aux/config.h.in create mode 100644 gtest-1.7.0/build-aux/config.sub create mode 100644 gtest-1.7.0/build-aux/depcomp create mode 100644 gtest-1.7.0/build-aux/install-sh create mode 100644 gtest-1.7.0/build-aux/ltmain.sh create mode 100644 gtest-1.7.0/build-aux/missing create mode 100644 gtest-1.7.0/build-aux/stamp-h1 create mode 100644 gtest-1.7.0/cmake/internal_utils.cmake create mode 100644 gtest-1.7.0/codegear/gtest.cbproj create mode 100644 gtest-1.7.0/codegear/gtest.groupproj create mode 100644 gtest-1.7.0/codegear/gtest_all.cc create mode 100644 gtest-1.7.0/codegear/gtest_link.cc create mode 100644 gtest-1.7.0/codegear/gtest_main.cbproj create mode 100644 gtest-1.7.0/codegear/gtest_unittest.cbproj create mode 100644 gtest-1.7.0/config.log create mode 100644 gtest-1.7.0/config.status create mode 100644 gtest-1.7.0/configure create mode 100644 gtest-1.7.0/configure.ac create mode 100644 gtest-1.7.0/include/gtest/gtest-death-test.h create mode 100644 gtest-1.7.0/include/gtest/gtest-message.h create mode 100644 gtest-1.7.0/include/gtest/gtest-param-test.h create mode 100644 gtest-1.7.0/include/gtest/gtest-param-test.h.pump create mode 100644 gtest-1.7.0/include/gtest/gtest-printers.h create mode 100644 gtest-1.7.0/include/gtest/gtest-spi.h create mode 100644 gtest-1.7.0/include/gtest/gtest-test-part.h create mode 100644 gtest-1.7.0/include/gtest/gtest-typed-test.h create mode 100644 gtest-1.7.0/include/gtest/gtest.h create mode 100644 gtest-1.7.0/include/gtest/gtest_pred_impl.h create mode 100644 gtest-1.7.0/include/gtest/gtest_prod.h create mode 100644 gtest-1.7.0/include/gtest/internal/gtest-death-test-internal.h create mode 100644 gtest-1.7.0/include/gtest/internal/gtest-filepath.h create mode 100644 gtest-1.7.0/include/gtest/internal/gtest-internal.h create mode 100644 gtest-1.7.0/include/gtest/internal/gtest-linked_ptr.h create mode 100644 gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h create mode 100644 gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h.pump create mode 100644 gtest-1.7.0/include/gtest/internal/gtest-param-util.h create mode 100644 gtest-1.7.0/include/gtest/internal/gtest-port.h create mode 100644 gtest-1.7.0/include/gtest/internal/gtest-string.h create mode 100644 gtest-1.7.0/include/gtest/internal/gtest-tuple.h create mode 100644 gtest-1.7.0/include/gtest/internal/gtest-tuple.h.pump create mode 100644 gtest-1.7.0/include/gtest/internal/gtest-type-util.h create mode 100644 gtest-1.7.0/include/gtest/internal/gtest-type-util.h.pump create mode 100644 gtest-1.7.0/lib/.dirstamp create mode 100644 gtest-1.7.0/lib/.libs/libgtest.a create mode 120000 gtest-1.7.0/lib/.libs/libgtest.la create mode 100644 gtest-1.7.0/lib/.libs/libgtest.lai create mode 120000 gtest-1.7.0/lib/.libs/libgtest.so create mode 120000 gtest-1.7.0/lib/.libs/libgtest.so.0 create mode 100644 gtest-1.7.0/lib/.libs/libgtest.so.0.0.0 create mode 100644 gtest-1.7.0/lib/.libs/libgtest_main.a create mode 120000 gtest-1.7.0/lib/.libs/libgtest_main.la create mode 100644 gtest-1.7.0/lib/.libs/libgtest_main.lai create mode 120000 gtest-1.7.0/lib/.libs/libgtest_main.so create mode 120000 gtest-1.7.0/lib/.libs/libgtest_main.so.0 create mode 100644 gtest-1.7.0/lib/.libs/libgtest_main.so.0.0.0 create mode 100644 gtest-1.7.0/lib/libgtest.la create mode 100644 gtest-1.7.0/lib/libgtest_main.la create mode 100644 gtest-1.7.0/libgtest.a create mode 100644 gtest-1.7.0/libtool create mode 100644 gtest-1.7.0/m4/acx_pthread.m4 create mode 100644 gtest-1.7.0/m4/gtest.m4 create mode 100644 gtest-1.7.0/m4/libtool.m4 create mode 100644 gtest-1.7.0/m4/ltoptions.m4 create mode 100644 gtest-1.7.0/m4/ltsugar.m4 create mode 100644 gtest-1.7.0/m4/ltversion.m4 create mode 100644 gtest-1.7.0/make/Makefile create mode 100644 gtest-1.7.0/msvc/gtest-md.sln create mode 100644 gtest-1.7.0/msvc/gtest-md.vcproj create mode 100644 gtest-1.7.0/msvc/gtest.sln create mode 100644 gtest-1.7.0/msvc/gtest.vcproj create mode 100644 gtest-1.7.0/msvc/gtest_main-md.vcproj create mode 100644 gtest-1.7.0/msvc/gtest_main.vcproj create mode 100644 gtest-1.7.0/msvc/gtest_prod_test-md.vcproj create mode 100644 gtest-1.7.0/msvc/gtest_prod_test.vcproj create mode 100644 gtest-1.7.0/msvc/gtest_unittest-md.vcproj create mode 100644 gtest-1.7.0/msvc/gtest_unittest.vcproj create mode 100644 gtest-1.7.0/nbproject/configurations.xml create mode 100644 gtest-1.7.0/nbproject/private/CodeAssistancePathMapper.properties create mode 100644 gtest-1.7.0/nbproject/private/Default-build.log create mode 100644 gtest-1.7.0/nbproject/private/Default-exec.log create mode 100644 gtest-1.7.0/nbproject/private/Default.properties create mode 100644 gtest-1.7.0/nbproject/private/configurations.xml create mode 100644 gtest-1.7.0/nbproject/private/launcher.properties create mode 100644 gtest-1.7.0/nbproject/private/private.xml create mode 100644 gtest-1.7.0/nbproject/project.xml create mode 100644 gtest-1.7.0/samples/.deps/.dirstamp create mode 100644 gtest-1.7.0/samples/.deps/sample1.Plo create mode 100644 gtest-1.7.0/samples/.deps/sample10_unittest.Po create mode 100644 gtest-1.7.0/samples/.deps/sample1_unittest.Po create mode 100644 gtest-1.7.0/samples/.deps/sample2.Plo create mode 100644 gtest-1.7.0/samples/.deps/sample4.Plo create mode 100644 gtest-1.7.0/samples/.dirstamp create mode 100644 gtest-1.7.0/samples/.libs/libsamples.a create mode 120000 gtest-1.7.0/samples/.libs/libsamples.la create mode 100644 gtest-1.7.0/samples/libsamples.la create mode 100644 gtest-1.7.0/samples/prime_tables.h create mode 100644 gtest-1.7.0/samples/sample1.cc create mode 100644 gtest-1.7.0/samples/sample1.h create mode 100644 gtest-1.7.0/samples/sample1.lo create mode 100644 gtest-1.7.0/samples/sample10_unittest.cc create mode 100644 gtest-1.7.0/samples/sample1_unittest.cc create mode 100644 gtest-1.7.0/samples/sample2.cc create mode 100644 gtest-1.7.0/samples/sample2.h create mode 100644 gtest-1.7.0/samples/sample2.lo create mode 100644 gtest-1.7.0/samples/sample2_unittest.cc create mode 100644 gtest-1.7.0/samples/sample3-inl.h create mode 100644 gtest-1.7.0/samples/sample3_unittest.cc create mode 100644 gtest-1.7.0/samples/sample4.cc create mode 100644 gtest-1.7.0/samples/sample4.h create mode 100644 gtest-1.7.0/samples/sample4.lo create mode 100644 gtest-1.7.0/samples/sample4_unittest.cc create mode 100644 gtest-1.7.0/samples/sample5_unittest.cc create mode 100644 gtest-1.7.0/samples/sample6_unittest.cc create mode 100644 gtest-1.7.0/samples/sample7_unittest.cc create mode 100644 gtest-1.7.0/samples/sample8_unittest.cc create mode 100644 gtest-1.7.0/samples/sample9_unittest.cc create mode 100644 gtest-1.7.0/scripts/gen_gtest_pred_impl.py create mode 100644 gtest-1.7.0/scripts/gtest-config create mode 100644 gtest-1.7.0/scripts/gtest-config.in create mode 100644 gtest-1.7.0/scripts/pump.py create mode 100644 gtest-1.7.0/scripts/test/Makefile create mode 100644 gtest-1.7.0/src/.deps/.dirstamp create mode 100644 gtest-1.7.0/src/.deps/gtest-all.Plo create mode 100644 gtest-1.7.0/src/.deps/gtest_main.Plo create mode 100644 gtest-1.7.0/src/.dirstamp create mode 100644 gtest-1.7.0/src/gtest-all.cc create mode 100644 gtest-1.7.0/src/gtest-all.lo create mode 100644 gtest-1.7.0/src/gtest-death-test.cc create mode 100644 gtest-1.7.0/src/gtest-filepath.cc create mode 100644 gtest-1.7.0/src/gtest-internal-inl.h create mode 100644 gtest-1.7.0/src/gtest-port.cc create mode 100644 gtest-1.7.0/src/gtest-printers.cc create mode 100644 gtest-1.7.0/src/gtest-test-part.cc create mode 100644 gtest-1.7.0/src/gtest-typed-test.cc create mode 100644 gtest-1.7.0/src/gtest.cc create mode 100644 gtest-1.7.0/src/gtest_main.cc create mode 100644 gtest-1.7.0/src/gtest_main.lo create mode 100644 gtest-1.7.0/test/.deps/gtest_all_test.Po create mode 100644 gtest-1.7.0/test/gtest-death-test_ex_test.cc create mode 100644 gtest-1.7.0/test/gtest-death-test_test.cc create mode 100644 gtest-1.7.0/test/gtest-filepath_test.cc create mode 100644 gtest-1.7.0/test/gtest-linked_ptr_test.cc create mode 100644 gtest-1.7.0/test/gtest-listener_test.cc create mode 100644 gtest-1.7.0/test/gtest-message_test.cc create mode 100644 gtest-1.7.0/test/gtest-options_test.cc create mode 100644 gtest-1.7.0/test/gtest-param-test2_test.cc create mode 100644 gtest-1.7.0/test/gtest-param-test_test.cc create mode 100644 gtest-1.7.0/test/gtest-param-test_test.h create mode 100644 gtest-1.7.0/test/gtest-port_test.cc create mode 100644 gtest-1.7.0/test/gtest-printers_test.cc create mode 100644 gtest-1.7.0/test/gtest-test-part_test.cc create mode 100644 gtest-1.7.0/test/gtest-tuple_test.cc create mode 100644 gtest-1.7.0/test/gtest-typed-test2_test.cc create mode 100644 gtest-1.7.0/test/gtest-typed-test_test.cc create mode 100644 gtest-1.7.0/test/gtest-typed-test_test.h create mode 100644 gtest-1.7.0/test/gtest-unittest-api_test.cc create mode 100644 gtest-1.7.0/test/gtest_all_test.cc create mode 100644 gtest-1.7.0/test/gtest_break_on_failure_unittest.py create mode 100644 gtest-1.7.0/test/gtest_break_on_failure_unittest_.cc create mode 100644 gtest-1.7.0/test/gtest_catch_exceptions_test.py create mode 100644 gtest-1.7.0/test/gtest_catch_exceptions_test_.cc create mode 100644 gtest-1.7.0/test/gtest_color_test.py create mode 100644 gtest-1.7.0/test/gtest_color_test_.cc create mode 100644 gtest-1.7.0/test/gtest_env_var_test.py create mode 100644 gtest-1.7.0/test/gtest_env_var_test_.cc create mode 100644 gtest-1.7.0/test/gtest_environment_test.cc create mode 100644 gtest-1.7.0/test/gtest_filter_unittest.py create mode 100644 gtest-1.7.0/test/gtest_filter_unittest_.cc create mode 100644 gtest-1.7.0/test/gtest_help_test.py create mode 100644 gtest-1.7.0/test/gtest_help_test_.cc create mode 100644 gtest-1.7.0/test/gtest_list_tests_unittest.py create mode 100644 gtest-1.7.0/test/gtest_list_tests_unittest_.cc create mode 100644 gtest-1.7.0/test/gtest_main_unittest.cc create mode 100644 gtest-1.7.0/test/gtest_no_test_unittest.cc create mode 100644 gtest-1.7.0/test/gtest_output_test.py create mode 100644 gtest-1.7.0/test/gtest_output_test_.cc create mode 100644 gtest-1.7.0/test/gtest_output_test_golden_lin.txt create mode 100644 gtest-1.7.0/test/gtest_pred_impl_unittest.cc create mode 100644 gtest-1.7.0/test/gtest_premature_exit_test.cc create mode 100644 gtest-1.7.0/test/gtest_prod_test.cc create mode 100644 gtest-1.7.0/test/gtest_repeat_test.cc create mode 100644 gtest-1.7.0/test/gtest_shuffle_test.py create mode 100644 gtest-1.7.0/test/gtest_shuffle_test_.cc create mode 100644 gtest-1.7.0/test/gtest_sole_header_test.cc create mode 100644 gtest-1.7.0/test/gtest_stress_test.cc create mode 100644 gtest-1.7.0/test/gtest_test_utils.py create mode 100644 gtest-1.7.0/test/gtest_throw_on_failure_ex_test.cc create mode 100644 gtest-1.7.0/test/gtest_throw_on_failure_test.py create mode 100644 gtest-1.7.0/test/gtest_throw_on_failure_test_.cc create mode 100644 gtest-1.7.0/test/gtest_uninitialized_test.py create mode 100644 gtest-1.7.0/test/gtest_uninitialized_test_.cc create mode 100644 gtest-1.7.0/test/gtest_unittest.cc create mode 100644 gtest-1.7.0/test/gtest_xml_outfile1_test_.cc create mode 100644 gtest-1.7.0/test/gtest_xml_outfile2_test_.cc create mode 100644 gtest-1.7.0/test/gtest_xml_outfiles_test.py create mode 100644 gtest-1.7.0/test/gtest_xml_output_unittest.py create mode 100644 gtest-1.7.0/test/gtest_xml_output_unittest_.cc create mode 100644 gtest-1.7.0/test/gtest_xml_test_utils.py create mode 100644 gtest-1.7.0/test/production.cc create mode 100644 gtest-1.7.0/test/production.h create mode 100644 gtest-1.7.0/xcode/Config/DebugProject.xcconfig create mode 100644 gtest-1.7.0/xcode/Config/FrameworkTarget.xcconfig create mode 100644 gtest-1.7.0/xcode/Config/General.xcconfig create mode 100644 gtest-1.7.0/xcode/Config/ReleaseProject.xcconfig create mode 100644 gtest-1.7.0/xcode/Config/StaticLibraryTarget.xcconfig create mode 100644 gtest-1.7.0/xcode/Config/TestTarget.xcconfig create mode 100644 gtest-1.7.0/xcode/Resources/Info.plist create mode 100644 gtest-1.7.0/xcode/Samples/FrameworkSample/Info.plist create mode 100644 gtest-1.7.0/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj create mode 100644 gtest-1.7.0/xcode/Samples/FrameworkSample/runtests.sh create mode 100644 gtest-1.7.0/xcode/Samples/FrameworkSample/widget.cc create mode 100644 gtest-1.7.0/xcode/Samples/FrameworkSample/widget.h create mode 100644 gtest-1.7.0/xcode/Samples/FrameworkSample/widget_test.cc create mode 100644 gtest-1.7.0/xcode/Scripts/runtests.sh create mode 100644 gtest-1.7.0/xcode/Scripts/versiongenerate.py create mode 100644 gtest-1.7.0/xcode/gtest.xcodeproj/project.pbxproj create mode 100644 nbproject/configurations.xml create mode 100644 nbproject/project.xml create mode 100644 test.h create mode 100644 test.this.module.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a286a72 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*fuse* +nbproject/private +*.o +*~* diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4ce682d --- /dev/null +++ b/Makefile @@ -0,0 +1,37 @@ +CPP=g++ +GTEST_DIR=./gtest-1.7.0 +GTEST_LIB=$(GTEST_DIR)/gtest-all.o +INCLUDES=-I $(GTEST_DIR) \ + -I . \ + -isystem $(GTEST_DIR)/include +LIBS=$(GTEST_LIB) +OPT_LEVEL=-O0 +CPPFLAGS=-g -pthread -D_DEBUG=1 -w -std=c++11 $(OPT_LEVEL) $(INCLUDES) $(LIBS) + +PROGRAM=dynamicbitset_test + +SRC=ds.DynamicBitset.cpp \ + dynamicbitset_test.cpp + +OBJ=$(SRC:.cpp=.o) + + +all : $(PROGRAM) + +$(PROGRAM) : $(OBJ) + $(CPP) $(CPPFLAGS) -o $@ $(OBJ) + +%.o : %.cpp %.h + $(CPP) $(CPPFLAGS) -c $< -o $@ + +clean: + @echo "Removing objects..." + rm -f $(PROGRAM) *.o *~ + +install: $(PROGRAM) + cp $(PROGRAM) ../bin + +ar: + make clean + tar -czvf ../$(PROGRAM)"(`date`)".tar.gz * + diff --git a/README b/README new file mode 100644 index 0000000..46a2d92 --- /dev/null +++ b/README @@ -0,0 +1,4 @@ +Dynamic Bitset +============== + +This is a C++ implementation of a simple bit-array where you can get/set/flip individual bits. \ No newline at end of file diff --git a/common.h b/common.h new file mode 100644 index 0000000..170516f --- /dev/null +++ b/common.h @@ -0,0 +1,101 @@ +#pragma once + + +#ifdef _WIN32 +//////////////// On Windows, CRT memory leak detection ///////////// + +#define _CRTDBG_MAP_ALLOC +#include +#include + + +#ifdef _DEBUG +#ifndef DBG_NEW +#define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ ) +#define new DBG_NEW +#endif +#endif // _DEBUG + +// enable dumping memory leaks on Windows +#define DETECT_MEM_LEAKS() \ + _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF) + +#else // Non-Windows systems + +// no support for memory leak detection on Non-Windows systems +#define DETECT_MEM_LEAKS() + +#endif // _WIN32 + + +#include + +/*--------- Availability of Google C++ Test Framework ----------*/ + +// whether using Google C++ Test Framework +#ifndef GTEST +#define GTEST 1 +#endif +// you have to include test.h when you want to test +#include "test.h" + +namespace yasi{ + + +#define CONCAT_DETAIL(x,y) x ## y +#define CONCAT(x,y) CONCAT_DETAIL(x,y) +#define MAKE_UNIQUE(x) CONCAT(x, __COUNTER__ ) +#define MAKE_UNIQUE2(x,y) MAKE_UNIQUE( CONCAT(x,y) ) +#define MAKE_UNIQUE3(x,y, z) MAKE_UNIQUE2( CONCAT(x,y), z ) + +#define FREE_SAFE(x) {if( (x) != 0 ) free(x); (x) = 0; } +#define DELETE_SAFE(x) {if( (x) != 0 ) delete (x); (x) = 0; } +#define FREE_SAFE(x) {if( (x) != 0 ) free(x); (x) = 0; } +#define DELETE_ARR_SAFE(x) {if( (x) != 0 ) delete[] (x); (x) = 0; } +#define ARR_LENGTH(x) ( sizeof( (x) )/sizeof( (x)[0] ) ) + +#define IS_POW_OF_TWO(x) ( ((x) >= 1) && ( ((x) & ((x)-1)) == 0) ) + +// override keyword in C++11 +#if __STDC_VERSION__ == 201112L +#pragma message(TO_STRING(__STDC_VERSION__)) + // C++11 supported +#define override override + +#else +#define override + +#endif // C++11 support + + // informative assert +#define YASI_ASSERT_FAILED_STR "ASSERT FAILED" + +#if _DEBUG + + +#define ASSERT(condition) { \ + /* print better message */ \ + if(!(condition)){ \ + std::cerr << YASI_ASSERT_FAILED_STR << ": " << #condition << " @ " << __FILE__ << " (" << __LINE__ << ")" << std::endl; \ + } \ + /* now call actual assert macro */ \ + assert(condition); \ +} +#define ASSERTMSG(condition, msg) { \ + /* print better message */ \ + if(!(condition)){ \ + std::cerr << YASI_ASSERT_FAILED_STR << ": " << #condition << " @ " << __FILE__ << " (" << __LINE__ << ")" << std::endl; \ + std::cerr << "Message: " << msg; \ + } \ + /* now call actual assert macro */ \ + assert(condition); \ +} +#else // _DEBUG +#define ASSERT(condition) +#define ASSERTMSG(condition, msg) + +#endif + + + +} // namespace yasi diff --git a/ds.DynamicBitset.cpp b/ds.DynamicBitset.cpp new file mode 100644 index 0000000..18cec3b --- /dev/null +++ b/ds.DynamicBitset.cpp @@ -0,0 +1,17 @@ +#include "ds.DynamicBitset.h" + +namespace yasi{ + namespace ds{ +// override for printing +std::ostream& operator<< (std::ostream& out, const DynamicBitset* pK) { + out << pK->toString(); + return out; +} +std::ostream& operator<< (std::ostream& out, const DynamicBitset& k) { + out << k.toString(); + return out; +} + + } +} + diff --git a/ds.DynamicBitset.h b/ds.DynamicBitset.h new file mode 100644 index 0000000..5971492 --- /dev/null +++ b/ds.DynamicBitset.h @@ -0,0 +1,382 @@ +/* + * File: DynamicBitset.h + * Author: saad + * + * Created on October 13, 2014, 1:00 AM + */ + +#ifndef DYNAMICBITSET_H +#define DYNAMICBITSET_H + +#include "common.h" +#include "test.this.module.h" +#include +#include +#include +#include +#include +#include +#include + +namespace yasi{ + namespace ds{ + class DynamicBitset { + FRIEND_TEST_CLASS(DynamicBitsetTest); + + friend class IsDynamicBitsetZeroFunction; + + typedef DynamicBitset self; + typedef unsigned char byte; + byte* data; +public: + int numBits; + int numBytes; + + // resizes current storage to the specified number of bits + // initializes all bits to zero + void init(int nBits = 0){ + if(numBits != nBits){ + numBits = nBits; + numBytes = (nBits % 8 == 0) ? nBits / 8 : nBits / 8 + 1; + DELETE_ARR_SAFE(data); + if(numBytes > 0){ + data = new byte[numBytes]; + } + } + if(numBytes > 0){ + memset(data, 0, numBytes); + } + } + // resizes current storage to match the array-size of the supplied argument + // copies all bits from the supplied reference + void init(const DynamicBitset& other) { + init(other.numBits); + if(numBytes > 0){ + memcpy(data, other.data, numBytes); + } + } + + DynamicBitset(int nBits = 0) + { + numBits = 0; + numBytes = 0; + data = NULL; + init(nBits); + } + DynamicBitset(const DynamicBitset& other) + { + numBits = 0; + numBytes = 0; + data = NULL; + init(other); + } + void setBit(const int index, bool value) const{ + ASSERT(numBytes > 0); + + ASSERT(index >= 0); + ASSERT(index < numBits); + byte mask = 0x80; // 10000000b + const int chunkSize = 8; // number of bits in a byte + + // move 1 do desired bit position inside the actual byte + mask >>= (index % chunkSize); + // now set value + if (value == 1){ + data[index / chunkSize] |= mask; + } + else{ + int notMask = ~mask; + data[index / chunkSize] &= ~mask; + } + } + bool getBit(const int index) const{ + ASSERT(numBytes > 0); + ASSERT(index >= 0 && index < numBits); + byte mask = 0x80; // 10000000b + const int chunkSize = 8; // bits in a byte + + // move 1 do desired bit position inside the actual byte + mask >>= (index % chunkSize); + // now get value + int bit = ((data[index / chunkSize] & mask) == 0) ? 0 : 1; + return bit; + } + // sets the upper-order bytes of value as key + // currently works only with int + void setData(const int upperOrderBitsValue) const{ + ASSERT(numBytes > 0); + ASSERT(numBytes <= sizeof(int)); + clear(); + // key-bits are right aligned + // since lower-order bits of value is valid, + // shift value-bits appropriately to the left + int numShift = sizeof(int) * 8 - numBits; + // clear left-most trailing unnecessary bits + int tempValue = upperOrderBitsValue >> numShift; + // now right-align the bits for semantic consistency + tempValue <<= numShift; + // copy from the rightmost byte, and right-shift repeatedly + for (int i = 0; i < numBytes; i++){ + byte b = (tempValue & 0xFF000000) >> 24; // leftmost byte of the value + data[i] = b; + tempValue <<= 8; // next byte + } + } + bool operator==(const DynamicBitset& other) const{ + if (numBytes != other.numBytes) + return false; + else if(numBytes > 0) + return memcmp(data, other.data, numBytes) == 0; + else + return true; + } + DynamicBitset& operator=(const DynamicBitset& other) { + // 0-bit keys are allowed to be re-initialized + // but all other keys must match their numBits + if(numBits != 0){ + ASSERT(numBits == other.numBits); + memcpy(data, other.data, numBytes); + } + else if(other.numBits > 0){ + // reinitialize a zero-bit key + init(other); + } + return *this; + } + + // bits are left-aligned. + // like elements in an array + // bit-index goes from left to right + int toInt() const{ + if(numBytes == 0) return 0; + + ASSERT(numBytes <= sizeof(int)); + int n = 0; + for (int i = 0; i < numBytes; i++){ + int b = (int)data[i]; + n |= (b << ((3 - i) * 8)); + } + return n; + } + void clear() const{ + if (data) + memset(data, 0, numBytes); + } + virtual ~DynamicBitset(){ + DELETE_ARR_SAFE(data); + } + std::string toString() const{ + if(numBytes == 0) return ""; + + std::stringstream stream; + for (int i = 0; i < numBytes; i++){ + if (numBits % 8 && + i == numBytes - 1){ + // last byte, partially filled + for (int j = i * 8; j < numBits; j++){ + stream << this->getBit(j); + } + } + else{ + std::bitset<8> bits(data[i]); + stream << bits; + } + } + return stream.str(); + } + + // compare bits as if they are in an array + inline bool operator< (const self& other) const { + ASSERT(numBytes == other.numBytes); + if(numBytes == 0) return true; + if(other.numBytes == 0) return false; + + bool bEqual = true; + for(int i = 0; i < numBytes; i++){ + byte me = data[i]; + byte you = other.data[i]; + if( me > you) + return false; + else + bEqual &= (me == you); + } + if( bEqual ) + return false; + else + return true; + } + inline bool operator<= (const self& other) const { + if(numBytes == 0) return true; + if(other.numBytes == 0) return false; + ASSERT(numBytes == other.numBytes); + + for(int i = 0; i < numBytes; i++){ + if(data[i] > other.data[i]) return false; + } + return true; + + } + inline bool operator> (const self& other) const { + if(numBytes == 0) return false; + if(other.numBytes == 0) return true; + ASSERT(numBytes == other.numBytes); + return ! (*this <= other); + } + inline bool operator>= (const self& other) const { + if(other.numBytes == 0) return true; + if(numBytes == 0) return false; + ASSERT(numBytes == other.numBytes); + return ! (*this < other); + } + inline bool operator!=(const self& other) const { + ASSERT(numBytes == other.numBytes); + if(numBytes == 0) return false; + return !((*this) == other); + } + unsigned char getByte(int i) const{ + ASSERT(i >= 0); + ASSERT(i < numBytes); + return data[i]; + } + // returns the original ptr to the data + const unsigned char* toCharPtr() const{ + return this->data; + } + + // returns true if all bits are 1 + bool all() const{ + if(numBytes == 0) return false; + + bool result = true; + for (int i = 0; i < numBytes; i++){ + byte mask = 0xFF; + if (i == numBytes - 1 && + numBits % 8 ){ + // last byte, partially filled + int numRemainingBits = numBits % 8; + mask <<= (8-numRemainingBits); + if((data[i] & mask) != mask) { + // not all bits are 1 + // and this is the last byte + return false; + } + } + else{ + // not an incomplete byte + if((data[i] & mask) != mask){ + // not all bits are 1 + return false; + } + } + } + return result; + } + // returns true if any bit is 1 + bool any() const{ + if(numBytes == 0) return false; + + bool result = false; + for (int i = 0; i < numBytes; i++){ + byte mask = (byte) 0xFF; + if (i == numBytes - 1 && + numBits % 8 ){ + // last byte, partially filled + int numRemainingBits = numBits % 8; + mask <<= (8-numRemainingBits); + if((data[i] & mask) != 0) { + // not all bits are zero + // and this is the last byte + return true; + } + } + else{ + // not an incomplete byte + if((data[i] & mask) != 0){ + // not all bits are 0 + return true; + } + } + } + return result; + } + // + void flipBit(const int index) { + ASSERT(numBytes > 0); + + ASSERT(index >= 0); + ASSERT(index < numBits); + byte mask = 0x80; // 10000000b + const int chunkSize = 8; // number of bits in a byte + + // move 1 do desired bit position inside the actual byte + mask >>= (index % chunkSize); + // flip by xor + data[index / chunkSize] ^= mask; + + } + void flip() { + if(numBytes == 0) return; + + for (int i = 0; i < numBytes; i++){ + int mask = 0xFF; + if (i == numBytes - 1 && + numBits % 8 ){ + // last byte, partially filled + // fix mask + int numRemainingBits = numBits % 8; + mask <<= (8-numRemainingBits); + } + // flip this byte by xor with mask + data[i] ^= 0xFF; + } + } + + // initializes all bits to zero + void reset(){ + if(numBytes > 0){ + memset(data, 0, numBytes); + } + } +private: + +}; + +// override for printing +std::ostream& operator<< (std::ostream& out, const yasi::ds::DynamicBitset& k); +std::ostream& operator<< (std::ostream& out, yasi::ds::DynamicBitset& k); + + +// functional object telling whether a bitset represents empty/NULL +class IsDynamicBitsetZeroFunction{ +public: + bool operator()(const yasi::ds::DynamicBitset& key) const{ + return key.numBits == 0 || key.numBytes == 0 || key.data == NULL; + } +}; + +class DynamicBitsetHashFunction { +public: + virtual int operator()(const yasi::ds::DynamicBitset& k) const override{ + int hashedInt = 0; + for(int i = 0; i < k.numBytes; i++){ + // for each byte + int nextByte = (int) k.getByte(i); + hashedInt |= (nextByte << (8 * i)); + } + hashedInt ^= (~hashedInt << 11) ^ (hashedInt << 3) ^ (~hashedInt << 27); +// unsigned int n = (unsigned int )k.toInt(); +// int hashedInt = n ^ (~n << 11) ^ (n << 3) ^ (~n << 27); + // the key is already hashed + // unsigned int hashedInt = n >> (32 - k.numBits); // push the valid bits to the end + return hashedInt; + } +}; + + + } // namespace ds +} // namespace yasi + + + +#endif /* DYNAMICBITSET_H */ + diff --git a/ds.DynamicBitset.test.h b/ds.DynamicBitset.test.h new file mode 100644 index 0000000..198fb7f --- /dev/null +++ b/ds.DynamicBitset.test.h @@ -0,0 +1,390 @@ +/* + * File: ds.DynamicBitset.test.h + * Author: saad + * + * Created on October 13, 2014, 1:29 AM + */ + +#ifndef DS_DYNAMICBITSET_TEST_H +#define DS_DYNAMICBITSET_TEST_H + +#if YASI_TEST_THIS_MODULE != 1 +#define YASI_TEST_THIS_MODULE 1 +#endif +#include "ds.DynamicBitset.h" + +namespace yasi{ + namespace ds{ + + ////////////////// test //////////////// +class DynamicBitsetTest : public yasi::Test{ +public: + void initSetGet(){ + // test special cases + zeroBit(); + oneBit(); + fiveBits(); + seventyBits(); + } + void zeroBit(){ + // setting/getting bits of a zero-bit key should fail + ASSERT_DEATH_IF_SUPPORTED({ + DynamicBitset key(0); // should pass + key.setBit(0, 0); // should fail + }, ".*" YASI_ASSERT_FAILED_STR ".*"); + ASSERT_DEATH_IF_SUPPORTED({ + DynamicBitset key(0); // should pass + key.getBit(0); // should fail + }, ".*" YASI_ASSERT_FAILED_STR ".*"); + + // toString and toInt + DynamicBitset key(0); // should pass + ASSERT_EQ(std::string(""), key.toString()) << "toString() of zero-bit key not empty"; + ASSERT_EQ(0, key.toInt()) << "toInt() of zero-bit key not zero"; + + } + void oneBit(){ + DynamicBitset key(1); // 1 bit + int pos = 0; + + ASSERT_EQ(1, key.numBytes); + ASSERT_EQ(1, key.numBits); + + pos = 0; + key.setBit(pos, 1); + ASSERT_EQ(1, key.getBit(pos)); + key.setBit(pos, 0); + ASSERT_EQ(0, key.getBit(pos)); + + + + // set/get out-of-bounds bit should fail + ASSERT_DEATH_IF_SUPPORTED({ + DynamicBitset key(1); + key.setBit(2, 1); // should fail + }, ".*" YASI_ASSERT_FAILED_STR ".*"); + ASSERT_DEATH_IF_SUPPORTED({ + DynamicBitset key(1); + key.setBit(-1, 1); // should fail + }, ".*" YASI_ASSERT_FAILED_STR ".*"); + ASSERT_DEATH_IF_SUPPORTED({ + DynamicBitset key(1); + key.getBit(2); // should fail + }, ".*" YASI_ASSERT_FAILED_STR ".*"); + ASSERT_DEATH_IF_SUPPORTED({ + DynamicBitset key(1); + key.getBit(-1); // should fail + }, ".*" YASI_ASSERT_FAILED_STR ".*"); + } + void fiveBits(){ + DynamicBitset key(5); // 1 bit + int pos = 0; + ASSERT_EQ(1, key.numBytes); + ASSERT_EQ(5, key.numBits); + + pos = 0; + key.setBit(pos, 1); + ASSERT_EQ(1, key.getBit(pos)); + key.setBit(pos, 0); + ASSERT_EQ(0, key.getBit(pos)); + + pos = 3; + key.setBit(pos, 1); + ASSERT_EQ(1, key.getBit(pos)); + key.setBit(pos, 0); + ASSERT_EQ(0, key.getBit(pos)); + + // set/get out-of-bounds bit should fail + ASSERT_DEATH_IF_SUPPORTED({ + DynamicBitset key(5); + key.setBit(5, 1); // should fail + }, ".*" YASI_ASSERT_FAILED_STR ".*"); + ASSERT_DEATH_IF_SUPPORTED({ + DynamicBitset key(5); + key.getBit(5); // should fail + }, ".*" YASI_ASSERT_FAILED_STR ".*"); + } + void seventyBits(){ + const int nBits = 70; + int pos = 0; + + DynamicBitset key(nBits); // 70 bits + ASSERT_EQ(9, key.numBytes); + ASSERT_EQ(nBits, key.numBits); + + pos = 0; + key.setBit(pos, 1); + ASSERT_EQ(1, key.getBit(pos)); + key.setBit(pos, 0); + ASSERT_EQ(0, key.getBit(pos)); + + pos = 13; + key.setBit(pos, 1); + ASSERT_EQ(1, key.getBit(pos)); + key.setBit(pos, 0); + ASSERT_EQ(0, key.getBit(pos)); + + pos = 53; + key.setBit(pos, 1); + ASSERT_EQ(1, key.getBit(pos)); + key.setBit(pos, 0); + ASSERT_EQ(0, key.getBit(pos)); + + // set/get out-of-bounds bit should fail + ASSERT_DEATH_IF_SUPPORTED({ + DynamicBitset key(70); + key.setBit(70, 1); // should fail + }, ".*" YASI_ASSERT_FAILED_STR ".*"); + ASSERT_DEATH_IF_SUPPORTED({ + DynamicBitset key(70); + key.getBit(70); // should fail + }, ".*" YASI_ASSERT_FAILED_STR ".*"); + } + void setData(){ + { + SCOPED_TRACE("setData() on 1 bit"); + const int bits = 1; + + // 1-bit key + DynamicBitset k(bits); + k.setData(1 << 31); // 10000000 00000000 00000000 00000000 should be ok + ASSERT_EQ(1, k.getBit(0)); + + DynamicBitset k2(bits); + k2.setData(7 << 29); // 11100000 00000000 00000000 00000000 using setData from constructor + ASSERT_EQ(1, k2.getBit(0)); + + ASSERT_EQ(k, k2); // == operator + DynamicBitset k3 = k2; // copy constructor + ASSERT_EQ(k3, k2); + k3.setData(0x80000000); // ignore lower-order bits, use only upper-order bits + k2.setData(0x70000000); + ASSERT_EQ(false, (k3 == k2)); // == operator + k3.setData(0x80000000); // ignore lower-order bits, use only upper-order bits + k2.setData(0xFFFFFFFF); + ASSERT_EQ(true, (k3 == k2)); // check only rightmost 1 bit + } + { + SCOPED_TRACE("setData() on 13 bits"); + const int bits13 = 13; + + // 13-bit key + DynamicBitset k(bits13); + k.setData(0x4CCFFFFF); // 01001100 11001111 11111111 11111111 should be ok + for (int i = 0; i < 13; i++){ + if (i == 1 || i == 4 || + i == 5 || i == 8 || + i == 9 || i == 12){ + ASSERT_EQ(1, k.getBit(i)); + } + else{ + ASSERT_EQ(0, k.getBit(i)); + } + } + DynamicBitset k2(bits13); + k2.setData(0x4CCFFFFF); // 01001100 11001111 11111111 11111111 should be ok using setData from constructor + for (int i = 0; i < 13; i++){ + if (i == 1 || i == 4 || + i == 5 || i == 8 || + i == 9 || i == 12){ + ASSERT_EQ(1, k.getBit(i)); + } + else{ + ASSERT_EQ(0, k.getBit(i)); + } + } + ASSERT_EQ(k, k2); // == operator + DynamicBitset k3 = k2; // copy constructor + ASSERT_EQ(k3, k2); + k3.setData(0x55580000); + k2.setData(0x54580000); + ASSERT_EQ(false, k3 == k2); // == operator + k3.setData(0x55580000); + k2.setData(0x555FFFFF); + ASSERT_EQ(true, k3 == k2); // check only rightmost 13 bits + } + + } + void toInt(){ + { + SCOPED_TRACE("1-bit"); + const int bits = 1; + DynamicBitset k(bits); + k.setData(0x80000000); // 1 + ASSERT_EQ(0x80000000, k.toInt()); + k.setData(0x00000000); + ASSERT_EQ(0, k.toInt()); + } + { + SCOPED_TRACE("5-bits"); + const int bits = 5; + int value = 0xC8FFFFFF; // 11001000 11111111 11111111 11111111 + DynamicBitset k(bits); + k.setData(value); + ASSERT_EQ(0xC8000000, k.toInt()); // 11001000 00000000 00000000 00000000 + + value = 0x50AAAAAA; // 01010000 10101010 10101010 10101010 + DynamicBitset k2(bits); + k2.setData(value); + ASSERT_EQ(0x50000000, k2.toInt()); + } + { + SCOPED_TRACE("13-bits"); + const int bits = 13; + int value = 0x519FAAAA; // 01010001 10011111 10101010 10101010 + DynamicBitset k(bits); + k.setData(value); + ASSERT_EQ(0x51980000, k.toInt()); + } + { + SCOPED_TRACE("32-bits"); + const int bits = 32; + int value = 0x5198ABCD; + DynamicBitset k(bits); + k.setData(value); + ASSERT_EQ(0x5198ABCD, k.toInt()); + } + } + void toString(){ + { + SCOPED_TRACE("32-bits"); + const int bits = 32; + int value = 0x5198AAAA; + DynamicBitset k(bits); + k.setData(value); + ASSERT_EQ("01010001100110001010101010101010", k.toString()); + } + { + SCOPED_TRACE("13-bits"); + const int bits = 13; + int value = 0x5198AAAA; + DynamicBitset k(bits); + k.setData(value); + ASSERT_EQ("0101000110011", k.toString()); + } + { + SCOPED_TRACE("1-bit"); + const int bits = 1; + int value = 0x5198AAAA; + DynamicBitset k(bits); + k.setData(value); + ASSERT_EQ("0", k.toString()); + k.setData(0x80000000); + ASSERT_EQ("1", k.toString()); + } + } + void anyAllFlipReset(){ + { + // zero bits + DynamicBitset b(0); + ASSERT_EQ(false, b.any()); + ASSERT_EQ(false, b.all()); + } + + { + SCOPED_TRACE("Less than 8 bits"); + DynamicBitset b(5); // all zero bits + ASSERT_EQ(false, b.any()); + ASSERT_EQ(false, b.all()); + int tweakIndex = 3; + b.setBit(tweakIndex, 1); + ASSERT_EQ(std::string("00010"), b.toString()) << "bitset bad"; + ASSERT_EQ(true, b.any()); + ASSERT_EQ(false, b.all()); + b.flip(); // all ones except bit at tweakIndex + ASSERT_EQ(std::string("11101"), b.toString()) << "bitset bad"; + ASSERT_EQ(false, b.getBit(tweakIndex)); + for(int i = 0; i < b.numBits; i++){ + if(i == tweakIndex) + ASSERT_EQ(false, b.getBit(i)); + else + ASSERT_EQ(true, b.getBit(i)); + } + b.flipBit(tweakIndex); + ASSERT_EQ(std::string("11111"), b.toString()) << "bitset bad"; + ASSERT_EQ(true, b.any()); + ASSERT_EQ(true, b.all()); + } + { + SCOPED_TRACE("Exactly 8 bits"); + DynamicBitset b(8); // all zero bits + ASSERT_EQ(false, b.any()); + ASSERT_EQ(false, b.all()); + int tweakIndex = 7; + b.setBit(tweakIndex, 1); + ASSERT_EQ(std::string("00000001"), b.toString()) << "bitset bad"; + ASSERT_EQ(true, b.any()); + ASSERT_EQ(false, b.all()); + b.flip(); // all ones except bit at tweakIndex + ASSERT_EQ(std::string("11111110"), b.toString()) << "bitset bad"; + ASSERT_EQ(false, b.getBit(tweakIndex)); + for(int i = 0; i < b.numBits; i++){ + if(i == tweakIndex) + ASSERT_EQ(false, b.getBit(i)); + else + ASSERT_EQ(true, b.getBit(i)); + } + b.flipBit(tweakIndex); + ASSERT_EQ(std::string("11111111"), b.toString()) << "bitset bad"; + ASSERT_EQ(true, b.any()); + ASSERT_EQ(true, b.all()); + } + { + SCOPED_TRACE("37 bits"); + DynamicBitset b(37); // all zero bits + ASSERT_EQ(false, b.any()); + ASSERT_EQ(false, b.all()); + // tweak a bit in a non-last byte + int tweakIndex = 3; + b.setBit(tweakIndex, 1); + ASSERT_EQ(true, b.any()); + ASSERT_EQ(false, b.all()); + b.flip(); // all ones except bit at tweakIndex + ASSERT_EQ(false, b.getBit(tweakIndex)); + for(int i = 0; i < b.numBits; i++){ + if(i == tweakIndex) + ASSERT_EQ(false, b.getBit(i)); + else + ASSERT_EQ(true, b.getBit(i)); + } + b.flipBit(tweakIndex); + ASSERT_EQ(true, b.any()); + ASSERT_EQ(true, b.all()); + + // tweak a bit in the last byte + b.reset(); // all zero again + ASSERT_EQ(false, b.any()); + ASSERT_EQ(false, b.all()); + // tweak a bit in a non-last byte + tweakIndex = 34; + b.setBit(tweakIndex, 1); + ASSERT_EQ(true, b.any()); + ASSERT_EQ(false, b.all()); + b.flip(); // all ones except bit at tweakIndex + ASSERT_EQ(false, b.getBit(tweakIndex)); + for(int i = 0; i < b.numBits; i++){ + if(i == tweakIndex) + ASSERT_EQ(false, b.getBit(i)); + else + ASSERT_EQ(true, b.getBit(i)); + } + b.flipBit(tweakIndex); + ASSERT_EQ(true, b.any()); + ASSERT_EQ(true, b.all()); + } + + } +}; + +ADD_TEST_F(DynamicBitsetTest, initSetGet); +ADD_TEST_F(DynamicBitsetTest, setData); +ADD_TEST_F(DynamicBitsetTest, toInt); +ADD_TEST_F(DynamicBitsetTest, toString); +ADD_TEST_F(DynamicBitsetTest, anyAllFlipReset); + + } +} + + +#endif /* DS_DYNAMICBITSET_TEST_H */ + diff --git a/dynamicbitset_test b/dynamicbitset_test new file mode 100644 index 0000000000000000000000000000000000000000..6cae1b58a313ab1cad8567da471f1a12ae601741 GIT binary patch literal 865792 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

Tie)i3EP@Jr!>4 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�t+g9>!wu8%22}~J&fI2 zmfzkDALL%#UMki07H%G~Hrk8beplX9ZlaayxF7elME(I}r(JoO{^_!o96nk>9x24m zfod%2?Lpt?F6lKyAtdqgFEVbH^jggpzq_QD2rACm15-jQ3*~_mh+5LyhuGmIz3u?9 zq{mvrOL~99Fez2Fq$g>qCA~wOZ0~!}`lr3kPPL@Bb~&7CNsnJ3p_lZYgVlOT?;xCJ zN$*#rq?hzKQ6!|7^px*Em-Ify&?D(36(hW)r;OK2dTWu-|5(zybPi2@55(amz3;uG z?kx4FiuVj+iyOmYRHRzc3;w9@JWYXYmMaf0>D_!8^lF4Z%Cce-H@u{`eJ^CsBK$z4 zOfBi{+XUHr2>;y3LY!|Ttd{h~Hi`eA zyvsoDlHSYEAU3~lgvwsYxx1vd=~cx!bOqoa3`a}JnkBv0&W4HTWMmFoTwx}pjk`;F zE&o} z5O+!M-Pe$^r0@!)@0s|j4y21UOL{HdWlPS1xt@b#4KhH5V!fod;Ye69|LdzPHkCQI zhQaD3y^6b3Gj=EqTw9l2jwXZ!FukPr8!(5)K&(0omWnzcdPy%HC$>W?b4B!$p7kLk zFB(K_m*-B*l3wgOMm{$PS3!t(;l;Q`RP7%|ZWv@8BfJYEOX=`YM&hf7&6N(0cVT1& zoqvOo#s-lbNv6$`-XlbEU2|w4V`44u+$FtBZ?lqVkS@ojTbkii0huMeCWje*65uli zc9-2(7$?!UNf>3)axKY;69*ff%C9G3KUfjN|elRihMizU625TADu z(^9gj!jj&fUq?K|Dic-^UeZf}xS2t6F6pHm#6=G}sUMKx z1`A1%nkBuFyEQc*#B!IC=46)i@`rUj4Pw7b$q8VV^p1R|b$tlpj7v$*%#vQYLz?;% z1Yu^b^UpcNK#s>6SkkNfz3QQ;7>EQzg@G*lEY3DQbEpA?%@|O|A8<98CB6Q*d_2P%HbeNNtHCVkRr>`0XJ+7a2#-f<&`Wx)Z{mz$ zfN#wI6sbWk=?!>KYp`)6Cl5BA3$vu>->i)+17YPzKriVPd{hI?A#587=q0_Eaqfzd zSrCqj1oV>L4qOZbSO_7%3Dnr2m-I>_7u<^JDG2vQ0(wcW?-dQ4fbhdeKriXd`cwm# zAml%Q=_JgOURfWm)ILm`i(rfFjHHE`CB3QN!iuUu>Sf2=CB4HNL3D()yCKkK^pajY zDpWEu4#Fu6s5WDk^p4|NLCYZ6U}CGD&@Abd#5jtch4g?SpkFWPC48d?R;M8RoB^d@ zFV@v@POZk(mP_(C2yYuerD2xzUV8=adSI$Z9X$AsEuuiolHS+vYgG*Zv|>ooQmVpB zdT*nFilzYoM(5CEmh{S>($s?>9yS#6rI+;HL#D;-oe=U%S4_V2lHSu#YYp!}cq&qZ zUefFGySDac2!D&zpqKR8t<=3jR9!RzY&y@nx6(^`_8*$64x*t;>E22&>FwF4sU9E( zxs>j$^paklRhpU!VzEo{Lf%5VS0?YT3~+b;Id^Dio>>h(0c5Egf2f>+N$W;aYyTU6~sF(rAtPrTAuVZn&KzhesL*% zO%STJXZUBD%2OZD$zl7i@)N$7r>}=p9_oQ@{eUJK&M?35bLnNKIB*R(XF%YLe%#A-rY)x8%bkG2wT5551`Qd=2rh6l^-rCL_YT(ZeYn^=^R~ zl2S{=8kk$m$l8Ve=;Y+UC&(T{sOLKDN8c zz?5D%(j4C(Kk1a(AVOAdk=Ef_l{60bQ?lXlL!rZNv{|3#qNc>cB`o|Q|Ca|ee+KOTa^YdHpda|7{?(|j z8HT>tbmNRPSTE^yeN3a(fi-o}NP`8v>i-LUj}!yHt@1t>y~|+XZ~D)LD{m>-$8+If zu%P(^_BE~gAg~iI8fmaBrWFtTgmI}@aSqru7mYMn(5iv5`!$-cIc7cBbTQmzu<)sY z)wqi-svCmskP8ok1#K6&f=jEQ!+=e5(MW^!l3rU}OaxsGY=?_R8myP}0^ufc1lXr8 zdY8d^NpCO4SEBkV*gLuKFjz0?-NE=x(71Grf3W4!B=nNr%}4Qx<3#il&4G1uQH~yN zlX^+7)!TZpYb>xCF3NdB+ImUvb=($_C9$<2cDs~O7#_FiCB0^7IKsaL_QHShVoEl9 zZUkE6KDETWgIH0x{S#5+VS5VXIroL8%7I9ADc2q@@GxIBPYDbNMQb;(3-Br#e}b^bXyEh_>Xo8zfsB#7={(sn!U!u|2yqPVevX^&3SC$HIhH# z;;R@n`&5Vj4=pe1)Etli|DR+(#e6BJ#S}LGFM5Rw+o2X6*#5tbmp_S^aNT%|mxT8p z<0a0*4db1_dAMo3zsACQi{4V2>(SDI@ZX_8h;P5QY>l1}Tiiqz<6b|1Zz#dBo0MZ| z79^uwX-ncFNC@H$-~3I56-E*|gV^%A0V_BHm7>7{0Cxg<*#&u_M}e9t2QdLGK;rEu zac1#j^>`KxNMD0N$@F$0D%zJzuyg_>3yd`MJ?EL59=P|oX(rnL;{H7T3kGIS4(=3S zaE1KflI*VNy&QT2%%?fHor-$}lfQ)O_Lt~gkbf|@T#k{@i_Ep6S2*2zcE2EV(P)>t z3|Op+*{T_n0VYIT!Q4_?@c#o7;>FJ`ZGTyKOBwH$!SI%+>7ZHqc^tg8DG|*a-qIyu zKeZk{80X{x3bn&|z^~y+IIi0{YwrU8yK-J2g06;>bRA`kFYv&^qip44tUk02dn-5r z0c{966Fx+YFW~zj2hvugr?LJ4!7U@iit71MNbL(6iPp-kh6=!>I4&UKo{l?@gejDW zz#1%AA_5&ghngX*qX`eKfYb_pg9>e@Vm?GP1mgQ#M3yOa{0%f8f(@>a zN!kVE^&FV68hfq)tUO2`0r|#Yx|OSU(j*-F2BvWw`WuAPKAab2a|!vLLBdxVeQ{d> z=2LM1Wf*#dqoC`aj&_vr!%PIp-$xq2(aOlfO8Diw30JzJFBWJ3yrXkKmFOjIEiuGj zqT!OF#UPY|_7u+zE0*@&t8ML|im@JQm7WE6h_y)_gt#$U9ckKd#Arb2Be`*Oq%noy zO{1e=;~YYe0xb4qyn<2)WE>m8=7dlbr853TsY%3M zxKZe_S61wZh$)MZy^JEbDpAIJLpZvHd6FlioL|EiYBGF~|CpTNYr*goTo@?hf5jNy zgPx0ZcHUMVf$yTrNdE}QlU>Aq88PIvwoBT4xkGifaH0{Zlr0T~*KnD&i`n!D*vGNO z{kR7p{!)L61;uUJZ31=6w(=zBhlr>qvYkfpb>Ml~E>={xt8c+y5Q3bY# z{zMS|;~8X|x(?17WZ8ZlW_NiEmfLx?*VA=a)>OQjReJ+n_%nlc0qu?Hl8TD8W3{(b z*Rg{pT6UcFHtuo(HEqXh@0@P=QR8+g?ZqpM--pR|*|6X4R>KE>#jxMgtvecnof!59 zy74NRofP)Rbi0Y>VOJ0POLe=%`f7*$jk_E`1F`FB|GqA1tUgtH+jNU!X(R3RP@YSp z;BQCVe7b~C|8^%Tj{4(bA{@JXFa%*;beP@6L9?)XYOkkDJ+vFUkM>%5ij;zPB=M=y zb-=iBmOX}sYh@j9>^fj#mSvCEVRqNyV=Q}`_654~i(KvdwKpcu1hicHA>!uQbA8z0iH$f5DS^Vrw)!gqXV_PZRK z=l`C4>4|b^(Mk?2`^%x#JUO)9Acr>laPZYzhIA_J^L0UyRj+{8m%R83H|D4DjjHr6EOM9B^b>h%s5~cniy39@lQlc;8!44uB%>DCNyi8H+q@)*+MLPFs>AFP5F&rvBk$rp5~wjPnv{@Wwtz( zM`%@Sald8HQzL}6G2x-VB~KOtOrA2~8EuHjJRJipRyP3i{g&#hC|ORX2b_cqkaYukzs9DJHBllmA&H=vWi$5l8FM>u>06+l=C z6CSDxsTE|iOrB~%+Qbk#Pri!}vk6%PA+S47!oTQ-aHQll1@R2TY3Pu=vdcIu-?|jU zsoeD_$Kf~2Rqpi-;`I0!&9(BNPvCSU6O~6SW#T?$vhq7o-L(o)&+}z=Sh4HwV_k`N zK;B(|j7R|*1G0r!zTR~?cC%C{w+k0QI_d49NKDN}-W_83UYdw!n-g2tKqukzqQ5Ab z*y%6mN#cmyjQrP<0H69foW`75jR?zY~Lr z#CGf9_w#r^@rjm*0;AKz5MX7t+7HWowZLr1lV_#T4c_z9dwvPru zHiG4Yw4854Cr)3|3=6IZruo<{apm#!G^VAAGif8jwsE-9tHbBe3kZA7golPhs}*ET znwU?g;rZSrWFn}A57O@tI6cE^)ywTfhbER%AxKNPgp{KeE~n}cG<1byIdv^uO&uWM zZ^$W=Lo8JG#nVpC)D{{C=}bfDbEgFHW50@8<;1gms>$h___Z`|e%3kh+wo{y@~m^>clWciIycYn zUuP#j>zsK0ZFZL7&>vWjIuLNg$?g3ltLkwWrfj1xdVQV5%h9NGaX9*GkTu|(w|X^>qSnhP~r zS3A%eu1VAdV1E~WP?D?TBF%{=Lp;w#mNB9gv?5vq$rG-W6{v(Xl0kG3;u9{y3bG-? ziN1pPvWt`(n}H_Oz$f*8qP$I6pRB4r#=X@Ffng1K z!$p(ch4f5zBHVEJr5lMa*@w_^&~HGl8w^c?pU_J@Y9E0$VnzWJS{!exNvKEc65qAc z%44p(85(LrSlP|;ow2wBBdMJS@C!o`HYup0vjTm% zBo^q8{tsJZV(KZp#G20HT3S^Sh}ul4vq1x?PWdicO-Bg38#O3hehM$Kne(lqHH?FB zN~8t>+B#F}XbmeNTpy`{SG5y+JNawixkU_R>3IlWj?^H)K&Jo-#^JO069~U@HK+&6 z6308CCJ_D#!7URz+(1UNmGhk^LLdrcVvK`L7uRm6MBl@IrB7VzjKz6FwIEG31O`0( ztWlLw@8J3-y-ruivWz^$VJac@lu_ad=i>)8Ivd!E9H>r_l_q}aypVttp9FF+2d4W@ z!7e*}%K$qGet`Xfp`syzm5Iq%EqtZ6-%9Y#~A2PasMjtmD<-Fu)U5AF^@{Jx9G7=Y)& zVXmR~<-yFI2lGb`ZVz++U&Fl8627EqAKGO;JQPK)>YaS#T6`~^gw z=;#^e8C1TWahCj&2WWc6IST9qY;oQn5H}n?f)*fbg$WNuL23o7A;8QypM>WHLxg9X zPCYgu>r)8yjFThDjFZzAq2zJ@3!o&Pg#e>6PI zICl(nXPkTrBykcEGfob3XPn9x&@)cub7!1+z{X&Ui~j+3q3HFDvoyl0n($B=NW;QR zY6L+WS6GRK;Th-81U-FRVKNKDGtN#MQN>ds)HBX`@aq{TH(Gbb$vFzoIDf-MtTwdJ zendRXnp4>qmQOx`$t&AOry)Db@+MlYW}Fpq`maPV{fXTzSFWdTGbtZ#aTda+_3H3B zR1RU)O?ap!v|2&dq>1^|64EX%k$uKF7=lUJg-VBxzLXY1y2>S_9JO#cZHM4lSJ<9Y z*TU8GIs_kO7lw7~8Rt1je=&p^oH7MKB?#-g07uF` zoa?a>*&+Fdva|;3~v{YwG`K?dFWIf_$#T2BT!g`49$ENpkYI zGfqC$^o&!Qx0-SGLEF+Z&LQknGtOP?R5Q+f>{K&O)~aWmE7^J1jFa1Ae0av$5JTMN z*y6fKJ9B58-4Qs@2tvK2!IVZo#Ef$~ybE0>7S8Y-5Hrs8@b1kn4fTf_t?LL1(w%X> z1@I#m&XVMwb`i`te}ecA7a7TjJLB}>x>5w2%1DS6sD#`ZXC;X1y9g`DhG53YABpPc zBI{6qVI(}`91HRN1~H9M%{X~ZHy(OvEr_j#3Qb{S&5Uy^`jweX9RhLOr6fyc#@R1g zQ{RKQ;!cq;h`(Sy+Aj6l=JrZdkKAw?a=u2b>(z$ybtaWPS3W}NsFk@YhQoH~K% zVJLUTc>q(6KN%Pg;Zz3Za~|9oXQLuo!zu_jxEjoivtVPb;ROg^aW$A3=d7}LmI=nw zrx2cTHJBM^|G~&R1AjtzD^i1=ac+y#8e&JHm1ENlTfGM|G2KqZjd#&d2f{`Ss9dN& zjbX-FGD92L6T<$HfSz#{zefYpAe<8k=ox2nd!59i5N?eG^o+A~Jq;X!@K_|EXPo!p zvdoo8XCXWv3FsN;O=u9{HiVv0CKqPL`P9RR9fF`d3+3bv$@yt!oFlnKG=Q{yb|Tzx z^o(R%~$~8LkxrqlmFC(8Rr;GM`XtN1cZBBAUxxI6-7ly5q^?o z5oVeh=NSw?Kjl{UBZzCcQ@8ESHvT%qR6bO19B*QX%CebpUdK%uo2o(FAP3S|&p7!p zIZ3S>fB_6e*rcF}&h4r?F@Bg}Awv;~nHlG|xa5ecEg+s^N_DYj#`#YZt>!3%CyW|* z#`$7vt>GMmmm)Rj8Rv)ut--;#J1;g<{CdXuGMu$I1Xp z1JW%A=60ar8E0NB-%0N{2I%zcI5MMVoU3p*TAV58Rw>WZpk+wi5h1L!nNAWIP1({E&)tZcFxQ=r!QinIi%fO zLS~$NtwxG^#yO@rbECk_b2+J{$Yk}5v%SOc27phvuyj9W#uYa&C{_D@>nJ|kPK(>UJ3W1J`Tu`%_1|mJb~ms zLH0(a|Cs099HbNOQE@PVkX$T zr+chY2C*hmwh$|}EbgJf`tR8KGLNIcBiGCqB6JzsP&>Qzn-I3kgojeadN#mV|2jM; z4H0QQKj13Xv%`vQvskPzfoc2Q*0V~n-bBh4VmTj{#jT>K$@J)CJOk098qS=l#GgX) z6u_`0Y8oX%EppV5<`#l~2EKiP0DSTlQ!vSq7R(_UkHDEm5UQ{l##N$r7#>9}qRHs& z`1GL-Ak_4t5{>dhwv*-Yt6x;*Xw(%Qgy0PmJJbv5 za_7gD@jUUJe)Klj0$*hpHl+r@)v5r#qwclw4^|jUWg$$A1n%z--~#pUg0&&EUrL9tT_o_vLjZoJj~eSF zhCq0q0aU}OL$xvdjQWFSdo;BuJE1Uq({%#cX4UrnQO5_sLA)RDu$9yp}8!FVbVb=5w2KOW9ug*aJz%XxgwmQR|M=D9MSv;A=ZZ2HT7 z{2uPd;}NSYwz#R#fj=zKgM}b%hxh*=u;E>T3_N^^z&=Kx&h9jdMnOfr>|8>X&tgrJ zK+JWi1qeg2H>m*Xb*DXg7oj$Sc)kZshS|ta;N@vf@r{^s~3n7*{P89 z#A%d29~1^W&!uT}0k9R>Q545O^mkFwo?^K4iNakV_)~eRGQ!5a%Eb}udAqxA?WaJT zWoii*w4xf*gsh2HR4Grr>RQ)dAZ{C7n1l+D5|_?!Xcu|oB1VH)w@2BYqHHZ|1U$9up&HYlv&`EZoS+i95w{s-Z;NPwqc zQF*=3wAH!JhXHRKZ>sU=^O7Ivj>_-d;nh@45NUT&C%7TTd8g;sR4))&E+uDNW8#0p zL{;!^Lv2VGJ{!bBL-8v{#!R!KlD%KzoD*ORgipCZ8u4FtqUv~uVlXDaQ3y{&0+|>? zL^br5M3}UQb8uWWK)Br$91E(6*FvU*3ZP>wge`l8^WZkBowo$8$#SVk0#VygDB?9J z&Zr(Kw*E@+wW<;fthLUE;nv z;JWZ2IvTx`QW%P(p0IB~FP^Qhhtzi30bKK>5ne#3>WSTmuFLW@jz;WChw7tuR?m#S z<~}p}I{#HcJu`ZgKl>+-igK87SUzhj$KN;I#E*RDl>g_fpE>0Z^hq=hGY-VZ3*V6b zD<*zq`uuk^oj!lnPoi;{aaeumA}Yb2_D}$~gK$l!ub?QzF4^G|>760=my0?oUx47`F)=1?;jGkZ(M6seY+i#)~!tXx)@%% zd9Qq{lmaMGb#=<57ct5!e9`8orl}N%^A4W^&x3$Wy2Vn*;VLBFsW;p4g)PkSzw^8v zZ^Pbn?Gf`xeOa^zIezVAkm*dig9ci-l`Y)CaQv{j zHY@3B3p zlWMY^V-#_i2`LFRh400p05g7S3h^pgXsRM;MTK!#D8W}mU5mU%a;n-7HPozp?TLl$UZI(*{dR3 zlT$V&4YC!Yb6-xKJz3{JTom+v_IR1Zf7>nG)e+$}6VWX;4nr;cgF}%2b})G2Xsd40 z13S=y{YNqWPI{2-!5qQ=JkGtOMat*#FT*e^X|eL*jk13DmMGsn{;jwOB|W5kG5)HU z+axVjzC!*EZQxs`d`11&(DNictbE1&HT%G~T=`1*Cyaq_)r|$5dPVB((m;-36*pUCZsKhOUhNZ1x|DjRVWGgHiy$NX2ld~3z>9$G-R*Q0|=L$ z5-x?;@&-J`@^Hnl9hsEg59HhQER(#8Bt4#MO_+I>nIh5^(-+LRSr?U=Q~@Pg_#@&X zm7S|ab)nvX7li{=kMK$KncUW)G7m&1r@%pU1|y5YMPxnQ5Qx!hTsCFwTle%MUUbuzI$Cg}m^CKID+bZH%u0#=T^&J)QgCV3l)b=^t zF?Clb`t7hC+?^fco@llb#4gl%AAqsN(OM9E&3m?%Qo=In0B~jhq#5M+<{%CN^e})_ zcOP2EN&d)tkxwylwhIcTl!ZLM90XWz08vnhqH!h_t|tcpju^nrS>XyN zCpVB&k8cemH{`zz$ufF!BlQ93(WMZaPE8-g{101PR{(tHRl-|RZ-fmo;i2A;TEVL@ zKAuK#%yx7?q>Bw<7K3}>WKQnbWEjo|2x%L3dzs2){h?xTV$DFHF8`wS$1rppyH8xG zyn^1z2Ti?xt*ABq523di5=%ojxFDObStV&qFOY+tY6VpVP$p%tX^L$S6p2=>0BY#t zC=QNG4L~(xQY=$9Q2AOQcT(A*@*DfoWx&ZPZ!FHOu=yOaRbg}W%2+qKq4}6~awGLI zYhBpSBDn*cw*nDEd7DeOK7Fok^yp1%x{qp;)O$Neb?DH=8w!xqQyBBRhE zgqgy|3codzp;`bMyU=O{slr}yQful3U<5;AX=o^*?1eq>X{eeFVueew4T74&PJaud zTu$_9Q2Uq^%TyWj2_S_n=TeaK>syBlJyokC?=l$f#iLsFV;qD~!p(=^NmZWYTc{nr z8W;yYfc=E}*7Zy3Ti0)>Z(YBszIFYU`quUFB0F&o#h>7BU00+511DJV&vwVP?O&W} z)P4z!XBR|+hflWR_kTSL&rUr7(de*9$+xBZq@mOKo2k>;!JGPv4c$Os( z|8KAQNA}0KBIV&zulmRKPweJD@m2rC{u=Iv)W-wQX`5b$=HuAnKKmZ&;Q0~}e1Sj2 zeudDBMiM#;IVP+QZhch$!S2uvAKQeGER>2LTilNlKaKcV^6Ed?@u`@mGEf@AijhDj zPL=Bavwup%a}^w?DTJ*VP!^<-0N3n=065tG9~#5U4w;Ia0$#vBYyj4^?*~?uT$g( z;YS51!xfrF`M7}YaayBsNV26tRAnkcVH&-{r4-{N-m7)B1kvR#U3?d zAEvzF7FC?xx>TUH1=F%iz-kaFMNU3)EPuCrpics z)1vr0;eRkN0mA8#fNoJs>*0FHan?Y%kpX3aX;Gio#UH;|!+r>l8X(*hbc;&IrCijU z0ddYyZi@;65H+_T3_Ki8C#*)dsKclg$xi}^B&H-kp=4NS1<%3^)1q3(>J-}p>*XpG z)U>FF#^_`xfSAoxghJDz_)!9}eglXnn36(J$)=HRQP-+yU9W+7kEv|Bbc;Hc2PYmX zi7tTnpP^KX;>MA^MP&=IeEIVuX0^c$(V!BZY>&QkR7Bs&!%^uw*`xKTPR(cO~p4_VW`xoJUQZASg{bY-XR^2zERcB;t)juJ* zU$DjXlvWwhPueT+*B5L`61tb`*YuOy*5L1@h(;AbBr`Q!;+t0e)@}R)gMro%c8Uaa ztN!Q?DuLsSfN(qm$^z4>`vc&@pobt_XMk{X)UA5g<66ygAYL+*+o~G^5H%k|_>BR= zYILi<{ie>(br7DF;rxUqajt{U!wl1^D;>}&mI0Q`s2HwL)2jRaPbb?NL^r0SfWnmS zC)fO|b&Ulv<1SsgRTns-b*%-l^)6kyRrmY=pBDKI<#hJiVe3Y8FxjrsD)@b;ePTlcI$p}CERX5S$~yfHNh5Fn~jO=C%Ymv(?~+8 zkh?AFuU{}^g^;FWHZ4to9DQ!07R@m~E3^fhsKN0G}&cjYs z*wJvB!cM_@PD5;Qg%KK2*c}ko+k}UTL23p0eH^B+$3Z&N5IG9FZb8fX2Q)nbVjEMX zS$`-RPE*+BlX2xn03E{axC@08qzb!YSFPzgg#N~mSQ@$t?b!=^U?r&Xp-hTk(-hkv zs448gLs&#*%c_B@!=zZI%9#J?FNMtxm0#baihyg3mjCthn>}hwn%fO!$yd@Elh?D8 zn{$onHIYFn;TkjQ!5QoW-Re~$H4Z!jxBRiI#=-4~;U=LT%0m{7!z%sHG9*~~Jv0jP zy)yy(ThIFVQa@6z`6v=teGzY{|rtYx*&_4(>H9a{Mh0f3u0G@Lp51fEh zO_!~sHNA__GYpBPp)U|IdrjAG235a;Ae4)y*aksOO?RA(mxyqpAyB266w6fU^P`(m z4eU_)^-aXA6g4gXr%^S1Z4io8)pXv$x`b;?5B>lrpG!4n6oE6C4&6Sd9!EZ~4sKo3 zg%QI|LMoX5b7LG<>GeF>D7`xid!Gj<18Ta&3y`O7XiG*kXRZz1}J+?PsxC)uRvUODYijSQ`3Lr%;&h| zLFq+dQnl|YaB|8+n3~;P*ue{?u=6^mu#0f0D(rYTO<_+#achmbzU?mSb;tUuHVPE*+YS(3l+k2%SGQb&%2~2}LCU6P+d_3@7 zgTVZS;K0)kJZLU_sSDmgUw03Jht{f>5`dXmfz~)=1!iC$qxUN0MdUUsP%kg<$6z0$ z_bTM+D3s;iMi|GG%Yr&P4P9OB@;qp^69>atfs5aMAE!m_O0oj^471hmWuOtWH5_i) z1(0m*TA9qg$823T)Am4l?WUr)!#p^fiQao~MX%jl^nQQ>s@+2LI?T2gz3rLpAbO*i z?I?OrGMgcKA4-9P_G>`78hHuC#KAF^x30P>6s}h4{pQlQ_liC z5nNy2y7qsHdw?lw`KV05?;8nU6D5oB=fh*@Eh z&cVvp%RilU4pF||{w=I?nDX`UKg>GEDqmlJN!B?|`TAk$_*^UaXL6os`!<}Z+;-Ie zHHOhY{UMvP55W`@sJs;!tuz?Ju}adu{%H;8GO4;(N5lEBI43}Tot5HT$Lv~hZh$kX z-8m?-Cjm%m@HsoX&%*uP8eHSP&*tLfsoSv5cGU52JrJD6PJSRDX$*Xgl`nu3EI)_W zjYVJ+b`GytxBU=Uash7NJCm?>P`ASyaQmM}{nzazmO{(&rtoD*TQB4B|5_Nn&Po>W z??kszx2uxf<3BJPzMe`J;~$PQr*3cME975}-l}e&hHOEZqSifAk#60ruJGP7V;G!6 z*ob?k6^C;uXIphJeazvSlZuZPi`DDTydCEb?3SmLUEH zP={eV5w_MZ#Z*k7B?3ld1-L4+0z9ve3Gi}fR)AMQV*=gLJYxbkFaXL5@a!}zz^hhS z0e;XaCctY~SpiTVN8Hu@}3p&;Vx|6KgWPLFC1pICUl8Af`1e<$KXM8K!aY8dgZVBZ6mf@H)-`9W%k1^v%NvzGe?){3?g@ z;;!29`hQ4vbs@0E$O2tz(BUGbs3#%hMAXGFlXiE8qB^o7M`c(j=48@sTt-t1I$WmI zn8Vow+2I;nfy<ib*OqEXEqDv(Fs-?Ce9WE(O*U1nhPoD)45>hg|w`4!2I?#aUTPRST+v=wN#YH^~5pS8T%#sNsVM{#b%} z1=r1PI5Xo%1NdCVJG{1gH!zNi;~8G&AYS!#0Tk7@3nAMlBd?CxWqD&76tPn=(nGL+ z^f3Hqw&>Aqaw_@r^oB3)3Nnlr{987EeXT)=qmP?k6@#J!zB4!>iv|xL<*3Q%ZG*3} zll$ItY49C6F1~<&%rN+lsdGOD)wcxUF@XkBm9ATQuS*a~pU1>}cqH^rIJBT;`(Q?a zv25;GT83V+KplrlJdOPF4w0&3KSY7U0OL+pZKoQX_&lcP>lXY99(NYj#Y zS~8GHb8#6c5R^R8EhgmT(7N@Zq&A=rh?EWshDa+#sa_CavnYv<`BOP=QN~Jc+G?l zq}zVhtHLwsEvD{Q<#B;2E)P`g{ALJm>(D%(j>_Ku&FT%q;SSkf#C>iPt+?Mrqax$N{b=L&=0(36RJ*E&i!Gu4CPbcO;$#O zsLB+0K4zn72S*X}Gs)va@FA7Sqa5zma7>^qt_oR!FDr9F{w#aG(;5?q$K^Up@0($u zk`>@^wT}t>BILzHCjZ7hE3l^pyI++(FC)bSenrolrT6@a=&S&Tt9?x1n2`M0m8`%K z*?)k2KJFmhWHFp*Ca}FJW&dAJI@O6yPNGA2k|fCs%)H7 z>zZXXZgd|l*^7IgY49|fB5rhsp68!~ce*^Th>p}V{uaD5wKvAo1Th-Tp(U^ZV?)pI zjqpA|+>G#<6wg-VvC%_XRYlJ#57zG6~t@@N9Ah?ZaB;us0BX+Tnsl={Pm3 zUx)uQhv(QR9;fE>i0t{wS%Gq~`9m_jkHCLM`#U*p3CcX%911>*n=RPlI5i3#!rltL zh**kv!l9awrny8qSG*EFgZKYH(AO18J-4M$jNh z!+u%|ns@>lUUf2#Yv7xlfM|H%sqvx) z?l8cKWz%rdS+Z6GrBJ95Kt1_3f#;O74UNO0I*>NQrb|h(*-GAt>N)Q`euk0mu2>3D zm127GGR!MHb-jN<>^av3yPjU2l5ms$u^qhqy{gVCdM>j!)9Z+|S_(am8M!Cb`$GsN z@DifG#wnbXB1)kx4@210TdNF&ry)4&3MW!ZNeJ6}Kh6i?RTg|Av8>=Qc+&q`#3tS6 zU4~Yk#38VS8WIP4CVHt1f-7T-`%)q`q(50O)k_T!*xCqmZMIbLW_lg!3)wIu4}FX1 zR`4eD>yn!3-L#NPYEBNua%MjTLp^PMuR>B|P8u8UQ}1=3bm+XQAj@^(>8AuB)x!hB>h2XTI>Aty=2j8MCZyPU>3eB;(s2`^mMaFjCWO`B^&8T<4pexHp1ULG6HaVJwP$Soh{<={)nCc3UtH zW4)sxoah3LX(;}e>6!05`jZA8hH$M5q|uV%(C~n>b*l!Rh426aVkiDh&Hu*qJmma* z7V6)J;0q&EnP{o$@|#bVB?8B-YwJ#o*^8$CzpXbf#f26FDDmI%^7==rT|%BFkPZel#-_% zdIX|vMjRR}rq)Ej6gkJdPyc}K*P)klAeOWAAEfFX<(!3NYLNn{m{E>3tq3~NfG?c` zJ0HN)&vV~mf42wF85DUQ|335eo`e**+iXWH^Zh^e-UB|1Vr?7W+0BzIB*7D zMCnCT1Vaf`DJqJ95(p1PX+n?=v7w?Kz)Dag5XFKZpd1wxgIKU*$99apD+f{R{;%tv zncaOtP|o|F^Zvi@`@Ml@%iZUmd)n^o%vnm+2l6QV>K98wW@__`i5;Yl1EOny49pka zAz1$csNn%RXTF&KRbYPVkPA?`dung%ohy}kA@!8`@>44Z0*zL^BLIUUiQ<9)&y@_fxb^bPVBCy5E5S6+exBaet2|TPi z(>B_Ajg@O8gJvT0kwNrT>Ht*_WQXBbf6p#3IkVMxN_*@{v35MOiCTk z5T$388+V1e5R~Ty)Xp5$;ziI+y76f}1s8OZUFs^(TpOjEIt+9(^0pbv-FS+~yAL#v z26XzfC2)xCWP;R=(CWJUUk~3#&BP1@pq^fq^)VJu0lwpUfdr=OvQ02 z?FzQQ6GvR(slx$lj-U2KPBGn-Mfo}wQ?FQX3o|pn5{Z*P78$70wzxBZnWqZT14%1) zyDtP#d;MyL1$F}Jie&mHFIS|y0ezpD9RaYpd67~p2BN)Pp#-nif#?yc;)`u%Tz|1r zpI-x_+tdYvQRTuyI-l}X1rDE*egdHmD6eS;%2jGr9n4jvg>b)6R)^{={0!wKN~NRQ zaq?<4>NKHB5vrD;XiqB9kL}fH{mE;Ut9k=EU?0qS#NbFkCk2?CBJm)l>2~1c^(wzL zU3f($8YlniRl4^6>cOz~mN_UWs-42x`w1||4d_(bK9BI4&hzzhnomHpheFV=OY zpC^N42FdQAkkHTnI2*4w>F4W!TpAJte%_7lkPzGtj|LAuS5qwbKq%CnyuOrl(*PI z#b=ROEO5nYwGVH{HmLJ(cid(a_}c-96!`6(!EwJ5yjlUGwbb(<-4z!285e`-K{f7t zEDnmAp9P-s)Jr(*4CqlnsV%k{1@ucmckhGQf&v{b;0{c*sR!FZ(?2|n;)s?;HF33Ce;VAMh|0hvpVQUP<l#w}=X`IRBZmn`De^zGP54uOF#Mla;%75gng3F> zYB|Dxtojt05B-^+8Gh;}4|P}K6}FJq$!~=~V0Us3-p<;B!WNQ!he(BVCK5UVzxqG3 z^~@nfq@WZ5b5Ve;Tu|EX1Tk~;W{|8TSt{?sg0cvG5NVYk269_S5EPVaFzytBcY*vU zBnS#hE2LHkeg`s!q-ZkH;Q(l)1d>6L@-i?0k4bqU0HfU{2|ZthJmYxy-7?er+!S zwmr598iX~5q3(eMn2oLNv98w|*1SrrmEuFflJNo7s~H;GV~t)jtg{U3-AD*Si|2^J z-ykM(cmS(Jpu-EA6`^Zm}(-Iq%eW?iE?3W zi9V-jZ3@5BO?y$y$VyK~3{GpL0uLXHBtz@ZDDT2L+OR&*v`W^e0JfQP-8-5Uh6w9Q z!+Pm*ZEz*6J(^k8sTcmLJAzJlsT}O(=l+HOO6%(W3Xx59hpV4kh|;dU z21GB&Ae}D6U9>&S|Kw}X#I9A1;E~o(p|y_Ptmu2CK-v6D8YU+v|AKTh~J4pptxy>C+*2`-{-eWTKPpxzN_ zO#rP*8oiV(pAaYin@_d0TcXlBBHBgTG)j|VBfKIc$+jejlVAT2E$xe_v|i5{X-`m^ zlq8YHawaL23#K#)f;>bW#grcZSj2Cf10}X)16q}BK}rMLc;V#V3Nt8eepFgh-}r4f zrLoXyFR@f6=Ry+1$!8~&(q4^9+kuXq*mf_aRgtG6Bq>h`aq|Cu2c?}6I~*;hiMKOj zS3YY}`WvOmlPmEXi@n&!qOmW;$?t+>(6&jTv{Pe)?>5r<09sY_irA#+CB(_kfOgup zC6sn%tPP5|q_l+6LfcrcB-@q*aq>@Gscp-6JV@!Ou_xh7k@o3+Y!e|#wh`jwXKvTF z4GyK98SC>8Bdr~v5!+aCCEJz+aq?^7Q6v3!XDIE|*xYA~v`Z+Bt(W$>IG<%fge2KU zh?Bnpk3v=2UGDqfGnL$G_wC=I;$VSWX6)akS-$TZJ?zxWw_$?Wwxwec+X*}X3&Dj3Qz&ZWg z31t8t4alFQ@t4~)QRS`9wg55>Kkd=uq3C1g%ns zK=={(X)(@a*mjKK1*c8`qI-Zeo!AyHA=b}9ha$LevPfR6iXID%u7TpUuh9!2>_!UQ zDn>t*Wb_?CtPPM6qqoB%YxKDwP%q)IGo-Xe3r>9l#4iCdYV?+`jM2PsvPfR6+PxPV zy{$^4PX@FPe)ZoJqu)z1dMFTu0WxBAJM@99(b*tS^KrN)q_jp0PL%<%E>p8|_3zO9vTv>di z)l~Jn9S`~zsE5}>TY>^v8S0wVAa|(PLqJ|kq`btEDygZehVSFjcDZ*zj9LXGsx|2i z%h*O}vQ`7!@Y=gT&_uOeh3@AH)$M2VAn!%Z!u~2+`@J8-qqoMET#NdYqwMOacMov< zR2O3|ur@$PSXlE7tFAHkKR}1p=g`uE^%kU0Sc@yMiZ5hXACB$K_=)=_gZ0c04eMsZ zs#}IX9X~yRJ{VYYR~yzJ46AO9_CKnJ!Kb}1tY4z47lT_t6y2nom3`7G)w1-!ny3!t z!g_9rVI5~!4`BRs`76RY9}T2vy~D7w`%%TvD>{A}r?u`tff3dZ3@dvFRj`KRrzUC% z-X-`q#rD`veKs2QeL^BSke-D?28QczGJTb9h9M~sq)|04xvWAM4nyoq$7^aO2FZS5 zFq!_wEy6GzxgZRy41>)%YSOK*(J&P~YnXJ>2E*`%VMvM+X?0~p&_o^giD>Bgu3_+B z(22Gh#3bp%7?Ykv&juO}{n9X;U>K4jA{qy~nIkvFErCVffaLvldm-Kt`>B zT&PE9#H2QS0uM#h{X#7L(MTt*scO9!b?q*92x>yLQ`3a`X=>GVs0cyx>F1#NRnst7 zB3-klYR^4Fvj{<=a(6K4QUOGIVNKOFPl9H+TDAu?-879vr-ZZ7_1#*bd4_VvXqtU= zt~1w^NyKv#SGCRfzF z?_fYu2Od=F5+D`@NYm?TplYM0uQp}R4aSIdpm-QRgx`xtDr@k2xP&cll){!N&wgQO z-vQlcnwE8{Nu1P;4OIF+NV^^lk0j2=XsQ-|ko#rhfc6($LheOqF{@2kz0%OO1znz| zeXmJC`z0!H$Xa% zo&+q5V%-ax;dUZh8ct@bdm>7A=gF+&IG3$%tq!=IqOtY7x}U#?+ai6Ni=s=loljCM z&Z+3r)|YK$b0}Ls-j=%36i3b(>D;sPXuPooUL6MdM&yy5W#P3mj|Bddud>YSfs=vj z9>uRb7x>ej9%$w^37wHG!y(ZNG%6$RTRJX9N>p+ zJxxCfSC0bsWE4N>D&WukX^6qU2izx7{Heqbf9PU^{{y&GWJi#`{=|=5fGlLKq7DPD zQHWol)FE`x`L+7$cHgt___CPa`StGRG*U-BiV;Mc3-3VH+EN~*GY{J^Tl{v4@2r`L z9Tlnl6s0bOf<;ua?L(-{c^XH29t=PyO_GZJ+3&>d{UME1c_*u-FvhQ@R-ibExi5g? zHB!AuNqA+};YSc;sOw>h^p?K`@`oq^{q5IO4Hg=Q$6-0gKY@geB&e${xZV)70`mAM z0qbVJq59@7sHWD_fIOE3IyG!Q@Jj4KR7ZXj^$0p3o|+2uMInhyjnZ$;{Pt?bBP3Y@ z^lc%D_~a_3>cVA8tq%~Uw$$!Atsg2i#ZR-ZRy$yh@*h*)HA?-w8M?=-MyT`^ZuvIZ zpQ_fQ{#Jie>I;-@f1COMmB}l60dnK9$06TSbs?y}44&byLVyr%e3-z zmlF^r9-WD}Khx!IwwQP8wJGe5`#~=E8o~#JUYmi#aX(llo4ZGh@!HJmh5Ml{Ww}R8 zLMkcU->XzNbdCDpSAXG0G#xW17Xb0IQs)48UVt!pg`Hkd`uyM3>Z?s9aVbcyBH0bX zf3kX{5CqD7A!Z0}2lAdM0cS?}DQ+W}E^+@Pkk3a6KBui|?oXo(!KXle6D7#F1O(OH z$KXSe;J@uS2jLgku+;}aru*S#hM)!xW&D4jTlL6I|yg zk{k?l(~v}-)X+qygId7&KH0tdEbSam^#z>{Z=pCrO+%aGcXclnNeN&t2qn=Qu=qa4 zUw8MgOr6V~x*8;WJ!kykc=^uT8HbasQUNZ{oFSa0u?-HuuMPZOYM#`tQ2; zAw8JZ@3k3(;^KecGG#3A9o089-~w00{(;X*@TwtV9N^m|alUv+@1%}`yAa_Oy?xu>{+&5=ob|LNF4dhQDK@Y_|^EV+5 zGLUJl@Y8MxYir$0VghnFfhmVGkr2NUo!i{=g6KR2yr&2J&O)V5n>xYqpLRRVX84>B z)Z`F-qN+U|il23N;^e8TfXR7=l8r?l!J=CMygOjY*+FzxcZ8vd%#YkzBKomPG@7W1 z8o!)FP4A~C%u|ZJphE{&k|N7jHc>5K5R%7nVtb}?Dug6>@QOk5?6-vE*q04SM@3pElAGC$0~=SBCjapq?r37=a+#C;BLks_6 z672Z8b~J7tk#9k3ybl#$11tx8$Me8g;IxTmTlzg(sm1p%Af4tSX?nq~?A0}y1Wrnkf{V3KjP`KRn@c+IUW&4&Oh-{TFbZMLtS-#aD6?NKXT~BE-rzNd5^hXuyq=Qak=xcMd=24s z++PE1+`kRQDdD$56ekRXUCD&cjldH=H}g*TFUe8E^>Nt+g!3972+H*qxn?UB_dBDm zOZaS@<31;$#(lPyDDgOEu^x{5eES>sSt+7_j`~esCw$hM$S$Gz0LLs|;tNGN5)k*f zic!LEehaS~EaP#dSilW4<38&*EbbylRyg?d5Hty&>+{5Yt^ySIxlJTg;Rp#+c+I^F z@|v&OXD-LRojrV35mJ(ID8C@| z>T;Xnj0TN&v%BMaX?u{Oj9i+9-d5WDA-HR(?`oZOJ#sDM5Q_A$82&N1IqF6bsKY+R zyk7k3H-i+VU2X{4W}XaC9+0Pm1Z_a3%{)}m&WsLf1h5lA3UP};c2Vn`(f%_ zbo4TMU5}$G1#&$JP6!OpUwkxB7aR(zp;z=V9iL}F^?EWT7WOab0HX6!=0en$K<=$X z&_Hnyw2V2mTNx?w&+r%wKci0!Y9P-tGcM~3g(uUDb|C0XBJCAJwAqKG8xO{jX;gzj zFq}kUIZWZ!#2G8TghA>;z~_Xx*=h~~KjU`A3{ckrQA(sp51xm<(*`7Ws$)&};UQ3z zhawuNEi-_BT`3=@JtF_mWOV(>uU@7~=C}bGeLc^(d?s zQ+@+71x3hY(Q&Ffnzf7;s`C|)o&!W9A|s)XoxR6`qN6%72NWj(+cltYisWOwjDD(5 zHy{Uw2+VJ|_F)w4%z27WR``OxIS&{VsqQ_|g9CyUGG^lA(FrJVuS&pQN*Oo(6BuW) zQr;bcId>!O@hud~zNgA@d@3aCVfius1@w~uld}wBoGdcwCr!|?`#nl|=rNC83I!A$4r``qh^8l0cr6h<Na$#t7q@sB3?+9%2X`{#fl`Vt?z=W-dRk98&A_z<)C;fq`CpJP^79Kp@>#*1(+a} zgrmQCJ9+|fUynTb(N4l#^TVcu&+mFL{zNWi@!Ob<395R!y6Qn`z(e?0Ae@pb6RA==lo5KR{%-) zEE92`GY>JEdz#k_iiFS5!V?KV5-Ni@`WygK) z>bgv|ISqpe!}N?fmx6gasXxU*GxG|}W0-_O$J0}3+{GiEEY31quDE=O`wK2>?LjX~ z^zllqP*1&zF5wzkM#ah6Sb^lKuSj=4-k%(;GbFo-K0DRW43O(|9Lf~ML1mdr#VrkA zuCCmKs}Z=JfuB~xhtaB3jrtsE@^A_HWWV4Z=rD5g&A9;bOMz2&<4~q32l5TWW5~1a zhH#uYmxJLYGQ6F{uw3zbQ1=S}f50zdhjW{dj(8D;(8##RoO6-qhq6Iyj6<0sGnFq_ zY4_vmH~{KhcZQJ;iLZ0SR&^bosD_v zAZ+*pnjAHq6L&c>K=|IQCQjikry(&nOJp){+KW2)o0@Yena>qwQ16gSsM5?k0_H5f zJStJcP{aoq&fm@1$$*60w1lF`4weYua{+JhgY&eIa+el(i`UI_Rw=##Kkrp-!Yp$x zfPkmKuU^MNhd-|v{!Z45AF|Z&jrVLrzQvr&!S*}pGWYJowoLIAxTV}_IC3-b1`x#R zPnH&1C_89z1yfLhKlRRvkZqaMPW?Fo$5{4 zV>2w(WLyP^)t%}ype!iE=4lO}@F*0hRcbGeKfb1&miD?nmxAC|DoX#+rk+>YX?*8h zqPn6cw({B;xz0hL$phh1{d#&4Gmzg>*}tf|{Sv<*ZS-hh+qQ5?z?#lf61HCZkS&@^p? z8cV&$whZ7>--2YR8b1cQ7MZ4uRl!T3w{%D5>Z-u03HrmBI8A?j(DbcR*+q_H=}s{8 z1)%Q&ay1wSoo~EizTItD(SDtZlr2-$KgIJJ#F7oS2bQ+yU@xqmTIa#<-Ez3ctHsDaEC{47Cl8XX3gAWcZ^|>vyZF#jY4ToIk z{c5v>S8(Z|C2AM~E~6LQU3c*rOQZ;A^wRZx|J7=PQ9RU$x<@5OW91fdSMzd*;Gquw z)~M{35Ym_3KzH%zHR{^2xb3H9j#;g07-lPEjT-kn2=oHRi^nn9d>$z4Z&I|Z%Gu7z znuzOVYCTePq6w~)!*z;Ek)k_jM9y#fNzqV~qSdOG;dKqKP68Q`go5NG3`jMW12<}TCM&t=);W;qy?)& z>vW#Z+!MD`r?|bPlSRXqDLxgpX}aC;79ed6en;9)!ae#Q`Mm;6X_1l&*^aBI~BCu3>gfoX>JDRUMN+#GnI z*nl?#Xn5cjjUF0!fGWfT$2eIuY?X!{qMjLH=ZXL(T{R76dz#-WKDB^s4?RElY zAbyb|p4_~U^(i!nR^}8VyBM-(1E=QWP^Kscg&Va289v;E#{`COsX14GVGS7`NMg82 zJv|#8b`$P(%{i|w2tNhkQr*Vf>9UQXg5|2?G+g}v+(GDkYrA=6o1+1qZjShxW~Iou z?=n0UGJ<=Wb14*bAXi@;$`r*(-2{k4#4^PP_?Eiok*2uRLr0%nnV5MVaj3VreD-QJ z!pLrKsMn~>qv5#K@6BQNZx<+b7>buM{hxo5_xCV!y~R6c->YHf`&TG_)Sx~c)uc5rf74Rmz8+@#8T|c+2R#yP?Tk>m+CzH*07o+kl zGx;>j5U)|3carh5u3gVvtsXW6(+q(a|BH^yg4JrfL7yA&OFjFmF1*85tIrKV2Scz< zy|V!dQ1>AHY<0BZeBK`z+)f)_4#PjE;TO9}eiy?pH}cLg#Ot)-b<8*bmX{ievkk?1 zRyuW!UYLH5!RG}M#PoV9u>E;M(IB7@+Yd>yeVO8`hyp|MM0;&}ZhdS63bR!PrkCrO zFk5UOs8C8x9lK7qU~P?g=daUESUV$zH9qTvRf;b^ zo-~rC9+QLjDAE8XelTZ;|q zww>tF19BALC*h~73tlA;YBe!w&!UL`{32`u#QBH|pL|->+8c1bwx` zNLwq@Y%`ni;gq+ybk6-Mu22WzyMr}q>#N{BjA~fBtWk45;ysrIVl}W)<$-dI%6OJg zJ|XlLFPgJaO%mvZ6@+reik4am=vk0z^c|-4?U?IqR6B%W@d`3@5M@6~9dkdtfUad| z$`RcKTRg{@a)dVJGnmp6l*W`Jv?)6P<&()ZN=!LIo3aQATm^5k+CWC>L6 zmnpu3vblQJ5S=dt$lWQRRtvDCM^f(YoOYk;{RVV*KE02oy-)r01MYjd{q6l_#OJR$ z)!u*1TsXDgY5IP(`lreDK1Q3#jTYJk6*JeWNqDA_*;2O{UroDT_4m*Y;$?zKU~8Q~ z64IFEWLo z%k_d?XHDr6n$i-K#*{AFl;T;4Jb{WST|!e90Xh^?jVWCsrj!eVn9`+0ls#xn*#(RO z#F*0kR>78AQ@V$yW98k*8QV#+#U5L3F#ih+x_ zizypbgK9R_ z8=k5oY?1y2bqnONzHrfzfNW;C*Z=!2bBwL+yJS7WJ7er7k zf%-T^O^u)mfO0Yefzu+WML-=KqGm-<8Gt`n#P!~8HND*$~LQjH(yM`ALLXT@uj1jGExM464r zJi&+=3l<0_h{*+^8Iy!cIztP>m@E~jn6V&?$sK@>gd}6ef=Em{cG|BmymJ@lp;#>f2IOs=%v(tg;Qgu`uz?}< z&6XM+D_|yum}Ma*m(RRI%yJzayV&*U57g};YGr`hsEUCyh2i!9jBjGpIzg1&g*4u& z)BFW$xOcz9{arfEzv?vKlbq%U!!%bwL~rzuIWo;$s|)2WxHOI@+id_hdNSK9He&n3K=@V*g>za0yftKa+@g?Y zz`PS;o+JicdwO&cP6nsnO zBDX0E*flElF&zK0&WIgzP4K;2IL~)aVyDG#T8O4ktls{ed{R z9$kFx;3RYO^FTb(M&g_tO#cs=x`s@6 zDg>O#ocs_DUlsuINyyYQM4}}G&J{mPZubgtXbMAty+b%^ja`EHdIK`%RFg3;&6HBp zw^GKOW-{h0*q)1_==e}ozfdHy8@MY&T>mJp7`WR*+!;~aI^ed3xPehz1#s_%xU-_T zINI%F>l+6TGDf}wBlCc$350Rv;E)Ne4{!!PG=#&!r9kuunTCZ(G!noShPZ+#&Ov22 zFT{}#^6wf z!k`7O6h-c4EaqbfKQQOq!yIQJ8A_5Ema8G(qR8F};Qjb%J9vc-GN%!*6#AD|;;F9@ zl=iu9T8kmDf`nh-P^Kt>N!y^fj3m}ib$8wr=-P^KtBCyUFgGFf*6@^}2SOkP3enQrAF2h z=A3&tqJo59;ZUY1K_`o!3E1R}Fv%(g@j(qh+yDoiEHPXs>oXJww;3=e;HORC6-?mg z6Dx)3fnV^#%&7j-oGTzTLBfeRlqpKk$-40=ove!hxduNilUI<*C2&^?%Y6^v9g&fh z^@WbFydxavArfxGp-fSNP8L7su*sQil2r=gPe}Yd4mw$4xK7sPUm#g2hbbqHpEiM4 zFoB;PtrVu|x1xzKs@t2hb0l`HC1H0Q$`mE&WO3PH=GGuUM&hSs@(MD!9PvtFIp==F zkdbwcITt|YA`&jep-fSNP8L6dvdOv8B&!_6kC6B|9CWh8aB}=zsjjGzYQ!et#VH3N zmg#xJoO=`=y0_0&m`aULmO+?>L8QzOdRlH>JUWq=!>bI#v*x@;aXXC~sT7Jiq9}+; z9fYLRs6mJo|GS|srkYzrHA3Vr9=b${ni_$ccMQX?$!ZP?)GSxo=zO?qAnS4bv{QMN z{2ua;_vv41{2DKrD*P@O$KxfZIak1(UF7*0hcZQB^wuiHt?is@nmEgx^BQ3&+z`Y~ zanSzdm3}+Q{q0I*{o0od`48q?3O02m2(iinmr&62B-4C>L7Se_>f4F2532VK;~sN% zvX(&ja>ebO++`4SKYlvByh={*`VX1jzX5(rIcD>v>m+1n=(E!p^*?#Oz@bc0m`U%0 zsH+XpQRZ9#;>^QAd3P(U##mKU1fw82suR@WR8jy}-l$Ji_=4 zb+vlYunaaV>#?w*lh)s}GfD6Sd?K7&qQ0MlYVgRe3=*f~QTkj#`IjDn_4c=?@Nq`)I+eH> zJU_%37Z|0lQ){c?{^!`=z{1Z9oUEcXI9!USidokImXJCB%T-qtIrmNg9>q_G0$ zN8%SzlHA!Ldu_a3nr`IYWX`3K-v^9pAP!}Uau{kQYT+aJoWl_9G-u}+c=!pBR9<^` zsk#Raz`iQXS4=Ehs-9hp`=`x4CVXV0iT9t0ks0;VQuXw8xPLbGjNJFsWk(8-OmySo zh%(LVNcfVACN5KpUO|~?)kSi=c58hufISBt1><|*fT$v+E&-$W!crvU7Ioq9aaaJ5 z1h8wh+GRv!8xh&nE;|J{%BJQdaFJ5{RFc8rDb5IrI~CmMCs&WYc}F zNq;fasEm%kI<~eniC~hfb(|y!eI_8~b zNdHbz(MtBfpy&C(^ng82<}m%w#@>~Cc%Car$e~1Wqcp4WJfpdQnuj#edCt79l;?l# zc`}EZzm65ieYCXE=~+CKC~k^nRj)QCl+%RQ_HV*p2RxZW6P}H|rA^REMYH5N7iyI} zuZ2A40rv($<~enW@^PRQ zIPNZVCv&bKCz>zuX^S*MAfa5|{Vcp6_Y$e&LNH!O@U8cq%*?A}FWKT8c zycYQI2Uzti4oEgBt4=lvB-#B9>lAYilTDoopR408Q(RW}g^pU8*GZpCp$w~LJL-5G zpp2ANDcC*fa;I;2E# zLpZDVUZcO9`X4d+NyeDdgM;<<+6Q8*Y{wT0$f0p+R% zl%IeDl#{Y*0j>SRSz$X5-^6 z!=7aZ?&T0OfqXk~*mnTc;-SHg^K*u+ZL9`e9BU_ zzE!NVzq%5<`x(F7DjjmZaWw;&^5~+RLeZ4yYOP9QajgyADJ<*^{(i9B2>P^Ag2fgsj&5 z@3r>a_R#)|(OyN%eIVM&o}}GrXVV_E-X)3~5m~Lxe$d*BseJ~hnf5B$?E}$H_9X3d z1MNZEU7}jgb(|)T>Q-TmIag5obD$2Y)1~U08}P(pQ#C@Rg5HIfF9&U|_LAJAf?k5U z&r~7Y9?2$Tut`wf@ep~~aXLZlfP|STi;gde5s3=$Zgr$w3`!EoZIi61%Z6`$OPgD}As~RJcND=u=l1N>DaO)*2>U|@!fFkR) z*9o^JnAYl+(_a!JQbZmq7f84iOPX4uRzai{Rb#Iy7!-NF5t&>i87qktk&~>*NIk>t zo2;k~Mr7`Z5V^&Ov{oi1oJbM5&5Ddv9^Bx`iW*}?7E@%_@jBtjm4~sCND)~_E|Bm@ zjleCStf(7|$O?)aX++u_r|7_!M2g6l_<+HBl&6Dn)!W5(oC%CCEZ_Cj(cX1qY8n0$y_zzdO@ ziQ80JQQsPo&Pfn?o)Kw_5=94IAW}q5v?8T+>gQkF$jXX3wHYji~3$xq>2h zf!K&RHO3o=uwn8jm@M)4hAFQTn2zcYVd9N29V+!e=2ontXNVj8q;sv5OoO9LyooRk z0h1-}VVIng!L%^S#2aDKmDpWivc!`NQvsPCk23K_m{_rtsJ&pa#3hEQoJ>DOnRpY? zl>Zo54e?{i7ZQ!$weqfERJChfiV!DNYR{j9xLL8c`k z)0xs^CR2%Ou?=sl3|&Wa&g%^N?IHcCG2Vz0Mns94113v6$}p9Z>9>$6s^nSFTe^jY z-suARW*sBR=S@UO{l_t5!w^4c&IM!|5i&)Uj0U}>d*9HPlm6O}{?r(6B1*VqyCuH< z7ws;ta-epD4r5pS0D)x=3%wJj-+}#NV~s(1&cJ(W{|zNR7S@vD~4?={qEokV`v zJVHKUTK-zYa-3nQLcY%Kj*xHV{%nXVD1U>NA2w`|PnecJ+>n00fBCwI6hOX}yXH4- ze_l7puX(cAuZIW5KZI%dwG8Pk=3IsSx-?w^`BrYh?^=E-{XFWD9k-ZqL&_aXD z>jB}#T6iR&ce#XBCA_a;93BYQ9^@vDR_GN5S4!dUYT=P+-sKWjmGCKsaeg3NyOz5@ zTA^z!t|x?_*hSnD3FTcbVO0rVVi;Fj0n$+{Q7gkYRZnIw+|4%k2djsa+#>@TMvm+EH^L!}4}F zGKwjqcT@&%s*<5&klScl-UUWR1!dd-Hq_gZdUd$K+{Hch?2zGRc1WI$IPSJ-MZ91{ z<@JWB3N0!U6vG8pl_;GuZpvvz)KuC#r4)5+x5^PXT>?zW71Yb4Si9jUiQ4#?Z+( z$u6N*=ygVTF@?{h@UF78YSb9+5o+lkG4vIre_0#Da``8oAyrkzFq>+>y%rsV*Lrp5 ztc3Y+LfTuctK-pU3;+{^k-bqHtC{zb}M^arrVCgVesoV-&(eMhKNFFuv_7C|UOx5#3HZ(aR?Ja=8Ko;PgooAc3MK?DzPG6`PuT?PJRs}&- zsHkVyn(m{5S+haa_!2MU=PCD6u-}ZIo^~VC_>!mHOa}6b@9`eP2s+=K3t-Pw$C`X$@hL>N)r&fmW2Xih4!(1|4k;Je;P5c^OnXBBTfUn0- zn<8^IlT9IGowu;QpOM(c(}7R{$vc5lAK*}?C`X$@hO1xX0xp_xusP@T$MnBmV93TH zWZ0l~8m}A$_(}L_Q)G^6vMFRNT8t{iNW96MOCh-sI5i#zEPaBbHiZmNx|o1z2)CHC zGXTADGTfTPutDX01Fy_c?mEDq!cUtb6LgbJA>)roq?P!Kkz4@D-vFn6#Gy=4jy8o1 z&A&pUX$TKb(cUQs!(qL_&;*B&VS~D6yN;C(fS-n+Hbo{RC!0dXT|YUFl{m~u&OHq) z!UCr*!J$l1jy8o1gVvxwYzXI@b1@k1Cd2(n3>#F|xA4krxP^KtHn?i=zJC5_XA^gIe^G?Tymt;6OiD854^0fBK0KmuK zr%jRB=gFp!@di|8R$}9rslOn3A#kb$hcZPu+7vSEg7l*eVPA9R{zc_vcqWNqgW}5H zSZ>^X2k`Ik)27JO`(#td*tG)dRvL*{nR5Xo=bQq`N8(VXC`X$@hKqm0D@a4Q!JNy% z(1#2IlNdIry~Zn}0iTPXHbp))NH&FxU%rA`(MbH(oO1`_V<6zvy*OauOB}T+WLSgp zxyumNN!4yF2E*%Qs7PYitajHzkN3pfo3y~?xy@!Xl zgYYKtC-e!ej&qH!yfd->ADGnu9Q0dLsWLg6bD3HT>n!Ce!%+&3B63_3a7cBcISNs- zEaf+b!#N8ua%>DZq^N0*dhoBMJT6Uppa2{@$?<8xAz`RFo(G4eoNGAB!BM?0IO^k| z(;-6E|v$>V=28qv1fM)T3$@0;`&L%V2HP zqiP^x9;Y-H~lg7K5k#Cf!XGN{4uXw9l8)-WsSjn>20bPE;kKBtE0B5 zsknZ$HKt5wm#h5iQInv3$Sar4b$>v-&D*M$0a`DgQs-_{cjM;sx{wLP>$pB_s8&an z#q%Cl9|Bg^RCID@c<5ca9-m-r5v#YMKB+lhtiJjTybGBmm(L^M?-?zZCy(U9esbA- zG73^Vx%>*3zg~#TC)6pZM~ad8)x7@3ZBM9KXorq@h_FEc>~6H!(~wiuyn+DsCR&s$ zmJ>E6fK5k_WY}iHCIzr+<@k_d5n(e7tX#DLEPfeGz&i_dRE_L(ug1YO2Bv1I(^Nba z#q$K^`6s4#NLShTz~6UxSr3;fav9@g3?wxyNveyR^mKchmg#6*uk7Qiw@$|d;^yk) z3=L|Xeo{tZ#>i|+t`>88Ww*^h$>0U%AB1F==hYykrpriz_sR}2nIXm!*JvcN4hk`l z)hpYg<4JG}%}Ro5YUFL5ARYK<-NnsGFt%29Qeta|i9I=k_&P1%GA5^POSw1%4uHq3 zgYews1S1wrK$6~*GU%0q1t#t{mJ@nNKpBfb4{h$iv81(7JObZ`5@CG^oTBq07v{kq z7%2wnh_#lCKHQ`vMpC@84CT;Gn4BNtbxMy40a|vWKxDcW**J6#MIJ5YO4yi0;B9QE z1~8i;$0R{*h8$Z78U{ksBuofzwhx@nY@P(w0Y!L=z&`Cx%E1a1A+dXmm(P_+k0!lYNW1sxw0#2C|aLYP4(XXwP7 z7$`-qTcsUBAe3r2Dh&wprBsWsj)7$n&Q2lF3d2-3TiC;*o>$4U^lRsUPy|{xc1a@D zR(DNFDs$bAMhqX4iHQVEuP!#-O<_g!;&FI1;o4h0jkkce-s)9}Du&frf`W>hK4JN1 zEp|#^FSCZp#egh`c=1tRUCtb*UuX?k`zNt7oS8iX+M0@hfJ0C|PO|{XdR@p)w=fdn zyGnD5WN4m&M>^^0olt>e*BEo@W2wZ00L8bs*-BT-5J-(@*ERRN8ElfDPLB;ys+UyC zLmQ&1XaU}HD1xYS1LH+0S%=j_16UAdl(ubnKnOma#1Zh1jv=XH3gbrR$PP$4zSTG} zXj?`F(u5h^9BZqweM}?h9BXnBG^|k0t8J`4zc!HLM86a?tABi8QcN2(!R9H}jc5p- zNv0i>?7JYO4sv)h7>r1)tQeNBL&aM~^dW6wGd4A3KPCN8ctDr)3q!Ev>nZ7{Ru8e$ zlCa6R=}DQ*j!`ri4uJz_CIOIZvjTCt{?O%Twm@wa6c+qBzDXRL^traxM>i=*C(^+T zFIJ)4Xxc7{z$I~v(Tf#BN4GMUfS^Zqma3`pQg7-aVSlNL1##~p6EEYvsmORgKf*FH z`$o-lxiGQ2K$0sg3nG&DR|-pRx_0=2fEEjY$Tb^ChVs>*Yn2T{wLv4ZjY-#ls+CCk zTZEpH7enr0H(peI(g8R<_NkyUEC7 zHY~9+Ou9>~40FE}GQ1jXGj#HdfSXlwm=OVTBb_jAbTzX~AgmkPN-ySC-1iWVESD?z zjBQS7aD&=+MR0>Y)HJTDu%q-=xu!>6!2&Fzr>S>~% zscXGzVdaayWu+=G-Bv5~XGXLN#G2W<3anwPz=OgHHEwIeEZx7XX$uR*WQSekT45Kt zcC?FJCoECqs2eKQU8j0s`C{?3jbVM;Mb6P(WZgNmJ*coChuy=l*z3Y@XeiiLNMR2# zxsP#JNQ&&X)VWDeR;+CJ8rtr#?KL8*btD~O`@ctq{okX4W)(5iDD3|>PLi!_=%WQD z1;f-RbXamX(N^!rNTXrvHA3+*RUk8F`0*)55=`sSUBf6Z^)wHA$}Mb9xn&S^rl*|L z{i8QphXJdd&?W@v{B0Y^FkRzzVS5*td0Ztkbq=;qg4zr?z7jNyg%gr6Aw1IcgGR!c z;N-qv*cU!2uur>@^qBDx%C_;LyMPQyG_f{r!%m>h1f7;V;g339!#f9ZBYoj60daDi zb`1*;z0G>58$c2=Ved}*hGF-$dzd4(FWe(g8tKvY41vZ=%-~)qzLCCg@4&JMXP*#g zeG}<2hQ2wql4t4HzM)n++Pbk{5~gpe0k$uE8fzGxr>95LsvUHOaS$2`>$8EC zs8Da88I)7poE6s4?86QUOk{58THtKk-yIxQxuhMEL~Bdy(6G_beb;j=KuUlvIphOOhrYDZU)Q2g%D^|;)zi}%N%3$FqEg;tU`A(Y?O32ZzlEI?(8gM zjMVHp_H;i|nxAMda88nz$LloU<1&0Y3a!C`Ay4Q9YDQqjKt;$$h>IU(`2 z1|2$sy;$}|jjMTyB1hL3apga}R?Gko%}qRGSIo91KayRj3e3>z_gNU$;e`oHKsP3e;CW}{l;+)LOc*|XY+)CHfdzm2Kno|~osI}Dnw%Iuo}7i#sFzoX z>4k|&MPnyU7&fVBvesENV^YGHB(%pKTR3sTsIjAg^}sr%Xe5#*7;POdhmYfR(L^JH zM93E*BK<^OAys1whfOJ(Jaz(QA+1S}qQXK+|AetcV~39$J2NqP*toG%M3LqhHEpD3 zGfpWSH+;&JgmD{EM7ybHO3}DslZKBqrc4FNuuA3?O`SAONa1Wq6*G&*jt{uUBIlSG z$%tW;YqW@*r0k-y3loJw%FVS&4E(^It0xfG;k6}R+!38?E zG)fntNfReiPBlC;l_E81_~hZ^n@uemJ1z>fg(?agnHXL)rkOBRg+>K(eqy8v?@&DQ z1-Z<8MO~&`L#Ct9XI=%U6ODBR?zEaX zdH1CHm+&@q6j7T9(wG`rjr9ZLC&sV4Px_n4Zgekb?vY;BQ`yHovaw?&qqi&FhDt=#6>-i1CbQmI9$UZ#Jm zH_2_LytsdlzXlsqsgzU*|MgI9N?ku&DBVU(mP*~c&>u6k3fQ#Q1wASyE!FF=C?(a) z_qR9iE#jCHc0n+2ce?UxZ*jY7sj$y&lI&a@`z-gDgI5#}N_|B9_&q)ybe;bHS~L46ZO(x;On=!<|92bTsvFd*)VBEVx6}WH zW;Ur-LIKzJkqRb&RbBrC=t*HsgE~>fpvth9&BiCDOc_3!^*cae-C|mK)HnOI=T*1z zA?rxpC(sgx3EXr6lGa-V)k6!fDcYccyF~A}ojX}&*zfMzW&Dw>;i4kXOU8LM%DQ|R~IQudec{T^z#g?(*K@CiCGnllv5A_mU@CXMQ@MRdopoucAvxa1~ub zf~)8fW&murV)u?zAAh%8GUHa}#cpPWFa5&QsRG_k2oHjDQ#Y^i?_J~X)QO`gyB|AN zR{75Fv&KEDR*17(r+X)=kJqeOvl$&c>GG1#Zg}o(b<}r)G|@(+-PatNQB=i{N`2N# z1t^hhIe>$7p-Ew);BT&8xlG&5zjjZ|)V-YP&(W_c@YOmC@{I?`z){{}jI# z(}NG5?7=^qmpz2OcdB1kM=F)row~hWp~P=Eb&cD!mMJ?#+by`g8XE(Mc)5Bq~ zS23Po^j0yRppgIAc!I+1zR%tdO6jo*9N1@bA4$qbsc-t1_@n(5GyGC-W|22F*Z9n< z?f35EdaSA_#O}fDUF+^&$aORPYyV7$-3-}V>sCE(`xncA+bI(Mc57qrVOL%9$zomD zKT3VezvNl(LboyI*&|XBc_Y0VxnZ8$eTTglP=^QAKqgXb_ZRkRtA{t^PxG)2wHpGn z+1=#Uq>IR4xBm4GQT{2==A|-vV*W`urnx;>2l=dyFn;BAI_sxQw;iu*NDY-C%|}i5 zaDr+HUv2+lTxWlzVRcZ=3T54oQilSbQh`Ig)Q@n?ahs6qV4*+cBZ54kiKYHG4WRi| z8E`J(Dc($-U*Qk$DS!H;s z?zzI{%W!`G)ELluMKZWf9QxBHr%srap zc6j3qN=y+QG3rRuI(*SlElGz8mbC-B>n#rw_5*voc`N!`(Gde^tez&S&IH2D5C#^wZRa0%+po(|Mj)OehMQ}_@`xIY_u$x5>fj4L?{z7O9((@}lo-3KviCPU3Tw&o zBBN#x&vIDCQ~7)*WrcoRBuDh5`Uq+_Fs36Vw81nR*?K zt=g%+dFRFFUama+;vt2H7!NA-SsdZvD_l)PN~cy z!%yFD4s^9mhQ-8rQyb?jd!8OyrKIwWZVLO4Db^Z3!Gq`nvu5yeQ(E`O^(O}PvIa4= zo*p@y+U$S~`V-Mj{-dJ3a}XbO+`L-u`L*5S>biM#-PyI>W9qtNu;~pz{p^vTVx&v#uvm@DIx3u=IbCp!X`Yj9UuU@oLw-~zq5=W;=KKQmINpl9` zfd@j&SrUCAw2FqMDy@IkB0@^C);}ZGk5urX44I_z@O15*qMuR4+)gy#Je-mTHL;|J zQ@YiL!hT^g|4iY(WF0Fmh?eJo|0TOnHJwAd{;H`(KSG}1`wc-1rU3`S1X8^1YpFR7 ztPfQoJeUL1g%|Svw*2pn5`TC&ksm5 zN;fs6+x0(G%l%(bQT=PFkL2y2GzddX9Uo~W|AboJohCJ@e?t7fSr@i3(X9Ko7fY{f z-gdWRwtHF~w+#kB*&ON2$(D;+a#7puUW>q)*(5_h_+KK!&b2jVlIg8;{q1i5?BG9GZkXftS4DbyD-E&Rse8X98De)tuVjebrQG{9iP~;7UWwXn z{_XviL~Zx)u0(D3)b@T)qPE*&N2ob1*Y4)*{hkU>W%Iov!FJzfuQ<(4HR3ELyDzi% zZA|@OXEBl9ZjxL{jNJ~|yEqU-YP;RBcTp19?rH2TNJA&*X+DWUhdg!9T0Lum2H0(j zy%#XsdogA?`yb;akxVk?yoP^mlCj;+*ZYlWmuXREr!aweJtl0V z(pj88Wp}>CkOY&ccl&Sj318CNZD_sE(v_Eihiwr)yAy0xe0KZRWNoy=Zm+s8#%_OF zr7p8=XjQuGwxRnGdqkk3^mZq>2!m5Kv7*?JyT3~SJPEpJ%fmd_p#mw zf&#l<=%V7ei=v?GeIVkoy6P?}?z&!#2rj7TKO!=|nfYG6_o{kef1l6)^V$BuWK?9l zc=_^(jEszo+^X(I+zD};9gl_I+o5pK4IeaJi^l>ktXpz39S(oUofwWh4zk?m8Q+8Z zybOQb?UwU)u0VTz+dHUZKa`f;JC+mk!_WF5?x)AA=i=k`HhWE+PtZaGy|^gKL4p z9Ng{`=HQZ^Fb8+-EcyCF#ZlO{0PfQXGH_>3kb!$~f(+b!6J+3in;-*s*aR84rzXh2 zT{KI+oB9r1IuksBi)Df*aDzZQ;>s7NKYR-M183vLmYi%{xRR5N z`%-eUaotHyHf}3f@_sts24T*H!WASz2JRIJGH_W)kbxUOf(%^ikx=aT<+zd~$iQ_P zK?bhE2r_VuMQXm{x8QaPWa)`G&cdY=$nsq0ahF6!7Osd`avKGfc=SQ!%xIKE=7>8V zvhr|=LpqPAYTU}O^-u-|@59(yMpz7RKX&O#i2WO?<5`1{Dxr(_wk|EcCE2QMCYhDfc#5c%FLF6@B{ zgsqpwMd~rG2}G$kix0bcLx_1<*rXog(jcO|S@_tuAsl?(+YtRd^)`fVmqk~`+YqVU zEXwTL5N18^ZHTI#dK*Hb%YrcDZHRzw7L4|72w$G}Hbg5=y$zwpWo4W3HbfSee0LBA zVZrm>hA80P+qgLquzSfDmdMrw+2PN)bpNAxJ;d3F&YhEuP~17$h`XJWjUd}$cIDYy zM%zQ?K>5g)6@03R&XSk<#t7Ip*PN}-wfB@qt0SYOO1WGbtZc5(sr6R9Qf*i2GZW=) zgf~aL=m6Kuj-~PsonMS*n=LwG->FwxjU6-5j%hi&Mlahq+Aj4~PGJ`2?BK|z=@M~X zPMmkt+Y{AxwcLrO$6M{@Lah~X@mi(+$|xP|p50U7fC8=Zw%WFhHGZ+-H)I(Nm&+^L zO+EczuGQr6_K-PRRvj&G-#A){c5SZi9&J}^yT;}y;K8XBm|&;U^;ipoMq5MG*;#HQ`s&s+y^|Rc`?DmFfSeob-r$zJF+DpaWos=| zXDiZ7+eZf~{0a5Bx#paF!^%p9VrW$8{99>7r83i;o36ST0VCULqpkAn6qSd*c(l@( zsF-L9(#DP5R4wi4*~tb4O`s~6pk|~16xzZ)wu~^@wWT?;fx6MuhH7JKey$!h(!n0+ zDB~#{CZuv!b!wj8#=Vj{*<@p8qB7Z-YqcxQNmFa4YfF>>ElO!9&2FSt9%xY{iN&@R zRS|uriEU8PrkbWRiLLrvM+!x)Rq`Tt(0f+QG-=pL;Tl{?jhPmG=TxOurS8Rux%%uB zb!tMi>pPlrd$`b9!+Su6HyvKwUT;xo1v|h8#%Wy8hw!-P*c59{j%st#-R1Kk9)|hx zk(tS6X@CU=y^e-6#R%a#n5WTCQ9dfvcIh4@xLXl(1$&;&8X;e4$xz${?YqS6f5keBi zjFuLSTvw;ndFrCm(^}@%Pz_>0N=RWs+Vs8Lb->ezote53JC(|GV}`R9(;j_QkrpC0 z6J<19msg^T{R7JKW;9Z1Ik%E&;L=KIr&$%~BuwXL+Eh7w7CHrhwIuF)kXj+B@p=I}Xo8dyB>F^68H-6rBY#X_>SlSJfbWnpKd zwsU+>8v}fW^u{?7lTz zjO1ozdZH?$o#)rVN+oeZzSN)iImDk#(@-bkW+w(D2+f?pLS6=Ne;UKG;G1zX7 zNC#SEe;y+7#-eiCwB=;0Uf;!~zpy#OH8M&fhsxhy8KK(VN|V=gbE3}8)#127+%Gp& zISS4m)*m7%Lv(tzMFM})7x;Rt>MOa(M#*N6PTC-H971wEa+)~rEW@+Y&Mre#RsLM_5Sx>@{ zCc*}Fveh#Bmv)+siQ`XL>it*~k+_|onyAdp%jCg|%20a3Dbq{}1usq5vC@qKlIUHs?F7>>oaXqg($+3L=v&nlk}U! zyeBg<>xNZU>Y#LiuRrB=V?A1#Cl=%LGF^|hbf$F^3M*np24-!yr->&awu~}Najslv^wNIx>o5q0c%a!Wfj!;<=nMmVcwE%0P$?5jwRCR}_2h(jHeKI}xYDAZsnG)r;_xI%emh6qa%f2AbaBr9K=S?z1I%)*S`!b{F_FB7hGT36M5 z19|G-NTW>C1O)8kF7GY98Hn_!_4O)fMh>Ks7D41=Bv+hdcE7@_58xhxtWt(NE7BoKJT z(c*VD_#aa$*JPP1N14E8S!VAdS=?^Yu-!US-_)3?&(UgrQ+hD) zHCJWVzlfIUCYdaBuIH6BwMd4FHoj?`Y!)(3Ngnq(c}z1JRVqmq3J5qs3WmJjtOEus zEcr{Ud?l7`B)qqbRt81U#JXbz3m;kq^6v`Az@w;ml_qsjqm|LjqHCz0hD0r5ol6xu zNQP2sT3E>oZ>-@e5{@t`@1{;&Ymd%PPgi*@xz5Gj<3Tf3pKM1hvdfsjciQzue<4-F zMqwZBE2Y^pPoO2=wFSmUQ=X4@s!P#mMFDYHJE zZO+pAh1Nf2CFkh@M*XFc#lasNM$>SrBP*rS_Fkt=iF9X3OI35(6ZO2*Xzy%5mJXSP zHudq!*ldXc6_E*y>|mysbyezXopF9rbXCVll(n25Op6Trkee`g1j)*Nxdd(!(+4q@ z)d&w@3hhZRvGo3oTk5M%RcEQ=SJ>D`4_$0@si-|SPu-6LXHu_m<`e1Bk#7s6W^7kx z#bj6^1L90{!F-cu&k6+r8)wT12@d*Y)(SMT(;DRf+X#(yaGKU!6J(g;sf5%LT9uPr zZ_ZVBP#FlSwyAsClF%;-O+XVOA^`s|o?-fO7g-!^J9HZVhq6Q2RwJ?!2>co9B zDL-?(e%@S}<$o5qqmEZ6NH;N3VUiXHB)ZA09SY-~=S;Or%+<%)&?uElf!20V?}M3~ z+M2Zexn%gYd{IUvB~_ShuWYcG6r+x*z@%DLYZ}qu+NVG-YB{|~q{lE>J;cm2M5`{6 zy((qG!N*f41|Jnj?Df_dzfY4uw27@#%!`fZ(h{Vw=|q;PE7i&{{&d<^T36AyCmTcC z({fc!lUd5@zNso!D;d^t$;upvA~4zA>uO)yx1{_Ep_+;Yhl++<~e>>k_wwt=OjW#NSpm83w|`ErZY3)FQp1YB^c|^NtEcY2lGv1sm zOm#-tBi6z^%Q!ai) zNjrB;m=>a`n7fKG33&Zvnm0r26su}XzDXy0>=)KH$pI(+ODT1Ao7GpXWyV)jrDyFT zgRhtpw$IO;%BC8gZ#R%FKpG0;E1?e#wuz*on+`P5qOyAxW}(H7Y_w{8$m)jK)iPM) zoeBGHU&Qs5q~9g>%($G}Hqug`#ipjI#{3E2%O`AKBfUV_`&lQR$d!$lh*Q4Fn&r+I34DIKt+PbqoMSH^|G}T&}k#ZI(Q!SRM zqOpOsS*!|J$M!n*u@lWJ!WnV}pe{saEZVGDbm#BYR>JMiwyI3UlD{cx8p9@!0LVML z7;*Z<(3vw-W2#YPiK)D9yx4-e9ht1RWDCQ6e}`N0CphaqWhWw^m5D}+`wr=O)|ezR zK+IRHdDvwsTQ{gO^W<3K4c0lqGmwl{c1$(L>DrUZ=mK|8y0Aj_=MvV0)g|6CyVzN% zq%f^2t+qrQ&5((~Z_C8oHL$&2Bh45)KVq0?6L2Nf+w~LtS*65+kTx~glxVj8CI;DkX5ZW5tt&Rdr)3Irs<#{`|A#o*>jB@J9+Ro$fC!B!jorN zB2!lK6S|qWsO`X{N}o314AI6mnLAk`@#IVEhx&xQt42Q3IyGgE(potpTS=u&i)h*) znrN}yknf@CfGeB&Ah!ceOAB*kxHlX5d0H^-ugtZVlKdg7&M5B`kX`D+dNk3P)EzBj z(t?@tB644loq0AzFVx7fYkJ%iS-j@pnbWFHk_zn9z3hfJiWANMJjJlN9Nnk2Lbm~= zLz-_}#5!RZ``yHk*5+oLnGJI^7-^RW@{Q;1`AIWM=%Z++Q`^F5MK*k>RI_x!%nTWf z=cmVcVZf_w9Zvbm!On&(HmL>7tfB$>R~IhEtrEn`aheygM@ZJ-%4DHFBDQuaJKL#E z-!|)9uXCsL;97ausS(>Yc34cYuf-%wu&8p{rmd%}+eG%m`SHp~g~kb%7iNcu4fz>6 zL`0YWMmv$D?eT#Y&_`N;7LM)=5^E|I3yUXORfv6LXn?gSYO+R)nnUJFp7r}F9~u&= zXJ#>*U#iUYz%Yh@d3+RpHbYao?a3?OyiF_`nHBP%;bow7TGU+1axf*%QmlpLjY=~f zMVHZiEYdZ}I@wu}D==sqi^jQntWh_njf-7u?W83z)qoK%V(Il2oxElJaJxAw;{u~^ z(e9I3^`13Z=Lzaz>`|ZutwCCIiWKABcK$AI*|AyIxKwrGon^jS7vH?$E5ZoQux2;P zEK1pnOg5*an&95aLXT|PGqngC`Q)rXV-6dhW=qd{{=qh&vm5(v82?Y+dV)J5*+(vD zkyMo~kl+0p-X_ULF{wD(0?Xx;Z@J`sIVywQ8})WYd!68>8zf|>cu%5E9%9ZzYc+33 zS%bg$ie(Uq5oLacy@u)&JdK>NbUEuIRyC@ybfKD&`G_?}8o8tO_F2A9Dys-${M4>% zW)7!R(MFckW#%k0NUl-7BP{nJ5#}WM=ec-!ejR>WZ zw{OI+m*smO7lUma(Zvae&1kN^K$daor`F+${4Hr#G6o$ge8OE;C>JsN$ud|*gzoUF z2Ax=zCT+pInP4{ZeVr&ZZ4?M`-?4+X`*zj$&_MCJrP;FA4>4nhR>WLAbR%D@W_(9! z@gc?t<2=X`lw7Q1 z-t;t}$2I6}U~d=1U923Yx0!mRk_O6!I+(BxR7~3B%*_Lb`w%;gPBiAwg}k|edU(p& z8~#fp^)ji0qQ%#D&(aR^OuMw4bQ0NEFyl@gG|b{HVG^W0WwvK++bFIYv~nv)&MY?C z-ZNFVc2L?Ng&Ul(?s2DMvCDGV)|jZ*rg-EZt1b=4c^(X+2SR-zX+YIBYN}1=0J74V zPLl1=YR|YNWh1mNon7r>z>FE!5@`c-Bdu5mD_d=fpuY0Dp6%K^iL!6Cba#1UvKl^N6OO7`qjZPuEXY!yEA1R5$yZ9|8ws6u6Bt5>+u9vC&)1yh7o;WP(Q3qOIcveO7f#S^!F~jEf2%14s zYb`!FLU+&_FI;b>BiGh0VvR^&=w4f(E*b|wI>@DcC;bt$A45|E$p+4M9MfIfO1_j~ zDE)cVx!TPMR%X=MZc%m9}tZCcG`CeNCfK|C^sN3m=ccF~GlJkcRq*1O7Yj&2FB*wCx)cauf6OW$E zmddU^yF8;l!xA9ZdC<6C**@Q|2QIvRR#a#a8YD&F2F=EH(h3vDJa~DrdvZ=DP@bog zk`U*ZdhQsh8Jg?FSM-dZzZ#BYY07gB{VyK-#+K%?W}h(if5g z>4fa5()K%lG5t1Mzu9{oG^mM4jB~AMiY*t>O1dF%l8hy^{GzPd^la2J4v!)%eI+=n zMdVB)t9{boEpt%EyrsrFhNKgoDwR)FBX)2xJu|V_)Vb@4WGC}ybiTU7v|9wX7XH|?=6V{((RI$jngSJ8H)wdA#wUEInV}i zc8~hdVsv#7Df6g+}v*rp-s0j+^{(DmxL8Jmyq)M+Kh z>I)8^h^0TjU-pw8Kx0dd=c3>886AJDSzUuvZ#}(Qscab81m!-^D6_u?=ag~=$N)E@ zTlrP4K?CI06RXCa!LqCO6m$?Z^+elDbWWV=(?3m0QhTwb_ngkuK#*RGiXo8>9tW1e#VQ$D z9qM9Mg#6QyGDec3qu-o}mNhYdUS==OZe_dN;zOEKt&tj4aZ2ypG)>_bwiCYJtf_Rj zd}ORLw!Bgv9jZ{Z*z%k`#_=S0c1#$0*s{e(lgZIW4X3@kpRnH^V0oyE;oMk(Bf#U%@2?om0?bI?d7 z5iMDBR(79r=GsNBNt|PZ*W;vnvO_1G{~+5pYiygzSjsz+Y`y1W2Pr2LCocpwMk``a;^F9Cm|kR({lwdSo1~Moixp2fp<8G( zi9G083eujL)B~Rx!+9}s%)*Xc@6Dz*nDu0NtnvXZJ^N)w4|&&-8U;&k4@-MD=;*Nv z>vL4Q6{=Y>P}BBQeU47T@ych>st}^2km)hK?w7v2FkPSKNr1-Eq&NUBP7xLxQ{FnZ zP!w6Exr;Eebe=fkkIC@wk{z1tbIq2^BHqTeojG&l&Fjz*Fj1By)%Dw)KVUEEQ@%!(TNDsv8Wl%P?Un_b76~=H^^oi^&0I*k@-%F!l#1F zm!}T|nd;>(s1ba4(~c)LY%!ClDGlP_i0Htq!b%LC$lv9lk7iF*KD9*M&IAT>TV8Gz zk=Na`r6`nQj)p_tG@aH0Z92}7{NS?@To8Iiqjf%Q^y2%5$iIQ?OdM}Tn>wLwmMR-; zpd9+NF*@rtGP9YSyy+wxZN@BUAPQH}{nhbSc{fes>=7k}=k+^R8~?DD99EC`sB&pA zrOMFCg^00Lkg3|S(cXENa8uAjytWvV&7wtiSkKWct9;9yN7)E{L|JFIZMr1Sl9YKv zBk`uZ#W^3mIfYgqqWh<3G_xPY&bB1N=~(c^BkE$|&EjU0){F_Wu|Wrg(Y8IS=hn1E zT}XW`CR)o9rs-uh3iiSyA+wPr#uw|~e1Jx#U(AT=A0TJ3y3B)a+p%GWi}?=c7v=d@ zkwIRf1kuZOR$J!an=$Hyoi5#|tX0u-tQnB|DQ)7L1Bp5yf=bICdn+_}5;20C*wN%B zMh9ZdcE55n;>olmxl+yI)Dp)7Qzxv{&XpXT&Ykyi3d2g69xCPm(Q*<#JWxw+rOdbq^;kI_if+wX;c((3o*t7eszoH4ADTz_R^vQtgO_@KNIU~n09sdK7XiGpP2K>pH9T_<~pxtL&F_dLsyB+Rq_xf)Ds`C9LL-D7Wh-Qvw~{QQYjtrD zDD@}ek&y_cUS6m0VYDbA`#p`@iRn?JLb5p`uN$P^XLr#&a|!pKO!=kp?fey~@s{GZ(K9LYN}ohP;~hON zuc%TPDk=#gHk<3AD^j0Z#_CEBNoYnBn#a@N_%q3ofO*1&p2QsOSj70u`E}8FX<)WF`;EEZ>=e&_-of6ZEF&R9ZRh-8}H|Ot0Y8BbwV4RED{W6Pw?%@yM zghXAHbfVp+Z`tnRg?8*)o~1a+@+$kh3dx4L=>lF)O_?vf83=Q47jd0DFG^>bB_1Tj zl=M&07|E8{H@2q1*?EfTMs=q&Jr2x$*~H`cwAJxOhr%cFEG=Po``AFoi}nl`ano_E z%Yi@D4sF8(vth0|9bIgdLh3qvZlhxL{--^SMXWp5XWqT&gW`Gmgy?>v^SHn{Pcs2E z(P^w_UMaoSk-$nOEQ)B2Ucbl^2C}C-Jx%LTX)v}SBqoQVXH3TniqxfZl?G2U`_k+g zwZ+7lt*m2r*QhfIdj?OM;pxIWxseF5l;bpLc4|x*$ThIZOtF!p(VF0JqojqCEje9h z`D2NfHteiYPCExt0XTjD8ANEm)C4lkF{PW0NNfZ4I7*C0NZ|pX-kf+Mx0&nGsahK1 zEivd#t~V5D`o{O(I#c18!GHz@=9ev|bu#8#w#bTeMtja!WbL<{>^@6&(sW46B8i)a zWg&-l6?0a$GRCyDwsR+!xx87C7R@#X<=JysY-JL29huZLzN_ph=qD#kXAf|G4{%EmKGzkkYb3epco#TXqG?iB4L6SSNIfTPLTeBra{Sg4QCnQ4Z>u*@dIJM`qTL z2|+zUc}ptY8hJJB+<9En^%b~2Ph`428>18HEMkenc>^g!j_BFpJ3v5$C%qo~>41ak zmmqM5LHfzWPZmEq|HG$*!)8;%35IK=hqsLT{Nf#6d0?_TL4Bra1%&ZKVwEQAM9*Y( zs#RaJYL!`ru{DLO!&P!-XhP}pJQ>ottGPy#&Xw-*k12|I%4p}L=o;-pYsh1qnljva zD%l^s@u6;^5YFjXY{@>RZDbQ)7!6EWRVu@ac_4Z$ZoobaHMe4 z^Ck>?WXd{!nnRmp<$|9WMW7Z`0)%;yEGpkSpJE zTgVDTwtms$qz&UFAUSn#Y$CS8^|PBQ&%|~sC$Lk%vuis=A(c5JbK+0-Yq*qo+aVG| zkX1|a<);M@U1lJ=1AGv>wTmXzMR!4VE|MepY5^*Y?#bpYo;2vN2`x!TVq3Sz#lF`D z99P#SHL^f?S-o16^lYt!CNulJti6QBPmUR%+GbXRF_xf4LrnQxTBCB|$!nOTja`)b zBSgBt0Pg94_j;rp$sIQ4 z%GYdY5xZd{~GDP2>_rMvkJ0 zeiYh?vd48|581Q?w>@o-plLEpPT8!W2*?R8@|!U z67c?-XpdrnpnV8l!C1LW^2L1HtSVd;HxYGtx7=JWJg#w~cwn9si`gR5~TAFSv}KeR4?g&Lxz z3bx9v3}6985~ICc>P_4bWm=hl-@A$_Kjsh*KKEhWIt?$aIWixI)fu5~C_l*vCPTPT z589Uo;NWj0UPLo3=Y?SIUGR~dFlrrF3PsQ}r49v8-u#3EDf>`gaIJ$)te?u_tWPXA z$XASFm{g}`cj~dgMQ=o?t9aJ|D0}V`bh%04T|Z1kGb&licv@%Ig+)$csm|z4RjHha zWeoyPF)Rnkyscf+Ycs@pUPB=W!WilL&!h`PSasu&@J4zpf{{Ih*Q!s6e>dg=f4$YW zJnN!0YSZLF{p2XcO0L&xm1W@r;7y~#;{o6#S}E_m>js^@vW(~b)ausCq(#UsGdfv! z^8)+R)uh8^x#~k!v7P~qr9_z=M?{=a-_?k{GF3L)JIU#tZy7zMv111b$r0l~!rq8p zBwF%2r(wtsn(2>1r+1NuqZO5h=DpU?Lc0;H<=BAy#>Lo}O*6V*wtBK}_AoYKi93fL znU%qlKQCJCCTTUM?XZL)Z?sK^efjQ&!lmWD$auFH6_XZg5QXzdqfD`=?3_T?lhS^c zchRjqr9{;bnI*d!`LbC>o<(xgj&>7uc4d`R>|$c`S=25B%W=1ZEO+l31vzu8N;;!V zmEok5-3P4Kk`*y#ZZ{tgMq_U6X|?N8g8U}mmsU#o3~@IwK96DwP``AlzLbX)288%_ z(L)fQZU6Ls;3D-rwo)39ujJ+{jy!Lfy<)G^ znh5VCMa+eqwwP{lH;nT7MrGPVy|$;S_7uBq`e@ z1$&e}-+TK@m~n(Ib6-Skk~OO82$#Tx31_h)Rg_xHSs!59)tR<8H?c*{uK%oE(vART zON$({c(uzzI)G+81dPw99XC*R1BVgoPmndr`YAxXtWER0D&SC&^{^{Pu$akIX$luH z`)20OYS%p7&mC=A%u_vXAmMnkY5gp-o~q5H+iQy&YvD>(EX0UJvXTY>J3nX_^6kpi zEl{>;B;@S*t{~p0vbiJk@CgOTG?4_Qy(d~tx+ZvLf(*ns?bH?TR z#}CV7CNgxrz=3f;~1&ix~DR&LXQ zvgDgwvO>!)FFZLlhy*p1>cNN$#Kj8Q-^!F2vUsingcAH4atNOm++(_D_5vW?K_X6@`-o)sCC`YP=?$yGqIWnnH&)Vu0= z_k;ZZ8`E4B=2mysKNh_>g?WxV1)xu_Sp!3VN>T5Vqi*IX1C0RM#p7*8QjnH%HmEEK1D`j5VOeV<=8x3u+ z9Z8BsVYVpnLifYki3X8VPv`_eClFC$+&RkYtcsP0%+b zm4?H+(;?RiSH)z8p#R*um=;EJ6jX#RVW5+6cBSghg4bWys1quG@E5vgYLbVofE z!@46ki|ka}3o-JBYxWoshv1CR%@@0%Lx_c)J?D!LXp1b&?4NkCbRjw1J4rX(V%wVU zLY^Tk8|;nPy(w2TA=6GO|I0N%n&6=L?vsi>DDO`X z*i^f%P)i$q1q)4cC2K`KWj5(d=Q#}ETG2?N1hG{?jxU)gS)!cMG*G8I;>4txr&jL} zPih)+RMUJ528rB#IUw`@Vjaf^yhdnSTNEi$tIWxg9rk3k)PowgXr*L=ju+TvtQ1OX z8cEY-pmh|PsTaFCjp*7Di4#PdIXmfyE5(av9|W3goHv3@?Pg?!nyKd`K_uvS1oaML*P=H z<7huyRxFcpEGXiW@WKPLfiL+=LupNpxXOcMIO%OrCi*0gkA%0wn401!5WEPEQ)tg2 zy!f5PJjQhLLq(C3J!6SWArb8np^55v@oOX&W*P426g{7B;-%FpU-ioxk+?8QSQS6E zFrT2wn646);C6N~cV&7K?#o__IelrZPebM^CtgUKtzEl8zm+0{n9Hz*>|p0of_ktGq%x~C6UA%+2uj`Q6}wi+o;5g@?}q!kITjdIt;RqUPUhO=vye4 z%kD@(P>d4YN2bL<3GycFGRj5OFd!uxX{|>XCmsZ={S6PPweWR)ybn4uak{xD&b?|y zB2ox*E0>2RDAMX4vor#yQo5Q??NcFTg*hQigZ#= zE|lS;Pdug974YNZJZ4v5fv63?0&)}d#>C*p*V^8ahmC=4Sx)YENfdTDq;fuQ=)ZB$*qH7}OIf~;$U&lxUXpgmyIIGNH`te16K zeWWp7E|beq(8%oDE+GQPC`=&53*@Q~n3hWGr)Le@@-s$8Tf7~b%ZwZbH-Z^iqDOJJ zS;*CQuwqw}m8ar*({h0MSV9C6y7^aPSRW(TB zw;k?UD!Ge3+;du`H_tWq@FYhHbXNOj_V~W-I5rvTTZ>fK@-ad1d zl`jrSkXOv|wuNY{DLsN*vs>+Hj#rd>i)4R)sOPaUie7aZpFO6Rm6r1qM)TKXQ#TX} z${#xHbgw3!nU+4MzyF*(*F9D>lGnCzx!Apww~3{YU1yGz#Fb$t-41nZWujBXe0wj* z{Qf{kwEfAe`1$_y4Gu*q@5xR}@jW)sc_~_J zYv(6j+!#>``n+gdU4psDcpTFOlw9VhW}5=OE*t?h*W$j~JFk&^vllN&3SjG_+j=jM z0%3vDr;1Kpo|I9GYJ6^baXs~P3kj#Vb&l>DWI277y|gkcir*usqYwM*9#V?y)#-vD z7$!7L@r>=XYz_HKpBk>$NT#`379lQ+W<(f+SiunNhZv&eW%5 zp=h?Ff+}!N^|3!qMO01a3uD(hBnauo43Y45TZ4sZz%b#EwdgwaI%FpEOvxv!Z72Jv zpc(SfoH6qoc%M|X6PB83s5C%LCbmpC&Y&iI$xluRzT~G*vID96gbJAg#&%q+(6KtQ zn1zQ~7Mt}0IJ%;iWx@d7zA3{%m)4dtsyeCqt4*S>aN5pn?1V|>d|E){>Y+5u{FO!c z9lp#-TCn;uBz(I$Le^?l9>mJhRkAN?k-+P$*=n0t`ThWsVLv!Z1D693TNPfKnl9$p zLw5nLS~byHwJI?ob)Ow{!AT9Ty(YuD4#AS8SZUtAT7UQx7t!Z^RjOzuMBXOJ-E{IM zl+^@jqsGXaS7Y3&*#fjQkgW9)vIkmgii@lL00|Pa)4*FSp-av}8Lo9)+EbbndsOt2 zz^TA-0SHxB#)!RQHVT#d0>ZEDF{}eJJW8_M^0CP)95x*D-8N@943`!XeOg@>Wg#_O9d?{ zr&&|E%FgWGzwa87tlwy7kAl|GU`}rF^)~IO@xALnc1Ic@pi7~F&K?WsM6Eq^&(Ch- zxF>e0UPrDk6|*|1G53=Bql+Xk%fF0ES9l@i@AgFgX3tnNzdvWqt`E#x2m3~Mv%X@%KUg7$pm+cX5J)H!-o#IM|7;!v~RpI3Y)BhzKVpee$m zNGe)GSWjEjIkQeeUc;J^yU++UWihjdW{^^ex?V;H&shJFt$r6}eO`v`5^xY&+!k>hQN89xa z$dA((Y$dvsd4|JXRvMEdXSe1?+cde;K?t5ED7dS0q9(&~MGo%q7V-E9c?QvFOZd&R zt2qZRqNF^!KHEbg*X^QcVb3=+j`9EGcEPpf_ff04(acKXg?69wa=m%i-=hvXXkxBU znhAO}1ovhzu<|Xj?OZrnX8GJ3YtEt{v&s(Sb*~>Mr^k3XN^8o%6&XGs#*x>PxtXm} zRMp*V%w<}bxFb4decMGZE%w3?@24rNMESa$?#C6FMzcRJZA)MqwKXQtR9W0;{oY}i z=44O%{-mNWun?yE5n1WcGbaVx2K0bkpM)b}z*hmrnjLy>FgNPC308#-djl?%IKHalGDfTZXx z)PeI#i}nWKXuF}uEzoZBgcCjwT` zJd!15{9c*iT#&UH%wJkqVDCHv%PHfs-Sw&PGFY)$I3;d1$HzEfsU1PV0L}A&Ip2-$ z^HZ)tfsNNlMB@cp{E<|-d=yFT&s`?yE>7ewuHOCgx73S*_+Tx$Ez-fS9rfL!u40&V z6Q432b!%VtZS>>81PzfniQ2Q8x{x+ILL|G-lq)G!g-=VN8Y|wk$vD1E6lJ5Ile)|o zGo*}U$;pyFA}m+vkYC_7=4~I!!XWnyK-aEq1BRGO1GC1VO!u~Hr)zs-zG?e2q4(hZD=;zQN_0qS;hwfgxZYK9MIKZ|zcOFG?JA=&G}z zcKjuHzHPB!(hf)MVCpOkI|kI`3f6$u86Bw%&uu2*Lcm9`V)H~2~WVZA(HGj=xbaa%Q)1Ihv*0=NfK2*ih7ydDK_h2 z3VbE^`c!9XJ1N#lav{vi&ZK>uto6afT2QRgU`k~)1uQBb@8whAM6#=LfIj~0B5F*8 zB!qF$$=kdS+AloD!HY`z-#CmFs(3cEz0vLi-bF^9q!zBHt!V4ICQ!2@31DXSU`-0oaiY0&s725)w=%D^+L7;{CPG`Tj6 zXuUTtUc>?CqAt|M(xLr_YO1gkiz|^i6RuYv*+BMTY4Uso*a11=f#^$()DGHWq=mIV znVDyT0+N{cDTSY8BaXOE;-*H=lcHPIATE4nXUnV#92r4fF#%2K=ird7+aulV@3gl=_jE|0Z-1_{fQT?Pdm zv=?nnjErfYX|kJarrV2rxq>d^ulS2s4YDX=k3+|dA!zFx$k+elJl+^-V^vY2Tmc0CJP(F$+ z+c0FHbWWl3&Gqc?0!r}hYP5%460C!&DfO?D)9!jWkj$sF;f?MlC;afP;%|@zHhpnX zE!n`qUFfi3YSykOx>qadHI}XClu}D)aC6pPrC^;#yDEmZP@HFN{fVkN?JU>u6SktE zs7~zc+imq?-79$6HJrUbbaVfZQPp@SmhbFXULoC*<482NZBuPBG~1L)$Az9t4Y z*Huwpw3no347rps#(AOia2%1eKRuHbGWP9s=_RX~?Kqfq7roJ6I8W@M;OmXrI5~3A z85*|fFRRVYsu4?!%o!rS#4->y3+H)plS&#)Sog^ zeiPl5bZ#b^XBxFFRSF`tFw)#i_Z*<|rmExhsY?Ga&Zt(ZH40=%OX18hm^{DCXU=my zsr((tE?pEWY9n(K!p4sNgc*cpb`r6)vn0oFO&}RAugq#<*7tR)usTbl_K%ACNDP#FQu|8Ds5{Q5(D}(KzV=52yLysk}kdCAf?4vcw%L zm~l*qQ8;lGN^EPHk~0j85*8$g?4G|-c?;Vu+(K0iqs!RXCsiVQ>}D>=NSC0|gq0WX z5MUhjO|-geqB;fG0n^R3$c~tV`=c@X(TjsVQcC;D4p9C+Gq?k;ml zdfnlKbN>8Pyub)N&9Jj!^q_ppqb@Uxh8#!elKpWC#E{vwd@Y4K#o`Vp+w<%a)g|n> zy+~g^J>qZcWR^1R=;ohEZL3R6=J&yg$!T@rLdtr~W!NHDniX=P{2Y{9I+M$A*DEpw zj=Er@3#tLDuptqZrRUX@h*k=n(4hm`d&K*fs@At=?Zc3UO=2+$r90=!fivJ9$E{WL zy)J|ympTxMBm`FI`BtiUU-Rf6h-Tz#a}Jp&WqXfnA1iQD>vJo!t?W-)6uF+#I}Wm9 zFePs3+4(FpU)GkqS$9v;`5w=yq^K6D+!Axlub>qxy4AfnzOm%s3v1bbvsB^j&@L@z z&ma1#Q--b5m^3p-YftjRF13xKMx|Or<@?UX^kmSl^3*YF&dgQyS9r^pT6LyEM-ONC zmQ$~M8LQwy86DJxvu&`VbY_*4`v1TPog_&+q{F_&;ml~yA+B@ zpl)@WTsPTPOABN<1JP48^KdZNRc7`kzb#9C2*#ono2OWBV98V3@{+a8c+s`pKoR9R&y*pH5y*v9 z4G_l&1u`iPn*xWfiH_5zH+j`otU?)#x093+#C@S^FqH!;aY5!(* z?!841Ku}0%WqS>JqLusQY9Xn9F+>bQMP`U5@eaGt@CfN5+3kRGiS7$ z1VC~T(Sp92Cq@d7J^w!vBa2no-HH67`d$2TdkYC|itDVF{FRlYXWak^6l!ET^EJ04 zTeRdaoqBZ|S4*tvhIB)HqCXBw^njpcgIFB7b5inHO~At&R_FNco4w@(9tVxD5dRU;~hN|_ zH?Lh@_R<)(7v{Fe@L&%UTJF>XGsPMXv2WTZk_{;?ap6>gP~+l^S4asVo{XO$lS^qR zeJF-{M`{-%@?)~+=?pxML~ke>9y0r-?-xvlJwtcJ)=&{U`0Mh0IuaN-V}eR47G2sQ z5$27|ml=x=y0y>_qi#)<5m1%<@G?sI07WdyQ@ZxS%g*Y+*tRySsmh#*0Nrh5cCl{e zTJ*Dz-HrPOM~Q=0)GZc21JeS%hc!AjnMl@A&r4qOL-#23F5djL-v4H2FtSDZbcW)H zer%(zLN<5Xv%=5}ri$E|Tq8jCv@Y#7rVy$qqvBFyoqBA6W|~}5E>;&bE2|aV_n=eJ zYH9dWczQLyRp>@2x|Sz%ZYuIQ=x!#{Gw!}IDQEdwa4eSh%1iy3;wn+KMPrf9ZIfo( zbuKg8nQlJ|T??}TTV#gP1{w6%aD^&Xx6Ep_CT-HOtm)b)SY`vYw4CDgWT`;~T6ULB z4{eO(Te@%YmUz8^cpc3-nwPzDxr#ykqBeTf`DGMmiiHu4teE{iGK~e1{?S}kv+^ZD z!g^E`?dkzq_63D08cIDb6@pzRzcE*sP#^{Fh`14)EHTM>wb%H;WKO0n4ATXyW^Zdd zDau-9GrI;?V4Ks@|BK%5_6WWc4}LwB`d9ERuAS->-DhmQZI0${hR&OzZ>`YtX8Q3( z!iKHxbOYH0kvjJ%W?!fs57NB}@{BjUa;w&E+94c_N{xY%YuSV&uy4cfsvn1ksk&`g z!D>LBf3UU68Dn`>FcSP>=`XblBe#0P(w7LXit;66@hY#t|BDx^X4T>CJ%$H}$dQw7 zQ5C@`JxG=`vUv33Oav-FdA?BCXgPGc4~lVCFYzp}rA-v6A6~OPEX};z-HHT=>!SBl z^G=`l>bfxj-{PWy2hZF*&Dg7x>@JkO&UJl7K5=$&s-QW%4tB7KA+oLZmCq-8wp zkfoBhWlUlyDeWl;VfHKbp&KqxFQ&j$zVPh9cJX0V5SsXH?3sK1PWOLzYlgjN(75n%_d_o!N93m8UwF6w;CCGs_u~v)3>E&&1ivj-(N3fJ&>nb^t#c* zUx;c=pAWES*NLc9nwy`Y%RSiM*xE+t7HSc@-HtcKS)hwwfuKP1h;2 z$77Adwd!oO)@XCAw$OWOsQdAv#A$(|zH4?Jm$N%tqcz(kpJ%&5zMtxZMr)zQD|-Lp zC3*Mw6tKpL%(qc{*}5`AH!o4AsBmH@;Dl2CfX%|``#+LPtZv$ZEWy3*+)ZBc`i6rc z1&W3Bq(V1#=7EuQ$<=zBovNa=CsvMeNIsxgMDg9q5~Yb0GA>)4S6}6`%j?e^)6iXA z`iAvY%ib{aRO^9cumh>RaNP9u7NRt}3m}?(VqRhGPrXG^zfMftFBec_gYk|Ma1X#* zxSJW)w<33`V>|vRI6-zb7uiU1O7GXRl412_PV%%Ib(8%0QFU%dEov`N=Ng%r zsPFDUk8ll5Wsz6L!}K^{Pk?xt!x# zoHiI4Yqkkl+hZG1KpEFY4JT)fV^PlNGHTW$@9s=#9!2wvo9E~*Cl}eQi$>dJuS!FY zc4;3M_`FbFrdL5~@;>GX>m&YqqNe*t3kLyyio?Z#S6f^s27I!`EgU4wynp`Tv+Ly7 zJ2hqgfZyYAG2o9|Tqg$n35yH)uhDlu-75p&QyeY^JZ*8E81Rh6h5V7%^k@LjIb00* zD;C#@0e{uvLjK76nnwfpW`~Ob|J33-G2owBT*x1Jw|g{z|I6WGz`wV+P7L@iiwpT9 z?{1F<@I4L}1AgLC)8F=wIx*lUSzO2;c~ACe03YjcG2mf~>%@RpT3pC~mFE4eM+10` z!^MD?9OKFl_yCIw`6KT^9u44w94-d@D2waFfFEsfA^#&a?{7RBz(+Y;4EQvQ>%@Rh zx44i$@St(-Qq(2e}0^yzfV(^4}hb`gV#a~xNdQs81SUUh5V7X z!=nLwzQe_UziDxu81O9?7xKrqjdf; zz?WEDCkFgNiwpT*s(CN+XaK*|;bOq?Q(XB0A8K(Sf7IQ#ygCH@9fyknA7W)jCkFg5 ziwpT9@8KQ|;6oiQ27I)|bz;EBSX{^-d6*L)==t$YH<|hI&6+ZQz?V5(4EQFC>%@RR zYjI)u|8M?{BFwQ|x1MSu;BSvL{rL_}nFjEk4i^JH>^Rr|0UvI0A^#&Z?~xu2;3FL_ z27Ic;bz;C}iwpU0(7e+;8o*~bTnu=Z#dTu9Qx+HUN8YqY19;ZqV!)SJ9LXPrUubb5 z|4TLRMIH^{mpWVw_;QQu#DK4`xRC$bHSZlB4dAOCE(ZKHi|fRIzix3Mf8>3`qXB%2 z!^MFAYH^(yaCAKSRLK9pZyNbe*(suopArRes^o>gC5BB zJKE;6UK;`ayu-zS-}yAmwVfF7yDTnjU*x^pqXB%4!^MFAXmOnw@SiL$QyU(Km z9G!r&()w57Gc2wX1KwzHA^%O9x7nisyv^Za!0)iQP7L@;iwpT9?<$W5@IN?Q4EUUr z@J*c<@VOQj^8eqq&*0q^uMB|49WDlZa>5p7;t6K@dtdK#fAKlSM_KBPdHo*`130qf52a` zxRC!BHSbFv4dAajTnxB9?Dzwox44jhNAngu8o(DiTnzXF7T1XZf6(GW{>b}~M+5jH z4i^LdmBn>pz`wS*kpG?c8h!rvnsOfl{0E1N0YBo8PX7lSTU^K=@BWQf2EcnAE(ZL= zQ(gT7{*lFn{E_!#j|T8<4i^JH>p6};;AdJ~$p383dzME7__+=j1Aftz;}7`778mkI z-b*|hz%O^W81Q>9ar^;aV{svWu;{!^MENTU;jwJZf^};hZgC<13-#U4^U47DVuy%@S6WpN?@Uu)iPJQ~1z z9WDkO|I&?Lz=v8~$RFQU^S%-Aq{GF4pJ#EM81O|F7xF($-+j1O2EdPUxESz|#dTu9 zD=aSLKdgBxJsQBP9WDm^T#M_(fX}hGkUzfd`QA4IzQo~Tz;Cv=P7L@h78mkI-djBy zz?VB*4EXC7*NFjt!{S2z$h+C20sJk8ivizfakT%U@Lw!0<>#_(>Mmi2*;^ z;zIsU(Y&X6G=PtHxESz|#nJdxc!kA<{D(DfrAGsJwZp}LUvF`p81Ne`F694l&HIE$ z1NeG}ivgeiFjxP8cUfG>AGQhjmTs#4i^JHqR+K2;73|q$RF?ifma5=KXSMj@KL{V^Dp4XSzO5fl_#09pKj7Cm zTnzX#7T1XZ-)M0mf4uwgUKs!%?Qk*Rb1aVR=L(-|aUp-?RXiHN;|>=CzS81IKUDZC ziwpT9?`n?*@H-tY2K+ON>%@R>x44l1D^J(@*Hr3X;nz4^4EQq^NA<7pjTRU3$Gd;- zl>zWC94-d@q+h%K1Ng}n7xG8mQ#=~L$2nXKxM6Xf81VTP7xG8mE{_KAjKjr%-*0i9 z81O$@T*&{b`QzKJ^}Z4Cha4^j{40wi`=r9Zwz!c0+SR7~>on!^13uN^V!&;S>%@TPEiUAL z^T~$)H#KGcfNyoU*uraE{qL{v5{nD@LjK5G=FtEy zIa~~Q+TzGRU*Q>x3;83j>Cph5bGR7r2Q97>1OAZ3h5X-gq^ZxhYRdHw_;QDf0e{uv zIx*m{SzO5flEV!D7i!A<0l(PcV!$7>xK0fC;}#e4U#4w;lGg_S_c>e)c--PTG2oiT zh5S)>*Liga_@fRN1HRtkIx*l+T3pC~Z_U)t?=xc(3L85S4vf3@cQ zoks)sbq*H;zRu!0G2jndT*&|b@BZ6pn@@Rd1o$%!7XyCGZ=HMq{8)<%>j!y9c{G5Z z;Bc{p?{NJ0S9poVh5V6sfJX!PK!=L~|IFe@KT-I0iwpT9@8=#3;9odg4EW1?UHJij z#o|K#$or~C1Na*b7X!ZTcaA^c4_jQwA9)|~XaIlQ;bOpVywmXq{3eSF`6KVm9u45j z94-dj{=MT5c;4bd{>bZiG=TRwTnzZRcRBum&#}0WKl0A?XaH9oE(Uz+-Ht!tvc-k` zk+;F40X*VxG2j#a;P?YR(c(h>$K7b;;qjWX`~-ZW!^MEFwYW|U_yZOf^2fWEd1U}x za<~}qvn;L?1Aex}h5V8C9FGR@xegZteyPQEV!$u6xR5{cUhdHVewD+;fIn(+ofz=P zEH31aypMY{fdARyV!*dqTqg$n6N?M^Bk!jk4d9EbdH0ALH_{k0z13tsz$bV1ajTRU3$GhL+l>zYE94-d@S&Qq$fInw(A%Eok zi$??aiw+k9{;kDzV!(G;T*x1Jdp#P!zjwG8@MG_B{S)v}78mkI-s3zPz)Kx227J23 zbz;CH78mkI-WeVZ;LQ#f1D?0IP7JtXaUp-?EqFA5FLbyV@IP2wCkFgZiwpT9?_C}Z z;P*OQ4ESpnN9SJ@{<_75{E_z!j|T894i^Ky%i=mQ;JYm@rsmsuS7&nx^kiwpT9?{bd@@H-qX2K-rzBl)B7=PWMdkGy~JXaIlF;bOqQv^d(I zRrpsH7xG8muRR*TcQ{-O`0ziv{sZ_3iwpT9?~xu2;3FL_2E5wh==`t3CtF;|A9-s$ z8o=uuE(Tn;I65D#@TA3s{E@fAqXB%r!^MDKV{x4r@M|qDpdF4H#l4j_%@3p{Yv4VSX{^-c|Y}N0RPIMM+11H!^ME_wYW|U_>UGB@<-mEJQ~1%akv=pwfDL5 z1O9-;h5V8CL5~LThaD~kT=|RR5BNNb3;83j>d^q6aJU%oi!H7b1Ad9ch5V8CQjZ4k zD;zEc{6358#DL##aUp-?{i8<%_=64?1HRefIx*mHT3pB@?<;~Xvqe6q!LV!&%GF658Ar+YMj zPjR>y@VLd1eO2L_#fAKlH{sC$-r;aD;FnokCkFg-iwpT9?-d>m;8#0b4ES1$Bm02D zAF#NPKk`24(E$Fi!^MEVWpSMt@U0dX@<-mcJsQB@bGR7rpDeBu1OBtch5V6spGN~Y zicS^Z8d~$kfR|caCkA}9#fAKlcZ^2^_{k0z11?)!CkDL1;zIt&JI$j3e1^ltfL~#8 zofz;dEiUAbyjOWNfM4TqG2m}lTqg#6v&Dt{k@roH2Jo#87XvGfX}cvvJWV{(c(h>$lK)60N(0wG2mxe z9NFI#ezwJh{E_z@j|T9$4i^J{k;Qdlz%RDAkU#QX;?V$pxx>YP-(Yc_81Ne{F658A zH+eLG-|BEN;2SKi69fLV#fAKl_Zg1{@Mj$^2K-ZtqxfA4|IFe-{>Z!CqXGP14i^JH zaDUhT0Uu;>A%EmO#G?Uxh{MHzPqaAl-&S~;#fAKlcalc~xX00)_!ABn1OBbW(f)|ScUWA=f3N2K&Z7Z*m&3(?ANgR{zJMQPaUp-4 z4fv~fM!>>P#aenH-e2MG9}8S32K)ny3;E;SkM_y{_%RL_13t&%$bVJgb1g39kGzUU z19;rwV!-dVxK0fCJr)=8N8Woq8o=*&xESznEUps+{;kD@{E>HuM+5jyhl>FZ9_ZQ^ z@Q}rY{E@f9qXE3i;bOqgx42FW_+pC-`J?Us&Fcezf9!BE;NMsr)sMo6vB!I(>G%MM z|A{z@ND)&Q@e2_H81a5*o?!YZQpDjwinzB(5vLX@;>sdLj9A1QL0ku_3`kPhRX}}`hU-%KT_$g zP0@cYhkljPbyD;fYPr(o0sacj|B$B59R9VxHQ%-TWRpJa6q9~wefIa>tn^2v=>IW? zetNax^Jh)L|Ft>vuT{D)rsz-8a;3i)_??=6k*2G2_rkCu^jqGlnviMYWg4B&F^DJO`7Hpy5DU`(p`{4|HRV_-BV9DDd;|#L%&t&o;70V zL3hBI`JFD$oYI}T(d2{foo8m#|5)jlr|4gtLx0g3hEJTL-*y^pQFIzpmxDaho&DoJG=bP+h*`vbsX-}avb=aZ2JFH`hgVvub!Pv|B`1I{1GYo zZ|2aySLy#{ zpgaG3^E+Lh&no>9Df*2$^yk$KpSv^#|C4g)FIBqFr0D-Er~JSl)G+TkO4A={nlAr! zTJ9H58v4t$90OC?-}~6Q!8cO$N9NFfQt3xh^nc!!&HqPAe|U=iV>$H${C73~zcqbd z4*$<;Ij@~I@4x0klis0ex_&_SwwWZ|@bj|E|23uiX4B+@?u9w@|D$yKU0~=z_thNw zex+M6XXrt9_(j>}sVH5eW%5Dy+#LEVlOrF7d<^anpbyF9?3p!sV-m&5GR%b(lq@^FEseaU24)-EB&pSrs+YqOZkItV-Ej~%6H|941dr+ z>J8cD0o{@pn|#ncGl%{drTcG9LHCXv`bWRS@O|h@O$xf(a_EPZuB6`!x}$TxH?Q8G z@|NuHJ>umCzwkbJ59OX z@?Mjkd`))wtN&o|PgnZSDt(+o559kWSCa4TIrMiZ-)|`WPNn;&9D49Yxxx28-E81p zLl3$y=Fo%gvg-^z=nnZ&c6mVex(}Ot&~3}1f4kEC<|Bq4bl=FK2iZ&8 z1G*DGVe&!ujvV?UKW6A2^YJA8vvTM`cbM`AT^|2+O83%#GW0g~g54v|Lf6(Re|F+T{`31utbZ6xB2hiQ4^q_lL z4n62@|Dxd!y3gg%qhCTUqhCJt7v}kN|D4l)eD0S`{*!-Z(p{RS=|OkaSCVue&Y^z^ z=)P*`LH9p7^t+U<_BBHfx|44=ztiPuDqZvICLeS!%A;4h58Z6&LHCHCXY;>Y>EHg1 zB>h)%_=E0E${%!j{QpJi-uF$zA9QEtlm~QI++yfKcSR2UdzJ30Zy9>f{UnDTbZ@=Y z(1Y%&|7m`w>;H>NckQ=LKIo=%=t1|c?-+W}eKd#uI;FeryM`Wg_vXdNp!=@!2VEZj1HNzgeqU42-I&84be~r}40M0Yp+|gN?188E zw{ia;?(kdeemD5y4!R?bGv9+d<8VLRl;V-%PPR)Gk2}L? z@o{UP;g5Sakm3#v+?RoS8y4&Tfah>81Jd&b&3lpJP6XV4fIAFuUjgnFK#Dm1xDNm^ z{eefEeWZw)kNEhAV~-SZ=aC{#JW|AbM|}6a?=$5`ikRw%pN<&lhd<%my?7~?nS zJde2FND;#u@wyRn8}Y9Z!y56b5px>xpAo|u@tP5H8S#%1!x-_35px*ve^>m{eBZF9 zh`EdSv4{bSc&~`riukOEv5I)Ah>42$r-)&Sc%_Iriuj_45sG-Ai0PU3r$M~U1uf@p zP2ZYI5f>8iClNyuc*I>qd`HA+1Rik{ks{6^Qp62Jd_u$+1Rin!kRnbWQpBZ0d_Ba- zLp(ghv;!UDv?1OcV#Xmp9AdnI4sq9zB2F4o#O*?SGsGxEJTk--L;Ntr0K;>L3x)Vx zh_QuuT8N3&&Ho8}5C;k=;x-{goF$})i-Z($jF2Mk5K_bmLW;OPND+qzDdO57ehy;b z0FSsdND)T{DdN5$MVuC-h^vAWaZr#VZV6Jv0YSVG#0&u*aXgSB?gmoC$v}#@7Dy3? z0x9A~AVr)9q=?Ia6mb-gBJKfF#3?|ExB^HK2LLI~?IXoGd!#rQj}+(Fk>cDrQk)Y< zigVpaaSj_P&P^l5IcKCemy8tWh>_ylFH)S-MT&E^NO2ApDbB4T#W_=?I2Vc(=Qxq# z+$B<+lSGPhjYx405h>0MBE>mBq&Sy{6zAxW;@lfjoKr)Jb7e?z4h$*IZ6U=uE2KCV zg%szQkmB4CQk)^ec_EzZL5edvIFEyKGe~g;2IpOHE(IyhnBY7K&V3-o84jG+z_|*f zI3t1c5IDDh6lV}{-T>zUkiy3w{`~N}M+zT$_{+nu9VvX&;g1f#Zlv(TMhd@ar0{b_ z3cqBe@G(xW@1kX`J=5*#IHm15lkNo6m}%GNW}{^@&31j+x>H6@Y*%;auN^b<%f{y$ zQxhjPCZc8hYiG5!Gg>yWXNLHhv^{5XI`z3$qdAlKQK7uK`c#!4P-u3l9W86jH0a-U zeK-9(Nk1sBIZbq<8*>;7BKUFt8D%H8U>K?-b z@cA`*klt6FZq(?xCcT3GStjo_?-*~jqGh$_^mKiOGAHWe^E>F_>dcNh;myy+%w!XA zb$ooT-odY_#tgmOP*Dv6oNCg`3|2V>O|TD$$I>(V(f|AFv%~wZ6=+xyM=2f&)B1l; zq#p;;|9F0E|F!fhipCVNRDQXC4sf7ACHmKYzP{rx=``pcgt~WCF_>s48`|N64W2Q|HYKgeDVA>$FG$qt~p+k z=)A*B%H=S_A{A&oupUCCozk^O*tEnW>!%brU<#+jiub?0P^Go&lr6(JzZTwR2 zkIwhYAJR9`FaP=3k+qUPJ0eMR(`U3Jn4b}z)1T4h1o+P{Kj>7+T7Hlz=|e!MX}bJZ z6P}+({jJsK*Xr|EpQ8_IvNZWKx`uxH&)-%z@4u~X-gLvN+%w-TD$7`6Q6-_(Wh%fB(tFO^^JpY;3x zow9g{;rUeSU9`&)-4Ma^J=C_vrKY=<{e;+rNpH|Im-_ zA=rQaJ$IPzzvm9~{ps@JH`4o3&qsUB^U+@O{4ie3FQq>`hxEbpa{v9qe=yGv|G_+u za+;^z^Z0!TJ zlct~Fs?VqE?{{aK=TAR4`2>C;eYQTId`lFqtQyI6$=S&qJO^w&=lSceSIKt*C{3Dv z{!l`r@A#D0|J*#^NyzBm?-!z+f0j_`hWB3^kBl&1B=L`mFb^d0kB%VUlX&Wl zklS9ylIU+D$YT#pz2q?wElgn1;KKe|30SpqZNOJK}QGEgUtU1#Y4?p zr}#gl@C%AxzIm;1c#QJ7j_~`D2Denp1AXIGrT^C*hW=P82mc*G!kXXv-RG~B-y7uL zDB7U-$6lPo?^gWYYu5?o2b9m(75|P8Ch@GVF#j{IGx+x@eM|Ab|8Nq2o8oVJy?O6R zN`Lr+%y(U_-(_;6XszOJQ#|JFDa9`xFzo{TTM5tQx#JCn!wTj9RmJzc)!H=!f6r6=zkk@^k5K+!Q2g6JYQFbGrT>HC-*%m$|CHjFlDfn19aBEb z6u(ySm!|L&ioY&}f3M>2{D|Ryq4N1}!gK$>PWw6L@gV{jfBGNmLaD`%UMToSMBg7Y z^=W4FD0-jbf2w$li(3`HT-!yLtA$kf@S&H<-=hyP{Qq>4!T+be_cX;H)o1XRk{sc`4&k|+fB$szUCJi9 zQt?-(@Ly5Q~lv8rN8%?hW>P| zxbG55! zzn8?L{5^!a8rR#$6i>yIzh#1dOms`?yUtep_fz;w6@Oa_e;whuoO>@bmp=EB&#CJlc;YKIZ?> zPZ&PC6@RkgFID^t6u(FD`~8!l|E}UcqWJGA{@)b;E5$$Q8biNK@rP1F@O!WOXM-;( zenjy7+pfR7L6;I+_{zeo(o8mLC_}3}^ z2&KPD@yk+j^^1yMnd-N{RQ%c${h`E=%d=7OG~DEGrQ)BN;&YDT&s98$Yx%oW@w1Aj z&zHXsDgJeeM?L&d@zQyPcY>S>N)k^w-bF)Jue;0uIJr3^?Y=S z9`$@o3ja~9=cUgv{D-vssQ>d6kNV$>c2Rsu=}#oZoBQF?=NdjwQ~XZFU#;}Oqa6{> z>xbHbFs|SJY{TaO<%4#-TJh<2ye5T5J6@;wbUWUn_;fq&RXp19T~vNUa!KtC(GPw?S7o%6H!JcLXe`$bf`l%3=WgpZ=b1N+Q!#i#8# z>xEBfpV>tCW9WOYy~W4}DxUnkSn+$`dy4#q9R9ZA;dYAg_;bP^Mtoj=##*80bv6GT za+KkJ#7_(#Qm5r_MDc(ApZ|}wH-Xc!`v3p$8IokrG6{{bBq1|q#*lPdhM7!E#+Icq z8-_8XS!_v&l0r#Hk|d<4C`l5sCnU*MjU_2UDtr3B&w0JxHTUTrpT7Uc?|$^?HqZNg zz0Ui*&w8Efy3PeI(=hvaS-8;|oZ+>9=K*`R2oLtNF7y?3bX%$^w7*l9cuc<5?t}hT z^3LSPhlA&m4-szCZFR|OiTb&m_UBLf`v1G|8dCq?jYqweX_fsHmn9^V?vSg9r>-d7 zMXt9?H=zB4e9sB!tfBqO z>iK-9%2=d3sCvFDU zc6xw3=1X7ygK9u$JIhP+6(d~dHk7ts{VXr#*|N}U|DG6tU&m6X=!ei(|F@F&zX-1V z-VGs0cl1x-@~8bo$UjVe56@|7{~kx4M*Fv;VXygGNxoqR?6sbsA)mGe_Ug~=HIc5~ zHmm2e9m$7nhK|NzB>DDlpriK7l{;}eO8)aY=sZmSOV&cV=Z-^1`}y9&{l$3#?Z*bR zwhHRcX7V+xZ`yy}B#xQ-Fm5l>m1=B1^~v|Wg>-w84-{_V+>(LVDs>^0qk z!cBYJ71zdEYJXm=4$|F{2YdYL@zfxN9|Mr&?B`ALOHHAV|I1ic7ja%S4CRtv z1ol0I+x{d2mfAneC67A@d#&dutqv0_@D+HcfB$O=H~M`xL0{|tVDg{$L0|Jetq`3B z!cDpNNk++bWZIXgGyN8nOLy|x^^oq;-;r(zc?`Kep0F(dKMW$*+jf7T{YrAZJs7EY zJl_j9{sgy$KiZ!J%S6cf$@>&^Jt0)MiG#O16oRS$EctWnucUh0&&T9_Xs_|FTpv1m zJD$dKpm39}=Rx?R=iRT+e&#a7L55NL`HlSeHpE}ky;Ul9LwhgzQ1TY%S_8VW5Z~F>ykkd^2DJln=xXo_{ z{%Ih1d-D5ddM(g?xDWZ_8-IpfMZP3l_OqLOUJ|&*^AGY0#Za$apnbdq z#OUN6fxh<7PYO4F4l4n^oqjH%y*>tWggQHgmy`9q{yZNkPJUAu^yjmG&^WgvzkCpW z%4voDj3aNz_NeyD$Pe7?YyYiq(s`AS_auZSklpZXK>wT|{#!cF`WcX=&YL;gDL*Ia_V&Ib;W>tijF9s3E4 zGCKeM+-kYZx8L;IA8XR24SDA@aGl3KCfvkf&jsK7zD4f#dtZ_tm<)UE4{J4rj^4hm zd=Pmn_S+iI=gG6rLPyJGJGnkK*NOh0AwO^&@u@%_(hTXI+6WzK4))WRTpxeaaeqAd z!0xbbPWwH={l)Va+84`bx`8;L(mg20jB8#Cw0^b}ZsJ+|Ug(#jekS?3Z+&%UkdG_k zYrk2z8K<7(`IP4Od)g24pxtTQDoI96z3QF{f3#gZBi#7&9{WA555JP1xP)}Iy+p`B z=`Rkkh45a&?Ks{CM>n7>8BldYgF+c~A@ZKmQ8+e~i4jaHF%7^(2IR z4DBPC-x}m!(!Tqn$X8YJTcpApoo5rlFO$azH*qV=`z-^>yVHL353r9Tf0aC{D&jBM zv7dbEROsuqf6JftQ_aixIP;%Q!i_(xE~7qZdznD{UG06x-{rKwHyr*<^59cc4)<4H zRfHRT?^@Vbp}iS)4c~K{um6L|^>GAkFXr-!u|IzZI$Ez*k)J*XuKnK6!c9DHY;^#B7)Ac`mvW$dZX;hxe(n!n{m;oS9fJKO$asvI(Vxh1T!v%&F;C?h zUWHua+(Wpjx1;YzoRvR8`*{PAuJ*U)X;Gtdt`+#L)HhEl8lL$ZxW=c1$eK8GS_D7m z6vYAEgd6+Sufsl#pm~{0q zTP}u>TNLjT-rxI4*MkXTkePb*;Lr8{}IAX9Q1Lw+O+RW z-t7bEbRu6(UWe;8IzH|tkG~D}T0d`S5B)d(0@wbb3;ED_zV=TG_gB6P3*oDTn>Yk_ zM7~u24D}CJLi_Dc|D$C<@u&Z?a1#gbMEE18E%vjId?M$u;pAl=K)RlmNY_gqCES$n z*#|&=A|E8&=w}pxer58xA*x#{rbBhA@ zyZf2;Gh4uuQ$>+*$d4#r4SPAQu%9}eQJ;5l z{VIq&LAddA-!|Vkyh&d73jEag7wZE1%)h{Oe7Re=iBCz!huQKxMEf>X&`xz;_XPQ9 z=X~%x;ijHk90&bHfpD~PSEM_Q>xyagza#l+)*}<@u+a4KXtm-D#-9^KSjDh z{{YWllt+{2H$!}aY5$mTqx0c-uO<29?~uFeEgPs)tGMrcqqt1uO#Hul8T!8lKU{uSwL|6$yXt|EC?)*I<|;(S=^dARWMJhtFh7uvh$Wiy1^c`w%+r5m)L zQ?xJf3H+~3UjAXETbbi&D0w`2UtZTpCeJ2sHUK&pB|V;LMs}W&;QM|fA|*I zM^OJ4@`gF!Ivzcp2tRc@2JQF0Cf_py_F7)0`@p{MPH?S150JNE`%?QkWW>RTsV1@;2H>2{-yxcz&vWjwj!Bx|OxmIBX@~ z&H8*hb;_hd=Pc)+eaO?udr=2!9?xR(@b^IOrF}_hAjY3zTonKZECS?-juh z3u%9u(9f5*pDcLPZDn8rrRLZW+I2lXJ#Q^@r+vsnP3}x-9D%#?cWe? z{fR~oP?vl!?HBchj<&n<>Cn;bmNebgKG^B^=8$h+4?k6B7x^aM=d*xuD4q%ZHh;jrI(YhyYx}A*Lza-pW zdt5^MA)FVLpw5@VO}hwALc7rUcJaafb!uB)%G2z1#9=sfV#yCT0$)v@Biz)7ixUx_ z2IRZRBb{~K;73qDC(rO&OKqneg&Un!yP%`>Gt1gjw7}Om+Rt*%n>JE^TxRXXA3v&tA1_hOEa;bedNPl1aCxMF$em(ZJ4(A zd&o0+pG+6pX9_p!cDr(&qJp?`3J)F-$eFn zGwq8Nfqgmt_y_seAe5|*U-3hrKipY|`AB#<$=8W0@TWL+F4F#+*PyTUFjG2AfBrlz z-1y((QP^ued8-inL$t5%^z(tkpyRGrhmx1)ePUYQo+s}=0_kdby-(g^zAxWLKEk;k zT}>LYDc`kRmutv4bQEs#wLJ(r5#+hTP5pWIlGlb z<@GG>A2P{LaeQe@`y;~r#s3QJgYH7Q+P-d+0mAs{orZe;D|NaFH~HE-!8bnH)}BTM zz9!N>oAbIV{B0}w1lALcf7D3mhi!*`80}vaZtB~eB~jnXkguWrhNH08apwa0akj@$ z+Bba+`tG{@VB!AaGm-X{c%7m+qCJp{0#Z}dhkcv z(Yxf`CxbWl;B(s;q^sMR-Ag{4Jj5Bt-xcn!+_zaS&o8HVt%9aoeJu2K`#^1X1BILN zn)y2HuQJ_nv=8Juq58Ag+S91O*AeRMnE@TGC*_|&x*qoP^>|DM`Te{PMB_Y-T(^PK zda_$}c>b&NnG58)O{@A@Wt{)`#0xk5z_1ruSx+7)0*BUGd%0itQ}|zoyz+SeI`xGc zouyoFl=PpK1k$!kd}`BBUHM}e=Kra*rzgyavufvf#O@^*E>>(TxY`6!N$8n+9= z{f%oSry||pOVH7J(vG}2?`u_^$>isGK2?tCZWUgh|1S7-s1SaII+enZuExKHOpr|c zUz&mVYaEhcUcI2FT0UL^mH^IMJ2N%BR!4wXgwplQ%)TLJxyw!5C>^;^TAyJ$b3 z+=&#&x7< z+CL}U=xmsccuLsqXEp6VaMtI4r2U~kz1B|iTWl7_m$`gSX4tJ{n8?cPi692QZbDFxJ>Y1@@~RyerqAW{m4I}edGz) zYyZDZxH&KI@Vb)rw-;#d_A}*YLqBS-*DC8gCq=mN=RhFzH6~N7J)J1x3_pCx3}Jq)=x+c@Lf!gp=R?D)gJ}M|o-7qJ`_fX==Y7q5UkL z7p&xutH~F0eLI)@p1IJkJ_i11`94A({{?tk+Ak-c!1=k>lYHT(Ud=T(Qp%^g{lDxJ z`x^8^xUQ?^ScCk`bm*&24*BW};5r_?E8OTW;QX^U^$*fMXj4l|s*x9+hjeGeLZ?R{ zeuyWJ;%gB!-KFF!e}~SD0N9@;@9(Gz>1zh{**T|!I{j>r7xlBHKA?&M? z-#Z^V%^9CG@`uQ$az3o%-J9eqcpWo@_TQ7oL_=Tax1-;H{uj>kbRP&e@$Adz-v?0V zTj6#cqfHx2RHw=U=+yN{cp~6uUPw1o~r}AmPm83 zpWuZ^*S*iPHTgNtqdL;QFS%}~ul4y=^8U_z@(B55UhmWTS#1&0tzQxO)$yo3c?|ED z)AH?0K7eu7dixCdMy{u6e)kJE@!vKU_3bkKFY_kS)$PS&$cG9y_PIN~mYgKtO#5q2 z`#nLf+q~aP`{2dU|1KT*Qh&yh*X8(oJMF&_Zqhw{)oV!zd6~DMGomSUG;Zz4b$fM9 zcLaGKme-xsnJe7r@6U$5-p~0t`M93ogK1yyZP-tnhq!6{dkHuFa6Hdz)Xyi#mvJ7h zepXlld)LjcT?hH9&2*QL>$dWmuOds~Pv^ey^FG?&Bi#7YV;^+1e;7$VYZiDK z?U$3!`^-1ptK|B+mp^EK|2s%`PB`Kq#biH&gqw8T`=;Ko_B1N+wTU|CE_*F~guhjO z7dr3Hgg+X$IN|=FQ&b|Rz=I}8o7HNv&J&$|Hb}F^VOex&S|6@%5*;xZu-Ns51>B`BEKZu_;a=h z;@^$D)^g~-%ky!lc|7Ult5<=Pqy4AkBM*bGBfm^uf#Zw%^WghPcj;uWwd_Ls$H`YM zfIp9tFSDF~6!_XM+|(2Iy4YXj-|>2)*7Nosz`hZ$gJ^voL!Mg>{^v1`_sL6ag+ChS z1LRBJg}si0x2=Hw^ki_gZ!6ryIch$1ey9Er@(T^X?>Adcs@w`C(rgL9GuT@BQWlLZE$>i?!-=E1>ab8!4>E84)bo6y-QRMZ>qqabQ zD|s$?^?Bf0UPpv$S<}>hm0HdAwGjE$biKk&d9~qv5tVpQAM#qYps)3R3i zA&+Ffv|XPg*Vn9Qy78a*_w$89_(#HxpYQC4KW*vft!t347|zeTk+%_U?BD0OS(khu z`9-cH1(QETUd6fpa~Ji08|Af@v9!NL`^Im>AMKwTe~NUY_8`t-wC_yr*5}8`C%g`w zDztx>{QODiyr=03FCSRS6U^t)%94B5B3*qwjh0I{^4}PT%Cvt>xT*h{zLpC& zaod~f>rcgX;EUMLRJ2FQ{$}JsMPRS`1IXi?b+G5ick?>6w%;?t{ngtt>yd5?-e08g z89?q~JI$g$)5!zb9;JJ?a0KPf@` z?c|Y>NH>`LGIJ;0=brt9S{7B)(e|_Cu z1pVnruCKMs55Ny&gq!kuB+F~TG4hY7UzYnq1X1T8d7s!emMD+d44o^lq1T3etqk@LD*MUcP{a(zANEll@m^1ka(E|KKB$lZOP zN=b)r{B+laS_=19fBFcw*Snqjv4>G-JI@z#nC=CuQ_8dQ6R#zs8Rz!fpda57oaUav z!i_&ixo=xJ{_qm{XwLt&o$eBD{0ZiLBb{kq_jBm1;r$O)$;Svc<^FaA%IkLW^}@~d zJNJ3F{nY7v9QM^{AF>@f9lCoh*&K);QY@!Yfv<7GO}=8rpj_1dW#sx=yE}QzjbFfC zUze$VK1}}EP0-Q)Z4&v^(%`|=Sxvr;_lc=}&<^@P!D}sJY2RCTF#lcfYq)UZ|B<55 z*ZMh|JmMO-#;4*=*n9p&+?r6Vop2NX*^IxAFL~svXL+sVF4pr`sN+7Lb%wki*NaM1 zKV}!wt-jJXKCcV+SD#PNek`AFeUv&KzJyL>3FxGezf9ij2Jl(rYsh;P0oQu_3;A1R zz>{fTYd7@Aa(zVcUz#1lP5brqM!yk6dw5+&^R<9nUtg{L@CI^y&7tx?$j@`W7e)P$z0jX_3*rz#-iUbZu}XW>a|4U`2_6)Ie!SD z{p;lVdeL^|Ka%U~9P5!c-j8&{Sl>pF=Lk3H&Kiq+-A(=$?MFKG?OWOxodWybv@dx8 z`uf^p^*@C?dk6BXd=B{l-ggm4oz=okJlA?rZ@uJ4$)D@wJ5Q*55b3(>*geQ+^Lk}l z>I^0Sj_WEK&$Z<9zlERL?yd=cO~$X`&VHmZhmdaf-mp)j{$u3sy7U|5`r2h3cXkLj z@elt3IrRoYsMNR6*VnQm6?q?#aATjE1p5fq|5VF8p68r#|557b>pG=Ju%Cs(?fA}k zRwv&|`vY9(PbLrg4*qP|2~Vn$4Di zB!qmdvp&{dxUDD7d?}Ik?mh$0kssi^r61GH7jEJ?vJU#yD&)84!=E(HpEWPBi}uJn}z< zn>e`Z=e>?1-Lq_WS82b7e9wVamS{hGM!50E%Y9U8(!SC$=tNzDy_RDu^5MMRq5aH@ zb17Y#i;+AaO2OM6t5*(f13UbefPP%N#u>DL+4d? zi0_k^clLYSC*0_ld|MY!$Hx!*-Fb!z;AbT595`lI7lGxD+xp|A7FKIEHt9sf@1yhL7}>w9&`w+Yv_ zLu9}H5*}O-@ZYzdHt%-)_j|kQ2siN`H30r-{Z9~X;%Rra?X$^WE%zVn<{!WpDnVFBW%?Q5!V<7X7lABR(CnYAzA2>&AmOAb*1V z+4sQ1$xo1naGjw7dA)P~%e}2|6CZtDxyEg_wJ+s~o8h$zb*Zz3_RaqE_2)P82f5$E zqqNWa&40QRg`0Gn?}CojpQYsMzxK`75vwEX9&FdzPZs+fI^B7_Om*s!H*5hNZ7=cU zmsxLhe0hv~;5pbgr~gOD>JZQ zTDY;F;I!X7^3j)}^9b!XTh2cUd|jn}Y8Bu3)VqjuPi;iH+TN4NV>oXKrPgS2cVF36 z(FVx(82%Z{D6G%Lf>>h5^nUP=OJGq z^z$I?M{qu`@u}+xuyM=fb(t!(Z%MwJ>$IBgbL8tU`PTofIJVQYsl*tLAp(x=XVmw7hguY zTJA5Bk8|!%{z|w>_u>tRn6}4Lzet(YR+COwBZ_9M|GTmI^CSO(0c`aEOfFHi5eVd;VAN=3rsZ(20VKXP7HXDasZed);b@a1;OOT>oi8o%OWu^09Ax z{-S-?+u>)8A~+ycPTWi!cKr@}{NLjlM&8}I-}`0q1w5b9b)GH4jXy`;^jhJX^ydQY z-SxLFC1L+8&#&*L{Se{CpEDN_XKkmS2{-#s&b^RkExXhH586-N=9}NJQqY;lci!mEe#2K8yOojX&-_IjQ8~MSSPaFOpyW9C6lhYCn0I+Tb#Sv7al#O&sdZ zMBKF8Yg9(MD;UpewC_bea6Rm`-919?zPIa5a(7?HugKl!?92=NOnwJP!_VeSH(R*B z_&;g6?5pgIgNvwhdIofIsdJdTIIq`hzjWuV{`I}WjX&-_-hIe-l|a9(^N_jZJGkDW z^Wh)Kr+)!|v>$F&#ecfpgqw7qF9rQ2^#2U`VCTHP@@=s1;Pn3wk^jl-`RrH+>1N{cwMBcOTjb!cDzOW4+SxaT)FV?}LucXZF+nY6$ApmH;GN zxf;^_{xZ0pcPElx+X=4md4+u673gcZtRuh7>seZ_ekJd~`LOmU@zs&;_5;w@b}>%4 zJ@4lGYjmErRJh4+{|#R2_%O!JbG!fYy;Zm=-|auZPpu~zQp5!U;N3TCF zA}4pi~ofBspIA* z;pRGQtaBaqD(xp%f_@(TtXBhZdu=)V?-PI@9u#ikb0_cH8AtndqlOJcfD<4Yk-XFeJxW9gBH|=-#MSg>s?kVz#&bnX8 zn(%WxpR?0=wkCJi{RWetE{5`rq5dxN^Uib1e=2vL3vOA9<2bJ`>-s~Aa+bT7`jdp4 za)~*CxD6ryM!30u?1Z!5-BsF$a9(s9?QgFQ9rt;_IPz1;h?|Ztx#U~eZ)01BJJJ%%7W_nFR!k`O+BB>>y-`Z=LF#6Y-4a`i7qWCI~n2boZ?tL%x#dT*O#AL%8K0xli_v8uk!K|Me=TC&2_O-nZ^dG06=V)JREBH<16&oPk>Rh)BCLc(?n$OXv zlTRj}b`ImnVeIS&x8jzZ`2?F8$tmuT_4D`W=Ov@{Mu!Lw=OJymKAoJ>jOG8SLC&z253mw7}O9>Qo4V zpXK;l^G3+m%-6k^TqW;9USS{j5Ke%W2seI~Yz>{;X@8RTeMZARmi+Ee>CXdi^~7-B z7-G*o!u|CRJ%t$+8;hozK`?R5FYdy`5s=E3@5)S0`(;9Gp{9U$U6x) z`E~c5?nCZz?yne2UUe`0iKNbl!p*pUk^NXv@}sn$JqPxu0`bHBkw~|*GjE(rzV;yE zsrmht+;b0fG;R%=(EoGbT3+{%yYGp3fxOQ(-}&m7!u`engm7DqNf`G#F<&jBknUSt zPtbIqA#ZjX{)EteBl*&|z_njJLcX2;t9`|$(0}+>*mtK+Z}L_=f7JMVOg_Ph+g0*> zUjNc|abGj&zxXip<#MO}aly0HYxCb5 zVep)zy}O@e(!Hn;@!Us6+x0}@rl0gW{p1YcrhSd#dY6{hHS$#6->CkyZvlJvImgF@ z+wp?$wb68!(tf}J&sAmO&(JhH&jGi0s#5;ii3gc%D*|KYmFacYb(R zJJ{!Qzg9gz?IzsR!>8{+ebDumJj)BFh<`s<2wzB@_S9*?Lw^x&;yLdC;t)n&BnIjJ zoZ_{lJ$a_({G-6vSm8z|_*>}cymy^&6Nh~6*K`+;IZOLFEO)IBRbr9u^4F1HsL6Yx zgd3f?&hsoe!cDppopti}snhvSuT3$8>3&E1=Z^a7-+VuG-21NYB#+q$PqbfcOJ17u zDD4McC4Ym@(P+KeDBSq(<#i=^N@@ zgd3gFH)3A#H1qoy?fW~|0XLE#YJ>XxC_A`c$hUlkbhSOUibJ~YKGpNcYm|n4J*N8& z`O@Qvv-aC%9)QkcM`5qycxUqZTxSlU&P(Kxe10mJ{3LnVcF-9?Ub};d!@obxgqwQu z8{cc3LX#ontnr^LcPWU;DzZK~O z{SiNTEqRR-h;G77`HuJ*_9L0@4B7{L0Q*JcUy`qw0j}fhHR_b)dbReG!3qBBRd?Yg zU3dJNPTqmzj?SYFle_zfR_e@hWVz^k>^|~V-4SPPFTI7EIJ@ifQ)r*;tdr!EulWNy zdLCD|3(_6H`%86ve~A1=r{7pW{xJJ_y>4=aJUkrQgH|2Ge`yLFS{`<6F`yS$^{rNR(Pon}~6(54m??Fg$ zG=GZ|ZsK-F9CV&4f*&T5Uv;kMt|T852K&_ku&>(#I+5(Rb=~g~@^V*TAIfx>koUM5 zT+98iaFgG4^Wf)j+TYL<`XT*%bt1_J@w`m+N0Ei?){;H>N(hzR_z_)PAW=NxkP zzKCt)?mFao@>AR|Lgy9T9!9!79z(jyUm`Edbp!1;b_zH7ZTA|=McZSMMDPbPkguBb zvnF|~{;(g$h2t*5O?`9U$MG(C1)i^IIUXQ)-)~;74|GQIJX-so&g7jgAYZr8p8@2v zc^;wq^T@BU-`h(2eDX#;pc71fmE665GB^qT>~0Br9j7{xH)J_#oL?1g;_2=q{Tc0l zT@M{yCux!leRp5GXUTi;`i{<{&I&jBN7j3-=h`1uO@YqUeJB@gr}vOoaPIdWA>8!0 z-Zs#&V)DP2XkV4%i}pVskzYOt|8+ipo_xnaq^og=PKCbe>UW}WQ%`c)KWIE(Aoo^) zejX24Pab>-`p=P9NrR5NuVW8#cRz>s$i0W5ukH7eaND0d>n%0=BF?F=d2Nb%J@J0w zcHZ6&^XduoCquZ&SJ)EhZy;Yn{*rTkdYt^Vo6uk7(!PH`=rsHc`F)>!vT#%GpH2rq zK)!?a^Y(&kyFO3;Gr5kfx61^~_!;yU?7L8>n{cDwYchB&c@FKH^Lnw)|96wmajyTC zONV~F^N53{+n>A-xt`CyEZn3!cLCDX@nVB;yPm*({sZXGIqK{VL)@B?R~mqH7jr#d z+gC^O0i)ngIodBGcgOwhiFX?!zc|^}p>vq&th(-L(EsBVWMrLircM zjZPn)x2jIf48$RL9^#s*kZ4>)c!w|ydVA4@ghaI@u$^~(0P&iACPZ24u2|=pC(V{ z{8P)lOeSF8t59^)l{!h|==|0$N`EDRD&UU2hB&W%@AA>(KO|_qhETrr1 zzdDS(EAQj&PXCvZXTObf)&HHsO?`IviT$1S?t4|53`V+Txjv@lK2W&PiChRjhcewc zv>(m;OmtlMnfC8)_F7A|um1>i`d$SOp-xZovLA!r%Q!3)ZpyLJH%M3Gxre;e7H~a3 z`jgzf&XSM~oo9JJgN{>Al25w~9nJ3w;ii7B<+@N1{rrLU?tL=Fb71e~J{uEg-&nYb z+un=F*Ff@Y;U-`Ec%P55hI*}`biek~T)0Vhj&uFudGf^{pnht9 zxSrhIza^hMn)iojeZGAN(!F*K>5eUebTcf+zYG30Q*$KP+r ztN!ZSjyyx5QKle_!iy+`go_i>KA zQ4#p5?V`po`04Ho*G#ynhi&J2t($@L=Rw+^8w4F4ub&~Gx*S~l$+hHbc)q6d;nU>x zczsa&$r{7qkGnsAFY*J-iVt5C4quUFVs_9z}Z}&3#~W+-xG;=vQMs(fe3>kvHSIgy!*O^1Vq& zw+Hj}HF;1^@Db!!$m;}wYq{4RiFD)Y!_Q8%j}dOl-II>^yh+}N_H~|t&Z$8B@FjWG zZD=nUwEtDOxo;U?a*rb~$?NG_uO^VY`_*qGKkJ-_mKw!=nD^;5 zqCYK#n>f4shxaAl{x$s9b(JT{r_)bucU#F%b3PDE{eZ{)*Pn{QO}bbALY#HH=u3Vg z6YGT>n@5i{$P;{53{HzjOq2w4Qe)&!(TMGl{%m8Q5$6IY8cr*Dti4-Z2LH z?taBNv{39sE0kKc&&nt*HOYv zJa=p8%Z`Ii59d05ck*c)kl&Tm87kbgyEjLBEx8Lub8cCwVWn7cH;D%I?eJo&Ws@H2^izC!Lkuew6GncqIg^Bs-n9^ocm?@vO$be?lo zxTz0br#}pN68`Mz5C1jYQRMFX%Ja!*^SnvxL&Q_id2p()&TR64t>8MZs4~HSd^!s^ z`TES6w?8i2#I1B4=+t6-J|v&Ye)vK1eZozC=k~$**F)qHPa{52n-L$K_f8-${Q}}2 z7Jvh`k~g0W`$wqr1Nkmz9WQbs{5;`Y*XSkO__K@mOKAU`OZ#Q7Az#{WEGBo~i}wY& zyI<=K&-jmLP2nbPQJ+CSivFiqdpWP)ihMmvzKncH1H?i7*+ZSP&iuT=v(TUK+=tLz zxT%LfJPZ9D)PI5YAJBdU`6}{5><2>0e-&=x=5f|rf+itdcOS?!@}Lv&U;D|0%j&z>T zU$}{zyWh?`!plm#aPNEkm^ve!`y~RN^Y2f*a8n;T?e%SsL#@5M-}4Um8Np15$Q0VU?`4=z9>nu{ZFfh>2Ny%S0Rc$3 zVnD;V`h`-cef2UC6h>@D2*`MUi>JC z)|vZXf}igG{KLo>aDS4!n6KI7nZF=kNX6s%L%8w3^fs^crZnyA&4PZtqDWWAkv`<^ zzPnEdH#)%|LFYc^?R(n0?*pyyGU|Ce??2b^F-*9rhpXsk5_Pi3S8!gc{qs@sd9TAy zZNJ54!yos(x^cpd{-_PG-%9;F+9x~vIxeC84z9Q8{AV9|yRy((NS!jTK)*WQ+ov_=4^HJY2mV;~m z-$uBJ^Kssvp!SoLV_iK8& z5c>~kzlGN^HO_yKyZ5EESOEQZlTqI^ZvDvjb^+HoOd@ypReMjk=?Cg=LB8~S>uSh2!LhfE4nL&R3Yxtw{lXuBaeFv`X_lR)g&!U;|NBgS_v>)~( z{Lyw-ZxQ2g3OXV5X8`%iU%-*v4`^X3Eg}%n~68YHO(9!##yl=wK?N7u0 zZt6Tj?v7sz$VYbcTFayW9PqtxQ%~-w2K{d!FYCO-3?N4go*SwQ<- zUZ2(W9`F`)rgJ?|>%$%7eI7=-${!$~c@aDm?s%Re|8fnuo=2Y$Zv2VlID*mKmk|?Um^eFZrH!a`rJkSValry#}~Dq zF5Kj+BA-)uf%@mk$MHN!&j*_?gT4D6>ha_=dH$&NXQkyH&)jG)mGQMlxWDn}6m`b3 zKhb&~vK;BQ;k=?2)%uao{uuey`QDr4!Cr8U^C|Kte+Jj~*z|prd&pJz8AAO*!cBa( ze1ZC-_A`asc=kg4<7vN>_9Zx<(e`zP`gIyYhqqUIZug`4{P&@0fNz;ZuD?(PqN+Y0~jj}~t7yPN%t&flIPUpfMDdzk4ivpVv; zbE?-8ZP#aooB7o~XWg&jhtOYjEBx2-s2%yXaOmGj{o&-@TZ11UUr*kA3b)?RZ9*e%gNn!fJ4HK|7}V^U+ZC!Pmr$r+6;ul1w~^V^TS?4RHv z^m7_{@HOyynQEpa2-S2<4tRfKmY#J6mH@_*tss##oEg} z&}pYHkPl!S&QkIqb^18h0n2>qKiyiwO+8$85b@M`em`>edd-vM%_k!cdcOaI)t7Q{ z+GEAFEEmpKgX!l(&ZUauXpaBue~1S<%z>MatC$dg`0S~@p*^#b5mij{mEh4 z&s^pk&nBNi$K6Mmy0zHMT&1E$4x% zKa9M}z0es!`xWHndH;r%`)T2(zHNNQYb}EVa6tR5(4Wui9okOEk~ex8`a19WkbJIl zKK`w6GvD~bnQ#0h++TgGvp>4$fdw{Uos z?a*Iw1^QaPy~y|S{+}rN`5bwtqsXt0%Uj8-?1zqyQzwL*a-ZppkLA8Vx)Xkd{a4iQ zA>6dDxoy$DCXkPz{edb-H;?>n^5BQS%Ld?wOTzt?d#N2r*L{CbBze=V@TVm8TMGB5 z)5Y?C@9VgLIxBcSrSbfR{3+*thTC@{KBLMZ-D<3F4+}T-@G;K2w0!51KbwmDYJJ#G z?zstE`>W7h(7E>r_~*>m*W_1!1K0Ld_Dk4T`2bwc6I+sxt_iN^HBXao`3hX?$yVW} zJ@#>)2lwoTzI(slo#eB4zSfj}_7iS&;vJpWX@9TtT*G1Ewtwbx)2dVbE2O*A8K-i| zdvRaBzt6jc8y$H-!g>-+e@gCw&bezSFO7c`d0U>h>bRLqKGwNj@GSW#j*lAWcgWrT z|4Z^seEvo2L$R;n&nD+Sz%JzO{jP5bH|;U?2KcY%`x|IqYcqHg=J%Lz6Nh}R^XPeQ zrM=ME!TF@dCxP5O&&?5T>ht8|s3#%RUqbG_Z}b?s`+l@i-$19YGw+HLZu~6kTvtsN zZt}a5^MPolJBvDdinX>x>+=?CPon}~-_kyW*E@8as<03K%&LWaX}{E(Ja`A<`2e*> zk`Gx0d!0}IPCo7;?6p1C-4Fj`BES=T}z} z@F%u1`iK6sUoKp2i0s!^%VnNZ8~PFavB(kVwC8htf3NQeH~rOGt{>{SGoL)z8FwxT zH*xsAr`IYEr+&ku;M1M+osPmy|1g{Pd+YcziF`4y!)pAG2)E<4b3L@&G3b;Wg80_+Q^6kTU zh@Phx`w?*tW}J1t)JV9opUeBBbUaF;{Y>`5#p!>Za8teyA4EJg{-05&57!g4|G!AS z%efz;#tGj`5 z%5`rYN9L0scIL^&eun)XJ}
OI0uy3H0qzc2N(X)Uhb2i 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 xWnoA +#include "ds.DynamicBitset.test.h" + + int runAllTests(int* argc, char** argv){ + int testResult = 0; + #if GTEST + ::testing::InitGoogleTest(argc, argv); + testResult = RUN_ALL_TESTS(); + #endif + return testResult; + } + +int main(int argc, char** argv){ + int testResult = 0; +#if GTEST + testResult = runAllTests(&argc, argv); +#endif // GTEST + return testResult; +} diff --git a/gtest-1.7.0/CHANGES b/gtest-1.7.0/CHANGES new file mode 100644 index 0000000..0552132 --- /dev/null +++ b/gtest-1.7.0/CHANGES @@ -0,0 +1,157 @@ +Changes for 1.7.0: + +* New feature: death tests are supported on OpenBSD and in iOS + simulator now. +* New feature: Google Test now implements a protocol to allow + a test runner to detect that a test program has exited + prematurely and report it as a failure (before it would be + falsely reported as a success if the exit code is 0). +* New feature: Test::RecordProperty() can now be used outside of the + lifespan of a test method, in which case it will be attributed to + the current test case or the test program in the XML report. +* New feature (potentially breaking): --gtest_list_tests now prints + the type parameters and value parameters for each test. +* Improvement: char pointers and char arrays are now escaped properly + in failure messages. +* Improvement: failure summary in XML reports now includes file and + line information. +* Improvement: the XML element now has a timestamp attribute. +* Improvement: When --gtest_filter is specified, XML report now doesn't + contain information about tests that are filtered out. +* Fixed the bug where long --gtest_filter flag values are truncated in + death tests. +* Potentially breaking change: RUN_ALL_TESTS() is now implemented as a + function instead of a macro in order to work better with Clang. +* Compatibility fixes with C++ 11 and various platforms. +* Bug/warning fixes. + +Changes for 1.6.0: + +* New feature: ADD_FAILURE_AT() for reporting a test failure at the + given source location -- useful for writing testing utilities. +* New feature: the universal value printer is moved from Google Mock + to Google Test. +* New feature: type parameters and value parameters are reported in + the XML report now. +* A gtest_disable_pthreads CMake option. +* Colored output works in GNU Screen sessions now. +* Parameters of value-parameterized tests are now printed in the + textual output. +* Failures from ad hoc test assertions run before RUN_ALL_TESTS() are + now correctly reported. +* Arguments of ASSERT_XY and EXPECT_XY no longer need to support << to + ostream. +* More complete handling of exceptions. +* GTEST_ASSERT_XY can be used instead of ASSERT_XY in case the latter + name is already used by another library. +* --gtest_catch_exceptions is now true by default, allowing a test + program to continue after an exception is thrown. +* Value-parameterized test fixtures can now derive from Test and + WithParamInterface separately, easing conversion of legacy tests. +* Death test messages are clearly marked to make them more + distinguishable from other messages. +* Compatibility fixes for Android, Google Native Client, MinGW, HP UX, + PowerPC, Lucid autotools, libCStd, Sun C++, Borland C++ Builder (Code Gear), + IBM XL C++ (Visual Age C++), and C++0x. +* Bug fixes and implementation clean-ups. +* Potentially incompatible changes: disables the harmful 'make install' + command in autotools. + +Changes for 1.5.0: + + * New feature: assertions can be safely called in multiple threads + where the pthreads library is available. + * New feature: predicates used inside EXPECT_TRUE() and friends + can now generate custom failure messages. + * New feature: Google Test can now be compiled as a DLL. + * New feature: fused source files are included. + * New feature: prints help when encountering unrecognized Google Test flags. + * Experimental feature: CMake build script (requires CMake 2.6.4+). + * Experimental feature: the Pump script for meta programming. + * double values streamed to an assertion are printed with enough precision + to differentiate any two different values. + * Google Test now works on Solaris and AIX. + * Build and test script improvements. + * Bug fixes and implementation clean-ups. + + Potentially breaking changes: + + * Stopped supporting VC++ 7.1 with exceptions disabled. + * Dropped support for 'make install'. + +Changes for 1.4.0: + + * New feature: the event listener API + * New feature: test shuffling + * New feature: the XML report format is closer to junitreport and can + be parsed by Hudson now. + * New feature: when a test runs under Visual Studio, its failures are + integrated in the IDE. + * New feature: /MD(d) versions of VC++ projects. + * New feature: elapsed time for the tests is printed by default. + * New feature: comes with a TR1 tuple implementation such that Boost + is no longer needed for Combine(). + * New feature: EXPECT_DEATH_IF_SUPPORTED macro and friends. + * New feature: the Xcode project can now produce static gtest + libraries in addition to a framework. + * Compatibility fixes for Solaris, Cygwin, minGW, Windows Mobile, + Symbian, gcc, and C++Builder. + * Bug fixes and implementation clean-ups. + +Changes for 1.3.0: + + * New feature: death tests on Windows, Cygwin, and Mac. + * New feature: ability to use Google Test assertions in other testing + frameworks. + * New feature: ability to run disabled test via + --gtest_also_run_disabled_tests. + * New feature: the --help flag for printing the usage. + * New feature: access to Google Test flag values in user code. + * New feature: a script that packs Google Test into one .h and one + .cc file for easy deployment. + * New feature: support for distributing test functions to multiple + machines (requires support from the test runner). + * Bug fixes and implementation clean-ups. + +Changes for 1.2.1: + + * Compatibility fixes for Linux IA-64 and IBM z/OS. + * Added support for using Boost and other TR1 implementations. + * Changes to the build scripts to support upcoming release of Google C++ + Mocking Framework. + * Added Makefile to the distribution package. + * Improved build instructions in README. + +Changes for 1.2.0: + + * New feature: value-parameterized tests. + * New feature: the ASSERT/EXPECT_(NON)FATAL_FAILURE(_ON_ALL_THREADS) + macros. + * Changed the XML report format to match JUnit/Ant's. + * Added tests to the Xcode project. + * Added scons/SConscript for building with SCons. + * Added src/gtest-all.cc for building Google Test from a single file. + * Fixed compatibility with Solaris and z/OS. + * Enabled running Python tests on systems with python 2.3 installed, + e.g. Mac OS X 10.4. + * Bug fixes. + +Changes for 1.1.0: + + * New feature: type-parameterized tests. + * New feature: exception assertions. + * New feature: printing elapsed time of tests. + * Improved the robustness of death tests. + * Added an Xcode project and samples. + * Adjusted the output format on Windows to be understandable by Visual Studio. + * Minor bug fixes. + +Changes for 1.0.1: + + * Added project files for Visual Studio 7.1. + * Fixed issues with compiling on Mac OS X. + * Fixed issues with compiling on Cygwin. + +Changes for 1.0.0: + + * Initial Open Source release of Google Test diff --git a/gtest-1.7.0/CMakeLists.txt b/gtest-1.7.0/CMakeLists.txt new file mode 100644 index 0000000..57470c8 --- /dev/null +++ b/gtest-1.7.0/CMakeLists.txt @@ -0,0 +1,252 @@ +######################################################################## +# CMake build script for Google Test. +# +# To run the tests for Google Test itself on Linux, use 'make test' or +# ctest. You can select which tests to run using 'ctest -R regex'. +# For more options, run 'ctest --help'. + +# BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to +# make it prominent in the GUI. +option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF) + +# When other libraries are using a shared version of runtime libraries, +# Google Test also has to use one. +option( + gtest_force_shared_crt + "Use shared (DLL) run-time lib even when Google Test is built as static lib." + OFF) + +option(gtest_build_tests "Build all of gtest's own tests." OFF) + +option(gtest_build_samples "Build gtest's sample programs." OFF) + +option(gtest_disable_pthreads "Disable uses of pthreads in gtest." OFF) + +# Defines pre_project_set_up_hermetic_build() and set_up_hermetic_build(). +include(cmake/hermetic_build.cmake OPTIONAL) + +if (COMMAND pre_project_set_up_hermetic_build) + pre_project_set_up_hermetic_build() +endif() + +######################################################################## +# +# Project-wide settings + +# Name of the project. +# +# CMake files in this project can refer to the root source directory +# as ${gtest_SOURCE_DIR} and to the root binary directory as +# ${gtest_BINARY_DIR}. +# Language "C" is required for find_package(Threads). +project(gtest CXX C) +cmake_minimum_required(VERSION 2.6.2) + +if (COMMAND set_up_hermetic_build) + set_up_hermetic_build() +endif() + +# Define helper functions and macros used by Google Test. +include(cmake/internal_utils.cmake) + +config_compiler_and_linker() # Defined in internal_utils.cmake. + +# Where Google Test's .h files can be found. +include_directories( + ${gtest_SOURCE_DIR}/include + ${gtest_SOURCE_DIR}) + +# Where Google Test's libraries can be found. +link_directories(${gtest_BINARY_DIR}/src) + +######################################################################## +# +# Defines the gtest & gtest_main libraries. User tests should link +# with one of them. + +# Google Test libraries. We build them using more strict warnings than what +# are used for other targets, to ensure that gtest can be compiled by a user +# aggressive about warnings. +cxx_library(gtest "${cxx_strict}" src/gtest-all.cc) +cxx_library(gtest_main "${cxx_strict}" src/gtest_main.cc) +target_link_libraries(gtest_main gtest) + +######################################################################## +# +# Samples on how to link user tests with gtest or gtest_main. +# +# They are not built by default. To build them, set the +# gtest_build_samples option to ON. You can do it by running ccmake +# or specifying the -Dgtest_build_samples=ON flag when running cmake. + +if (gtest_build_samples) + cxx_executable(sample1_unittest samples gtest_main samples/sample1.cc) + cxx_executable(sample2_unittest samples gtest_main samples/sample2.cc) + cxx_executable(sample3_unittest samples gtest_main) + cxx_executable(sample4_unittest samples gtest_main samples/sample4.cc) + cxx_executable(sample5_unittest samples gtest_main samples/sample1.cc) + cxx_executable(sample6_unittest samples gtest_main) + cxx_executable(sample7_unittest samples gtest_main) + cxx_executable(sample8_unittest samples gtest_main) + cxx_executable(sample9_unittest samples gtest) + cxx_executable(sample10_unittest samples gtest) +endif() + +######################################################################## +# +# Google Test's own tests. +# +# You can skip this section if you aren't interested in testing +# Google Test itself. +# +# The tests are not built by default. To build them, set the +# gtest_build_tests option to ON. You can do it by running ccmake +# or specifying the -Dgtest_build_tests=ON flag when running cmake. + +if (gtest_build_tests) + # This must be set in the root directory for the tests to be run by + # 'make test' or ctest. + enable_testing() + + ############################################################ + # C++ tests built with standard compiler flags. + + cxx_test(gtest-death-test_test gtest_main) + cxx_test(gtest_environment_test gtest) + cxx_test(gtest-filepath_test gtest_main) + cxx_test(gtest-linked_ptr_test gtest_main) + cxx_test(gtest-listener_test gtest_main) + cxx_test(gtest_main_unittest gtest_main) + cxx_test(gtest-message_test gtest_main) + cxx_test(gtest_no_test_unittest gtest) + cxx_test(gtest-options_test gtest_main) + cxx_test(gtest-param-test_test gtest + test/gtest-param-test2_test.cc) + cxx_test(gtest-port_test gtest_main) + cxx_test(gtest_pred_impl_unittest gtest_main) + cxx_test(gtest_premature_exit_test gtest + test/gtest_premature_exit_test.cc) + cxx_test(gtest-printers_test gtest_main) + cxx_test(gtest_prod_test gtest_main + test/production.cc) + cxx_test(gtest_repeat_test gtest) + cxx_test(gtest_sole_header_test gtest_main) + cxx_test(gtest_stress_test gtest) + cxx_test(gtest-test-part_test gtest_main) + cxx_test(gtest_throw_on_failure_ex_test gtest) + cxx_test(gtest-typed-test_test gtest_main + test/gtest-typed-test2_test.cc) + cxx_test(gtest_unittest gtest_main) + cxx_test(gtest-unittest-api_test gtest) + + ############################################################ + # C++ tests built with non-standard compiler flags. + + # MSVC 7.1 does not support STL with exceptions disabled. + if (NOT MSVC OR MSVC_VERSION GREATER 1310) + cxx_library(gtest_no_exception "${cxx_no_exception}" + src/gtest-all.cc) + cxx_library(gtest_main_no_exception "${cxx_no_exception}" + src/gtest-all.cc src/gtest_main.cc) + endif() + cxx_library(gtest_main_no_rtti "${cxx_no_rtti}" + src/gtest-all.cc src/gtest_main.cc) + + cxx_test_with_flags(gtest-death-test_ex_nocatch_test + "${cxx_exception} -DGTEST_ENABLE_CATCH_EXCEPTIONS_=0" + gtest test/gtest-death-test_ex_test.cc) + cxx_test_with_flags(gtest-death-test_ex_catch_test + "${cxx_exception} -DGTEST_ENABLE_CATCH_EXCEPTIONS_=1" + gtest test/gtest-death-test_ex_test.cc) + + cxx_test_with_flags(gtest_no_rtti_unittest "${cxx_no_rtti}" + gtest_main_no_rtti test/gtest_unittest.cc) + + cxx_shared_library(gtest_dll "${cxx_default}" + src/gtest-all.cc src/gtest_main.cc) + + cxx_executable_with_flags(gtest_dll_test_ "${cxx_default}" + gtest_dll test/gtest_all_test.cc) + set_target_properties(gtest_dll_test_ + PROPERTIES + COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1") + + if (NOT MSVC OR NOT MSVC_VERSION EQUAL 1600) + # The C++ Standard specifies tuple_element. + # Yet MSVC 10's declares tuple_element. + # That declaration conflicts with our own standard-conforming + # tuple implementation. Therefore using our own tuple with + # MSVC 10 doesn't compile. + cxx_library(gtest_main_use_own_tuple "${cxx_use_own_tuple}" + src/gtest-all.cc src/gtest_main.cc) + + cxx_test_with_flags(gtest-tuple_test "${cxx_use_own_tuple}" + gtest_main_use_own_tuple test/gtest-tuple_test.cc) + + cxx_test_with_flags(gtest_use_own_tuple_test "${cxx_use_own_tuple}" + gtest_main_use_own_tuple + test/gtest-param-test_test.cc test/gtest-param-test2_test.cc) + endif() + + ############################################################ + # Python tests. + + cxx_executable(gtest_break_on_failure_unittest_ test gtest) + py_test(gtest_break_on_failure_unittest) + + # MSVC 7.1 does not support STL with exceptions disabled. + if (NOT MSVC OR MSVC_VERSION GREATER 1310) + cxx_executable_with_flags( + gtest_catch_exceptions_no_ex_test_ + "${cxx_no_exception}" + gtest_main_no_exception + test/gtest_catch_exceptions_test_.cc) + endif() + + cxx_executable_with_flags( + gtest_catch_exceptions_ex_test_ + "${cxx_exception}" + gtest_main + test/gtest_catch_exceptions_test_.cc) + py_test(gtest_catch_exceptions_test) + + cxx_executable(gtest_color_test_ test gtest) + py_test(gtest_color_test) + + cxx_executable(gtest_env_var_test_ test gtest) + py_test(gtest_env_var_test) + + cxx_executable(gtest_filter_unittest_ test gtest) + py_test(gtest_filter_unittest) + + cxx_executable(gtest_help_test_ test gtest_main) + py_test(gtest_help_test) + + cxx_executable(gtest_list_tests_unittest_ test gtest) + py_test(gtest_list_tests_unittest) + + cxx_executable(gtest_output_test_ test gtest) + py_test(gtest_output_test) + + cxx_executable(gtest_shuffle_test_ test gtest) + py_test(gtest_shuffle_test) + + # MSVC 7.1 does not support STL with exceptions disabled. + if (NOT MSVC OR MSVC_VERSION GREATER 1310) + cxx_executable(gtest_throw_on_failure_test_ test gtest_no_exception) + set_target_properties(gtest_throw_on_failure_test_ + PROPERTIES + COMPILE_FLAGS "${cxx_no_exception}") + py_test(gtest_throw_on_failure_test) + endif() + + cxx_executable(gtest_uninitialized_test_ test gtest) + py_test(gtest_uninitialized_test) + + cxx_executable(gtest_xml_outfile1_test_ test gtest_main) + cxx_executable(gtest_xml_outfile2_test_ test gtest_main) + py_test(gtest_xml_outfiles_test) + + cxx_executable(gtest_xml_output_unittest_ test gtest) + py_test(gtest_xml_output_unittest) +endif() diff --git a/gtest-1.7.0/CONTRIBUTORS b/gtest-1.7.0/CONTRIBUTORS new file mode 100644 index 0000000..feae2fc --- /dev/null +++ b/gtest-1.7.0/CONTRIBUTORS @@ -0,0 +1,37 @@ +# This file contains a list of people who've made non-trivial +# contribution to the Google C++ Testing Framework project. People +# who commit code to the project are encouraged to add their names +# here. Please keep the list sorted by first names. + +Ajay Joshi +Balázs Dán +Bharat Mediratta +Chandler Carruth +Chris Prince +Chris Taylor +Dan Egnor +Eric Roman +Hady Zalek +Jeffrey Yasskin +Jói Sigurðsson +Keir Mierle +Keith Ray +Kenton Varda +Manuel Klimek +Markus Heule +Mika Raento +Miklós Fazekas +Pasi Valminen +Patrick Hanna +Patrick Riley +Peter Kaminski +Preston Jackson +Rainer Klaffenboeck +Russ Cox +Russ Rufer +Sean Mcafee +Sigurður Ásgeirsson +Tracy Bialik +Vadim Berman +Vlad Losev +Zhanyong Wan diff --git a/gtest-1.7.0/LICENSE b/gtest-1.7.0/LICENSE new file mode 100644 index 0000000..1941a11 --- /dev/null +++ b/gtest-1.7.0/LICENSE @@ -0,0 +1,28 @@ +Copyright 2008, Google Inc. +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 Google Inc. 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 +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/gtest-1.7.0/Makefile b/gtest-1.7.0/Makefile new file mode 100644 index 0000000..3f8826a --- /dev/null +++ b/gtest-1.7.0/Makefile @@ -0,0 +1,1360 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. + + + +# Automake file + + + + +pkgdatadir = $(datadir)/gtest +pkgincludedir = $(includedir)/gtest +pkglibdir = $(libdir)/gtest +pkglibexecdir = $(libexecdir)/gtest +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 = x86_64-unknown-linux-gnu +host_triplet = x86_64-unknown-linux-gnu +TESTS = samples/sample1_unittest$(EXEEXT) \ + samples/sample10_unittest$(EXEEXT) \ + test/gtest_all_test$(EXEEXT) $(am__EXEEXT_1) +check_PROGRAMS = samples/sample1_unittest$(EXEEXT) \ + samples/sample10_unittest$(EXEEXT) \ + test/gtest_all_test$(EXEEXT) $(am__EXEEXT_1) +am__append_1 = test/fused_gtest_test +am__append_2 = test/fused_gtest_test +subdir = . +DIST_COMMON = README $(am__configure_deps) $(pkginclude_HEADERS) \ + $(pkginclude_internal_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(top_srcdir)/build-aux/config.h.in \ + $(top_srcdir)/configure $(top_srcdir)/scripts/gtest-config.in \ + build-aux/config.guess build-aux/config.sub build-aux/depcomp \ + build-aux/install-sh build-aux/ltmain.sh build-aux/missing +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(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)/m4/acx_pthread.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)/build-aux/config.h +CONFIG_CLEAN_FILES = scripts/gtest-config +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)$(m4datadir)" \ + "$(DESTDIR)$(pkgincludedir)" \ + "$(DESTDIR)$(pkginclude_internaldir)" +LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) +lib_libgtest_la_LIBADD = +am__dirstamp = $(am__leading_dot)dirstamp +am_lib_libgtest_la_OBJECTS = src/gtest-all.lo +lib_libgtest_la_OBJECTS = $(am_lib_libgtest_la_OBJECTS) +lib_libgtest_main_la_DEPENDENCIES = lib/libgtest.la +am_lib_libgtest_main_la_OBJECTS = src/gtest_main.lo +lib_libgtest_main_la_OBJECTS = $(am_lib_libgtest_main_la_OBJECTS) +samples_libsamples_la_LIBADD = +am_samples_libsamples_la_OBJECTS = samples/sample1.lo \ + samples/sample2.lo samples/sample4.lo +samples_libsamples_la_OBJECTS = $(am_samples_libsamples_la_OBJECTS) +am__EXEEXT_1 = test/fused_gtest_test$(EXEEXT) +am_samples_sample10_unittest_OBJECTS = \ + samples/sample10_unittest.$(OBJEXT) +samples_sample10_unittest_OBJECTS = \ + $(am_samples_sample10_unittest_OBJECTS) +samples_sample10_unittest_DEPENDENCIES = lib/libgtest.la +am_samples_sample1_unittest_OBJECTS = \ + samples/sample1_unittest.$(OBJEXT) +samples_sample1_unittest_OBJECTS = \ + $(am_samples_sample1_unittest_OBJECTS) +samples_sample1_unittest_DEPENDENCIES = lib/libgtest_main.la \ + lib/libgtest.la samples/libsamples.la +am__test_fused_gtest_test_SOURCES_DIST = fused-src/gtest/gtest-all.cc \ + fused-src/gtest/gtest.h fused-src/gtest/gtest_main.cc \ + samples/sample1.cc samples/sample1_unittest.cc +am__objects_1 = \ + fused-src/gtest/test_fused_gtest_test-gtest-all.$(OBJEXT) \ + fused-src/gtest/test_fused_gtest_test-gtest_main.$(OBJEXT) +am_test_fused_gtest_test_OBJECTS = $(am__objects_1) \ + samples/test_fused_gtest_test-sample1.$(OBJEXT) \ + samples/test_fused_gtest_test-sample1_unittest.$(OBJEXT) +test_fused_gtest_test_OBJECTS = $(am_test_fused_gtest_test_OBJECTS) +test_fused_gtest_test_LDADD = $(LDADD) +am_test_gtest_all_test_OBJECTS = test/gtest_all_test.$(OBJEXT) +test_gtest_all_test_OBJECTS = $(am_test_gtest_all_test_OBJECTS) +test_gtest_all_test_DEPENDENCIES = lib/libgtest_main.la \ + lib/libgtest.la +DEFAULT_INCLUDES = -I. -I$(top_builddir)/build-aux +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(lib_libgtest_la_SOURCES) $(lib_libgtest_main_la_SOURCES) \ + $(samples_libsamples_la_SOURCES) \ + $(samples_sample10_unittest_SOURCES) \ + $(samples_sample1_unittest_SOURCES) \ + $(test_fused_gtest_test_SOURCES) \ + $(test_gtest_all_test_SOURCES) +DIST_SOURCES = $(lib_libgtest_la_SOURCES) \ + $(lib_libgtest_main_la_SOURCES) \ + $(samples_libsamples_la_SOURCES) \ + $(samples_sample10_unittest_SOURCES) \ + $(samples_sample1_unittest_SOURCES) \ + $(am__test_fused_gtest_test_SOURCES_DIST) \ + $(test_gtest_all_test_SOURCES) +DATA = $(m4data_DATA) +HEADERS = $(pkginclude_HEADERS) $(pkginclude_internal_HEADERS) +ETAGS = etags +CTAGS = ctags +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +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 +DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 $(distdir).zip +GZIP_ENV = --best +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 = ${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run aclocal-1.11 +AMTAR = $${TAR-tar} +AR = ar +AUTOCONF = ${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run autoconf +AUTOHEADER = ${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run autoheader +AUTOMAKE = ${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run automake-1.11 +AWK = mawk +CC = /usr/bin/gcc +CCDEPMODE = depmode=gcc3 +CFLAGS = -g3 -gdwarf-2 +CPP = /usr/bin/gcc -E +CPPFLAGS = +CXX = /usr/bin/g++ +CXXCPP = /usr/bin/g++ -E +CXXDEPMODE = depmode=gcc3 +CXXFLAGS = -g3 -gdwarf-2 +CYGPATH_W = echo +DEFS = -DHAVE_CONFIG_H +DEPDIR = .deps +DLLTOOL = false +DSYMUTIL = +DUMPBIN = +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = /bin/grep -E +EXEEXT = +FGREP = /bin/grep -F +GREP = /bin/grep +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = $(install_sh) -c -s +LD = /usr/bin/ld -m elf_x86_64 +LDFLAGS = +LIBOBJS = +LIBS = +LIBTOOL = $(SHELL) $(top_builddir)/libtool +LIPO = +LN_S = ln -s +LTLIBOBJS = +MAKEINFO = ${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run makeinfo +MANIFEST_TOOL = : +MKDIR_P = /bin/mkdir -p +NM = /usr/bin/nm -B +NMEDIT = +OBJDUMP = objdump +OBJEXT = o +OTOOL = +OTOOL64 = +PACKAGE = gtest +PACKAGE_BUGREPORT = googletestframework@googlegroups.com +PACKAGE_NAME = Google C++ Testing Framework +PACKAGE_STRING = Google C++ Testing Framework 1.7.0 +PACKAGE_TARNAME = gtest +PACKAGE_URL = +PACKAGE_VERSION = 1.7.0 +PATH_SEPARATOR = : +PTHREAD_CC = /usr/bin/gcc +PTHREAD_CFLAGS = -pthread +PTHREAD_LIBS = +PYTHON = /usr/bin/python +RANLIB = ranlib +SED = /bin/sed +SET_MAKE = +SHELL = /bin/bash +STRIP = strip +VERSION = 1.7.0 +abs_builddir = /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0 +abs_srcdir = /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0 +abs_top_builddir = /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0 +abs_top_srcdir = /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0 +ac_ct_AR = ar +ac_ct_CC = /usr/bin/gcc +ac_ct_CXX = +ac_ct_DUMPBIN = +acx_pthread_config = +am__include = include +am__leading_dot = . +am__quote = +am__tar = $${TAR-tar} chof - "$$tardir" +am__untar = $${TAR-tar} xf - +bindir = ${exec_prefix}/bin +build = x86_64-unknown-linux-gnu +build_alias = +build_cpu = x86_64 +build_os = linux-gnu +build_vendor = unknown +builddir = . +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} +dvidir = ${docdir} +exec_prefix = ${prefix} +host = x86_64-unknown-linux-gnu +host_alias = +host_cpu = x86_64 +host_os = linux-gnu +host_vendor = unknown +htmldir = ${docdir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = ${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/install-sh +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +mandir = ${datarootdir}/man +mkdir_p = /bin/mkdir -p +oldincludedir = /usr/include +pdfdir = ${docdir} +prefix = /usr/local +program_transform_name = s,x,x, +psdir = ${docdir} +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +sysconfdir = ${prefix}/etc +target_alias = +top_build_prefix = +top_builddir = . +top_srcdir = . +ACLOCAL_AMFLAGS = -I m4 + +# Nonstandard package files for distribution + +# Sample files that we don't compile. + +# C++ test files that we don't compile directly. + +# Python tests that we don't run. + +# CMake script + +# MSVC project files + +# xcode project files + +# xcode sample files + +# C++Builder project files +EXTRA_DIST = CHANGES CONTRIBUTORS LICENSE \ + include/gtest/gtest-param-test.h.pump \ + include/gtest/internal/gtest-param-util-generated.h.pump \ + include/gtest/internal/gtest-tuple.h.pump \ + include/gtest/internal/gtest-type-util.h.pump make/Makefile \ + scripts/fuse_gtest_files.py scripts/gen_gtest_pred_impl.py \ + scripts/pump.py scripts/test/Makefile $(GTEST_SRC) \ + samples/prime_tables.h samples/sample2_unittest.cc \ + samples/sample3_unittest.cc samples/sample4_unittest.cc \ + samples/sample5_unittest.cc samples/sample6_unittest.cc \ + samples/sample7_unittest.cc samples/sample8_unittest.cc \ + samples/sample9_unittest.cc test/gtest-death-test_ex_test.cc \ + test/gtest-death-test_test.cc test/gtest-filepath_test.cc \ + test/gtest-linked_ptr_test.cc test/gtest-listener_test.cc \ + test/gtest-message_test.cc test/gtest-options_test.cc \ + test/gtest-param-test2_test.cc test/gtest-param-test2_test.cc \ + test/gtest-param-test_test.cc test/gtest-param-test_test.cc \ + test/gtest-param-test_test.h test/gtest-port_test.cc \ + test/gtest_premature_exit_test.cc test/gtest-printers_test.cc \ + test/gtest-test-part_test.cc test/gtest-tuple_test.cc \ + test/gtest-typed-test2_test.cc test/gtest-typed-test_test.cc \ + test/gtest-typed-test_test.h test/gtest-unittest-api_test.cc \ + test/gtest_break_on_failure_unittest_.cc \ + test/gtest_catch_exceptions_test_.cc test/gtest_color_test_.cc \ + test/gtest_env_var_test_.cc test/gtest_environment_test.cc \ + test/gtest_filter_unittest_.cc test/gtest_help_test_.cc \ + test/gtest_list_tests_unittest_.cc test/gtest_main_unittest.cc \ + test/gtest_no_test_unittest.cc test/gtest_output_test_.cc \ + test/gtest_pred_impl_unittest.cc test/gtest_prod_test.cc \ + test/gtest_repeat_test.cc test/gtest_shuffle_test_.cc \ + test/gtest_sole_header_test.cc test/gtest_stress_test.cc \ + test/gtest_throw_on_failure_ex_test.cc \ + test/gtest_throw_on_failure_test_.cc \ + test/gtest_uninitialized_test_.cc test/gtest_unittest.cc \ + test/gtest_unittest.cc test/gtest_xml_outfile1_test_.cc \ + test/gtest_xml_outfile2_test_.cc \ + test/gtest_xml_output_unittest_.cc test/production.cc \ + test/production.h test/gtest_break_on_failure_unittest.py \ + test/gtest_catch_exceptions_test.py test/gtest_color_test.py \ + test/gtest_env_var_test.py test/gtest_filter_unittest.py \ + test/gtest_help_test.py test/gtest_list_tests_unittest.py \ + test/gtest_output_test.py \ + test/gtest_output_test_golden_lin.txt \ + test/gtest_shuffle_test.py test/gtest_test_utils.py \ + test/gtest_throw_on_failure_test.py \ + test/gtest_uninitialized_test.py \ + test/gtest_xml_outfiles_test.py \ + test/gtest_xml_output_unittest.py test/gtest_xml_test_utils.py \ + CMakeLists.txt cmake/internal_utils.cmake msvc/gtest-md.sln \ + msvc/gtest-md.vcproj msvc/gtest.sln msvc/gtest.vcproj \ + msvc/gtest_main-md.vcproj msvc/gtest_main.vcproj \ + msvc/gtest_prod_test-md.vcproj msvc/gtest_prod_test.vcproj \ + msvc/gtest_unittest-md.vcproj msvc/gtest_unittest.vcproj \ + xcode/Config/DebugProject.xcconfig \ + xcode/Config/FrameworkTarget.xcconfig \ + xcode/Config/General.xcconfig \ + xcode/Config/ReleaseProject.xcconfig \ + xcode/Config/StaticLibraryTarget.xcconfig \ + xcode/Config/TestTarget.xcconfig xcode/Resources/Info.plist \ + xcode/Scripts/runtests.sh xcode/Scripts/versiongenerate.py \ + xcode/gtest.xcodeproj/project.pbxproj \ + xcode/Samples/FrameworkSample/Info.plist \ + xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj \ + xcode/Samples/FrameworkSample/runtests.sh \ + xcode/Samples/FrameworkSample/widget.cc \ + xcode/Samples/FrameworkSample/widget.h \ + xcode/Samples/FrameworkSample/widget_test.cc \ + codegear/gtest.cbproj codegear/gtest.groupproj \ + codegear/gtest_all.cc codegear/gtest_link.cc \ + codegear/gtest_main.cbproj codegear/gtest_unittest.cbproj \ + $(m4data_DATA) + +# gtest source files that we don't compile directly. They are +# #included by gtest-all.cc. +GTEST_SRC = \ + src/gtest-death-test.cc \ + src/gtest-filepath.cc \ + src/gtest-internal-inl.h \ + src/gtest-port.cc \ + src/gtest-printers.cc \ + src/gtest-test-part.cc \ + src/gtest-typed-test.cc \ + src/gtest.cc + + +# Distribute and install M4 macro +m4datadir = $(datadir)/aclocal +m4data_DATA = m4/gtest.m4 + +# We define the global AM_CPPFLAGS as everything we compile includes from these +# directories. +AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/include +#AM_CXXFLAGS = -DGTEST_HAS_PTHREAD=0 + +# Modifies compiler and linker flags for pthreads compatibility. +AM_CXXFLAGS = -pthread -DGTEST_HAS_PTHREAD=1 +AM_LIBS = + +# Build rules for libraries. +lib_LTLIBRARIES = lib/libgtest.la lib/libgtest_main.la +lib_libgtest_la_SOURCES = src/gtest-all.cc +pkginclude_HEADERS = \ + include/gtest/gtest-death-test.h \ + include/gtest/gtest-message.h \ + include/gtest/gtest-param-test.h \ + include/gtest/gtest-printers.h \ + include/gtest/gtest-spi.h \ + include/gtest/gtest-test-part.h \ + include/gtest/gtest-typed-test.h \ + include/gtest/gtest.h \ + include/gtest/gtest_pred_impl.h \ + include/gtest/gtest_prod.h + +pkginclude_internaldir = $(pkgincludedir)/internal +pkginclude_internal_HEADERS = \ + include/gtest/internal/gtest-death-test-internal.h \ + include/gtest/internal/gtest-filepath.h \ + include/gtest/internal/gtest-internal.h \ + include/gtest/internal/gtest-linked_ptr.h \ + include/gtest/internal/gtest-param-util-generated.h \ + include/gtest/internal/gtest-param-util.h \ + include/gtest/internal/gtest-port.h \ + include/gtest/internal/gtest-string.h \ + include/gtest/internal/gtest-tuple.h \ + include/gtest/internal/gtest-type-util.h + +lib_libgtest_main_la_SOURCES = src/gtest_main.cc +lib_libgtest_main_la_LIBADD = lib/libgtest.la + +# Bulid rules for samples and tests. Automake's naming for some of +# these variables isn't terribly obvious, so this is a brief +# reference: +# +# TESTS -- Programs run automatically by "make check" +# check_PROGRAMS -- Programs built by "make check" but not necessarily run +noinst_LTLIBRARIES = samples/libsamples.la +samples_libsamples_la_SOURCES = \ + samples/sample1.cc \ + samples/sample1.h \ + samples/sample2.cc \ + samples/sample2.h \ + samples/sample3-inl.h \ + samples/sample4.cc \ + samples/sample4.h + +TESTS_ENVIRONMENT = GTEST_SOURCE_DIR="$(srcdir)/test" \ + GTEST_BUILD_DIR="$(top_builddir)/test" + +samples_sample1_unittest_SOURCES = samples/sample1_unittest.cc +samples_sample1_unittest_LDADD = lib/libgtest_main.la \ + lib/libgtest.la \ + samples/libsamples.la + +samples_sample10_unittest_SOURCES = samples/sample10_unittest.cc +samples_sample10_unittest_LDADD = lib/libgtest.la +test_gtest_all_test_SOURCES = test/gtest_all_test.cc +test_gtest_all_test_LDADD = lib/libgtest_main.la \ + lib/libgtest.la + + +# Tests that fused gtest files compile and work. +FUSED_GTEST_SRC = \ + fused-src/gtest/gtest-all.cc \ + fused-src/gtest/gtest.h \ + fused-src/gtest/gtest_main.cc + +test_fused_gtest_test_SOURCES = $(FUSED_GTEST_SRC) \ + samples/sample1.cc samples/sample1_unittest.cc + +test_fused_gtest_test_CPPFLAGS = -I"$(srcdir)/fused-src" + +# Death tests may produce core dumps in the build directory. In case +# this happens, clean them to keep distcleancheck happy. +CLEANFILES = core +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .lo .o .obj +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) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign 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): + +build-aux/config.h: build-aux/stamp-h1 + @if test ! -f $@; then rm -f build-aux/stamp-h1; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) build-aux/stamp-h1; else :; fi + +build-aux/stamp-h1: $(top_srcdir)/build-aux/config.h.in $(top_builddir)/config.status + @rm -f build-aux/stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status build-aux/config.h +$(top_srcdir)/build-aux/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f build-aux/stamp-h1 + touch $@ + +distclean-hdr: + -rm -f build-aux/config.h build-aux/stamp-h1 +scripts/gtest-config: $(top_builddir)/config.status $(top_srcdir)/scripts/gtest-config.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" + @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 " $(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)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +src/$(am__dirstamp): + @$(MKDIR_P) src + @: > src/$(am__dirstamp) +src/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) src/$(DEPDIR) + @: > src/$(DEPDIR)/$(am__dirstamp) +src/gtest-all.lo: src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +lib/$(am__dirstamp): + @$(MKDIR_P) lib + @: > lib/$(am__dirstamp) +lib/libgtest.la: $(lib_libgtest_la_OBJECTS) $(lib_libgtest_la_DEPENDENCIES) $(EXTRA_lib_libgtest_la_DEPENDENCIES) lib/$(am__dirstamp) + $(CXXLINK) -rpath $(libdir) $(lib_libgtest_la_OBJECTS) $(lib_libgtest_la_LIBADD) $(LIBS) +src/gtest_main.lo: src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +lib/libgtest_main.la: $(lib_libgtest_main_la_OBJECTS) $(lib_libgtest_main_la_DEPENDENCIES) $(EXTRA_lib_libgtest_main_la_DEPENDENCIES) lib/$(am__dirstamp) + $(CXXLINK) -rpath $(libdir) $(lib_libgtest_main_la_OBJECTS) $(lib_libgtest_main_la_LIBADD) $(LIBS) +samples/$(am__dirstamp): + @$(MKDIR_P) samples + @: > samples/$(am__dirstamp) +samples/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) samples/$(DEPDIR) + @: > samples/$(DEPDIR)/$(am__dirstamp) +samples/sample1.lo: samples/$(am__dirstamp) \ + samples/$(DEPDIR)/$(am__dirstamp) +samples/sample2.lo: samples/$(am__dirstamp) \ + samples/$(DEPDIR)/$(am__dirstamp) +samples/sample4.lo: samples/$(am__dirstamp) \ + samples/$(DEPDIR)/$(am__dirstamp) +samples/libsamples.la: $(samples_libsamples_la_OBJECTS) $(samples_libsamples_la_DEPENDENCIES) $(EXTRA_samples_libsamples_la_DEPENDENCIES) samples/$(am__dirstamp) + $(CXXLINK) $(samples_libsamples_la_OBJECTS) $(samples_libsamples_la_LIBADD) $(LIBS) + +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 +samples/sample10_unittest.$(OBJEXT): samples/$(am__dirstamp) \ + samples/$(DEPDIR)/$(am__dirstamp) +samples/sample10_unittest$(EXEEXT): $(samples_sample10_unittest_OBJECTS) $(samples_sample10_unittest_DEPENDENCIES) $(EXTRA_samples_sample10_unittest_DEPENDENCIES) samples/$(am__dirstamp) + @rm -f samples/sample10_unittest$(EXEEXT) + $(CXXLINK) $(samples_sample10_unittest_OBJECTS) $(samples_sample10_unittest_LDADD) $(LIBS) +samples/sample1_unittest.$(OBJEXT): samples/$(am__dirstamp) \ + samples/$(DEPDIR)/$(am__dirstamp) +samples/sample1_unittest$(EXEEXT): $(samples_sample1_unittest_OBJECTS) $(samples_sample1_unittest_DEPENDENCIES) $(EXTRA_samples_sample1_unittest_DEPENDENCIES) samples/$(am__dirstamp) + @rm -f samples/sample1_unittest$(EXEEXT) + $(CXXLINK) $(samples_sample1_unittest_OBJECTS) $(samples_sample1_unittest_LDADD) $(LIBS) +fused-src/gtest/$(am__dirstamp): + @$(MKDIR_P) fused-src/gtest + @: > fused-src/gtest/$(am__dirstamp) +fused-src/gtest/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) fused-src/gtest/$(DEPDIR) + @: > fused-src/gtest/$(DEPDIR)/$(am__dirstamp) +fused-src/gtest/test_fused_gtest_test-gtest-all.$(OBJEXT): \ + fused-src/gtest/$(am__dirstamp) \ + fused-src/gtest/$(DEPDIR)/$(am__dirstamp) +fused-src/gtest/test_fused_gtest_test-gtest_main.$(OBJEXT): \ + fused-src/gtest/$(am__dirstamp) \ + fused-src/gtest/$(DEPDIR)/$(am__dirstamp) +samples/test_fused_gtest_test-sample1.$(OBJEXT): \ + samples/$(am__dirstamp) samples/$(DEPDIR)/$(am__dirstamp) +samples/test_fused_gtest_test-sample1_unittest.$(OBJEXT): \ + samples/$(am__dirstamp) samples/$(DEPDIR)/$(am__dirstamp) +test/$(am__dirstamp): + @$(MKDIR_P) test + @: > test/$(am__dirstamp) +test/fused_gtest_test$(EXEEXT): $(test_fused_gtest_test_OBJECTS) $(test_fused_gtest_test_DEPENDENCIES) $(EXTRA_test_fused_gtest_test_DEPENDENCIES) test/$(am__dirstamp) + @rm -f test/fused_gtest_test$(EXEEXT) + $(CXXLINK) $(test_fused_gtest_test_OBJECTS) $(test_fused_gtest_test_LDADD) $(LIBS) +test/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) test/$(DEPDIR) + @: > test/$(DEPDIR)/$(am__dirstamp) +test/gtest_all_test.$(OBJEXT): test/$(am__dirstamp) \ + test/$(DEPDIR)/$(am__dirstamp) +test/gtest_all_test$(EXEEXT): $(test_gtest_all_test_OBJECTS) $(test_gtest_all_test_DEPENDENCIES) $(EXTRA_test_gtest_all_test_DEPENDENCIES) test/$(am__dirstamp) + @rm -f test/gtest_all_test$(EXEEXT) + $(CXXLINK) $(test_gtest_all_test_OBJECTS) $(test_gtest_all_test_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f fused-src/gtest/test_fused_gtest_test-gtest-all.$(OBJEXT) + -rm -f fused-src/gtest/test_fused_gtest_test-gtest_main.$(OBJEXT) + -rm -f samples/sample1.$(OBJEXT) + -rm -f samples/sample1.lo + -rm -f samples/sample10_unittest.$(OBJEXT) + -rm -f samples/sample1_unittest.$(OBJEXT) + -rm -f samples/sample2.$(OBJEXT) + -rm -f samples/sample2.lo + -rm -f samples/sample4.$(OBJEXT) + -rm -f samples/sample4.lo + -rm -f samples/test_fused_gtest_test-sample1.$(OBJEXT) + -rm -f samples/test_fused_gtest_test-sample1_unittest.$(OBJEXT) + -rm -f src/gtest-all.$(OBJEXT) + -rm -f src/gtest-all.lo + -rm -f src/gtest_main.$(OBJEXT) + -rm -f src/gtest_main.lo + -rm -f test/gtest_all_test.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +include fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest-all.Po +include fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest_main.Po +include samples/$(DEPDIR)/sample1.Plo +include samples/$(DEPDIR)/sample10_unittest.Po +include samples/$(DEPDIR)/sample1_unittest.Po +include samples/$(DEPDIR)/sample2.Plo +include samples/$(DEPDIR)/sample4.Plo +include samples/$(DEPDIR)/test_fused_gtest_test-sample1.Po +include samples/$(DEPDIR)/test_fused_gtest_test-sample1_unittest.Po +include src/$(DEPDIR)/gtest-all.Plo +include src/$(DEPDIR)/gtest_main.Plo +include test/$(DEPDIR)/gtest_all_test.Po + +.cc.o: + depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ + $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(CXXCOMPILE) -c -o $@ $< + +.cc.obj: + depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ + $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.lo: + depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ + $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ + $(am__mv) $$depbase.Tpo $$depbase.Plo +# source='$<' object='$@' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(LTCXXCOMPILE) -c -o $@ $< + +fused-src/gtest/test_fused_gtest_test-gtest-all.o: fused-src/gtest/gtest-all.cc + $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fused-src/gtest/test_fused_gtest_test-gtest-all.o -MD -MP -MF fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest-all.Tpo -c -o fused-src/gtest/test_fused_gtest_test-gtest-all.o `test -f 'fused-src/gtest/gtest-all.cc' || echo '$(srcdir)/'`fused-src/gtest/gtest-all.cc + $(am__mv) fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest-all.Tpo fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest-all.Po +# source='fused-src/gtest/gtest-all.cc' object='fused-src/gtest/test_fused_gtest_test-gtest-all.o' libtool=no \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fused-src/gtest/test_fused_gtest_test-gtest-all.o `test -f 'fused-src/gtest/gtest-all.cc' || echo '$(srcdir)/'`fused-src/gtest/gtest-all.cc + +fused-src/gtest/test_fused_gtest_test-gtest-all.obj: fused-src/gtest/gtest-all.cc + $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fused-src/gtest/test_fused_gtest_test-gtest-all.obj -MD -MP -MF fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest-all.Tpo -c -o fused-src/gtest/test_fused_gtest_test-gtest-all.obj `if test -f 'fused-src/gtest/gtest-all.cc'; then $(CYGPATH_W) 'fused-src/gtest/gtest-all.cc'; else $(CYGPATH_W) '$(srcdir)/fused-src/gtest/gtest-all.cc'; fi` + $(am__mv) fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest-all.Tpo fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest-all.Po +# source='fused-src/gtest/gtest-all.cc' object='fused-src/gtest/test_fused_gtest_test-gtest-all.obj' libtool=no \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fused-src/gtest/test_fused_gtest_test-gtest-all.obj `if test -f 'fused-src/gtest/gtest-all.cc'; then $(CYGPATH_W) 'fused-src/gtest/gtest-all.cc'; else $(CYGPATH_W) '$(srcdir)/fused-src/gtest/gtest-all.cc'; fi` + +fused-src/gtest/test_fused_gtest_test-gtest_main.o: fused-src/gtest/gtest_main.cc + $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fused-src/gtest/test_fused_gtest_test-gtest_main.o -MD -MP -MF fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest_main.Tpo -c -o fused-src/gtest/test_fused_gtest_test-gtest_main.o `test -f 'fused-src/gtest/gtest_main.cc' || echo '$(srcdir)/'`fused-src/gtest/gtest_main.cc + $(am__mv) fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest_main.Tpo fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest_main.Po +# source='fused-src/gtest/gtest_main.cc' object='fused-src/gtest/test_fused_gtest_test-gtest_main.o' libtool=no \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fused-src/gtest/test_fused_gtest_test-gtest_main.o `test -f 'fused-src/gtest/gtest_main.cc' || echo '$(srcdir)/'`fused-src/gtest/gtest_main.cc + +fused-src/gtest/test_fused_gtest_test-gtest_main.obj: fused-src/gtest/gtest_main.cc + $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fused-src/gtest/test_fused_gtest_test-gtest_main.obj -MD -MP -MF fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest_main.Tpo -c -o fused-src/gtest/test_fused_gtest_test-gtest_main.obj `if test -f 'fused-src/gtest/gtest_main.cc'; then $(CYGPATH_W) 'fused-src/gtest/gtest_main.cc'; else $(CYGPATH_W) '$(srcdir)/fused-src/gtest/gtest_main.cc'; fi` + $(am__mv) fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest_main.Tpo fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest_main.Po +# source='fused-src/gtest/gtest_main.cc' object='fused-src/gtest/test_fused_gtest_test-gtest_main.obj' libtool=no \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fused-src/gtest/test_fused_gtest_test-gtest_main.obj `if test -f 'fused-src/gtest/gtest_main.cc'; then $(CYGPATH_W) 'fused-src/gtest/gtest_main.cc'; else $(CYGPATH_W) '$(srcdir)/fused-src/gtest/gtest_main.cc'; fi` + +samples/test_fused_gtest_test-sample1.o: samples/sample1.cc + $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT samples/test_fused_gtest_test-sample1.o -MD -MP -MF samples/$(DEPDIR)/test_fused_gtest_test-sample1.Tpo -c -o samples/test_fused_gtest_test-sample1.o `test -f 'samples/sample1.cc' || echo '$(srcdir)/'`samples/sample1.cc + $(am__mv) samples/$(DEPDIR)/test_fused_gtest_test-sample1.Tpo samples/$(DEPDIR)/test_fused_gtest_test-sample1.Po +# source='samples/sample1.cc' object='samples/test_fused_gtest_test-sample1.o' libtool=no \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o samples/test_fused_gtest_test-sample1.o `test -f 'samples/sample1.cc' || echo '$(srcdir)/'`samples/sample1.cc + +samples/test_fused_gtest_test-sample1.obj: samples/sample1.cc + $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT samples/test_fused_gtest_test-sample1.obj -MD -MP -MF samples/$(DEPDIR)/test_fused_gtest_test-sample1.Tpo -c -o samples/test_fused_gtest_test-sample1.obj `if test -f 'samples/sample1.cc'; then $(CYGPATH_W) 'samples/sample1.cc'; else $(CYGPATH_W) '$(srcdir)/samples/sample1.cc'; fi` + $(am__mv) samples/$(DEPDIR)/test_fused_gtest_test-sample1.Tpo samples/$(DEPDIR)/test_fused_gtest_test-sample1.Po +# source='samples/sample1.cc' object='samples/test_fused_gtest_test-sample1.obj' libtool=no \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o samples/test_fused_gtest_test-sample1.obj `if test -f 'samples/sample1.cc'; then $(CYGPATH_W) 'samples/sample1.cc'; else $(CYGPATH_W) '$(srcdir)/samples/sample1.cc'; fi` + +samples/test_fused_gtest_test-sample1_unittest.o: samples/sample1_unittest.cc + $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT samples/test_fused_gtest_test-sample1_unittest.o -MD -MP -MF samples/$(DEPDIR)/test_fused_gtest_test-sample1_unittest.Tpo -c -o samples/test_fused_gtest_test-sample1_unittest.o `test -f 'samples/sample1_unittest.cc' || echo '$(srcdir)/'`samples/sample1_unittest.cc + $(am__mv) samples/$(DEPDIR)/test_fused_gtest_test-sample1_unittest.Tpo samples/$(DEPDIR)/test_fused_gtest_test-sample1_unittest.Po +# source='samples/sample1_unittest.cc' object='samples/test_fused_gtest_test-sample1_unittest.o' libtool=no \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o samples/test_fused_gtest_test-sample1_unittest.o `test -f 'samples/sample1_unittest.cc' || echo '$(srcdir)/'`samples/sample1_unittest.cc + +samples/test_fused_gtest_test-sample1_unittest.obj: samples/sample1_unittest.cc + $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT samples/test_fused_gtest_test-sample1_unittest.obj -MD -MP -MF samples/$(DEPDIR)/test_fused_gtest_test-sample1_unittest.Tpo -c -o samples/test_fused_gtest_test-sample1_unittest.obj `if test -f 'samples/sample1_unittest.cc'; then $(CYGPATH_W) 'samples/sample1_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/samples/sample1_unittest.cc'; fi` + $(am__mv) samples/$(DEPDIR)/test_fused_gtest_test-sample1_unittest.Tpo samples/$(DEPDIR)/test_fused_gtest_test-sample1_unittest.Po +# source='samples/sample1_unittest.cc' object='samples/test_fused_gtest_test-sample1_unittest.obj' libtool=no \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o samples/test_fused_gtest_test-sample1_unittest.obj `if test -f 'samples/sample1_unittest.cc'; then $(CYGPATH_W) 'samples/sample1_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/samples/sample1_unittest.cc'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + -rm -rf lib/.libs lib/_libs + -rm -rf samples/.libs samples/_libs + -rm -rf src/.libs src/_libs + -rm -rf test/.libs test/_libs + +distclean-libtool: + -rm -f libtool config.lt +install-m4dataDATA: $(m4data_DATA) + @$(NORMAL_INSTALL) + test -z "$(m4datadir)" || $(MKDIR_P) "$(DESTDIR)$(m4datadir)" + @list='$(m4data_DATA)'; test -n "$(m4datadir)" || list=; \ + 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_DATA) $$files '$(DESTDIR)$(m4datadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(m4datadir)" || exit $$?; \ + done + +uninstall-m4dataDATA: + @$(NORMAL_UNINSTALL) + @list='$(m4data_DATA)'; test -n "$(m4datadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(m4datadir)'; $(am__uninstall_files_from_dir) +install-pkgincludeHEADERS: $(pkginclude_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" + @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ + 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)$(pkgincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \ + done + +uninstall-pkgincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) +install-pkginclude_internalHEADERS: $(pkginclude_internal_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(pkginclude_internaldir)" || $(MKDIR_P) "$(DESTDIR)$(pkginclude_internaldir)" + @list='$(pkginclude_internal_HEADERS)'; test -n "$(pkginclude_internaldir)" || list=; \ + 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)$(pkginclude_internaldir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkginclude_internaldir)" || exit $$?; \ + done + +uninstall-pkginclude_internalHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkginclude_internal_HEADERS)'; test -n "$(pkginclude_internaldir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkginclude_internaldir)'; $(am__uninstall_files_from_dir) + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + 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 +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + 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" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +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 + -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__remove_distdir) +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__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.lzma*) \ + lzma -dc $(distdir).tar.lzma | $(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 a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(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 --srcdir=.. --prefix="$$dc_install_base" \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(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__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 + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkginclude_internaldir)"; 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: + -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) + -rm -f fused-src/gtest/$(DEPDIR)/$(am__dirstamp) + -rm -f fused-src/gtest/$(am__dirstamp) + -rm -f lib/$(am__dirstamp) + -rm -f samples/$(DEPDIR)/$(am__dirstamp) + -rm -f samples/$(am__dirstamp) + -rm -f src/$(DEPDIR)/$(am__dirstamp) + -rm -f src/$(am__dirstamp) + -rm -f test/$(DEPDIR)/$(am__dirstamp) + -rm -f test/$(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." +#maintainer-clean-local: +clean: clean-am + +clean-am: clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \ + clean-libtool clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf fused-src/gtest/$(DEPDIR) samples/$(DEPDIR) src/$(DEPDIR) test/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local install-m4dataDATA \ + install-pkgincludeHEADERS install-pkginclude_internalHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-exec-local 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 $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -rf fused-src/gtest/$(DEPDIR) samples/$(DEPDIR) src/$(DEPDIR) test/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +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 uninstall-m4dataDATA \ + uninstall-pkgincludeHEADERS \ + uninstall-pkginclude_internalHEADERS + +.MAKE: check-am install-am install-strip + +.PHONY: CTAGS GTAGS all all-am am--refresh check check-TESTS check-am \ + clean clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \ + clean-libtool clean-noinstLTLIBRARIES ctags dist dist-all \ + dist-bzip2 dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ \ + dist-xz dist-zip distcheck distclean distclean-compile \ + 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-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-exec-local \ + install-html install-html-am install-info install-info-am \ + install-libLTLIBRARIES install-m4dataDATA install-man \ + install-pdf install-pdf-am install-pkgincludeHEADERS \ + install-pkginclude_internalHEADERS install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic \ + maintainer-clean-local mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-libLTLIBRARIES \ + uninstall-m4dataDATA uninstall-pkgincludeHEADERS \ + uninstall-pkginclude_internalHEADERS + + +# Build rules for putting fused Google Test files into the distribution +# package. The user can also create those files by manually running +# scripts/fuse_gtest_files.py. +$(test_fused_gtest_test_SOURCES): fused-gtest + +fused-gtest: $(pkginclude_HEADERS) $(pkginclude_internal_HEADERS) \ + $(GTEST_SRC) src/gtest-all.cc src/gtest_main.cc \ + scripts/fuse_gtest_files.py + mkdir -p "$(srcdir)/fused-src" + chmod -R u+w "$(srcdir)/fused-src" + rm -f "$(srcdir)/fused-src/gtest/gtest-all.cc" + rm -f "$(srcdir)/fused-src/gtest/gtest.h" + "$(srcdir)/scripts/fuse_gtest_files.py" "$(srcdir)/fused-src" + cp -f "$(srcdir)/src/gtest_main.cc" "$(srcdir)/fused-src/gtest/" + +maintainer-clean-local: + rm -rf "$(srcdir)/fused-src" + +# Disables 'make install' as installing a compiled version of Google +# Test can lead to undefined behavior due to violation of the +# One-Definition Rule. + +install-exec-local: + echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Test into your build system." + false + +install-data-local: + echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Test into your build system." + false + +# 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/gtest-1.7.0/Makefile.am b/gtest-1.7.0/Makefile.am new file mode 100644 index 0000000..9c96b42 --- /dev/null +++ b/gtest-1.7.0/Makefile.am @@ -0,0 +1,306 @@ +# Automake file + +ACLOCAL_AMFLAGS = -I m4 + +# Nonstandard package files for distribution +EXTRA_DIST = \ + CHANGES \ + CONTRIBUTORS \ + LICENSE \ + include/gtest/gtest-param-test.h.pump \ + include/gtest/internal/gtest-param-util-generated.h.pump \ + include/gtest/internal/gtest-tuple.h.pump \ + include/gtest/internal/gtest-type-util.h.pump \ + make/Makefile \ + scripts/fuse_gtest_files.py \ + scripts/gen_gtest_pred_impl.py \ + scripts/pump.py \ + scripts/test/Makefile + +# gtest source files that we don't compile directly. They are +# #included by gtest-all.cc. +GTEST_SRC = \ + src/gtest-death-test.cc \ + src/gtest-filepath.cc \ + src/gtest-internal-inl.h \ + src/gtest-port.cc \ + src/gtest-printers.cc \ + src/gtest-test-part.cc \ + src/gtest-typed-test.cc \ + src/gtest.cc + +EXTRA_DIST += $(GTEST_SRC) + +# Sample files that we don't compile. +EXTRA_DIST += \ + samples/prime_tables.h \ + samples/sample2_unittest.cc \ + samples/sample3_unittest.cc \ + samples/sample4_unittest.cc \ + samples/sample5_unittest.cc \ + samples/sample6_unittest.cc \ + samples/sample7_unittest.cc \ + samples/sample8_unittest.cc \ + samples/sample9_unittest.cc + +# C++ test files that we don't compile directly. +EXTRA_DIST += \ + test/gtest-death-test_ex_test.cc \ + test/gtest-death-test_test.cc \ + test/gtest-filepath_test.cc \ + test/gtest-linked_ptr_test.cc \ + test/gtest-listener_test.cc \ + test/gtest-message_test.cc \ + test/gtest-options_test.cc \ + test/gtest-param-test2_test.cc \ + test/gtest-param-test2_test.cc \ + test/gtest-param-test_test.cc \ + test/gtest-param-test_test.cc \ + test/gtest-param-test_test.h \ + test/gtest-port_test.cc \ + test/gtest_premature_exit_test.cc \ + test/gtest-printers_test.cc \ + test/gtest-test-part_test.cc \ + test/gtest-tuple_test.cc \ + test/gtest-typed-test2_test.cc \ + test/gtest-typed-test_test.cc \ + test/gtest-typed-test_test.h \ + test/gtest-unittest-api_test.cc \ + test/gtest_break_on_failure_unittest_.cc \ + test/gtest_catch_exceptions_test_.cc \ + test/gtest_color_test_.cc \ + test/gtest_env_var_test_.cc \ + test/gtest_environment_test.cc \ + test/gtest_filter_unittest_.cc \ + test/gtest_help_test_.cc \ + test/gtest_list_tests_unittest_.cc \ + test/gtest_main_unittest.cc \ + test/gtest_no_test_unittest.cc \ + test/gtest_output_test_.cc \ + test/gtest_pred_impl_unittest.cc \ + test/gtest_prod_test.cc \ + test/gtest_repeat_test.cc \ + test/gtest_shuffle_test_.cc \ + test/gtest_sole_header_test.cc \ + test/gtest_stress_test.cc \ + test/gtest_throw_on_failure_ex_test.cc \ + test/gtest_throw_on_failure_test_.cc \ + test/gtest_uninitialized_test_.cc \ + test/gtest_unittest.cc \ + test/gtest_unittest.cc \ + test/gtest_xml_outfile1_test_.cc \ + test/gtest_xml_outfile2_test_.cc \ + test/gtest_xml_output_unittest_.cc \ + test/production.cc \ + test/production.h + +# Python tests that we don't run. +EXTRA_DIST += \ + test/gtest_break_on_failure_unittest.py \ + test/gtest_catch_exceptions_test.py \ + test/gtest_color_test.py \ + test/gtest_env_var_test.py \ + test/gtest_filter_unittest.py \ + test/gtest_help_test.py \ + test/gtest_list_tests_unittest.py \ + test/gtest_output_test.py \ + test/gtest_output_test_golden_lin.txt \ + test/gtest_shuffle_test.py \ + test/gtest_test_utils.py \ + test/gtest_throw_on_failure_test.py \ + test/gtest_uninitialized_test.py \ + test/gtest_xml_outfiles_test.py \ + test/gtest_xml_output_unittest.py \ + test/gtest_xml_test_utils.py + +# CMake script +EXTRA_DIST += \ + CMakeLists.txt \ + cmake/internal_utils.cmake + +# MSVC project files +EXTRA_DIST += \ + msvc/gtest-md.sln \ + msvc/gtest-md.vcproj \ + msvc/gtest.sln \ + msvc/gtest.vcproj \ + msvc/gtest_main-md.vcproj \ + msvc/gtest_main.vcproj \ + msvc/gtest_prod_test-md.vcproj \ + msvc/gtest_prod_test.vcproj \ + msvc/gtest_unittest-md.vcproj \ + msvc/gtest_unittest.vcproj + +# xcode project files +EXTRA_DIST += \ + xcode/Config/DebugProject.xcconfig \ + xcode/Config/FrameworkTarget.xcconfig \ + xcode/Config/General.xcconfig \ + xcode/Config/ReleaseProject.xcconfig \ + xcode/Config/StaticLibraryTarget.xcconfig \ + xcode/Config/TestTarget.xcconfig \ + xcode/Resources/Info.plist \ + xcode/Scripts/runtests.sh \ + xcode/Scripts/versiongenerate.py \ + xcode/gtest.xcodeproj/project.pbxproj + +# xcode sample files +EXTRA_DIST += \ + xcode/Samples/FrameworkSample/Info.plist \ + xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj \ + xcode/Samples/FrameworkSample/runtests.sh \ + xcode/Samples/FrameworkSample/widget.cc \ + xcode/Samples/FrameworkSample/widget.h \ + xcode/Samples/FrameworkSample/widget_test.cc + +# C++Builder project files +EXTRA_DIST += \ + codegear/gtest.cbproj \ + codegear/gtest.groupproj \ + codegear/gtest_all.cc \ + codegear/gtest_link.cc \ + codegear/gtest_main.cbproj \ + codegear/gtest_unittest.cbproj + +# Distribute and install M4 macro +m4datadir = $(datadir)/aclocal +m4data_DATA = m4/gtest.m4 +EXTRA_DIST += $(m4data_DATA) + +# We define the global AM_CPPFLAGS as everything we compile includes from these +# directories. +AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/include + +# Modifies compiler and linker flags for pthreads compatibility. +if HAVE_PTHREADS + AM_CXXFLAGS = @PTHREAD_CFLAGS@ -DGTEST_HAS_PTHREAD=1 + AM_LIBS = @PTHREAD_LIBS@ +else + AM_CXXFLAGS = -DGTEST_HAS_PTHREAD=0 +endif + +# Build rules for libraries. +lib_LTLIBRARIES = lib/libgtest.la lib/libgtest_main.la + +lib_libgtest_la_SOURCES = src/gtest-all.cc + +pkginclude_HEADERS = \ + include/gtest/gtest-death-test.h \ + include/gtest/gtest-message.h \ + include/gtest/gtest-param-test.h \ + include/gtest/gtest-printers.h \ + include/gtest/gtest-spi.h \ + include/gtest/gtest-test-part.h \ + include/gtest/gtest-typed-test.h \ + include/gtest/gtest.h \ + include/gtest/gtest_pred_impl.h \ + include/gtest/gtest_prod.h + +pkginclude_internaldir = $(pkgincludedir)/internal +pkginclude_internal_HEADERS = \ + include/gtest/internal/gtest-death-test-internal.h \ + include/gtest/internal/gtest-filepath.h \ + include/gtest/internal/gtest-internal.h \ + include/gtest/internal/gtest-linked_ptr.h \ + include/gtest/internal/gtest-param-util-generated.h \ + include/gtest/internal/gtest-param-util.h \ + include/gtest/internal/gtest-port.h \ + include/gtest/internal/gtest-string.h \ + include/gtest/internal/gtest-tuple.h \ + include/gtest/internal/gtest-type-util.h + +lib_libgtest_main_la_SOURCES = src/gtest_main.cc +lib_libgtest_main_la_LIBADD = lib/libgtest.la + +# Bulid rules for samples and tests. Automake's naming for some of +# these variables isn't terribly obvious, so this is a brief +# reference: +# +# TESTS -- Programs run automatically by "make check" +# check_PROGRAMS -- Programs built by "make check" but not necessarily run + +noinst_LTLIBRARIES = samples/libsamples.la + +samples_libsamples_la_SOURCES = \ + samples/sample1.cc \ + samples/sample1.h \ + samples/sample2.cc \ + samples/sample2.h \ + samples/sample3-inl.h \ + samples/sample4.cc \ + samples/sample4.h + +TESTS= +TESTS_ENVIRONMENT = GTEST_SOURCE_DIR="$(srcdir)/test" \ + GTEST_BUILD_DIR="$(top_builddir)/test" +check_PROGRAMS= + +# A simple sample on using gtest. +TESTS += samples/sample1_unittest +check_PROGRAMS += samples/sample1_unittest +samples_sample1_unittest_SOURCES = samples/sample1_unittest.cc +samples_sample1_unittest_LDADD = lib/libgtest_main.la \ + lib/libgtest.la \ + samples/libsamples.la + +# Another sample. It also verifies that libgtest works. +TESTS += samples/sample10_unittest +check_PROGRAMS += samples/sample10_unittest +samples_sample10_unittest_SOURCES = samples/sample10_unittest.cc +samples_sample10_unittest_LDADD = lib/libgtest.la + +# This tests most constructs of gtest and verifies that libgtest_main +# and libgtest work. +TESTS += test/gtest_all_test +check_PROGRAMS += test/gtest_all_test +test_gtest_all_test_SOURCES = test/gtest_all_test.cc +test_gtest_all_test_LDADD = lib/libgtest_main.la \ + lib/libgtest.la + +# Tests that fused gtest files compile and work. +FUSED_GTEST_SRC = \ + fused-src/gtest/gtest-all.cc \ + fused-src/gtest/gtest.h \ + fused-src/gtest/gtest_main.cc + +if HAVE_PYTHON +TESTS += test/fused_gtest_test +check_PROGRAMS += test/fused_gtest_test +test_fused_gtest_test_SOURCES = $(FUSED_GTEST_SRC) \ + samples/sample1.cc samples/sample1_unittest.cc +test_fused_gtest_test_CPPFLAGS = -I"$(srcdir)/fused-src" + +# Build rules for putting fused Google Test files into the distribution +# package. The user can also create those files by manually running +# scripts/fuse_gtest_files.py. +$(test_fused_gtest_test_SOURCES): fused-gtest + +fused-gtest: $(pkginclude_HEADERS) $(pkginclude_internal_HEADERS) \ + $(GTEST_SRC) src/gtest-all.cc src/gtest_main.cc \ + scripts/fuse_gtest_files.py + mkdir -p "$(srcdir)/fused-src" + chmod -R u+w "$(srcdir)/fused-src" + rm -f "$(srcdir)/fused-src/gtest/gtest-all.cc" + rm -f "$(srcdir)/fused-src/gtest/gtest.h" + "$(srcdir)/scripts/fuse_gtest_files.py" "$(srcdir)/fused-src" + cp -f "$(srcdir)/src/gtest_main.cc" "$(srcdir)/fused-src/gtest/" + +maintainer-clean-local: + rm -rf "$(srcdir)/fused-src" +endif + +# Death tests may produce core dumps in the build directory. In case +# this happens, clean them to keep distcleancheck happy. +CLEANFILES = core + +# Disables 'make install' as installing a compiled version of Google +# Test can lead to undefined behavior due to violation of the +# One-Definition Rule. + +install-exec-local: + echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Test into your build system." + false + +install-data-local: + echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Test into your build system." + false diff --git a/gtest-1.7.0/Makefile.in b/gtest-1.7.0/Makefile.in new file mode 100644 index 0000000..874de74 --- /dev/null +++ b/gtest-1.7.0/Makefile.in @@ -0,0 +1,1360 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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@ + +# Automake file + + + +VPATH = @srcdir@ +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@ +TESTS = samples/sample1_unittest$(EXEEXT) \ + samples/sample10_unittest$(EXEEXT) \ + test/gtest_all_test$(EXEEXT) $(am__EXEEXT_1) +check_PROGRAMS = samples/sample1_unittest$(EXEEXT) \ + samples/sample10_unittest$(EXEEXT) \ + test/gtest_all_test$(EXEEXT) $(am__EXEEXT_1) +@HAVE_PYTHON_TRUE@am__append_1 = test/fused_gtest_test +@HAVE_PYTHON_TRUE@am__append_2 = test/fused_gtest_test +subdir = . +DIST_COMMON = README $(am__configure_deps) $(pkginclude_HEADERS) \ + $(pkginclude_internal_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(top_srcdir)/build-aux/config.h.in \ + $(top_srcdir)/configure $(top_srcdir)/scripts/gtest-config.in \ + build-aux/config.guess build-aux/config.sub build-aux/depcomp \ + build-aux/install-sh build-aux/ltmain.sh build-aux/missing +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(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)/m4/acx_pthread.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)/build-aux/config.h +CONFIG_CLEAN_FILES = scripts/gtest-config +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)$(m4datadir)" \ + "$(DESTDIR)$(pkgincludedir)" \ + "$(DESTDIR)$(pkginclude_internaldir)" +LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) +lib_libgtest_la_LIBADD = +am__dirstamp = $(am__leading_dot)dirstamp +am_lib_libgtest_la_OBJECTS = src/gtest-all.lo +lib_libgtest_la_OBJECTS = $(am_lib_libgtest_la_OBJECTS) +lib_libgtest_main_la_DEPENDENCIES = lib/libgtest.la +am_lib_libgtest_main_la_OBJECTS = src/gtest_main.lo +lib_libgtest_main_la_OBJECTS = $(am_lib_libgtest_main_la_OBJECTS) +samples_libsamples_la_LIBADD = +am_samples_libsamples_la_OBJECTS = samples/sample1.lo \ + samples/sample2.lo samples/sample4.lo +samples_libsamples_la_OBJECTS = $(am_samples_libsamples_la_OBJECTS) +@HAVE_PYTHON_TRUE@am__EXEEXT_1 = test/fused_gtest_test$(EXEEXT) +am_samples_sample10_unittest_OBJECTS = \ + samples/sample10_unittest.$(OBJEXT) +samples_sample10_unittest_OBJECTS = \ + $(am_samples_sample10_unittest_OBJECTS) +samples_sample10_unittest_DEPENDENCIES = lib/libgtest.la +am_samples_sample1_unittest_OBJECTS = \ + samples/sample1_unittest.$(OBJEXT) +samples_sample1_unittest_OBJECTS = \ + $(am_samples_sample1_unittest_OBJECTS) +samples_sample1_unittest_DEPENDENCIES = lib/libgtest_main.la \ + lib/libgtest.la samples/libsamples.la +am__test_fused_gtest_test_SOURCES_DIST = fused-src/gtest/gtest-all.cc \ + fused-src/gtest/gtest.h fused-src/gtest/gtest_main.cc \ + samples/sample1.cc samples/sample1_unittest.cc +am__objects_1 = \ + fused-src/gtest/test_fused_gtest_test-gtest-all.$(OBJEXT) \ + fused-src/gtest/test_fused_gtest_test-gtest_main.$(OBJEXT) +@HAVE_PYTHON_TRUE@am_test_fused_gtest_test_OBJECTS = $(am__objects_1) \ +@HAVE_PYTHON_TRUE@ samples/test_fused_gtest_test-sample1.$(OBJEXT) \ +@HAVE_PYTHON_TRUE@ samples/test_fused_gtest_test-sample1_unittest.$(OBJEXT) +test_fused_gtest_test_OBJECTS = $(am_test_fused_gtest_test_OBJECTS) +test_fused_gtest_test_LDADD = $(LDADD) +am_test_gtest_all_test_OBJECTS = test/gtest_all_test.$(OBJEXT) +test_gtest_all_test_OBJECTS = $(am_test_gtest_all_test_OBJECTS) +test_gtest_all_test_DEPENDENCIES = lib/libgtest_main.la \ + lib/libgtest.la +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/build-aux +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(lib_libgtest_la_SOURCES) $(lib_libgtest_main_la_SOURCES) \ + $(samples_libsamples_la_SOURCES) \ + $(samples_sample10_unittest_SOURCES) \ + $(samples_sample1_unittest_SOURCES) \ + $(test_fused_gtest_test_SOURCES) \ + $(test_gtest_all_test_SOURCES) +DIST_SOURCES = $(lib_libgtest_la_SOURCES) \ + $(lib_libgtest_main_la_SOURCES) \ + $(samples_libsamples_la_SOURCES) \ + $(samples_sample10_unittest_SOURCES) \ + $(samples_sample1_unittest_SOURCES) \ + $(am__test_fused_gtest_test_SOURCES_DIST) \ + $(test_gtest_all_test_SOURCES) +DATA = $(m4data_DATA) +HEADERS = $(pkginclude_HEADERS) $(pkginclude_internal_HEADERS) +ETAGS = etags +CTAGS = ctags +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +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 +DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 $(distdir).zip +GZIP_ENV = --best +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@ +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@ +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@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PYTHON = @PYTHON@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +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_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +acx_pthread_config = @acx_pthread_config@ +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@ +ACLOCAL_AMFLAGS = -I m4 + +# Nonstandard package files for distribution + +# Sample files that we don't compile. + +# C++ test files that we don't compile directly. + +# Python tests that we don't run. + +# CMake script + +# MSVC project files + +# xcode project files + +# xcode sample files + +# C++Builder project files +EXTRA_DIST = CHANGES CONTRIBUTORS LICENSE \ + include/gtest/gtest-param-test.h.pump \ + include/gtest/internal/gtest-param-util-generated.h.pump \ + include/gtest/internal/gtest-tuple.h.pump \ + include/gtest/internal/gtest-type-util.h.pump make/Makefile \ + scripts/fuse_gtest_files.py scripts/gen_gtest_pred_impl.py \ + scripts/pump.py scripts/test/Makefile $(GTEST_SRC) \ + samples/prime_tables.h samples/sample2_unittest.cc \ + samples/sample3_unittest.cc samples/sample4_unittest.cc \ + samples/sample5_unittest.cc samples/sample6_unittest.cc \ + samples/sample7_unittest.cc samples/sample8_unittest.cc \ + samples/sample9_unittest.cc test/gtest-death-test_ex_test.cc \ + test/gtest-death-test_test.cc test/gtest-filepath_test.cc \ + test/gtest-linked_ptr_test.cc test/gtest-listener_test.cc \ + test/gtest-message_test.cc test/gtest-options_test.cc \ + test/gtest-param-test2_test.cc test/gtest-param-test2_test.cc \ + test/gtest-param-test_test.cc test/gtest-param-test_test.cc \ + test/gtest-param-test_test.h test/gtest-port_test.cc \ + test/gtest_premature_exit_test.cc test/gtest-printers_test.cc \ + test/gtest-test-part_test.cc test/gtest-tuple_test.cc \ + test/gtest-typed-test2_test.cc test/gtest-typed-test_test.cc \ + test/gtest-typed-test_test.h test/gtest-unittest-api_test.cc \ + test/gtest_break_on_failure_unittest_.cc \ + test/gtest_catch_exceptions_test_.cc test/gtest_color_test_.cc \ + test/gtest_env_var_test_.cc test/gtest_environment_test.cc \ + test/gtest_filter_unittest_.cc test/gtest_help_test_.cc \ + test/gtest_list_tests_unittest_.cc test/gtest_main_unittest.cc \ + test/gtest_no_test_unittest.cc test/gtest_output_test_.cc \ + test/gtest_pred_impl_unittest.cc test/gtest_prod_test.cc \ + test/gtest_repeat_test.cc test/gtest_shuffle_test_.cc \ + test/gtest_sole_header_test.cc test/gtest_stress_test.cc \ + test/gtest_throw_on_failure_ex_test.cc \ + test/gtest_throw_on_failure_test_.cc \ + test/gtest_uninitialized_test_.cc test/gtest_unittest.cc \ + test/gtest_unittest.cc test/gtest_xml_outfile1_test_.cc \ + test/gtest_xml_outfile2_test_.cc \ + test/gtest_xml_output_unittest_.cc test/production.cc \ + test/production.h test/gtest_break_on_failure_unittest.py \ + test/gtest_catch_exceptions_test.py test/gtest_color_test.py \ + test/gtest_env_var_test.py test/gtest_filter_unittest.py \ + test/gtest_help_test.py test/gtest_list_tests_unittest.py \ + test/gtest_output_test.py \ + test/gtest_output_test_golden_lin.txt \ + test/gtest_shuffle_test.py test/gtest_test_utils.py \ + test/gtest_throw_on_failure_test.py \ + test/gtest_uninitialized_test.py \ + test/gtest_xml_outfiles_test.py \ + test/gtest_xml_output_unittest.py test/gtest_xml_test_utils.py \ + CMakeLists.txt cmake/internal_utils.cmake msvc/gtest-md.sln \ + msvc/gtest-md.vcproj msvc/gtest.sln msvc/gtest.vcproj \ + msvc/gtest_main-md.vcproj msvc/gtest_main.vcproj \ + msvc/gtest_prod_test-md.vcproj msvc/gtest_prod_test.vcproj \ + msvc/gtest_unittest-md.vcproj msvc/gtest_unittest.vcproj \ + xcode/Config/DebugProject.xcconfig \ + xcode/Config/FrameworkTarget.xcconfig \ + xcode/Config/General.xcconfig \ + xcode/Config/ReleaseProject.xcconfig \ + xcode/Config/StaticLibraryTarget.xcconfig \ + xcode/Config/TestTarget.xcconfig xcode/Resources/Info.plist \ + xcode/Scripts/runtests.sh xcode/Scripts/versiongenerate.py \ + xcode/gtest.xcodeproj/project.pbxproj \ + xcode/Samples/FrameworkSample/Info.plist \ + xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj \ + xcode/Samples/FrameworkSample/runtests.sh \ + xcode/Samples/FrameworkSample/widget.cc \ + xcode/Samples/FrameworkSample/widget.h \ + xcode/Samples/FrameworkSample/widget_test.cc \ + codegear/gtest.cbproj codegear/gtest.groupproj \ + codegear/gtest_all.cc codegear/gtest_link.cc \ + codegear/gtest_main.cbproj codegear/gtest_unittest.cbproj \ + $(m4data_DATA) + +# gtest source files that we don't compile directly. They are +# #included by gtest-all.cc. +GTEST_SRC = \ + src/gtest-death-test.cc \ + src/gtest-filepath.cc \ + src/gtest-internal-inl.h \ + src/gtest-port.cc \ + src/gtest-printers.cc \ + src/gtest-test-part.cc \ + src/gtest-typed-test.cc \ + src/gtest.cc + + +# Distribute and install M4 macro +m4datadir = $(datadir)/aclocal +m4data_DATA = m4/gtest.m4 + +# We define the global AM_CPPFLAGS as everything we compile includes from these +# directories. +AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/include +@HAVE_PTHREADS_FALSE@AM_CXXFLAGS = -DGTEST_HAS_PTHREAD=0 + +# Modifies compiler and linker flags for pthreads compatibility. +@HAVE_PTHREADS_TRUE@AM_CXXFLAGS = @PTHREAD_CFLAGS@ -DGTEST_HAS_PTHREAD=1 +@HAVE_PTHREADS_TRUE@AM_LIBS = @PTHREAD_LIBS@ + +# Build rules for libraries. +lib_LTLIBRARIES = lib/libgtest.la lib/libgtest_main.la +lib_libgtest_la_SOURCES = src/gtest-all.cc +pkginclude_HEADERS = \ + include/gtest/gtest-death-test.h \ + include/gtest/gtest-message.h \ + include/gtest/gtest-param-test.h \ + include/gtest/gtest-printers.h \ + include/gtest/gtest-spi.h \ + include/gtest/gtest-test-part.h \ + include/gtest/gtest-typed-test.h \ + include/gtest/gtest.h \ + include/gtest/gtest_pred_impl.h \ + include/gtest/gtest_prod.h + +pkginclude_internaldir = $(pkgincludedir)/internal +pkginclude_internal_HEADERS = \ + include/gtest/internal/gtest-death-test-internal.h \ + include/gtest/internal/gtest-filepath.h \ + include/gtest/internal/gtest-internal.h \ + include/gtest/internal/gtest-linked_ptr.h \ + include/gtest/internal/gtest-param-util-generated.h \ + include/gtest/internal/gtest-param-util.h \ + include/gtest/internal/gtest-port.h \ + include/gtest/internal/gtest-string.h \ + include/gtest/internal/gtest-tuple.h \ + include/gtest/internal/gtest-type-util.h + +lib_libgtest_main_la_SOURCES = src/gtest_main.cc +lib_libgtest_main_la_LIBADD = lib/libgtest.la + +# Bulid rules for samples and tests. Automake's naming for some of +# these variables isn't terribly obvious, so this is a brief +# reference: +# +# TESTS -- Programs run automatically by "make check" +# check_PROGRAMS -- Programs built by "make check" but not necessarily run +noinst_LTLIBRARIES = samples/libsamples.la +samples_libsamples_la_SOURCES = \ + samples/sample1.cc \ + samples/sample1.h \ + samples/sample2.cc \ + samples/sample2.h \ + samples/sample3-inl.h \ + samples/sample4.cc \ + samples/sample4.h + +TESTS_ENVIRONMENT = GTEST_SOURCE_DIR="$(srcdir)/test" \ + GTEST_BUILD_DIR="$(top_builddir)/test" + +samples_sample1_unittest_SOURCES = samples/sample1_unittest.cc +samples_sample1_unittest_LDADD = lib/libgtest_main.la \ + lib/libgtest.la \ + samples/libsamples.la + +samples_sample10_unittest_SOURCES = samples/sample10_unittest.cc +samples_sample10_unittest_LDADD = lib/libgtest.la +test_gtest_all_test_SOURCES = test/gtest_all_test.cc +test_gtest_all_test_LDADD = lib/libgtest_main.la \ + lib/libgtest.la + + +# Tests that fused gtest files compile and work. +FUSED_GTEST_SRC = \ + fused-src/gtest/gtest-all.cc \ + fused-src/gtest/gtest.h \ + fused-src/gtest/gtest_main.cc + +@HAVE_PYTHON_TRUE@test_fused_gtest_test_SOURCES = $(FUSED_GTEST_SRC) \ +@HAVE_PYTHON_TRUE@ samples/sample1.cc samples/sample1_unittest.cc + +@HAVE_PYTHON_TRUE@test_fused_gtest_test_CPPFLAGS = -I"$(srcdir)/fused-src" + +# Death tests may produce core dumps in the build directory. In case +# this happens, clean them to keep distcleancheck happy. +CLEANFILES = core +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .lo .o .obj +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) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign 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): + +build-aux/config.h: build-aux/stamp-h1 + @if test ! -f $@; then rm -f build-aux/stamp-h1; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) build-aux/stamp-h1; else :; fi + +build-aux/stamp-h1: $(top_srcdir)/build-aux/config.h.in $(top_builddir)/config.status + @rm -f build-aux/stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status build-aux/config.h +$(top_srcdir)/build-aux/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f build-aux/stamp-h1 + touch $@ + +distclean-hdr: + -rm -f build-aux/config.h build-aux/stamp-h1 +scripts/gtest-config: $(top_builddir)/config.status $(top_srcdir)/scripts/gtest-config.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" + @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 " $(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)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +src/$(am__dirstamp): + @$(MKDIR_P) src + @: > src/$(am__dirstamp) +src/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) src/$(DEPDIR) + @: > src/$(DEPDIR)/$(am__dirstamp) +src/gtest-all.lo: src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +lib/$(am__dirstamp): + @$(MKDIR_P) lib + @: > lib/$(am__dirstamp) +lib/libgtest.la: $(lib_libgtest_la_OBJECTS) $(lib_libgtest_la_DEPENDENCIES) $(EXTRA_lib_libgtest_la_DEPENDENCIES) lib/$(am__dirstamp) + $(CXXLINK) -rpath $(libdir) $(lib_libgtest_la_OBJECTS) $(lib_libgtest_la_LIBADD) $(LIBS) +src/gtest_main.lo: src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +lib/libgtest_main.la: $(lib_libgtest_main_la_OBJECTS) $(lib_libgtest_main_la_DEPENDENCIES) $(EXTRA_lib_libgtest_main_la_DEPENDENCIES) lib/$(am__dirstamp) + $(CXXLINK) -rpath $(libdir) $(lib_libgtest_main_la_OBJECTS) $(lib_libgtest_main_la_LIBADD) $(LIBS) +samples/$(am__dirstamp): + @$(MKDIR_P) samples + @: > samples/$(am__dirstamp) +samples/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) samples/$(DEPDIR) + @: > samples/$(DEPDIR)/$(am__dirstamp) +samples/sample1.lo: samples/$(am__dirstamp) \ + samples/$(DEPDIR)/$(am__dirstamp) +samples/sample2.lo: samples/$(am__dirstamp) \ + samples/$(DEPDIR)/$(am__dirstamp) +samples/sample4.lo: samples/$(am__dirstamp) \ + samples/$(DEPDIR)/$(am__dirstamp) +samples/libsamples.la: $(samples_libsamples_la_OBJECTS) $(samples_libsamples_la_DEPENDENCIES) $(EXTRA_samples_libsamples_la_DEPENDENCIES) samples/$(am__dirstamp) + $(CXXLINK) $(samples_libsamples_la_OBJECTS) $(samples_libsamples_la_LIBADD) $(LIBS) + +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 +samples/sample10_unittest.$(OBJEXT): samples/$(am__dirstamp) \ + samples/$(DEPDIR)/$(am__dirstamp) +samples/sample10_unittest$(EXEEXT): $(samples_sample10_unittest_OBJECTS) $(samples_sample10_unittest_DEPENDENCIES) $(EXTRA_samples_sample10_unittest_DEPENDENCIES) samples/$(am__dirstamp) + @rm -f samples/sample10_unittest$(EXEEXT) + $(CXXLINK) $(samples_sample10_unittest_OBJECTS) $(samples_sample10_unittest_LDADD) $(LIBS) +samples/sample1_unittest.$(OBJEXT): samples/$(am__dirstamp) \ + samples/$(DEPDIR)/$(am__dirstamp) +samples/sample1_unittest$(EXEEXT): $(samples_sample1_unittest_OBJECTS) $(samples_sample1_unittest_DEPENDENCIES) $(EXTRA_samples_sample1_unittest_DEPENDENCIES) samples/$(am__dirstamp) + @rm -f samples/sample1_unittest$(EXEEXT) + $(CXXLINK) $(samples_sample1_unittest_OBJECTS) $(samples_sample1_unittest_LDADD) $(LIBS) +fused-src/gtest/$(am__dirstamp): + @$(MKDIR_P) fused-src/gtest + @: > fused-src/gtest/$(am__dirstamp) +fused-src/gtest/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) fused-src/gtest/$(DEPDIR) + @: > fused-src/gtest/$(DEPDIR)/$(am__dirstamp) +fused-src/gtest/test_fused_gtest_test-gtest-all.$(OBJEXT): \ + fused-src/gtest/$(am__dirstamp) \ + fused-src/gtest/$(DEPDIR)/$(am__dirstamp) +fused-src/gtest/test_fused_gtest_test-gtest_main.$(OBJEXT): \ + fused-src/gtest/$(am__dirstamp) \ + fused-src/gtest/$(DEPDIR)/$(am__dirstamp) +samples/test_fused_gtest_test-sample1.$(OBJEXT): \ + samples/$(am__dirstamp) samples/$(DEPDIR)/$(am__dirstamp) +samples/test_fused_gtest_test-sample1_unittest.$(OBJEXT): \ + samples/$(am__dirstamp) samples/$(DEPDIR)/$(am__dirstamp) +test/$(am__dirstamp): + @$(MKDIR_P) test + @: > test/$(am__dirstamp) +test/fused_gtest_test$(EXEEXT): $(test_fused_gtest_test_OBJECTS) $(test_fused_gtest_test_DEPENDENCIES) $(EXTRA_test_fused_gtest_test_DEPENDENCIES) test/$(am__dirstamp) + @rm -f test/fused_gtest_test$(EXEEXT) + $(CXXLINK) $(test_fused_gtest_test_OBJECTS) $(test_fused_gtest_test_LDADD) $(LIBS) +test/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) test/$(DEPDIR) + @: > test/$(DEPDIR)/$(am__dirstamp) +test/gtest_all_test.$(OBJEXT): test/$(am__dirstamp) \ + test/$(DEPDIR)/$(am__dirstamp) +test/gtest_all_test$(EXEEXT): $(test_gtest_all_test_OBJECTS) $(test_gtest_all_test_DEPENDENCIES) $(EXTRA_test_gtest_all_test_DEPENDENCIES) test/$(am__dirstamp) + @rm -f test/gtest_all_test$(EXEEXT) + $(CXXLINK) $(test_gtest_all_test_OBJECTS) $(test_gtest_all_test_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f fused-src/gtest/test_fused_gtest_test-gtest-all.$(OBJEXT) + -rm -f fused-src/gtest/test_fused_gtest_test-gtest_main.$(OBJEXT) + -rm -f samples/sample1.$(OBJEXT) + -rm -f samples/sample1.lo + -rm -f samples/sample10_unittest.$(OBJEXT) + -rm -f samples/sample1_unittest.$(OBJEXT) + -rm -f samples/sample2.$(OBJEXT) + -rm -f samples/sample2.lo + -rm -f samples/sample4.$(OBJEXT) + -rm -f samples/sample4.lo + -rm -f samples/test_fused_gtest_test-sample1.$(OBJEXT) + -rm -f samples/test_fused_gtest_test-sample1_unittest.$(OBJEXT) + -rm -f src/gtest-all.$(OBJEXT) + -rm -f src/gtest-all.lo + -rm -f src/gtest_main.$(OBJEXT) + -rm -f src/gtest_main.lo + -rm -f test/gtest_all_test.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest-all.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest_main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@samples/$(DEPDIR)/sample1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@samples/$(DEPDIR)/sample10_unittest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@samples/$(DEPDIR)/sample1_unittest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@samples/$(DEPDIR)/sample2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@samples/$(DEPDIR)/sample4.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@samples/$(DEPDIR)/test_fused_gtest_test-sample1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@samples/$(DEPDIR)/test_fused_gtest_test-sample1_unittest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/gtest-all.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/gtest_main.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/gtest_all_test.Po@am__quote@ + +.cc.o: +@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.lo: +@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +fused-src/gtest/test_fused_gtest_test-gtest-all.o: fused-src/gtest/gtest-all.cc +@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fused-src/gtest/test_fused_gtest_test-gtest-all.o -MD -MP -MF fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest-all.Tpo -c -o fused-src/gtest/test_fused_gtest_test-gtest-all.o `test -f 'fused-src/gtest/gtest-all.cc' || echo '$(srcdir)/'`fused-src/gtest/gtest-all.cc +@am__fastdepCXX_TRUE@ $(am__mv) fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest-all.Tpo fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest-all.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='fused-src/gtest/gtest-all.cc' object='fused-src/gtest/test_fused_gtest_test-gtest-all.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fused-src/gtest/test_fused_gtest_test-gtest-all.o `test -f 'fused-src/gtest/gtest-all.cc' || echo '$(srcdir)/'`fused-src/gtest/gtest-all.cc + +fused-src/gtest/test_fused_gtest_test-gtest-all.obj: fused-src/gtest/gtest-all.cc +@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fused-src/gtest/test_fused_gtest_test-gtest-all.obj -MD -MP -MF fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest-all.Tpo -c -o fused-src/gtest/test_fused_gtest_test-gtest-all.obj `if test -f 'fused-src/gtest/gtest-all.cc'; then $(CYGPATH_W) 'fused-src/gtest/gtest-all.cc'; else $(CYGPATH_W) '$(srcdir)/fused-src/gtest/gtest-all.cc'; fi` +@am__fastdepCXX_TRUE@ $(am__mv) fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest-all.Tpo fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest-all.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='fused-src/gtest/gtest-all.cc' object='fused-src/gtest/test_fused_gtest_test-gtest-all.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fused-src/gtest/test_fused_gtest_test-gtest-all.obj `if test -f 'fused-src/gtest/gtest-all.cc'; then $(CYGPATH_W) 'fused-src/gtest/gtest-all.cc'; else $(CYGPATH_W) '$(srcdir)/fused-src/gtest/gtest-all.cc'; fi` + +fused-src/gtest/test_fused_gtest_test-gtest_main.o: fused-src/gtest/gtest_main.cc +@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fused-src/gtest/test_fused_gtest_test-gtest_main.o -MD -MP -MF fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest_main.Tpo -c -o fused-src/gtest/test_fused_gtest_test-gtest_main.o `test -f 'fused-src/gtest/gtest_main.cc' || echo '$(srcdir)/'`fused-src/gtest/gtest_main.cc +@am__fastdepCXX_TRUE@ $(am__mv) fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest_main.Tpo fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest_main.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='fused-src/gtest/gtest_main.cc' object='fused-src/gtest/test_fused_gtest_test-gtest_main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fused-src/gtest/test_fused_gtest_test-gtest_main.o `test -f 'fused-src/gtest/gtest_main.cc' || echo '$(srcdir)/'`fused-src/gtest/gtest_main.cc + +fused-src/gtest/test_fused_gtest_test-gtest_main.obj: fused-src/gtest/gtest_main.cc +@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fused-src/gtest/test_fused_gtest_test-gtest_main.obj -MD -MP -MF fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest_main.Tpo -c -o fused-src/gtest/test_fused_gtest_test-gtest_main.obj `if test -f 'fused-src/gtest/gtest_main.cc'; then $(CYGPATH_W) 'fused-src/gtest/gtest_main.cc'; else $(CYGPATH_W) '$(srcdir)/fused-src/gtest/gtest_main.cc'; fi` +@am__fastdepCXX_TRUE@ $(am__mv) fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest_main.Tpo fused-src/gtest/$(DEPDIR)/test_fused_gtest_test-gtest_main.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='fused-src/gtest/gtest_main.cc' object='fused-src/gtest/test_fused_gtest_test-gtest_main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fused-src/gtest/test_fused_gtest_test-gtest_main.obj `if test -f 'fused-src/gtest/gtest_main.cc'; then $(CYGPATH_W) 'fused-src/gtest/gtest_main.cc'; else $(CYGPATH_W) '$(srcdir)/fused-src/gtest/gtest_main.cc'; fi` + +samples/test_fused_gtest_test-sample1.o: samples/sample1.cc +@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT samples/test_fused_gtest_test-sample1.o -MD -MP -MF samples/$(DEPDIR)/test_fused_gtest_test-sample1.Tpo -c -o samples/test_fused_gtest_test-sample1.o `test -f 'samples/sample1.cc' || echo '$(srcdir)/'`samples/sample1.cc +@am__fastdepCXX_TRUE@ $(am__mv) samples/$(DEPDIR)/test_fused_gtest_test-sample1.Tpo samples/$(DEPDIR)/test_fused_gtest_test-sample1.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='samples/sample1.cc' object='samples/test_fused_gtest_test-sample1.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o samples/test_fused_gtest_test-sample1.o `test -f 'samples/sample1.cc' || echo '$(srcdir)/'`samples/sample1.cc + +samples/test_fused_gtest_test-sample1.obj: samples/sample1.cc +@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT samples/test_fused_gtest_test-sample1.obj -MD -MP -MF samples/$(DEPDIR)/test_fused_gtest_test-sample1.Tpo -c -o samples/test_fused_gtest_test-sample1.obj `if test -f 'samples/sample1.cc'; then $(CYGPATH_W) 'samples/sample1.cc'; else $(CYGPATH_W) '$(srcdir)/samples/sample1.cc'; fi` +@am__fastdepCXX_TRUE@ $(am__mv) samples/$(DEPDIR)/test_fused_gtest_test-sample1.Tpo samples/$(DEPDIR)/test_fused_gtest_test-sample1.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='samples/sample1.cc' object='samples/test_fused_gtest_test-sample1.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o samples/test_fused_gtest_test-sample1.obj `if test -f 'samples/sample1.cc'; then $(CYGPATH_W) 'samples/sample1.cc'; else $(CYGPATH_W) '$(srcdir)/samples/sample1.cc'; fi` + +samples/test_fused_gtest_test-sample1_unittest.o: samples/sample1_unittest.cc +@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT samples/test_fused_gtest_test-sample1_unittest.o -MD -MP -MF samples/$(DEPDIR)/test_fused_gtest_test-sample1_unittest.Tpo -c -o samples/test_fused_gtest_test-sample1_unittest.o `test -f 'samples/sample1_unittest.cc' || echo '$(srcdir)/'`samples/sample1_unittest.cc +@am__fastdepCXX_TRUE@ $(am__mv) samples/$(DEPDIR)/test_fused_gtest_test-sample1_unittest.Tpo samples/$(DEPDIR)/test_fused_gtest_test-sample1_unittest.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='samples/sample1_unittest.cc' object='samples/test_fused_gtest_test-sample1_unittest.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o samples/test_fused_gtest_test-sample1_unittest.o `test -f 'samples/sample1_unittest.cc' || echo '$(srcdir)/'`samples/sample1_unittest.cc + +samples/test_fused_gtest_test-sample1_unittest.obj: samples/sample1_unittest.cc +@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT samples/test_fused_gtest_test-sample1_unittest.obj -MD -MP -MF samples/$(DEPDIR)/test_fused_gtest_test-sample1_unittest.Tpo -c -o samples/test_fused_gtest_test-sample1_unittest.obj `if test -f 'samples/sample1_unittest.cc'; then $(CYGPATH_W) 'samples/sample1_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/samples/sample1_unittest.cc'; fi` +@am__fastdepCXX_TRUE@ $(am__mv) samples/$(DEPDIR)/test_fused_gtest_test-sample1_unittest.Tpo samples/$(DEPDIR)/test_fused_gtest_test-sample1_unittest.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='samples/sample1_unittest.cc' object='samples/test_fused_gtest_test-sample1_unittest.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_fused_gtest_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o samples/test_fused_gtest_test-sample1_unittest.obj `if test -f 'samples/sample1_unittest.cc'; then $(CYGPATH_W) 'samples/sample1_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/samples/sample1_unittest.cc'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + -rm -rf lib/.libs lib/_libs + -rm -rf samples/.libs samples/_libs + -rm -rf src/.libs src/_libs + -rm -rf test/.libs test/_libs + +distclean-libtool: + -rm -f libtool config.lt +install-m4dataDATA: $(m4data_DATA) + @$(NORMAL_INSTALL) + test -z "$(m4datadir)" || $(MKDIR_P) "$(DESTDIR)$(m4datadir)" + @list='$(m4data_DATA)'; test -n "$(m4datadir)" || list=; \ + 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_DATA) $$files '$(DESTDIR)$(m4datadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(m4datadir)" || exit $$?; \ + done + +uninstall-m4dataDATA: + @$(NORMAL_UNINSTALL) + @list='$(m4data_DATA)'; test -n "$(m4datadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(m4datadir)'; $(am__uninstall_files_from_dir) +install-pkgincludeHEADERS: $(pkginclude_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" + @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ + 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)$(pkgincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \ + done + +uninstall-pkgincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) +install-pkginclude_internalHEADERS: $(pkginclude_internal_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(pkginclude_internaldir)" || $(MKDIR_P) "$(DESTDIR)$(pkginclude_internaldir)" + @list='$(pkginclude_internal_HEADERS)'; test -n "$(pkginclude_internaldir)" || list=; \ + 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)$(pkginclude_internaldir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkginclude_internaldir)" || exit $$?; \ + done + +uninstall-pkginclude_internalHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkginclude_internal_HEADERS)'; test -n "$(pkginclude_internaldir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkginclude_internaldir)'; $(am__uninstall_files_from_dir) + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + 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 +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + 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" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +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 + -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__remove_distdir) +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__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.lzma*) \ + lzma -dc $(distdir).tar.lzma | $(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 a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(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 --srcdir=.. --prefix="$$dc_install_base" \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(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__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 + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkginclude_internaldir)"; 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: + -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) + -rm -f fused-src/gtest/$(DEPDIR)/$(am__dirstamp) + -rm -f fused-src/gtest/$(am__dirstamp) + -rm -f lib/$(am__dirstamp) + -rm -f samples/$(DEPDIR)/$(am__dirstamp) + -rm -f samples/$(am__dirstamp) + -rm -f src/$(DEPDIR)/$(am__dirstamp) + -rm -f src/$(am__dirstamp) + -rm -f test/$(DEPDIR)/$(am__dirstamp) + -rm -f test/$(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." +@HAVE_PYTHON_FALSE@maintainer-clean-local: +clean: clean-am + +clean-am: clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \ + clean-libtool clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf fused-src/gtest/$(DEPDIR) samples/$(DEPDIR) src/$(DEPDIR) test/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local install-m4dataDATA \ + install-pkgincludeHEADERS install-pkginclude_internalHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-exec-local 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 $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -rf fused-src/gtest/$(DEPDIR) samples/$(DEPDIR) src/$(DEPDIR) test/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +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 uninstall-m4dataDATA \ + uninstall-pkgincludeHEADERS \ + uninstall-pkginclude_internalHEADERS + +.MAKE: check-am install-am install-strip + +.PHONY: CTAGS GTAGS all all-am am--refresh check check-TESTS check-am \ + clean clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \ + clean-libtool clean-noinstLTLIBRARIES ctags dist dist-all \ + dist-bzip2 dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ \ + dist-xz dist-zip distcheck distclean distclean-compile \ + 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-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-exec-local \ + install-html install-html-am install-info install-info-am \ + install-libLTLIBRARIES install-m4dataDATA install-man \ + install-pdf install-pdf-am install-pkgincludeHEADERS \ + install-pkginclude_internalHEADERS install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic \ + maintainer-clean-local mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-libLTLIBRARIES \ + uninstall-m4dataDATA uninstall-pkgincludeHEADERS \ + uninstall-pkginclude_internalHEADERS + + +# Build rules for putting fused Google Test files into the distribution +# package. The user can also create those files by manually running +# scripts/fuse_gtest_files.py. +@HAVE_PYTHON_TRUE@$(test_fused_gtest_test_SOURCES): fused-gtest + +@HAVE_PYTHON_TRUE@fused-gtest: $(pkginclude_HEADERS) $(pkginclude_internal_HEADERS) \ +@HAVE_PYTHON_TRUE@ $(GTEST_SRC) src/gtest-all.cc src/gtest_main.cc \ +@HAVE_PYTHON_TRUE@ scripts/fuse_gtest_files.py +@HAVE_PYTHON_TRUE@ mkdir -p "$(srcdir)/fused-src" +@HAVE_PYTHON_TRUE@ chmod -R u+w "$(srcdir)/fused-src" +@HAVE_PYTHON_TRUE@ rm -f "$(srcdir)/fused-src/gtest/gtest-all.cc" +@HAVE_PYTHON_TRUE@ rm -f "$(srcdir)/fused-src/gtest/gtest.h" +@HAVE_PYTHON_TRUE@ "$(srcdir)/scripts/fuse_gtest_files.py" "$(srcdir)/fused-src" +@HAVE_PYTHON_TRUE@ cp -f "$(srcdir)/src/gtest_main.cc" "$(srcdir)/fused-src/gtest/" + +@HAVE_PYTHON_TRUE@maintainer-clean-local: +@HAVE_PYTHON_TRUE@ rm -rf "$(srcdir)/fused-src" + +# Disables 'make install' as installing a compiled version of Google +# Test can lead to undefined behavior due to violation of the +# One-Definition Rule. + +install-exec-local: + echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Test into your build system." + false + +install-data-local: + echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Test into your build system." + false + +# 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/gtest-1.7.0/README b/gtest-1.7.0/README new file mode 100644 index 0000000..26f35a8 --- /dev/null +++ b/gtest-1.7.0/README @@ -0,0 +1,435 @@ +Google C++ Testing Framework +============================ + +http://code.google.com/p/googletest/ + +Overview +-------- + +Google's framework for writing C++ tests on a variety of platforms +(Linux, Mac OS X, Windows, Windows CE, Symbian, etc). Based on the +xUnit architecture. Supports automatic test discovery, a rich set of +assertions, user-defined assertions, death tests, fatal and non-fatal +failures, various options for running the tests, and XML test report +generation. + +Please see the project page above for more information as well as the +mailing list for questions, discussions, and development. There is +also an IRC channel on OFTC (irc.oftc.net) #gtest available. Please +join us! + +Requirements for End Users +-------------------------- + +Google Test is designed to have fairly minimal requirements to build +and use with your projects, but there are some. Currently, we support +Linux, Windows, Mac OS X, and Cygwin. We will also make our best +effort to support other platforms (e.g. Solaris, AIX, and z/OS). +However, since core members of the Google Test project have no access +to these platforms, Google Test may have outstanding issues there. If +you notice any problems on your platform, please notify +googletestframework@googlegroups.com. Patches for fixing them are +even more welcome! + +### Linux Requirements ### + +These are the base requirements to build and use Google Test from a source +package (as described below): + * GNU-compatible Make or gmake + * POSIX-standard shell + * POSIX(-2) Regular Expressions (regex.h) + * A C++98-standard-compliant compiler + +### Windows Requirements ### + + * Microsoft Visual C++ 7.1 or newer + +### Cygwin Requirements ### + + * Cygwin 1.5.25-14 or newer + +### Mac OS X Requirements ### + + * Mac OS X 10.4 Tiger or newer + * Developer Tools Installed + +Also, you'll need CMake 2.6.4 or higher if you want to build the +samples using the provided CMake script, regardless of the platform. + +Requirements for Contributors +----------------------------- + +We welcome patches. If you plan to contribute a patch, you need to +build Google Test and its own tests from an SVN checkout (described +below), which has further requirements: + + * Python version 2.3 or newer (for running some of the tests and + re-generating certain source files from templates) + * CMake 2.6.4 or newer + +Getting the Source +------------------ + +There are two primary ways of getting Google Test's source code: you +can download a stable source release in your preferred archive format, +or directly check out the source from our Subversion (SVN) repositary. +The SVN checkout requires a few extra steps and some extra software +packages on your system, but lets you track the latest development and +make patches much more easily, so we highly encourage it. + +### Source Package ### + +Google Test is released in versioned source packages which can be +downloaded from the download page [1]. Several different archive +formats are provided, but the only difference is the tools used to +manipulate them, and the size of the resulting file. Download +whichever you are most comfortable with. + + [1] http://code.google.com/p/googletest/downloads/list + +Once the package is downloaded, expand it using whichever tools you +prefer for that type. This will result in a new directory with the +name "gtest-X.Y.Z" which contains all of the source code. Here are +some examples on Linux: + + tar -xvzf gtest-X.Y.Z.tar.gz + tar -xvjf gtest-X.Y.Z.tar.bz2 + unzip gtest-X.Y.Z.zip + +### SVN Checkout ### + +To check out the main branch (also known as the "trunk") of Google +Test, run the following Subversion command: + + svn checkout http://googletest.googlecode.com/svn/trunk/ gtest-svn + +Setting up the Build +-------------------- + +To build Google Test and your tests that use it, you need to tell your +build system where to find its headers and source files. The exact +way to do it depends on which build system you use, and is usually +straightforward. + +### Generic Build Instructions ### + +Suppose you put Google Test in directory ${GTEST_DIR}. To build it, +create a library build target (or a project as called by Visual Studio +and Xcode) to compile + + ${GTEST_DIR}/src/gtest-all.cc + +with ${GTEST_DIR}/include in the system header search path and ${GTEST_DIR} +in the normal header search path. Assuming a Linux-like system and gcc, +something like the following will do: + + g++ -isystem ${GTEST_DIR}/include -I${GTEST_DIR} \ + -pthread -c ${GTEST_DIR}/src/gtest-all.cc + ar -rv libgtest.a gtest-all.o + +(We need -pthread as Google Test uses threads.) + +Next, you should compile your test source file with +${GTEST_DIR}/include in the system header search path, and link it +with gtest and any other necessary libraries: + + g++ -isystem ${GTEST_DIR}/include -pthread path/to/your_test.cc libgtest.a \ + -o your_test + +As an example, the make/ directory contains a Makefile that you can +use to build Google Test on systems where GNU make is available +(e.g. Linux, Mac OS X, and Cygwin). It doesn't try to build Google +Test's own tests. Instead, it just builds the Google Test library and +a sample test. You can use it as a starting point for your own build +script. + +If the default settings are correct for your environment, the +following commands should succeed: + + cd ${GTEST_DIR}/make + make + ./sample1_unittest + +If you see errors, try to tweak the contents of make/Makefile to make +them go away. There are instructions in make/Makefile on how to do +it. + +### Using CMake ### + +Google Test comes with a CMake build script (CMakeLists.txt) that can +be used on a wide range of platforms ("C" stands for cross-platofrm.). +If you don't have CMake installed already, you can download it for +free from http://www.cmake.org/. + +CMake works by generating native makefiles or build projects that can +be used in the compiler environment of your choice. The typical +workflow starts with: + + mkdir mybuild # Create a directory to hold the build output. + cd mybuild + cmake ${GTEST_DIR} # Generate native build scripts. + +If you want to build Google Test's samples, you should replace the +last command with + + cmake -Dgtest_build_samples=ON ${GTEST_DIR} + +If you are on a *nix system, you should now see a Makefile in the +current directory. Just type 'make' to build gtest. + +If you use Windows and have Vistual Studio installed, a gtest.sln file +and several .vcproj files will be created. You can then build them +using Visual Studio. + +On Mac OS X with Xcode installed, a .xcodeproj file will be generated. + +### Legacy Build Scripts ### + +Before settling on CMake, we have been providing hand-maintained build +projects/scripts for Visual Studio, Xcode, and Autotools. While we +continue to provide them for convenience, they are not actively +maintained any more. We highly recommend that you follow the +instructions in the previous two sections to integrate Google Test +with your existing build system. + +If you still need to use the legacy build scripts, here's how: + +The msvc\ folder contains two solutions with Visual C++ projects. +Open the gtest.sln or gtest-md.sln file using Visual Studio, and you +are ready to build Google Test the same way you build any Visual +Studio project. Files that have names ending with -md use DLL +versions of Microsoft runtime libraries (the /MD or the /MDd compiler +option). Files without that suffix use static versions of the runtime +libraries (the /MT or the /MTd option). Please note that one must use +the same option to compile both gtest and the test code. If you use +Visual Studio 2005 or above, we recommend the -md version as /MD is +the default for new projects in these versions of Visual Studio. + +On Mac OS X, open the gtest.xcodeproj in the xcode/ folder using +Xcode. Build the "gtest" target. The universal binary framework will +end up in your selected build directory (selected in the Xcode +"Preferences..." -> "Building" pane and defaults to xcode/build). +Alternatively, at the command line, enter: + + xcodebuild + +This will build the "Release" configuration of gtest.framework in your +default build location. See the "xcodebuild" man page for more +information about building different configurations and building in +different locations. + +If you wish to use the Google Test Xcode project with Xcode 4.x and +above, you need to either: + * update the SDK configuration options in xcode/Config/General.xconfig. + Comment options SDKROOT, MACOS_DEPLOYMENT_TARGET, and GCC_VERSION. If + you choose this route you lose the ability to target earlier versions + of MacOS X. + * Install an SDK for an earlier version. This doesn't appear to be + supported by Apple, but has been reported to work + (http://stackoverflow.com/questions/5378518). + +Tweaking Google Test +-------------------- + +Google Test can be used in diverse environments. The default +configuration may not work (or may not work well) out of the box in +some environments. However, you can easily tweak Google Test by +defining control macros on the compiler command line. Generally, +these macros are named like GTEST_XYZ and you define them to either 1 +or 0 to enable or disable a certain feature. + +We list the most frequently used macros below. For a complete list, +see file include/gtest/internal/gtest-port.h. + +### Choosing a TR1 Tuple Library ### + +Some Google Test features require the C++ Technical Report 1 (TR1) +tuple library, which is not yet available with all compilers. The +good news is that Google Test implements a subset of TR1 tuple that's +enough for its own need, and will automatically use this when the +compiler doesn't provide TR1 tuple. + +Usually you don't need to care about which tuple library Google Test +uses. However, if your project already uses TR1 tuple, you need to +tell Google Test to use the same TR1 tuple library the rest of your +project uses, or the two tuple implementations will clash. To do +that, add + + -DGTEST_USE_OWN_TR1_TUPLE=0 + +to the compiler flags while compiling Google Test and your tests. If +you want to force Google Test to use its own tuple library, just add + + -DGTEST_USE_OWN_TR1_TUPLE=1 + +to the compiler flags instead. + +If you don't want Google Test to use tuple at all, add + + -DGTEST_HAS_TR1_TUPLE=0 + +and all features using tuple will be disabled. + +### Multi-threaded Tests ### + +Google Test is thread-safe where the pthread library is available. +After #include "gtest/gtest.h", you can check the GTEST_IS_THREADSAFE +macro to see whether this is the case (yes if the macro is #defined to +1, no if it's undefined.). + +If Google Test doesn't correctly detect whether pthread is available +in your environment, you can force it with + + -DGTEST_HAS_PTHREAD=1 + +or + + -DGTEST_HAS_PTHREAD=0 + +When Google Test uses pthread, you may need to add flags to your +compiler and/or linker to select the pthread library, or you'll get +link errors. If you use the CMake script or the deprecated Autotools +script, this is taken care of for you. If you use your own build +script, you'll need to read your compiler and linker's manual to +figure out what flags to add. + +### As a Shared Library (DLL) ### + +Google Test is compact, so most users can build and link it as a +static library for the simplicity. You can choose to use Google Test +as a shared library (known as a DLL on Windows) if you prefer. + +To compile *gtest* as a shared library, add + + -DGTEST_CREATE_SHARED_LIBRARY=1 + +to the compiler flags. You'll also need to tell the linker to produce +a shared library instead - consult your linker's manual for how to do +it. + +To compile your *tests* that use the gtest shared library, add + + -DGTEST_LINKED_AS_SHARED_LIBRARY=1 + +to the compiler flags. + +Note: while the above steps aren't technically necessary today when +using some compilers (e.g. GCC), they may become necessary in the +future, if we decide to improve the speed of loading the library (see +http://gcc.gnu.org/wiki/Visibility for details). Therefore you are +recommended to always add the above flags when using Google Test as a +shared library. Otherwise a future release of Google Test may break +your build script. + +### Avoiding Macro Name Clashes ### + +In C++, macros don't obey namespaces. Therefore two libraries that +both define a macro of the same name will clash if you #include both +definitions. In case a Google Test macro clashes with another +library, you can force Google Test to rename its macro to avoid the +conflict. + +Specifically, if both Google Test and some other code define macro +FOO, you can add + + -DGTEST_DONT_DEFINE_FOO=1 + +to the compiler flags to tell Google Test to change the macro's name +from FOO to GTEST_FOO. Currently FOO can be FAIL, SUCCEED, or TEST. +For example, with -DGTEST_DONT_DEFINE_TEST=1, you'll need to write + + GTEST_TEST(SomeTest, DoesThis) { ... } + +instead of + + TEST(SomeTest, DoesThis) { ... } + +in order to define a test. + +Upgrating from an Earlier Version +--------------------------------- + +We strive to keep Google Test releases backward compatible. +Sometimes, though, we have to make some breaking changes for the +users' long-term benefits. This section describes what you'll need to +do if you are upgrading from an earlier version of Google Test. + +### Upgrading from 1.3.0 or Earlier ### + +You may need to explicitly enable or disable Google Test's own TR1 +tuple library. See the instructions in section "Choosing a TR1 Tuple +Library". + +### Upgrading from 1.4.0 or Earlier ### + +The Autotools build script (configure + make) is no longer officially +supportted. You are encouraged to migrate to your own build system or +use CMake. If you still need to use Autotools, you can find +instructions in the README file from Google Test 1.4.0. + +On platforms where the pthread library is available, Google Test uses +it in order to be thread-safe. See the "Multi-threaded Tests" section +for what this means to your build script. + +If you use Microsoft Visual C++ 7.1 with exceptions disabled, Google +Test will no longer compile. This should affect very few people, as a +large portion of STL (including ) doesn't compile in this mode +anyway. We decided to stop supporting it in order to greatly simplify +Google Test's implementation. + +Developing Google Test +---------------------- + +This section discusses how to make your own changes to Google Test. + +### Testing Google Test Itself ### + +To make sure your changes work as intended and don't break existing +functionality, you'll want to compile and run Google Test's own tests. +For that you can use CMake: + + mkdir mybuild + cd mybuild + cmake -Dgtest_build_tests=ON ${GTEST_DIR} + +Make sure you have Python installed, as some of Google Test's tests +are written in Python. If the cmake command complains about not being +able to find Python ("Could NOT find PythonInterp (missing: +PYTHON_EXECUTABLE)"), try telling it explicitly where your Python +executable can be found: + + cmake -DPYTHON_EXECUTABLE=path/to/python -Dgtest_build_tests=ON ${GTEST_DIR} + +Next, you can build Google Test and all of its own tests. On *nix, +this is usually done by 'make'. To run the tests, do + + make test + +All tests should pass. + +### Regenerating Source Files ### + +Some of Google Test's source files are generated from templates (not +in the C++ sense) using a script. A template file is named FOO.pump, +where FOO is the name of the file it will generate. For example, the +file include/gtest/internal/gtest-type-util.h.pump is used to generate +gtest-type-util.h in the same directory. + +Normally you don't need to worry about regenerating the source files, +unless you need to modify them. In that case, you should modify the +corresponding .pump files instead and run the pump.py Python script to +regenerate them. You can find pump.py in the scripts/ directory. +Read the Pump manual [2] for how to use it. + + [2] http://code.google.com/p/googletest/wiki/PumpManual + +### Contributing a Patch ### + +We welcome patches. Please read the Google Test developer's guide [3] +for how you can contribute. In particular, make sure you have signed +the Contributor License Agreement, or we won't be able to accept the +patch. + + [3] http://code.google.com/p/googletest/wiki/GoogleTestDevGuide + +Happy testing! diff --git a/gtest-1.7.0/aclocal.m4 b/gtest-1.7.0/aclocal.m4 new file mode 100644 index 0000000..e7df9fe --- /dev/null +++ b/gtest-1.7.0/aclocal.m4 @@ -0,0 +1,1198 @@ +# generated automatically by aclocal 1.11.3 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008, 2009, 2010, 2011 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_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. +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, 2003, 2005, 2006, 2007, 2008, 2011 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. + +# serial 1 + +# 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.11' +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.11.3], [], + [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.11.3])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, 2003, 2005, 2011 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. + +# serial 1 + +# 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, 2000, 2001, 2003, 2004, 2005, 2006, 2008 +# 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. + +# serial 9 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$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, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, +# 2010, 2011 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. + +# serial 12 + +# 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", "GCJ", or "OBJC". +# 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 + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" 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 8's {/usr,}/bin/sh. + touch 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, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +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, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# 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. + +#serial 5 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Autoconf 2.62 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"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //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' -e 's/\$U/'"$U"'/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, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008, 2009 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. + +# serial 16 + +# 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. + +# 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.62])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], +[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], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [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([AM_PROG_MKDIR_P])dnl +# 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)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl 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 +]) + +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, 2003, 2005, 2008, 2011 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. + +# serial 1 + +# 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, 2005 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. + +# serial 2 + +# 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, 2002, 2003, 2005, 2009 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. + +# serial 4 + +# 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, 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# 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. + +# serial 6 + +# 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 supports --run. +# If it does, 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 --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006, 2011 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. + +# serial 1 + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 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. + +# serial 5 + +# _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, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009, +# 2011 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. + +# serial 2 + +# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# --------------------------------------------------------------------------- +# Adds support for distributing Python modules and packages. To +# install modules, copy them to $(pythondir), using the python_PYTHON +# automake variable. To install a package with the same name as the +# automake package, install to $(pkgpythondir), or use the +# pkgpython_PYTHON automake variable. +# +# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as +# locations to install python extension modules (shared libraries). +# Another macro is required to find the appropriate flags to compile +# extension modules. +# +# If your package is configured with a different prefix to python, +# users will have to add the install directory to the PYTHONPATH +# environment variable, or create a .pth file (see the python +# documentation for details). +# +# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will +# cause an error if the version of python installed on the system +# doesn't meet the requirement. MINIMUM-VERSION should consist of +# numbers and dots only. +AC_DEFUN([AM_PATH_PYTHON], + [ + dnl Find a Python interpreter. Python versions prior to 2.0 are not + dnl supported. (2.0 was released on October 16, 2000). + m4_define_default([_AM_PYTHON_INTERPRETER_LIST], +[python python2 python3 python3.2 python3.1 python3.0 python2.7 dnl + python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0]) + + AC_ARG_VAR([PYTHON], [the Python interpreter]) + + m4_if([$1],[],[ + dnl No version check is needed. + # Find any Python interpreter. + if test -z "$PYTHON"; then + AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) + fi + am_display_PYTHON=python + ], [ + dnl A version check is needed. + if test -n "$PYTHON"; then + # If the user set $PYTHON, use it and don't search something else. + AC_MSG_CHECKING([whether $PYTHON version >= $1]) + AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], + [AC_MSG_RESULT(yes)], + [AC_MSG_ERROR(too old)]) + am_display_PYTHON=$PYTHON + else + # Otherwise, try each interpreter until we find one that satisfies + # VERSION. + AC_CACHE_CHECK([for a Python interpreter with version >= $1], + [am_cv_pathless_PYTHON],[ + for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do + test "$am_cv_pathless_PYTHON" = none && break + AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) + done]) + # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. + if test "$am_cv_pathless_PYTHON" = none; then + PYTHON=: + else + AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) + fi + am_display_PYTHON=$am_cv_pathless_PYTHON + fi + ]) + + if test "$PYTHON" = :; then + dnl Run any user-specified action, or abort. + m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) + else + + dnl Query Python for its version number. Getting [:3] seems to be + dnl the best way to do this; it's what "site.py" does in the standard + dnl library. + + AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], + [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) + AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) + + dnl Use the values of $prefix and $exec_prefix for the corresponding + dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made + dnl distinct variables so they can be overridden if need be. However, + dnl general consensus is that you shouldn't need this ability. + + AC_SUBST([PYTHON_PREFIX], ['${prefix}']) + AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) + + dnl At times (like when building shared libraries) you may want + dnl to know which OS platform Python thinks this is. + + AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], + [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) + AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) + + + dnl Set up 4 directories: + + dnl pythondir -- where to install python scripts. This is the + dnl site-packages directory, not the python standard library + dnl directory like in previous automake betas. This behavior + dnl is more consistent with lispdir.m4 for example. + dnl Query distutils for this directory. + AC_CACHE_CHECK([for $am_display_PYTHON script directory], + [am_cv_python_pythondir], + [if test "x$prefix" = xNONE + then + am_py_prefix=$ac_default_prefix + else + am_py_prefix=$prefix + fi + am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null` + case $am_cv_python_pythondir in + $am_py_prefix*) + am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` + am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` + ;; + *) + case $am_py_prefix in + /usr|/System*) ;; + *) + am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac + ]) + AC_SUBST([pythondir], [$am_cv_python_pythondir]) + + dnl pkgpythondir -- $PACKAGE directory under pythondir. Was + dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is + dnl more consistent with the rest of automake. + + AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) + + dnl pyexecdir -- directory for installing python extension modules + dnl (shared libraries) + dnl Query distutils for this directory. + AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], + [am_cv_python_pyexecdir], + [if test "x$exec_prefix" = xNONE + then + am_py_exec_prefix=$am_py_prefix + else + am_py_exec_prefix=$exec_prefix + fi + am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null` + case $am_cv_python_pyexecdir in + $am_py_exec_prefix*) + am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` + am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` + ;; + *) + case $am_py_exec_prefix in + /usr|/System*) ;; + *) + am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages + ;; + esac + ;; + esac + ]) + AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) + + dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) + + AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) + + dnl Run any user-specified action. + $2 + fi + +]) + + +# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) +# --------------------------------------------------------------------------- +# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. +# Run ACTION-IF-FALSE otherwise. +# This test uses sys.hexversion instead of the string equivalent (first +# word of sys.version), in order to cope with versions such as 2.2c1. +# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). +AC_DEFUN([AM_PYTHON_CHECK_VERSION], + [prog="import sys +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +# map returns an iterator in Python 3.0 and a list in 2.x +minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] +minverhex = 0 +# xrange is not present in Python 3.0 and range returns an iterator +for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] +sys.exit(sys.hexversion < minverhex)" + AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) + +# Copyright (C) 2001, 2003, 2005, 2011 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. + +# serial 1 + +# 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, 1997, 2000, 2001, 2003, 2005, 2008 +# 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. + +# serial 5 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# 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 ( + 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 + rm -f conftest.file + 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 + + 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)]) + +# Copyright (C) 2001, 2003, 2005, 2011 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. + +# serial 1 + +# 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, 2008, 2010 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. + +# serial 3 + +# _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, 2005, 2012 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. + +# serial 2 + +# _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}']) +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +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 /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/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/gtest-1.7.0/build-aux/config.guess b/gtest-1.7.0/build-aux/config.guess new file mode 100644 index 0000000..d622a44 --- /dev/null +++ b/gtest-1.7.0/build-aux/config.guess @@ -0,0 +1,1530 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. + +timestamp='2012-02-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 2 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 . +# +# 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 Per Bothner. Please send patches (context +# diff format) to and include a ChangeLog +# entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# 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 + +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 ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +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 + +# 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 ;; + *: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 /* 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 + + 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 + #include + + 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 + 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 ;; + *: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-gnu`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/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-gnu + 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="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${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-gnu + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + 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-gnu"; exit; } + ;; + or32:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + 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-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + 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' /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 + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # 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 ;; + 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 + case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + 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 + UNAME_PROCESSOR="x86_64" + fi + fi ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + 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 + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#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 + 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 +# 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 < 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/gtest-1.7.0/build-aux/config.h b/gtest-1.7.0/build-aux/config.h new file mode 100644 index 0000000..b43f39b --- /dev/null +++ b/gtest-1.7.0/build-aux/config.h @@ -0,0 +1,70 @@ +/* build-aux/config.h. Generated from config.h.in by configure. */ +/* build-aux/config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define if you have POSIX threads libraries and header files. */ +#define HAVE_PTHREAD 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Name of package */ +#define PACKAGE "gtest" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "googletestframework@googlegroups.com" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "Google C++ Testing Framework" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "Google C++ Testing Framework 1.7.0" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "gtest" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "1.7.0" + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +/* #undef PTHREAD_CREATE_JOINABLE */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Version number of package */ +#define VERSION "1.7.0" diff --git a/gtest-1.7.0/build-aux/config.h.in b/gtest-1.7.0/build-aux/config.h.in new file mode 100644 index 0000000..843b5b1 --- /dev/null +++ b/gtest-1.7.0/build-aux/config.h.in @@ -0,0 +1,69 @@ +/* build-aux/config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define if you have POSIX threads libraries and header files. */ +#undef HAVE_PTHREAD + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the 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 necessary symbol if this constant uses a non-standard name on + your system. */ +#undef PTHREAD_CREATE_JOINABLE + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION diff --git a/gtest-1.7.0/build-aux/config.sub b/gtest-1.7.0/build-aux/config.sub new file mode 100644 index 0000000..c894da4 --- /dev/null +++ b/gtest-1.7.0/build-aux/config.sub @@ -0,0 +1,1773 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. + +timestamp='2012-02-10' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# 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 2 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 . +# +# 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. + + +# Please send patches to . Submit a context +# diff and a properly formatted GNU ChangeLog entry. +# +# 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 ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +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-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*) + 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 | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | be32 | be64 \ + | bfin \ + | c4x | 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 | 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 \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 \ + | ns16k | ns32k \ + | open8 \ + | 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-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | 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-* \ + | 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-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* \ + | 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 + ;; + mingw32) + basic_machine=i386-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=i386-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) + 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* \ + | -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* \ + | -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* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -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 + ;; + -kaos*) + os=-kaos + ;; + -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 + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/gtest-1.7.0/build-aux/depcomp b/gtest-1.7.0/build-aux/depcomp new file mode 100644 index 0000000..bd0ac08 --- /dev/null +++ b/gtest-1.7.0/build-aux/depcomp @@ -0,0 +1,688 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2011-12-04.11; # UTC + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, +# 2011 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 . + +# 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 . + +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 . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +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" + +# 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 + +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 -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## 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). +## - 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 -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## 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. + tr ' ' ' +' < "$tmpdepfile" | +## 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. + 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 -eq 0; then : + else + 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 ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> "$depfile" + echo >> "$depfile" + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +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. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + 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 -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + 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. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + 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 -eq 0; then : + else + 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,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + echo "#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. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # 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.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +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" = 0; then : + else + 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/\(.*\)/ \1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/ / + G + p +}' >> "$depfile" + 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:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + 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" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + 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:: \1 \\:p' >> "$depfile" + echo " " >> "$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/gtest-1.7.0/build-aux/install-sh b/gtest-1.7.0/build-aux/install-sh new file mode 100644 index 0000000..a9244eb --- /dev/null +++ b/gtest-1.7.0/build-aux/install-sh @@ -0,0 +1,527 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2011-01-19.21; # 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-writeable 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/gtest-1.7.0/build-aux/ltmain.sh b/gtest-1.7.0/build-aux/ltmain.sh new file mode 100644 index 0000000..c2852d8 --- /dev/null +++ b/gtest-1.7.0/build-aux/ltmain.sh @@ -0,0 +1,9661 @@ + +# libtool (GNU libtool) 2.4.2 +# Written by Gordon Matzigkeit , 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-1ubuntu1 +# automake: $automake_version +# autoconf: $autoconf_version +# +# Report bugs to . +# GNU libtool home page: . +# General help using GNU software: . + +PROGRAM=libtool +PACKAGE=libtool +VERSION="2.4.2 Debian-2.4.2-1ubuntu1" +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 </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 . + $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 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 < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +/* 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 <= 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 </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/gtest-1.7.0/build-aux/missing b/gtest-1.7.0/build-aux/missing new file mode 100644 index 0000000..86a8fc3 --- /dev/null +++ b/gtest-1.7.0/build-aux/missing @@ -0,0 +1,331 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2012-01-06.13; # UTC + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, +# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. +# Originally by Fran,cois Pinard , 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 . + +# 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 + +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and +\`g' are ignored when checking the name. + +Send bug reports to ." + 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 + +# normalize program name to check for. +program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). This is about non-GNU programs, so use $1 not +# $program. +case $1 in + lex*|yacc*) + # Not GNU programs, they don't have --version. + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $program in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te*) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison*|yacc*) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG=\${$#} + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex*|flex*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG=\${$#} + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit $? + fi + ;; + + makeinfo*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# 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/gtest-1.7.0/build-aux/stamp-h1 b/gtest-1.7.0/build-aux/stamp-h1 new file mode 100644 index 0000000..3841b47 --- /dev/null +++ b/gtest-1.7.0/build-aux/stamp-h1 @@ -0,0 +1 @@ +timestamp for build-aux/config.h diff --git a/gtest-1.7.0/cmake/internal_utils.cmake b/gtest-1.7.0/cmake/internal_utils.cmake new file mode 100644 index 0000000..8cb2189 --- /dev/null +++ b/gtest-1.7.0/cmake/internal_utils.cmake @@ -0,0 +1,227 @@ +# Defines functions and macros useful for building Google Test and +# Google Mock. +# +# Note: +# +# - This file will be run twice when building Google Mock (once via +# Google Test's CMakeLists.txt, and once via Google Mock's). +# Therefore it shouldn't have any side effects other than defining +# the functions and macros. +# +# - The functions/macros defined in this file may depend on Google +# Test and Google Mock's option() definitions, and thus must be +# called *after* the options have been defined. + +# Tweaks CMake's default compiler/linker settings to suit Google Test's needs. +# +# This must be a macro(), as inside a function string() can only +# update variables in the function scope. +macro(fix_default_compiler_settings_) + if (MSVC) + # For MSVC, CMake sets certain flags to defaults we want to override. + # This replacement code is taken from sample in the CMake Wiki at + # http://www.cmake.org/Wiki/CMake_FAQ#Dynamic_Replace. + foreach (flag_var + CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) + if (NOT BUILD_SHARED_LIBS AND NOT gtest_force_shared_crt) + # When Google Test is built as a shared library, it should also use + # shared runtime libraries. Otherwise, it may end up with multiple + # copies of runtime library data in different modules, resulting in + # hard-to-find crashes. When it is built as a static library, it is + # preferable to use CRT as static libraries, as we don't have to rely + # on CRT DLLs being available. CMake always defaults to using shared + # CRT libraries, so we override that default here. + string(REPLACE "/MD" "-MT" ${flag_var} "${${flag_var}}") + endif() + + # We prefer more strict warning checking for building Google Test. + # Replaces /W3 with /W4 in defaults. + string(REPLACE "/W3" "-W4" ${flag_var} "${${flag_var}}") + endforeach() + endif() +endmacro() + +# Defines the compiler/linker flags used to build Google Test and +# Google Mock. You can tweak these definitions to suit your need. A +# variable's value is empty before it's explicitly assigned to. +macro(config_compiler_and_linker) + if (NOT gtest_disable_pthreads) + # Defines CMAKE_USE_PTHREADS_INIT and CMAKE_THREAD_LIBS_INIT. + find_package(Threads) + endif() + + fix_default_compiler_settings_() + if (MSVC) + # Newlines inside flags variables break CMake's NMake generator. + # TODO(vladl@google.com): Add -RTCs and -RTCu to debug builds. + set(cxx_base_flags "-GS -W4 -WX -wd4127 -wd4251 -wd4275 -nologo -J -Zi") + if (MSVC_VERSION LESS 1400) + # Suppress spurious warnings MSVC 7.1 sometimes issues. + # Forcing value to bool. + set(cxx_base_flags "${cxx_base_flags} -wd4800") + # Copy constructor and assignment operator could not be generated. + set(cxx_base_flags "${cxx_base_flags} -wd4511 -wd4512") + # Compatibility warnings not applicable to Google Test. + # Resolved overload was found by argument-dependent lookup. + set(cxx_base_flags "${cxx_base_flags} -wd4675") + endif() + set(cxx_base_flags "${cxx_base_flags} -D_UNICODE -DUNICODE -DWIN32 -D_WIN32") + set(cxx_base_flags "${cxx_base_flags} -DSTRICT -DWIN32_LEAN_AND_MEAN") + set(cxx_exception_flags "-EHsc -D_HAS_EXCEPTIONS=1") + set(cxx_no_exception_flags "-D_HAS_EXCEPTIONS=0") + set(cxx_no_rtti_flags "-GR-") + elseif (CMAKE_COMPILER_IS_GNUCXX) + set(cxx_base_flags "-Wall -Wshadow") + set(cxx_exception_flags "-fexceptions") + set(cxx_no_exception_flags "-fno-exceptions") + # Until version 4.3.2, GCC doesn't define a macro to indicate + # whether RTTI is enabled. Therefore we define GTEST_HAS_RTTI + # explicitly. + set(cxx_no_rtti_flags "-fno-rtti -DGTEST_HAS_RTTI=0") + set(cxx_strict_flags + "-Wextra -Wno-unused-parameter -Wno-missing-field-initializers") + elseif (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro") + set(cxx_exception_flags "-features=except") + # Sun Pro doesn't provide macros to indicate whether exceptions and + # RTTI are enabled, so we define GTEST_HAS_* explicitly. + set(cxx_no_exception_flags "-features=no%except -DGTEST_HAS_EXCEPTIONS=0") + set(cxx_no_rtti_flags "-features=no%rtti -DGTEST_HAS_RTTI=0") + elseif (CMAKE_CXX_COMPILER_ID STREQUAL "VisualAge" OR + CMAKE_CXX_COMPILER_ID STREQUAL "XL") + # CMake 2.8 changes Visual Age's compiler ID to "XL". + set(cxx_exception_flags "-qeh") + set(cxx_no_exception_flags "-qnoeh") + # Until version 9.0, Visual Age doesn't define a macro to indicate + # whether RTTI is enabled. Therefore we define GTEST_HAS_RTTI + # explicitly. + set(cxx_no_rtti_flags "-qnortti -DGTEST_HAS_RTTI=0") + elseif (CMAKE_CXX_COMPILER_ID STREQUAL "HP") + set(cxx_base_flags "-AA -mt") + set(cxx_exception_flags "-DGTEST_HAS_EXCEPTIONS=1") + set(cxx_no_exception_flags "+noeh -DGTEST_HAS_EXCEPTIONS=0") + # RTTI can not be disabled in HP aCC compiler. + set(cxx_no_rtti_flags "") + endif() + + if (CMAKE_USE_PTHREADS_INIT) # The pthreads library is available and allowed. + set(cxx_base_flags "${cxx_base_flags} -DGTEST_HAS_PTHREAD=1") + else() + set(cxx_base_flags "${cxx_base_flags} -DGTEST_HAS_PTHREAD=0") + endif() + + # For building gtest's own tests and samples. + set(cxx_exception "${CMAKE_CXX_FLAGS} ${cxx_base_flags} ${cxx_exception_flags}") + set(cxx_no_exception + "${CMAKE_CXX_FLAGS} ${cxx_base_flags} ${cxx_no_exception_flags}") + set(cxx_default "${cxx_exception}") + set(cxx_no_rtti "${cxx_default} ${cxx_no_rtti_flags}") + set(cxx_use_own_tuple "${cxx_default} -DGTEST_USE_OWN_TR1_TUPLE=1") + + # For building the gtest libraries. + set(cxx_strict "${cxx_default} ${cxx_strict_flags}") +endmacro() + +# Defines the gtest & gtest_main libraries. User tests should link +# with one of them. +function(cxx_library_with_type name type cxx_flags) + # type can be either STATIC or SHARED to denote a static or shared library. + # ARGN refers to additional arguments after 'cxx_flags'. + add_library(${name} ${type} ${ARGN}) + set_target_properties(${name} + PROPERTIES + COMPILE_FLAGS "${cxx_flags}") + if (BUILD_SHARED_LIBS OR type STREQUAL "SHARED") + set_target_properties(${name} + PROPERTIES + COMPILE_DEFINITIONS "GTEST_CREATE_SHARED_LIBRARY=1") + endif() + if (CMAKE_USE_PTHREADS_INIT) + target_link_libraries(${name} ${CMAKE_THREAD_LIBS_INIT}) + endif() +endfunction() + +######################################################################## +# +# Helper functions for creating build targets. + +function(cxx_shared_library name cxx_flags) + cxx_library_with_type(${name} SHARED "${cxx_flags}" ${ARGN}) +endfunction() + +function(cxx_library name cxx_flags) + cxx_library_with_type(${name} "" "${cxx_flags}" ${ARGN}) +endfunction() + +# cxx_executable_with_flags(name cxx_flags libs srcs...) +# +# creates a named C++ executable that depends on the given libraries and +# is built from the given source files with the given compiler flags. +function(cxx_executable_with_flags name cxx_flags libs) + add_executable(${name} ${ARGN}) + if (cxx_flags) + set_target_properties(${name} + PROPERTIES + COMPILE_FLAGS "${cxx_flags}") + endif() + if (BUILD_SHARED_LIBS) + set_target_properties(${name} + PROPERTIES + COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1") + endif() + # To support mixing linking in static and dynamic libraries, link each + # library in with an extra call to target_link_libraries. + foreach (lib "${libs}") + target_link_libraries(${name} ${lib}) + endforeach() +endfunction() + +# cxx_executable(name dir lib srcs...) +# +# creates a named target that depends on the given libs and is built +# from the given source files. dir/name.cc is implicitly included in +# the source file list. +function(cxx_executable name dir libs) + cxx_executable_with_flags( + ${name} "${cxx_default}" "${libs}" "${dir}/${name}.cc" ${ARGN}) +endfunction() + +# Sets PYTHONINTERP_FOUND and PYTHON_EXECUTABLE. +find_package(PythonInterp) + +# cxx_test_with_flags(name cxx_flags libs srcs...) +# +# creates a named C++ test that depends on the given libs and is built +# from the given source files with the given compiler flags. +function(cxx_test_with_flags name cxx_flags libs) + cxx_executable_with_flags(${name} "${cxx_flags}" "${libs}" ${ARGN}) + add_test(${name} ${name}) +endfunction() + +# cxx_test(name libs srcs...) +# +# creates a named test target that depends on the given libs and is +# built from the given source files. Unlike cxx_test_with_flags, +# test/name.cc is already implicitly included in the source file list. +function(cxx_test name libs) + cxx_test_with_flags("${name}" "${cxx_default}" "${libs}" + "test/${name}.cc" ${ARGN}) +endfunction() + +# py_test(name) +# +# creates a Python test with the given name whose main module is in +# test/name.py. It does nothing if Python is not installed. +function(py_test name) + # We are not supporting Python tests on Linux yet as they consider + # all Linux environments to be google3 and try to use google3 features. + if (PYTHONINTERP_FOUND) + # ${CMAKE_BINARY_DIR} is known at configuration time, so we can + # directly bind it from cmake. ${CTEST_CONFIGURATION_TYPE} is known + # only at ctest runtime (by calling ctest -c ), so + # we have to escape $ to delay variable substitution here. + add_test(${name} + ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py + --build_dir=${CMAKE_CURRENT_BINARY_DIR}/\${CTEST_CONFIGURATION_TYPE}) + endif() +endfunction() diff --git a/gtest-1.7.0/codegear/gtest.cbproj b/gtest-1.7.0/codegear/gtest.cbproj new file mode 100644 index 0000000..285bb2a --- /dev/null +++ b/gtest-1.7.0/codegear/gtest.cbproj @@ -0,0 +1,138 @@ + + + + {bca37a72-5b07-46cf-b44e-89f8e06451a2} + Release + + + true + + + true + true + Base + + + true + true + Base + + + true + lib + JPHNE + NO_STRICT + true + true + CppStaticLibrary + true + rtl.bpi;vcl.bpi;bcbie.bpi;vclx.bpi;vclactnband.bpi;xmlrtl.bpi;bcbsmp.bpi;dbrtl.bpi;vcldb.bpi;bdertl.bpi;vcldbx.bpi;dsnap.bpi;dsnapcon.bpi;vclib.bpi;ibxpress.bpi;adortl.bpi;dbxcds.bpi;dbexpress.bpi;DbxCommonDriver.bpi;websnap.bpi;vclie.bpi;webdsnap.bpi;inet.bpi;inetdbbde.bpi;inetdbxpress.bpi;soaprtl.bpi;Rave75VCL.bpi;teeUI.bpi;tee.bpi;teedb.bpi;IndyCore.bpi;IndySystem.bpi;IndyProtocols.bpi;IntrawebDB_90_100.bpi;Intraweb_90_100.bpi;dclZipForged11.bpi;vclZipForged11.bpi;GR32_BDS2006.bpi;GR32_DSGN_BDS2006.bpi;Jcl.bpi;JclVcl.bpi;JvCoreD11R.bpi;JvSystemD11R.bpi;JvStdCtrlsD11R.bpi;JvAppFrmD11R.bpi;JvBandsD11R.bpi;JvDBD11R.bpi;JvDlgsD11R.bpi;JvBDED11R.bpi;JvCmpD11R.bpi;JvCryptD11R.bpi;JvCtrlsD11R.bpi;JvCustomD11R.bpi;JvDockingD11R.bpi;JvDotNetCtrlsD11R.bpi;JvEDID11R.bpi;JvGlobusD11R.bpi;JvHMID11R.bpi;JvInterpreterD11R.bpi;JvJansD11R.bpi;JvManagedThreadsD11R.bpi;JvMMD11R.bpi;JvNetD11R.bpi;JvPageCompsD11R.bpi;JvPluginD11R.bpi;JvPrintPreviewD11R.bpi;JvRuntimeDesignD11R.bpi;JvTimeFrameworkD11R.bpi;JvValidatorsD11R.bpi;JvWizardD11R.bpi;JvXPCtrlsD11R.bpi;VclSmp.bpi;CExceptionExpert11.bpi + false + $(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\include;.. + rtl.lib;vcl.lib + 32 + $(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk + + + false + false + true + _DEBUG;$(Defines) + true + false + true + None + DEBUG + true + Debug + true + true + true + $(BDS)\lib\debug;$(ILINK_LibraryPath) + Full + true + + + NDEBUG;$(Defines) + Release + $(BDS)\lib\release;$(ILINK_LibraryPath) + None + + + CPlusPlusBuilder.Personality + CppStaticLibrary + +FalseFalse1000FalseFalseFalseFalseFalse103312521.0.0.01.0.0.0FalseFalseFalseTrueFalse + + + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + FalseTrueTrue3$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\include;..$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\include;..$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\src;..\include1$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk1NO_STRICT13216 + + + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 0 + + + 1 + + + 2 + + + 9 + + + 10 + + + 11 + + + 12 + + + 14 + + + 13 + + + 15 + + + 16 + + + 17 + + + 18 + + + Cfg_1 + + + Cfg_2 + + + \ No newline at end of file diff --git a/gtest-1.7.0/codegear/gtest.groupproj b/gtest-1.7.0/codegear/gtest.groupproj new file mode 100644 index 0000000..849f4c4 --- /dev/null +++ b/gtest-1.7.0/codegear/gtest.groupproj @@ -0,0 +1,54 @@ + + + {c1d923e0-6cba-4332-9b6f-3420acbf5091} + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gtest-1.7.0/codegear/gtest_all.cc b/gtest-1.7.0/codegear/gtest_all.cc new file mode 100644 index 0000000..ba7ad68 --- /dev/null +++ b/gtest-1.7.0/codegear/gtest_all.cc @@ -0,0 +1,38 @@ +// Copyright 2009, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: Josh Kelley (joshkel@gmail.com) +// +// Google C++ Testing Framework (Google Test) +// +// C++Builder's IDE cannot build a static library from files with hyphens +// in their name. See http://qc.codegear.com/wc/qcmain.aspx?d=70977 . +// This file serves as a workaround. + +#include "src/gtest-all.cc" diff --git a/gtest-1.7.0/codegear/gtest_link.cc b/gtest-1.7.0/codegear/gtest_link.cc new file mode 100644 index 0000000..b955ebf --- /dev/null +++ b/gtest-1.7.0/codegear/gtest_link.cc @@ -0,0 +1,40 @@ +// Copyright 2009, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: Josh Kelley (joshkel@gmail.com) +// +// Google C++ Testing Framework (Google Test) +// +// Links gtest.lib and gtest_main.lib into the current project in C++Builder. +// This means that these libraries can't be renamed, but it's the only way to +// ensure that Debug versus Release test builds are linked against the +// appropriate Debug or Release build of the libraries. + +#pragma link "gtest.lib" +#pragma link "gtest_main.lib" diff --git a/gtest-1.7.0/codegear/gtest_main.cbproj b/gtest-1.7.0/codegear/gtest_main.cbproj new file mode 100644 index 0000000..fae32cb --- /dev/null +++ b/gtest-1.7.0/codegear/gtest_main.cbproj @@ -0,0 +1,82 @@ + + + + {bca37a72-5b07-46cf-b44e-89f8e06451a2} + Release + + + true + + + true + true + Base + + + true + true + Base + + + true + lib + JPHNE + NO_STRICT + true + true + CppStaticLibrary + true + rtl.bpi;vcl.bpi;bcbie.bpi;vclx.bpi;vclactnband.bpi;xmlrtl.bpi;bcbsmp.bpi;dbrtl.bpi;vcldb.bpi;bdertl.bpi;vcldbx.bpi;dsnap.bpi;dsnapcon.bpi;vclib.bpi;ibxpress.bpi;adortl.bpi;dbxcds.bpi;dbexpress.bpi;DbxCommonDriver.bpi;websnap.bpi;vclie.bpi;webdsnap.bpi;inet.bpi;inetdbbde.bpi;inetdbxpress.bpi;soaprtl.bpi;Rave75VCL.bpi;teeUI.bpi;tee.bpi;teedb.bpi;IndyCore.bpi;IndySystem.bpi;IndyProtocols.bpi;IntrawebDB_90_100.bpi;Intraweb_90_100.bpi;dclZipForged11.bpi;vclZipForged11.bpi;GR32_BDS2006.bpi;GR32_DSGN_BDS2006.bpi;Jcl.bpi;JclVcl.bpi;JvCoreD11R.bpi;JvSystemD11R.bpi;JvStdCtrlsD11R.bpi;JvAppFrmD11R.bpi;JvBandsD11R.bpi;JvDBD11R.bpi;JvDlgsD11R.bpi;JvBDED11R.bpi;JvCmpD11R.bpi;JvCryptD11R.bpi;JvCtrlsD11R.bpi;JvCustomD11R.bpi;JvDockingD11R.bpi;JvDotNetCtrlsD11R.bpi;JvEDID11R.bpi;JvGlobusD11R.bpi;JvHMID11R.bpi;JvInterpreterD11R.bpi;JvJansD11R.bpi;JvManagedThreadsD11R.bpi;JvMMD11R.bpi;JvNetD11R.bpi;JvPageCompsD11R.bpi;JvPluginD11R.bpi;JvPrintPreviewD11R.bpi;JvRuntimeDesignD11R.bpi;JvTimeFrameworkD11R.bpi;JvValidatorsD11R.bpi;JvWizardD11R.bpi;JvXPCtrlsD11R.bpi;VclSmp.bpi;CExceptionExpert11.bpi + false + $(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\include;.. + rtl.lib;vcl.lib + 32 + $(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk + + + false + false + true + _DEBUG;$(Defines) + true + false + true + None + DEBUG + true + Debug + true + true + true + $(BDS)\lib\debug;$(ILINK_LibraryPath) + Full + true + + + NDEBUG;$(Defines) + Release + $(BDS)\lib\release;$(ILINK_LibraryPath) + None + + + CPlusPlusBuilder.Personality + CppStaticLibrary + +FalseFalse1000FalseFalseFalseFalseFalse103312521.0.0.01.0.0.0FalseFalseFalseTrueFalse + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + FalseTrueTrue3$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\include;..$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\include;..$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\src;..\include1$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk1NO_STRICT13216 + + + + + 0 + + + Cfg_1 + + + Cfg_2 + + + diff --git a/gtest-1.7.0/codegear/gtest_unittest.cbproj b/gtest-1.7.0/codegear/gtest_unittest.cbproj new file mode 100644 index 0000000..33f7056 --- /dev/null +++ b/gtest-1.7.0/codegear/gtest_unittest.cbproj @@ -0,0 +1,88 @@ + + + + {eea63393-5ac5-4b9c-8909-d75fef2daa41} + Release + + + true + + + true + true + Base + + + true + true + Base + + + exe + true + NO_STRICT + JPHNE + true + ..\test + true + CppConsoleApplication + true + true + rtl.bpi;vcl.bpi;bcbie.bpi;vclx.bpi;vclactnband.bpi;xmlrtl.bpi;bcbsmp.bpi;dbrtl.bpi;vcldb.bpi;bdertl.bpi;vcldbx.bpi;dsnap.bpi;dsnapcon.bpi;vclib.bpi;ibxpress.bpi;adortl.bpi;dbxcds.bpi;dbexpress.bpi;DbxCommonDriver.bpi;websnap.bpi;vclie.bpi;webdsnap.bpi;inet.bpi;inetdbbde.bpi;inetdbxpress.bpi;soaprtl.bpi;Rave75VCL.bpi;teeUI.bpi;tee.bpi;teedb.bpi;IndyCore.bpi;IndySystem.bpi;IndyProtocols.bpi;IntrawebDB_90_100.bpi;Intraweb_90_100.bpi;Jcl.bpi;JclVcl.bpi;JvCoreD11R.bpi;JvSystemD11R.bpi;JvStdCtrlsD11R.bpi;JvAppFrmD11R.bpi;JvBandsD11R.bpi;JvDBD11R.bpi;JvDlgsD11R.bpi;JvBDED11R.bpi;JvCmpD11R.bpi;JvCryptD11R.bpi;JvCtrlsD11R.bpi;JvCustomD11R.bpi;JvDockingD11R.bpi;JvDotNetCtrlsD11R.bpi;JvEDID11R.bpi;JvGlobusD11R.bpi;JvHMID11R.bpi;JvInterpreterD11R.bpi;JvJansD11R.bpi;JvManagedThreadsD11R.bpi;JvMMD11R.bpi;JvNetD11R.bpi;JvPageCompsD11R.bpi;JvPluginD11R.bpi;JvPrintPreviewD11R.bpi;JvRuntimeDesignD11R.bpi;JvTimeFrameworkD11R.bpi;JvValidatorsD11R.bpi;JvWizardD11R.bpi;JvXPCtrlsD11R.bpi;VclSmp.bpi + false + $(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\include;..\test;.. + $(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;..\test + true + + + false + false + true + _DEBUG;$(Defines) + true + false + true + None + DEBUG + true + Debug + true + true + true + $(BDS)\lib\debug;$(ILINK_LibraryPath) + Full + true + + + NDEBUG;$(Defines) + Release + $(BDS)\lib\release;$(ILINK_LibraryPath) + None + + + CPlusPlusBuilder.Personality + CppConsoleApplication + +FalseFalse1000FalseFalseFalseFalseFalse103312521.0.0.01.0.0.0FalseFalseFalseTrueFalse + + + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + FalseTrueTrue3$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\include;..\test;..$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\include;..\test$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\include1$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;..\test$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;..\test$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(OUTPUTDIR);..\test2NO_STRICTSTRICT + + + + + 0 + + + 1 + + + Cfg_1 + + + Cfg_2 + + + \ No newline at end of file diff --git a/gtest-1.7.0/config.log b/gtest-1.7.0/config.log new file mode 100644 index 0000000..d0b2119 --- /dev/null +++ b/gtest-1.7.0/config.log @@ -0,0 +1,970 @@ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by Google C++ Testing Framework configure 1.7.0, which was +generated by GNU Autoconf 2.68. Invocation command line was + + $ ./configure CC=/usr/bin/gcc CXX=/usr/bin/g++ CFLAGS=-g3 -gdwarf-2 CXXFLAGS=-g3 -gdwarf-2 + +## --------- ## +## Platform. ## +## --------- ## + +hostname = ubuntu +uname -m = x86_64 +uname -r = 3.5.0-17-generic +uname -s = Linux +uname -v = #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 + +/usr/bin/uname -p = unknown +/bin/uname -X = unknown + +/bin/arch = unknown +/usr/bin/arch -k = unknown +/usr/convex/getsysinfo = unknown +/usr/bin/hostinfo = unknown +/bin/machine = unknown +/usr/bin/oslevel = unknown +/bin/universe = unknown + +PATH: /usr/bin +PATH: /usr/lib/lightdm/lightdm +PATH: /usr/local/sbin +PATH: /usr/local/bin +PATH: /usr/sbin +PATH: /usr/bin +PATH: /sbin +PATH: /bin +PATH: /usr/games +PATH: /usr/local/games + + +## ----------- ## +## Core tests. ## +## ----------- ## + +configure:2293: checking for a BSD-compatible install +configure:2361: result: /usr/bin/install -c +configure:2372: checking whether build environment is sane +configure:2422: result: yes +configure:2563: checking for a thread-safe mkdir -p +configure:2602: result: /bin/mkdir -p +configure:2615: checking for gawk +configure:2645: result: no +configure:2615: checking for mawk +configure:2631: found /usr/bin/mawk +configure:2642: result: mawk +configure:2653: checking whether make sets $(MAKE) +configure:2675: result: yes +configure:2805: checking for gcc +configure:2832: result: /usr/bin/gcc +configure:3061: checking for C compiler version +configure:3070: /usr/bin/gcc --version >&5 +gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2 +Copyright (C) 2012 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. + +configure:3081: $? = 0 +configure:3070: /usr/bin/gcc -v >&5 +Using built-in specs. +COLLECT_GCC=/usr/bin/gcc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) +configure:3081: $? = 0 +configure:3070: /usr/bin/gcc -V >&5 +gcc: error: unrecognized command line option '-V' +gcc: fatal error: no input files +compilation terminated. +configure:3081: $? = 4 +configure:3070: /usr/bin/gcc -qversion >&5 +gcc: error: unrecognized command line option '-qversion' +gcc: fatal error: no input files +compilation terminated. +configure:3081: $? = 4 +configure:3101: checking whether the C compiler works +configure:3123: /usr/bin/gcc -g3 -gdwarf-2 conftest.c >&5 +configure:3127: $? = 0 +configure:3175: result: yes +configure:3178: checking for C compiler default output file name +configure:3180: result: a.out +configure:3186: checking for suffix of executables +configure:3193: /usr/bin/gcc -o conftest -g3 -gdwarf-2 conftest.c >&5 +configure:3197: $? = 0 +configure:3219: result: +configure:3241: checking whether we are cross compiling +configure:3249: /usr/bin/gcc -o conftest -g3 -gdwarf-2 conftest.c >&5 +configure:3253: $? = 0 +configure:3260: ./conftest +configure:3264: $? = 0 +configure:3279: result: no +configure:3284: checking for suffix of object files +configure:3306: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:3310: $? = 0 +configure:3331: result: o +configure:3335: checking whether we are using the GNU C compiler +configure:3354: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:3354: $? = 0 +configure:3363: result: yes +configure:3372: checking whether /usr/bin/gcc accepts -g +configure:3392: /usr/bin/gcc -c -g conftest.c >&5 +configure:3392: $? = 0 +configure:3433: result: yes +configure:3450: checking for /usr/bin/gcc option to accept ISO C89 +configure:3514: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:3514: $? = 0 +configure:3527: result: none needed +configure:3558: checking for style of include used by make +configure:3586: result: GNU +configure:3612: checking dependency style of /usr/bin/gcc +configure:3723: result: gcc3 +configure:3850: checking for C++ compiler version +configure:3859: /usr/bin/g++ --version >&5 +g++ (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2 +Copyright (C) 2012 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. + +configure:3870: $? = 0 +configure:3859: /usr/bin/g++ -v >&5 +Using built-in specs. +COLLECT_GCC=/usr/bin/g++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) +configure:3870: $? = 0 +configure:3859: /usr/bin/g++ -V >&5 +g++: error: unrecognized command line option '-V' +g++: fatal error: no input files +compilation terminated. +configure:3870: $? = 4 +configure:3859: /usr/bin/g++ -qversion >&5 +g++: error: unrecognized command line option '-qversion' +g++: fatal error: no input files +compilation terminated. +configure:3870: $? = 4 +configure:3874: checking whether we are using the GNU C++ compiler +configure:3893: /usr/bin/g++ -c -g3 -gdwarf-2 conftest.cpp >&5 +configure:3893: $? = 0 +configure:3902: result: yes +configure:3911: checking whether /usr/bin/g++ accepts -g +configure:3931: /usr/bin/g++ -c -g conftest.cpp >&5 +configure:3931: $? = 0 +configure:3972: result: yes +configure:3997: checking dependency style of /usr/bin/g++ +configure:4108: result: gcc3 +configure:4158: checking build system type +configure:4172: result: x86_64-unknown-linux-gnu +configure:4192: checking host system type +configure:4205: result: x86_64-unknown-linux-gnu +configure:4246: checking how to print strings +configure:4273: result: printf +configure:4294: checking for a sed that does not truncate output +configure:4358: result: /bin/sed +configure:4376: checking for grep that handles long lines and -e +configure:4434: result: /bin/grep +configure:4439: checking for egrep +configure:4501: result: /bin/grep -E +configure:4506: checking for fgrep +configure:4568: result: /bin/grep -F +configure:4603: checking for ld used by /usr/bin/gcc +configure:4670: result: /usr/bin/ld +configure:4677: checking if the linker (/usr/bin/ld) is GNU ld +configure:4692: result: yes +configure:4704: checking for BSD- or MS-compatible name lister (nm) +configure:4753: result: /usr/bin/nm -B +configure:4883: checking the name lister (/usr/bin/nm -B) interface +configure:4890: /usr/bin/g++ -c -g3 -gdwarf-2 conftest.cpp >&5 +configure:4893: /usr/bin/nm -B "conftest.o" +configure:4896: output +0000000000000000 B some_variable +0000000000000000 n wm4.1.5bdbae50d6ecbf9d44334377b3635566 +configure:4903: result: BSD nm +configure:4906: checking whether ln -s works +configure:4910: result: yes +configure:4918: checking the maximum length of command line arguments +configure:5048: result: 1572864 +configure:5065: checking whether the shell understands some XSI constructs +configure:5075: result: yes +configure:5079: checking whether the shell understands "+=" +configure:5085: result: yes +configure:5120: checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format +configure:5160: result: func_convert_file_noop +configure:5167: checking how to convert x86_64-unknown-linux-gnu file names to toolchain format +configure:5187: result: func_convert_file_noop +configure:5194: checking for /usr/bin/ld option to reload object files +configure:5201: result: -r +configure:5275: checking for objdump +configure:5291: found /usr/bin/objdump +configure:5302: result: objdump +configure:5334: checking how to recognize dependent libraries +configure:5536: result: pass_all +configure:5621: checking for dlltool +configure:5651: result: no +configure:5681: checking how to associate runtime and link libraries +configure:5708: result: printf %s\n +configure:5769: checking for ar +configure:5785: found /usr/bin/ar +configure:5796: result: ar +configure:5833: checking for archiver @FILE support +configure:5850: /usr/bin/g++ -c -g3 -gdwarf-2 conftest.cpp >&5 +configure:5850: $? = 0 +configure:5853: ar cru libconftest.a @conftest.lst >&5 +configure:5856: $? = 0 +configure:5861: ar cru libconftest.a @conftest.lst >&5 +ar: conftest.o: No such file or directory +configure:5864: $? = 1 +configure:5876: result: @ +configure:5934: checking for strip +configure:5950: found /usr/bin/strip +configure:5961: result: strip +configure:6033: checking for ranlib +configure:6049: found /usr/bin/ranlib +configure:6060: result: ranlib +configure:6162: checking command to parse /usr/bin/nm -B output from /usr/bin/gcc object +configure:6282: /usr/bin/g++ -c -g3 -gdwarf-2 conftest.cpp >&5 +configure:6285: $? = 0 +configure:6289: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm +configure:6292: $? = 0 +configure:6358: /usr/bin/g++ -o conftest -g3 -gdwarf-2 conftest.cpp conftstm.o >&5 +configure:6361: $? = 0 +configure:6399: result: ok +configure:6436: checking for sysroot +configure:6466: result: no +configure:6544: /usr/bin/g++ -c -g3 -gdwarf-2 conftest.cpp >&5 +configure:6547: $? = 0 +configure:6723: checking for mt +configure:6739: found /bin/mt +configure:6750: result: mt +configure:6773: checking if mt is a manifest tool +configure:6779: mt '-?' +configure:6787: result: no +configure:7429: checking how to run the C preprocessor +configure:7460: /usr/bin/gcc -E conftest.c +configure:7460: $? = 0 +configure:7474: /usr/bin/gcc -E conftest.c +conftest.c:11:28: fatal error: ac_nonexistent.h: No such file or directory +compilation terminated. +configure:7474: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "Google C++ Testing Framework" +| #define PACKAGE_TARNAME "gtest" +| #define PACKAGE_VERSION "1.7.0" +| #define PACKAGE_STRING "Google C++ Testing Framework 1.7.0" +| #define PACKAGE_BUGREPORT "googletestframework@googlegroups.com" +| #define PACKAGE_URL "" +| #define PACKAGE "gtest" +| #define VERSION "1.7.0" +| /* end confdefs.h. */ +| #include +configure:7499: result: /usr/bin/gcc -E +configure:7519: /usr/bin/gcc -E conftest.c +configure:7519: $? = 0 +configure:7533: /usr/bin/gcc -E conftest.c +conftest.c:11:28: fatal error: ac_nonexistent.h: No such file or directory +compilation terminated. +configure:7533: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "Google C++ Testing Framework" +| #define PACKAGE_TARNAME "gtest" +| #define PACKAGE_VERSION "1.7.0" +| #define PACKAGE_STRING "Google C++ Testing Framework 1.7.0" +| #define PACKAGE_BUGREPORT "googletestframework@googlegroups.com" +| #define PACKAGE_URL "" +| #define PACKAGE "gtest" +| #define VERSION "1.7.0" +| /* end confdefs.h. */ +| #include +configure:7562: checking for ANSI C header files +configure:7582: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:7582: $? = 0 +configure:7655: /usr/bin/gcc -o conftest -g3 -gdwarf-2 conftest.c >&5 +configure:7655: $? = 0 +configure:7655: ./conftest +configure:7655: $? = 0 +configure:7666: result: yes +configure:7679: checking for sys/types.h +configure:7679: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:7679: $? = 0 +configure:7679: result: yes +configure:7679: checking for sys/stat.h +configure:7679: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:7679: $? = 0 +configure:7679: result: yes +configure:7679: checking for stdlib.h +configure:7679: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:7679: $? = 0 +configure:7679: result: yes +configure:7679: checking for string.h +configure:7679: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:7679: $? = 0 +configure:7679: result: yes +configure:7679: checking for memory.h +configure:7679: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:7679: $? = 0 +configure:7679: result: yes +configure:7679: checking for strings.h +configure:7679: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:7679: $? = 0 +configure:7679: result: yes +configure:7679: checking for inttypes.h +configure:7679: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:7679: $? = 0 +configure:7679: result: yes +configure:7679: checking for stdint.h +configure:7679: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:7679: $? = 0 +configure:7679: result: yes +configure:7679: checking for unistd.h +configure:7679: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:7679: $? = 0 +configure:7679: result: yes +configure:7693: checking for dlfcn.h +configure:7693: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:7693: $? = 0 +configure:7693: result: yes +configure:7909: checking for objdir +configure:7924: result: .libs +configure:8195: checking if /usr/bin/gcc supports -fno-rtti -fno-exceptions +configure:8213: /usr/bin/gcc -c -g3 -gdwarf-2 -fno-rtti -fno-exceptions conftest.c >&5 +cc1: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C [enabled by default] +configure:8217: $? = 0 +configure:8230: result: no +configure:8557: checking for /usr/bin/gcc option to produce PIC +configure:8564: result: -fPIC -DPIC +configure:8572: checking if /usr/bin/gcc PIC flag -fPIC -DPIC works +configure:8590: /usr/bin/gcc -c -g3 -gdwarf-2 -fPIC -DPIC -DPIC conftest.c >&5 +configure:8594: $? = 0 +configure:8607: result: yes +configure:8636: checking if /usr/bin/gcc static flag -static works +configure:8664: result: yes +configure:8679: checking if /usr/bin/gcc supports -c -o file.o +configure:8700: /usr/bin/gcc -c -g3 -gdwarf-2 -o out/conftest2.o conftest.c >&5 +configure:8704: $? = 0 +configure:8726: result: yes +configure:8734: checking if /usr/bin/gcc supports -c -o file.o +configure:8781: result: yes +configure:8814: checking whether the /usr/bin/gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries +configure:9971: result: yes +configure:10008: checking whether -lc should be explicitly linked in +configure:10016: /usr/bin/gcc -c -g3 -gdwarf-2 conftest.c >&5 +configure:10019: $? = 0 +configure:10034: /usr/bin/gcc -shared -fPIC -DPIC conftest.o -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /bin/grep -lc \>/dev/null 2\>\&1 +configure:10037: $? = 0 +configure:10051: result: no +configure:10211: checking dynamic linker characteristics +configure:10722: /usr/bin/gcc -o conftest -g3 -gdwarf-2 -Wl,-rpath -Wl,/foo conftest.c >&5 +configure:10722: $? = 0 +configure:10956: result: GNU/Linux ld.so +configure:11063: checking how to hardcode library paths into programs +configure:11088: result: immediate +configure:11628: checking whether stripping libraries is possible +configure:11633: result: yes +configure:11668: checking if libtool supports shared libraries +configure:11670: result: yes +configure:11673: checking whether to build shared libraries +configure:11694: result: yes +configure:11697: checking whether to build static libraries +configure:11701: result: yes +configure:11724: checking how to run the C++ preprocessor +configure:11751: /usr/bin/g++ -E conftest.cpp +configure:11751: $? = 0 +configure:11765: /usr/bin/g++ -E conftest.cpp +conftest.cpp:23:28: fatal error: ac_nonexistent.h: No such file or directory +compilation terminated. +configure:11765: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "Google C++ Testing Framework" +| #define PACKAGE_TARNAME "gtest" +| #define PACKAGE_VERSION "1.7.0" +| #define PACKAGE_STRING "Google C++ Testing Framework 1.7.0" +| #define PACKAGE_BUGREPORT "googletestframework@googlegroups.com" +| #define PACKAGE_URL "" +| #define PACKAGE "gtest" +| #define VERSION "1.7.0" +| #define STDC_HEADERS 1 +| #define HAVE_SYS_TYPES_H 1 +| #define HAVE_SYS_STAT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_MEMORY_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_DLFCN_H 1 +| #define LT_OBJDIR ".libs/" +| /* end confdefs.h. */ +| #include +configure:11790: result: /usr/bin/g++ -E +configure:11810: /usr/bin/g++ -E conftest.cpp +configure:11810: $? = 0 +configure:11824: /usr/bin/g++ -E conftest.cpp +conftest.cpp:23:28: fatal error: ac_nonexistent.h: No such file or directory +compilation terminated. +configure:11824: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "Google C++ Testing Framework" +| #define PACKAGE_TARNAME "gtest" +| #define PACKAGE_VERSION "1.7.0" +| #define PACKAGE_STRING "Google C++ Testing Framework 1.7.0" +| #define PACKAGE_BUGREPORT "googletestframework@googlegroups.com" +| #define PACKAGE_URL "" +| #define PACKAGE "gtest" +| #define VERSION "1.7.0" +| #define STDC_HEADERS 1 +| #define HAVE_SYS_TYPES_H 1 +| #define HAVE_SYS_STAT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_MEMORY_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_DLFCN_H 1 +| #define LT_OBJDIR ".libs/" +| /* end confdefs.h. */ +| #include +configure:11993: checking for ld used by /usr/bin/g++ +configure:12060: result: /usr/bin/ld -m elf_x86_64 +configure:12067: checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld +configure:12082: result: yes +configure:12137: checking whether the /usr/bin/g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries +configure:13142: result: yes +configure:13178: /usr/bin/g++ -c -g3 -gdwarf-2 conftest.cpp >&5 +configure:13181: $? = 0 +configure:13701: checking for /usr/bin/g++ option to produce PIC +configure:13708: result: -fPIC -DPIC +configure:13716: checking if /usr/bin/g++ PIC flag -fPIC -DPIC works +configure:13734: /usr/bin/g++ -c -g3 -gdwarf-2 -fPIC -DPIC -DPIC conftest.cpp >&5 +configure:13738: $? = 0 +configure:13751: result: yes +configure:13774: checking if /usr/bin/g++ static flag -static works +configure:13802: result: yes +configure:13814: checking if /usr/bin/g++ supports -c -o file.o +configure:13835: /usr/bin/g++ -c -g3 -gdwarf-2 -o out/conftest2.o conftest.cpp >&5 +configure:13839: $? = 0 +configure:13861: result: yes +configure:13866: checking if /usr/bin/g++ supports -c -o file.o +configure:13913: result: yes +configure:13943: checking whether the /usr/bin/g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries +configure:13982: result: yes +configure:14123: checking dynamic linker characteristics +configure:14802: result: GNU/Linux ld.so +configure:14855: checking how to hardcode library paths into programs +configure:14880: result: immediate +configure:14950: checking for python +configure:14968: found /usr/bin/python +configure:14981: result: /usr/bin/python +configure:14999: /usr/bin/python -c import sys # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. # map returns an iterator in Python 3.0 and a list in 2.x minver = list(map(int, '2.3'.split('.'))) + [0, 0, 0] minverhex = 0 # xrange is not present in Python 3.0 and range returns an iterator for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i] sys.exit(sys.hexversion < minverhex) +configure:15002: $? = 0 +configure:15195: checking for the pthreads library -lpthreads +configure:15228: /usr/bin/gcc -o conftest -g3 -gdwarf-2 conftest.c -lpthreads >&5 +/usr/bin/ld: cannot find -lpthreads +collect2: error: ld returned 1 exit status +configure:15228: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "Google C++ Testing Framework" +| #define PACKAGE_TARNAME "gtest" +| #define PACKAGE_VERSION "1.7.0" +| #define PACKAGE_STRING "Google C++ Testing Framework 1.7.0" +| #define PACKAGE_BUGREPORT "googletestframework@googlegroups.com" +| #define PACKAGE_URL "" +| #define PACKAGE "gtest" +| #define VERSION "1.7.0" +| #define STDC_HEADERS 1 +| #define HAVE_SYS_TYPES_H 1 +| #define HAVE_SYS_STAT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_MEMORY_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_DLFCN_H 1 +| #define LT_OBJDIR ".libs/" +| /* end confdefs.h. */ +| #include +| int +| main () +| { +| pthread_t th; pthread_join(th, 0); +| pthread_attr_init(0); pthread_cleanup_push(0, 0); +| pthread_create(0,0,0,0); pthread_cleanup_pop(0); +| ; +| return 0; +| } +configure:15237: result: no +configure:15140: checking whether pthreads work without any flags +configure:15228: /usr/bin/gcc -o conftest -g3 -gdwarf-2 conftest.c >&5 +/tmp/ccmyPrMn.o: In function `main': +/host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/conftest.c:27: undefined reference to `pthread_join' +/host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/conftest.c:28: undefined reference to `__pthread_register_cancel' +/host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/conftest.c:29: undefined reference to `pthread_create' +/host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/conftest.c:29: undefined reference to `__pthread_unregister_cancel' +collect2: error: ld returned 1 exit status +configure:15228: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "Google C++ Testing Framework" +| #define PACKAGE_TARNAME "gtest" +| #define PACKAGE_VERSION "1.7.0" +| #define PACKAGE_STRING "Google C++ Testing Framework 1.7.0" +| #define PACKAGE_BUGREPORT "googletestframework@googlegroups.com" +| #define PACKAGE_URL "" +| #define PACKAGE "gtest" +| #define VERSION "1.7.0" +| #define STDC_HEADERS 1 +| #define HAVE_SYS_TYPES_H 1 +| #define HAVE_SYS_STAT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_MEMORY_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_DLFCN_H 1 +| #define LT_OBJDIR ".libs/" +| /* end confdefs.h. */ +| #include +| int +| main () +| { +| pthread_t th; pthread_join(th, 0); +| pthread_attr_init(0); pthread_cleanup_push(0, 0); +| pthread_create(0,0,0,0); pthread_cleanup_pop(0); +| ; +| return 0; +| } +configure:15237: result: no +configure:15145: checking whether pthreads work with -Kthread +configure:15228: /usr/bin/gcc -o conftest -g3 -gdwarf-2 -Kthread conftest.c >&5 +gcc: error: unrecognized command line option '-Kthread' +configure:15228: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "Google C++ Testing Framework" +| #define PACKAGE_TARNAME "gtest" +| #define PACKAGE_VERSION "1.7.0" +| #define PACKAGE_STRING "Google C++ Testing Framework 1.7.0" +| #define PACKAGE_BUGREPORT "googletestframework@googlegroups.com" +| #define PACKAGE_URL "" +| #define PACKAGE "gtest" +| #define VERSION "1.7.0" +| #define STDC_HEADERS 1 +| #define HAVE_SYS_TYPES_H 1 +| #define HAVE_SYS_STAT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_MEMORY_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_DLFCN_H 1 +| #define LT_OBJDIR ".libs/" +| /* end confdefs.h. */ +| #include +| int +| main () +| { +| pthread_t th; pthread_join(th, 0); +| pthread_attr_init(0); pthread_cleanup_push(0, 0); +| pthread_create(0,0,0,0); pthread_cleanup_pop(0); +| ; +| return 0; +| } +configure:15237: result: no +configure:15145: checking whether pthreads work with -kthread +configure:15228: /usr/bin/gcc -o conftest -g3 -gdwarf-2 -kthread conftest.c >&5 +gcc: error: unrecognized command line option '-kthread' +configure:15228: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "Google C++ Testing Framework" +| #define PACKAGE_TARNAME "gtest" +| #define PACKAGE_VERSION "1.7.0" +| #define PACKAGE_STRING "Google C++ Testing Framework 1.7.0" +| #define PACKAGE_BUGREPORT "googletestframework@googlegroups.com" +| #define PACKAGE_URL "" +| #define PACKAGE "gtest" +| #define VERSION "1.7.0" +| #define STDC_HEADERS 1 +| #define HAVE_SYS_TYPES_H 1 +| #define HAVE_SYS_STAT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_MEMORY_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_DLFCN_H 1 +| #define LT_OBJDIR ".libs/" +| /* end confdefs.h. */ +| #include +| int +| main () +| { +| pthread_t th; pthread_join(th, 0); +| pthread_attr_init(0); pthread_cleanup_push(0, 0); +| pthread_create(0,0,0,0); pthread_cleanup_pop(0); +| ; +| return 0; +| } +configure:15237: result: no +configure:15195: checking for the pthreads library -llthread +configure:15228: /usr/bin/gcc -o conftest -g3 -gdwarf-2 conftest.c -llthread >&5 +/usr/bin/ld: cannot find -llthread +collect2: error: ld returned 1 exit status +configure:15228: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "Google C++ Testing Framework" +| #define PACKAGE_TARNAME "gtest" +| #define PACKAGE_VERSION "1.7.0" +| #define PACKAGE_STRING "Google C++ Testing Framework 1.7.0" +| #define PACKAGE_BUGREPORT "googletestframework@googlegroups.com" +| #define PACKAGE_URL "" +| #define PACKAGE "gtest" +| #define VERSION "1.7.0" +| #define STDC_HEADERS 1 +| #define HAVE_SYS_TYPES_H 1 +| #define HAVE_SYS_STAT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_MEMORY_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_DLFCN_H 1 +| #define LT_OBJDIR ".libs/" +| /* end confdefs.h. */ +| #include +| int +| main () +| { +| pthread_t th; pthread_join(th, 0); +| pthread_attr_init(0); pthread_cleanup_push(0, 0); +| pthread_create(0,0,0,0); pthread_cleanup_pop(0); +| ; +| return 0; +| } +configure:15237: result: no +configure:15145: checking whether pthreads work with -pthread +configure:15228: /usr/bin/gcc -o conftest -g3 -gdwarf-2 -pthread conftest.c >&5 +configure:15228: $? = 0 +configure:15237: result: yes +configure:15256: checking for joinable pthread attribute +configure:15271: /usr/bin/gcc -o conftest -g3 -gdwarf-2 -pthread conftest.c >&5 +configure:15271: $? = 0 +configure:15277: result: PTHREAD_CREATE_JOINABLE +configure:15287: checking if more special flags are required for pthreads +configure:15294: result: no +configure:15383: checking whether to check for GCC pthread/shared inconsistencies +configure:15396: /usr/bin/gcc -o conftest -shared -fPIC -Wl,-z,defs -g3 -gdwarf-2 -pthread conftest.c >&5 +configure:15396: $? = 0 +configure:15408: result: yes +configure:15414: checking whether -pthread is sufficient with -shared +configure:15429: /usr/bin/gcc -o conftest -shared -fPIC -Wl,-z,defs -g3 -gdwarf-2 -pthread conftest.c >&5 +configure:15429: $? = 0 +configure:15436: result: yes +configure:15718: creating ./config.status + +## ---------------------- ## +## Running config.status. ## +## ---------------------- ## + +This file was extended by Google C++ Testing Framework config.status 1.7.0, which was +generated by GNU Autoconf 2.68. Invocation command line was + + CONFIG_FILES = + CONFIG_HEADERS = + CONFIG_LINKS = + CONFIG_COMMANDS = + $ ./config.status + +on ubuntu + +config.status:1162: creating Makefile +config.status:1162: creating scripts/gtest-config +config.status:1162: creating build-aux/config.h +config.status:1391: executing depfiles commands +config.status:1391: executing libtool commands + +## ---------------- ## +## Cache variables. ## +## ---------------- ## + +ac_cv_build=x86_64-unknown-linux-gnu +ac_cv_c_compiler_gnu=yes +ac_cv_cxx_compiler_gnu=yes +ac_cv_env_CCC_set= +ac_cv_env_CCC_value= +ac_cv_env_CC_set=set +ac_cv_env_CC_value=/usr/bin/gcc +ac_cv_env_CFLAGS_set=set +ac_cv_env_CFLAGS_value='-g3 -gdwarf-2' +ac_cv_env_CPPFLAGS_set= +ac_cv_env_CPPFLAGS_value= +ac_cv_env_CPP_set= +ac_cv_env_CPP_value= +ac_cv_env_CXXCPP_set= +ac_cv_env_CXXCPP_value= +ac_cv_env_CXXFLAGS_set=set +ac_cv_env_CXXFLAGS_value='-g3 -gdwarf-2' +ac_cv_env_CXX_set=set +ac_cv_env_CXX_value=/usr/bin/g++ +ac_cv_env_LDFLAGS_set= +ac_cv_env_LDFLAGS_value= +ac_cv_env_LIBS_set= +ac_cv_env_LIBS_value= +ac_cv_env_build_alias_set= +ac_cv_env_build_alias_value= +ac_cv_env_host_alias_set= +ac_cv_env_host_alias_value= +ac_cv_env_target_alias_set= +ac_cv_env_target_alias_value= +ac_cv_header_dlfcn_h=yes +ac_cv_header_inttypes_h=yes +ac_cv_header_memory_h=yes +ac_cv_header_stdc=yes +ac_cv_header_stdint_h=yes +ac_cv_header_stdlib_h=yes +ac_cv_header_string_h=yes +ac_cv_header_strings_h=yes +ac_cv_header_sys_stat_h=yes +ac_cv_header_sys_types_h=yes +ac_cv_header_unistd_h=yes +ac_cv_host=x86_64-unknown-linux-gnu +ac_cv_objext=o +ac_cv_path_EGREP='/bin/grep -E' +ac_cv_path_FGREP='/bin/grep -F' +ac_cv_path_GREP=/bin/grep +ac_cv_path_PYTHON=/usr/bin/python +ac_cv_path_SED=/bin/sed +ac_cv_path_install='/usr/bin/install -c' +ac_cv_path_mkdir=/bin/mkdir +ac_cv_prog_AWK=mawk +ac_cv_prog_CPP='/usr/bin/gcc -E' +ac_cv_prog_CXXCPP='/usr/bin/g++ -E' +ac_cv_prog_ac_ct_AR=ar +ac_cv_prog_ac_ct_CC=/usr/bin/gcc +ac_cv_prog_ac_ct_MANIFEST_TOOL=mt +ac_cv_prog_ac_ct_OBJDUMP=objdump +ac_cv_prog_ac_ct_RANLIB=ranlib +ac_cv_prog_ac_ct_STRIP=strip +ac_cv_prog_cc_c89= +ac_cv_prog_cc_g=yes +ac_cv_prog_cxx_g=yes +ac_cv_prog_make_make_set=yes +am_cv_CC_dependencies_compiler_type=gcc3 +am_cv_CXX_dependencies_compiler_type=gcc3 +lt_cv_ar_at_file=@ +lt_cv_archive_cmds_need_lc=no +lt_cv_deplibs_check_method=pass_all +lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_ld_reload_flag=-r +lt_cv_nm_interface='BSD nm' +lt_cv_objdir=.libs +lt_cv_path_LD=/usr/bin/ld +lt_cv_path_LDCXX='/usr/bin/ld -m elf_x86_64' +lt_cv_path_NM='/usr/bin/nm -B' +lt_cv_path_mainfest_tool=no +lt_cv_prog_compiler_c_o=yes +lt_cv_prog_compiler_c_o_CXX=yes +lt_cv_prog_compiler_pic='-fPIC -DPIC' +lt_cv_prog_compiler_pic_CXX='-fPIC -DPIC' +lt_cv_prog_compiler_pic_works=yes +lt_cv_prog_compiler_pic_works_CXX=yes +lt_cv_prog_compiler_rtti_exceptions=no +lt_cv_prog_compiler_static_works=yes +lt_cv_prog_compiler_static_works_CXX=yes +lt_cv_prog_gnu_ld=yes +lt_cv_prog_gnu_ldcxx=yes +lt_cv_sharedlib_from_linklib_cmd='printf %s\n' +lt_cv_shlibpath_overrides_runpath=no +lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\''' +lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \([^ ]*\)[ ]*$/ {\"\1\", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/ {"\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/^[ABCDGIRSTW]* \([^ ]*\) \(lib[^ ]*\)$/ {"\2", (void *) \&\2},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/ {"lib\2", (void *) \&\2},/p'\''' +lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\''' +lt_cv_sys_max_cmd_len=1572864 +lt_cv_to_host_file_cmd=func_convert_file_noop +lt_cv_to_tool_file_cmd=func_convert_file_noop + +## ----------------- ## +## Output variables. ## +## ----------------- ## + +ACLOCAL='${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run aclocal-1.11' +AMDEPBACKSLASH='\' +AMDEP_FALSE='#' +AMDEP_TRUE='' +AMTAR='$${TAR-tar}' +AR='ar' +AUTOCONF='${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run autoconf' +AUTOHEADER='${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run autoheader' +AUTOMAKE='${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run automake-1.11' +AWK='mawk' +CC='/usr/bin/gcc' +CCDEPMODE='depmode=gcc3' +CFLAGS='-g3 -gdwarf-2' +CPP='/usr/bin/gcc -E' +CPPFLAGS='' +CXX='/usr/bin/g++' +CXXCPP='/usr/bin/g++ -E' +CXXDEPMODE='depmode=gcc3' +CXXFLAGS='-g3 -gdwarf-2' +CYGPATH_W='echo' +DEFS='-DHAVE_CONFIG_H' +DEPDIR='.deps' +DLLTOOL='false' +DSYMUTIL='' +DUMPBIN='' +ECHO_C='' +ECHO_N='-n' +ECHO_T='' +EGREP='/bin/grep -E' +EXEEXT='' +FGREP='/bin/grep -F' +GREP='/bin/grep' +HAVE_PTHREADS_FALSE='#' +HAVE_PTHREADS_TRUE='' +HAVE_PYTHON_FALSE='#' +HAVE_PYTHON_TRUE='' +INSTALL_DATA='${INSTALL} -m 644' +INSTALL_PROGRAM='${INSTALL}' +INSTALL_SCRIPT='${INSTALL}' +INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' +LD='/usr/bin/ld -m elf_x86_64' +LDFLAGS='' +LIBOBJS='' +LIBS='' +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +LIPO='' +LN_S='ln -s' +LTLIBOBJS='' +MAKEINFO='${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run makeinfo' +MANIFEST_TOOL=':' +MKDIR_P='/bin/mkdir -p' +NM='/usr/bin/nm -B' +NMEDIT='' +OBJDUMP='objdump' +OBJEXT='o' +OTOOL64='' +OTOOL='' +PACKAGE='gtest' +PACKAGE_BUGREPORT='googletestframework@googlegroups.com' +PACKAGE_NAME='Google C++ Testing Framework' +PACKAGE_STRING='Google C++ Testing Framework 1.7.0' +PACKAGE_TARNAME='gtest' +PACKAGE_URL='' +PACKAGE_VERSION='1.7.0' +PATH_SEPARATOR=':' +PTHREAD_CC='/usr/bin/gcc' +PTHREAD_CFLAGS='-pthread' +PTHREAD_LIBS='' +PYTHON='/usr/bin/python' +RANLIB='ranlib' +SED='/bin/sed' +SET_MAKE='' +SHELL='/bin/bash' +STRIP='strip' +VERSION='1.7.0' +ac_ct_AR='ar' +ac_ct_CC='/usr/bin/gcc' +ac_ct_CXX='' +ac_ct_DUMPBIN='' +acx_pthread_config='' +am__EXEEXT_FALSE='' +am__EXEEXT_TRUE='#' +am__fastdepCC_FALSE='#' +am__fastdepCC_TRUE='' +am__fastdepCXX_FALSE='#' +am__fastdepCXX_TRUE='' +am__include='include' +am__isrc='' +am__leading_dot='.' +am__nodep='_no' +am__quote='' +am__tar='$${TAR-tar} chof - "$$tardir"' +am__untar='$${TAR-tar} xf -' +bindir='${exec_prefix}/bin' +build='x86_64-unknown-linux-gnu' +build_alias='' +build_cpu='x86_64' +build_os='linux-gnu' +build_vendor='unknown' +datadir='${datarootdir}' +datarootdir='${prefix}/share' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +dvidir='${docdir}' +exec_prefix='${prefix}' +host='x86_64-unknown-linux-gnu' +host_alias='' +host_cpu='x86_64' +host_os='linux-gnu' +host_vendor='unknown' +htmldir='${docdir}' +includedir='${prefix}/include' +infodir='${datarootdir}/info' +install_sh='${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/install-sh' +libdir='${exec_prefix}/lib' +libexecdir='${exec_prefix}/libexec' +localedir='${datarootdir}/locale' +localstatedir='${prefix}/var' +mandir='${datarootdir}/man' +mkdir_p='/bin/mkdir -p' +oldincludedir='/usr/include' +pdfdir='${docdir}' +prefix='/usr/local' +program_transform_name='s,x,x,' +psdir='${docdir}' +sbindir='${exec_prefix}/sbin' +sharedstatedir='${prefix}/com' +sysconfdir='${prefix}/etc' +target_alias='' + +## ----------- ## +## confdefs.h. ## +## ----------- ## + +/* confdefs.h */ +#define PACKAGE_NAME "Google C++ Testing Framework" +#define PACKAGE_TARNAME "gtest" +#define PACKAGE_VERSION "1.7.0" +#define PACKAGE_STRING "Google C++ Testing Framework 1.7.0" +#define PACKAGE_BUGREPORT "googletestframework@googlegroups.com" +#define PACKAGE_URL "" +#define PACKAGE "gtest" +#define VERSION "1.7.0" +#define STDC_HEADERS 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRING_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_DLFCN_H 1 +#define LT_OBJDIR ".libs/" +#define HAVE_PTHREAD 1 + +configure: exit 0 diff --git a/gtest-1.7.0/config.status b/gtest-1.7.0/config.status new file mode 100644 index 0000000..6982d0b --- /dev/null +++ b/gtest-1.7.0/config.status @@ -0,0 +1,2296 @@ +#! /bin/bash +# Generated by configure. +# 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-/bin/bash} +export SHELL +## -------------------- ## +## 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 -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +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 + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# 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. ## +## ----------------------------------- ## +# 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 Google C++ Testing Framework $as_me 1.7.0, which was +generated by GNU Autoconf 2.68. 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` +" + +# Files that config.status was made for. +config_files=" Makefile scripts/gtest-config" +config_headers=" build-aux/config.h" +config_commands=" depfiles libtool" + +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 ." + +ac_cs_config="'CC=/usr/bin/gcc' 'CXX=/usr/bin/g++' 'CFLAGS=-g3 -gdwarf-2' 'CXXFLAGS=-g3 -gdwarf-2'" +ac_cs_version="\ +Google C++ Testing Framework config.status 1.7.0 +configured by ./configure, generated by GNU Autoconf 2.68, + with options \"$ac_cs_config\" + +Copyright (C) 2010 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='/host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0' +srcdir='.' +INSTALL='/usr/bin/install -c' +MKDIR_P='/bin/mkdir -p' +AWK='mawk' +test -n "$AWK" || AWK=awk +# 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 + +if $ac_cs_recheck; then + set X '/bin/bash' './configure' 'CC=/usr/bin/gcc' 'CXX=/usr/bin/g++' 'CFLAGS=-g3 -gdwarf-2' 'CXXFLAGS=-g3 -gdwarf-2' $ac_configure_extra_args --no-create --no-recursion + shift + $as_echo "running CONFIG_SHELL=/bin/bash $*" >&6 + CONFIG_SHELL='/bin/bash' + export CONFIG_SHELL + exec "$@" +fi + +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 + +# +# INIT-COMMANDS +# +AMDEP_TRUE="" ac_aux_dir="build-aux" + + +# 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='s/\(["`$\\]\)/\\\1/g' +double_quote_subst='s/\(["`\\]\)/\\\1/g' +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' +macro_version='2.4.2' +macro_revision='1.3337' +enable_shared='yes' +enable_static='yes' +pic_mode='default' +enable_fast_install='yes' +SHELL='/bin/bash' +ECHO='printf %s\n' +PATH_SEPARATOR=':' +host_alias='' +host='x86_64-unknown-linux-gnu' +host_os='linux-gnu' +build_alias='' +build='x86_64-unknown-linux-gnu' +build_os='linux-gnu' +SED='/bin/sed' +Xsed='/bin/sed -e 1s/^X//' +GREP='/bin/grep' +EGREP='/bin/grep -E' +FGREP='/bin/grep -F' +LD='/usr/bin/ld -m elf_x86_64' +NM='/usr/bin/nm -B' +LN_S='ln -s' +max_cmd_len='1572864' +ac_objext='o' +exeext='' +lt_unset='unset' +lt_SP2NL='tr \040 \012' +lt_NL2SP='tr \015\012 \040\040' +lt_cv_to_host_file_cmd='func_convert_file_noop' +lt_cv_to_tool_file_cmd='func_convert_file_noop' +reload_flag=' -r' +reload_cmds='$LD$reload_flag -o $output$reload_objs' +OBJDUMP='objdump' +deplibs_check_method='pass_all' +file_magic_cmd='$MAGIC_CMD' +file_magic_glob='' +want_nocaseglob='no' +DLLTOOL='false' +sharedlib_from_linklib_cmd='printf %s\n' +AR='ar' +AR_FLAGS='cru' +archiver_list_spec='@' +STRIP='strip' +RANLIB='ranlib' +old_postinstall_cmds='chmod 644 $oldlib~$RANLIB $tool_oldlib' +old_postuninstall_cmds='' +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs~$RANLIB $tool_oldlib' +lock_old_archive_extraction='no' +CC='/usr/bin/gcc' +CFLAGS='-g3 -gdwarf-2' +compiler='/usr/bin/g++' +GCC='yes' +lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\''' +lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\''' +lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \([^ ]*\)[ ]*$/ {\"\1\", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/ {"\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/^[ABCDGIRSTW]* \([^ ]*\) \(lib[^ ]*\)$/ {"\2", (void *) \&\2},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/ {"lib\2", (void *) \&\2},/p'\''' +nm_file_list_spec='@' +lt_sysroot='' +objdir='.libs' +MAGIC_CMD='file' +lt_prog_compiler_no_builtin_flag=' -fno-builtin' +lt_prog_compiler_pic=' -fPIC -DPIC' +lt_prog_compiler_wl='-Wl,' +lt_prog_compiler_static='-static' +lt_cv_prog_compiler_c_o='yes' +need_locks='no' +MANIFEST_TOOL=':' +DSYMUTIL='' +NMEDIT='' +LIPO='' +OTOOL='' +OTOOL64='' +libext='a' +shrext_cmds='.so' +extract_expsyms_cmds='' +archive_cmds_need_lc='no' +enable_shared_with_static_runtimes='no' +export_dynamic_flag_spec='${wl}--export-dynamic' +whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' +compiler_needs_object='no' +old_archive_from_new_cmds='' +old_archive_from_expsyms_cmds='' +archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +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 -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' +module_cmds='' +module_expsym_cmds='' +with_gnu_ld='yes' +allow_undefined_flag='' +no_undefined_flag='' +hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' +hardcode_libdir_separator='' +hardcode_direct='no' +hardcode_direct_absolute='no' +hardcode_minus_L='no' +hardcode_shlibpath_var='unsupported' +hardcode_automatic='no' +inherit_rpath='no' +link_all_deplibs='no' +always_export_symbols='no' +export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' +exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' +include_expsyms='' +prelink_cmds='' +postlink_cmds='' +file_list_spec='' +variables_saved_for_relink='PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH' +need_lib_prefix='no' +need_version='no' +version_type='linux' +runpath_var='LD_RUN_PATH' +shlibpath_var='LD_LIBRARY_PATH' +shlibpath_overrides_runpath='no' +libname_spec='lib$name' +library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' +soname_spec='${libname}${release}${shared_ext}$major' +install_override_mode='' +postinstall_cmds='' +postuninstall_cmds='' +finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' +finish_eval='' +hardcode_into_libs='yes' +sys_lib_search_path_spec='/usr/lib/gcc/x86_64-linux-gnu/4.7 /usr/lib/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib ' +sys_lib_dlsearch_path_spec='/lib /usr/lib /usr/local/lib /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/mesa ' +hardcode_action='immediate' +enable_dlopen='unknown' +enable_dlopen_self='unknown' +enable_dlopen_self_static='unknown' +old_striplib='strip --strip-debug' +striplib='strip --strip-unneeded' +compiler_lib_search_dirs='' +predep_objects='' +postdep_objects='' +predeps='' +postdeps='' +compiler_lib_search_path='' +LD_CXX='/usr/bin/ld -m elf_x86_64' +reload_flag_CXX=' -r' +reload_cmds_CXX='$LD$reload_flag -o $output$reload_objs' +old_archive_cmds_CXX='$AR $AR_FLAGS $oldlib$oldobjs~$RANLIB $tool_oldlib' +compiler_CXX='/usr/bin/g++' +GCC_CXX='yes' +lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' +lt_prog_compiler_pic_CXX=' -fPIC -DPIC' +lt_prog_compiler_wl_CXX='-Wl,' +lt_prog_compiler_static_CXX='-static' +lt_cv_prog_compiler_c_o_CXX='yes' +archive_cmds_need_lc_CXX='no' +enable_shared_with_static_runtimes_CXX='no' +export_dynamic_flag_spec_CXX='${wl}--export-dynamic' +whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' +compiler_needs_object_CXX='no' +old_archive_from_new_cmds_CXX='' +old_archive_from_expsyms_cmds_CXX='' +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' +module_cmds_CXX='' +module_expsym_cmds_CXX='' +with_gnu_ld_CXX='yes' +allow_undefined_flag_CXX='' +no_undefined_flag_CXX='' +hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' +hardcode_libdir_separator_CXX='' +hardcode_direct_CXX='no' +hardcode_direct_absolute_CXX='no' +hardcode_minus_L_CXX='no' +hardcode_shlibpath_var_CXX='unsupported' +hardcode_automatic_CXX='no' +inherit_rpath_CXX='no' +link_all_deplibs_CXX='no' +always_export_symbols_CXX='no' +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]_.*' +include_expsyms_CXX='' +prelink_cmds_CXX='' +postlink_cmds_CXX='' +file_list_spec_CXX='' +hardcode_action_CXX='immediate' +compiler_lib_search_dirs_CXX='/usr/lib/gcc/x86_64-linux-gnu/4.7 /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /usr/lib/gcc/x86_64-linux-gnu/4.7/../../..' +predep_objects_CXX='/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.7/crtbeginS.o' +postdep_objects_CXX='/usr/lib/gcc/x86_64-linux-gnu/4.7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crtn.o' +predeps_CXX='' +postdeps_CXX='-lstdc++ -lm -lgcc_s -lc -lgcc_s' +compiler_lib_search_path_CXX='-L/usr/lib/gcc/x86_64-linux-gnu/4.7 -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../..' + +LTCC='/usr/bin/gcc' +LTCFLAGS='-g3 -gdwarf-2' +compiler='/usr/bin/gcc' + +# 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='build-aux' +xsi_shell='yes' +lt_shell_append='yes' + +# 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='gtest' + VERSION='1.7.0' + TIMESTAMP='' + RM='rm -f' + ofile='libtool' + + + + + + + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "build-aux/config.h") CONFIG_HEADERS="$CONFIG_HEADERS build-aux/config.h" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "scripts/gtest-config") CONFIG_FILES="$CONFIG_FILES scripts/gtest-config" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + + *) 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` +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" && +cat >>"$ac_tmp/subs1.awk" <<\_ACAWK && +S["am__EXEEXT_FALSE"]="" +S["am__EXEEXT_TRUE"]="#" +S["LTLIBOBJS"]="" +S["LIBOBJS"]="" +S["HAVE_PTHREADS_FALSE"]="#" +S["HAVE_PTHREADS_TRUE"]="" +S["PTHREAD_CFLAGS"]="-pthread" +S["PTHREAD_LIBS"]="" +S["PTHREAD_CC"]="/usr/bin/gcc" +S["acx_pthread_config"]="" +S["HAVE_PYTHON_FALSE"]="#" +S["HAVE_PYTHON_TRUE"]="" +S["PYTHON"]="/usr/bin/python" +S["CXXCPP"]="/usr/bin/g++ -E" +S["CPP"]="/usr/bin/gcc -E" +S["OTOOL64"]="" +S["OTOOL"]="" +S["LIPO"]="" +S["NMEDIT"]="" +S["DSYMUTIL"]="" +S["MANIFEST_TOOL"]=":" +S["RANLIB"]="ranlib" +S["ac_ct_AR"]="ar" +S["AR"]="ar" +S["DLLTOOL"]="false" +S["OBJDUMP"]="objdump" +S["LN_S"]="ln -s" +S["NM"]="/usr/bin/nm -B" +S["ac_ct_DUMPBIN"]="" +S["DUMPBIN"]="" +S["LD"]="/usr/bin/ld -m elf_x86_64" +S["FGREP"]="/bin/grep -F" +S["EGREP"]="/bin/grep -E" +S["GREP"]="/bin/grep" +S["SED"]="/bin/sed" +S["host_os"]="linux-gnu" +S["host_vendor"]="unknown" +S["host_cpu"]="x86_64" +S["host"]="x86_64-unknown-linux-gnu" +S["build_os"]="linux-gnu" +S["build_vendor"]="unknown" +S["build_cpu"]="x86_64" +S["build"]="x86_64-unknown-linux-gnu" +S["LIBTOOL"]="$(SHELL) $(top_builddir)/libtool" +S["am__fastdepCXX_FALSE"]="#" +S["am__fastdepCXX_TRUE"]="" +S["CXXDEPMODE"]="depmode=gcc3" +S["ac_ct_CXX"]="" +S["CXXFLAGS"]="-g3 -gdwarf-2" +S["CXX"]="/usr/bin/g++" +S["am__fastdepCC_FALSE"]="#" +S["am__fastdepCC_TRUE"]="" +S["CCDEPMODE"]="depmode=gcc3" +S["am__nodep"]="_no" +S["AMDEPBACKSLASH"]="\\" +S["AMDEP_FALSE"]="#" +S["AMDEP_TRUE"]="" +S["am__quote"]="" +S["am__include"]="include" +S["DEPDIR"]=".deps" +S["OBJEXT"]="o" +S["EXEEXT"]="" +S["ac_ct_CC"]="/usr/bin/gcc" +S["CPPFLAGS"]="" +S["LDFLAGS"]="" +S["CFLAGS"]="-g3 -gdwarf-2" +S["CC"]="/usr/bin/gcc" +S["am__untar"]="$${TAR-tar} xf -" +S["am__tar"]="$${TAR-tar} chof - \"$$tardir\"" +S["AMTAR"]="$${TAR-tar}" +S["am__leading_dot"]="." +S["SET_MAKE"]="" +S["AWK"]="mawk" +S["mkdir_p"]="/bin/mkdir -p" +S["MKDIR_P"]="/bin/mkdir -p" +S["INSTALL_STRIP_PROGRAM"]="$(install_sh) -c -s" +S["STRIP"]="strip" +S["install_sh"]="${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/install-sh" +S["MAKEINFO"]="${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run makeinfo" +S["AUTOHEADER"]="${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run autoheader" +S["AUTOMAKE"]="${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run automake-1.11" +S["AUTOCONF"]="${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run autoconf" +S["ACLOCAL"]="${SHELL} /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/build-aux/missing --run aclocal-1.11" +S["VERSION"]="1.7.0" +S["PACKAGE"]="gtest" +S["CYGPATH_W"]="echo" +S["am__isrc"]="" +S["INSTALL_DATA"]="${INSTALL} -m 644" +S["INSTALL_SCRIPT"]="${INSTALL}" +S["INSTALL_PROGRAM"]="${INSTALL}" +S["target_alias"]="" +S["host_alias"]="" +S["build_alias"]="" +S["LIBS"]="" +S["ECHO_T"]="" +S["ECHO_N"]="-n" +S["ECHO_C"]="" +S["DEFS"]="-DHAVE_CONFIG_H" +S["mandir"]="${datarootdir}/man" +S["localedir"]="${datarootdir}/locale" +S["libdir"]="${exec_prefix}/lib" +S["psdir"]="${docdir}" +S["pdfdir"]="${docdir}" +S["dvidir"]="${docdir}" +S["htmldir"]="${docdir}" +S["infodir"]="${datarootdir}/info" +S["docdir"]="${datarootdir}/doc/${PACKAGE_TARNAME}" +S["oldincludedir"]="/usr/include" +S["includedir"]="${prefix}/include" +S["localstatedir"]="${prefix}/var" +S["sharedstatedir"]="${prefix}/com" +S["sysconfdir"]="${prefix}/etc" +S["datadir"]="${datarootdir}" +S["datarootdir"]="${prefix}/share" +S["libexecdir"]="${exec_prefix}/libexec" +S["sbindir"]="${exec_prefix}/sbin" +S["bindir"]="${exec_prefix}/bin" +S["program_transform_name"]="s,x,x," +S["prefix"]="/usr/local" +S["exec_prefix"]="${prefix}" +S["PACKAGE_URL"]="" +S["PACKAGE_BUGREPORT"]="googletestframework@googlegroups.com" +S["PACKAGE_STRING"]="Google C++ Testing Framework 1.7.0" +S["PACKAGE_VERSION"]="1.7.0" +S["PACKAGE_TARNAME"]="gtest" +S["PACKAGE_NAME"]="Google C++ Testing Framework" +S["PATH_SEPARATOR"]=":" +S["SHELL"]="/bin/bash" +_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 +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 +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 { +D["PACKAGE_NAME"]=" \"Google C++ Testing Framework\"" +D["PACKAGE_TARNAME"]=" \"gtest\"" +D["PACKAGE_VERSION"]=" \"1.7.0\"" +D["PACKAGE_STRING"]=" \"Google C++ Testing Framework 1.7.0\"" +D["PACKAGE_BUGREPORT"]=" \"googletestframework@googlegroups.com\"" +D["PACKAGE_URL"]=" \"\"" +D["PACKAGE"]=" \"gtest\"" +D["VERSION"]=" \"1.7.0\"" +D["STDC_HEADERS"]=" 1" +D["HAVE_SYS_TYPES_H"]=" 1" +D["HAVE_SYS_STAT_H"]=" 1" +D["HAVE_STDLIB_H"]=" 1" +D["HAVE_STRING_H"]=" 1" +D["HAVE_MEMORY_H"]=" 1" +D["HAVE_STRINGS_H"]=" 1" +D["HAVE_INTTYPES_H"]=" 1" +D["HAVE_STDINT_H"]=" 1" +D["HAVE_UNISTD_H"]=" 1" +D["HAVE_DLFCN_H"]=" 1" +D["LT_OBJDIR"]=" \".libs/\"" +D["HAVE_PTHREAD"]=" 1" + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+[_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ][_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]*([\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 + 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 +# 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;} + ac_datarootdir_hack=' + s&@datadir@&${datarootdir}&g + s&@docdir@&${datarootdir}/doc/${PACKAGE_TARNAME}&g + s&@infodir@&${datarootdir}/info&g + s&@localedir@&${datarootdir}/locale&g + s&@mandir@&${datarootdir}/man&g + s&\${datarootdir}&${prefix}/share&g' ;; +esac +ac_sed_extra="/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +} + +: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 + "scripts/gtest-config":F) chmod +x scripts/gtest-config ;; + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 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"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //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' -e 's/\$U/'"$U"'/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 diff --git a/gtest-1.7.0/configure b/gtest-1.7.0/configure new file mode 100644 index 0000000..582a9a0 --- /dev/null +++ b/gtest-1.7.0/configure @@ -0,0 +1,18222 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.68 for Google C++ Testing Framework 1.7.0. +# +# Report bugs to . +# +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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 + +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" + 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 : + # 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 + export CONFIG_SHELL + 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+"$@"} +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: googletestframework@googlegroups.com 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_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; } + + # 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 -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +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 + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# 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 &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='Google C++ Testing Framework' +PACKAGE_TARNAME='gtest' +PACKAGE_VERSION='1.7.0' +PACKAGE_STRING='Google C++ Testing Framework 1.7.0' +PACKAGE_BUGREPORT='googletestframework@googlegroups.com' +PACKAGE_URL='' + +ac_unique_file="./LICENSE" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +HAVE_PTHREADS_FALSE +HAVE_PTHREADS_TRUE +PTHREAD_CFLAGS +PTHREAD_LIBS +PTHREAD_CC +acx_pthread_config +HAVE_PYTHON_FALSE +HAVE_PYTHON_TRUE +PYTHON +CXXCPP +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 +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +am__fastdepCXX_FALSE +am__fastdepCXX_TRUE +CXXDEPMODE +ac_ct_CXX +CXXFLAGS +CXX +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 +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_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +with_sysroot +enable_libtool_lock +with_pthreads +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CXX +CXXFLAGS +CCC +CPP +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 + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 + 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 Google C++ Testing Framework 1.7.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/gtest] + --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 Google C++ Testing Framework 1.7.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] + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --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) + +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). + --with-pthreads use pthreads (default is yes) + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CPP C preprocessor + 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 . +_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 +Google C++ Testing Framework configure 1.7.0 +generated by GNU Autoconf 2.68 + +Copyright (C) 2010 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_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_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 || + $as_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 declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#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_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 || + $as_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 Google C++ Testing Framework $as_me 1.7.0, which was +generated by GNU Autoconf 2.68. 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 + + + +# Provide various options to initialize the Autoconf and configure processes. + + + +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. + + +ac_config_headers="$ac_config_headers build-aux/config.h" + +ac_config_files="$ac_config_files Makefile" + +ac_config_files="$ac_config_files scripts/gtest-config" + + +# Initialize Automake with various options. We require at least v1.9, prevent +# pedantic complaints about package files, and enable various distribution +# targets. +am__api_version='1.11' + +# 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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# 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 ( + 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 + rm -f conftest.file + 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 + + 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; } +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 --run true"; then + am_missing_run="$MISSING --run " +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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 + +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='gtest' + VERSION='1.7.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"} + +# 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}' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + + +# Check for programs used in building Google Test. +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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 +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 +#include +#include +#include +/* 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 +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 + + + +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 8's {/usr,}/bin/sh. + touch 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 + + +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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 8's {/usr,}/bin/sh. + touch 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 + + +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 + +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" + { test -f "$ac_path_SED" && $as_test_x "$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" + { test -f "$ac_path_GREP" && $as_test_x "$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" + { test -f "$ac_path_EGREP" && $as_test_x "$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" + { test -f "$ac_path_FGREP" && $as_test_x "$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 &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 &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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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"; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +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) + 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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_cxx_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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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*|ppc*-*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*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + 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" + ;; + ppc*-*linux*|powerpc*-*linux*) + 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 to if __STDC__ is defined, since + # 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 +#else +# include +#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 +_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 to if __STDC__ is defined, since + # 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 +#else +# include +#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 +_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 +#include +#include +#include + +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 + +_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 + +_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 +#include +#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 + + + +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 + + + + + +# 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) + 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 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.so + # instead of lib.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 + ;; + +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' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +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) + 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 +#endif + +#include + +#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 +#endif + +#include + +#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=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 + +CC="$lt_save_CC" + + 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 to if __STDC__ is defined, since + # 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 +#else +# include +#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 +_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 to if __STDC__ is defined, since + # 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 +#else +# include +#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 +_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=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 + +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 &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 &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 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 + ;; + + gnu*) + ;; + + 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) + 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) + 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.so + # instead of lib.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 + ;; + +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' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +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) + 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=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 + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +# TODO(chandlerc@google.com): Currently we aren't running the Python tests +# against the interpreter detected by AM_PATH_PYTHON, and so we condition +# HAVE_PYTHON by requiring "python" to be in the PATH, and that interpreter's +# version to be >= 2.3. This will allow the scripts to use a "/usr/bin/env" +# hashbang. +PYTHON= # We *do not* allow the user to specify a python interpreter +# Extract the first word of "python", so it can be a program name with args. +set dummy python; 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_path_PYTHON+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PYTHON in + [\\/]* | ?:[\\/]*) + ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. + ;; + *) + 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" + $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_path_PYTHON" && ac_cv_path_PYTHON=":" + ;; +esac +fi +PYTHON=$ac_cv_path_PYTHON +if test -n "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 +$as_echo "$PYTHON" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test "$PYTHON" != ":"; then : + prog="import sys +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +# map returns an iterator in Python 3.0 and a list in 2.x +minver = list(map(int, '2.3'.split('.'))) + [0, 0, 0] +minverhex = 0 +# xrange is not present in Python 3.0 and range returns an iterator +for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i] +sys.exit(sys.hexversion < minverhex)" + if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5 + ($PYTHON -c "$prog") >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then : + : +else + PYTHON=":" +fi +fi + if test "$PYTHON" != ":"; then + HAVE_PYTHON_TRUE= + HAVE_PYTHON_FALSE='#' +else + HAVE_PYTHON_TRUE='#' + HAVE_PYTHON_FALSE= +fi + + +# Configure pthreads. + +# Check whether --with-pthreads was given. +if test "${with_pthreads+set}" = set; then : + withval=$with_pthreads; with_pthreads=$withval +else + with_pthreads=check +fi + + +have_pthreads=no +if test "x$with_pthreads" != "xno"; 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 + +acx_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 +$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } + 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 pthread_join (); +int +main () +{ +return pthread_join (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + acx_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 +$as_echo "$acx_pthread_ok" >&6; } + if test x"$acx_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# ... -mt is also the pthreads flag for HP/aCC +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case "${host_cpu}-${host_os}" in + *solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthreads/-mt/ + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" + ;; +esac + +if test x"$acx_pthread_ok" = xno; then +for flag in $acx_pthread_flags; do + + case $flag in + none) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 +$as_echo_n "checking whether pthreads work without any flags... " >&6; } + ;; + + -*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 +$as_echo_n "checking whether pthreads work with $flag... " >&6; } + PTHREAD_CFLAGS="$flag" + ;; + + pthread-config) + # Extract the first word of "pthread-config", so it can be a program name with args. +set dummy pthread-config; 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_acx_pthread_config+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$acx_pthread_config"; then + ac_cv_prog_acx_pthread_config="$acx_pthread_config" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_acx_pthread_config="yes" + $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_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no" +fi +fi +acx_pthread_config=$ac_cv_prog_acx_pthread_config +if test -n "$acx_pthread_config"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_config" >&5 +$as_echo "$acx_pthread_config" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test x"$acx_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 +$as_echo_n "checking for the pthreads library -l$flag... " >&6; } + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +pthread_t th; pthread_join(th, 0); + pthread_attr_init(0); pthread_cleanup_push(0, 0); + pthread_create(0,0,0,0); pthread_cleanup_pop(0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + acx_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 +$as_echo "$acx_pthread_ok" >&6; } + if test "x$acx_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$acx_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 +$as_echo_n "checking for joinable pthread attribute... " >&6; } + attr_name=unknown + for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int attr=$attr; return attr; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + attr_name=$attr; break +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 +$as_echo "$attr_name" >&6; } + if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then + +cat >>confdefs.h <<_ACEOF +#define PTHREAD_CREATE_JOINABLE $attr_name +_ACEOF + + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 +$as_echo_n "checking if more special flags are required for pthreads... " >&6; } + flag=no + case "${host_cpu}-${host_os}" in + *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; + *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5 +$as_echo "${flag}" >&6; } + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + # More AIX lossage: must compile with xlc_r or cc_r + if test x"$GCC" != xyes; then + for ac_prog in xlc_r cc_r +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_PTHREAD_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$PTHREAD_CC"; then + ac_cv_prog_PTHREAD_CC="$PTHREAD_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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_PTHREAD_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 +PTHREAD_CC=$ac_cv_prog_PTHREAD_CC +if test -n "$PTHREAD_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 +$as_echo "$PTHREAD_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$PTHREAD_CC" && break +done +test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}" + + else + PTHREAD_CC=$CC + fi + + # The next part tries to detect GCC inconsistency with -shared on some + # architectures and systems. The problem is that in certain + # configurations, when -shared is specified, GCC "forgets" to + # internally use various flags which are still necessary. + + # + # Prepare the flags + # + save_CFLAGS="$CFLAGS" + save_LIBS="$LIBS" + save_CC="$CC" + + # Try with the flags determined by the earlier checks. + # + # -Wl,-z,defs forces link-time symbol resolution, so that the + # linking checks with -shared actually have any value + # + # FIXME: -fPIC is required for -shared on many architectures, + # so we specify it here, but the right way would probably be to + # properly detect whether it is actually required. + CFLAGS="-shared -fPIC -Wl,-z,defs $CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CC="$PTHREAD_CC" + + # In order not to create several levels of indentation, we test + # the value of "$done" until we find the cure or run out of ideas. + done="no" + + # First, make sure the CFLAGS we added are actually accepted by our + # compiler. If not (and OS X's ld, for instance, does not accept -z), + # then we can't do this test. + if test x"$done" = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to check for GCC pthread/shared inconsistencies" >&5 +$as_echo_n "checking whether to check for GCC pthread/shared inconsistencies... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +else + done=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$done" = xyes ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + fi + fi + + if test x"$done" = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -pthread is sufficient with -shared" >&5 +$as_echo_n "checking whether -pthread is sufficient with -shared... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +pthread_t th; pthread_join(th, 0); + pthread_attr_init(0); pthread_cleanup_push(0, 0); + pthread_create(0,0,0,0); pthread_cleanup_pop(0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + done=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$done" = xyes; 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" >&5 +$as_echo "no" >&6; } + fi + fi + + # + # Linux gcc on some architectures such as mips/mipsel forgets + # about -lpthread + # + if test x"$done" = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lpthread fixes that" >&5 +$as_echo_n "checking whether -lpthread fixes that... " >&6; } + LIBS="-lpthread $PTHREAD_LIBS $save_LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +pthread_t th; pthread_join(th, 0); + pthread_attr_init(0); pthread_cleanup_push(0, 0); + pthread_create(0,0,0,0); pthread_cleanup_pop(0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + done=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$done" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + PTHREAD_LIBS="-lpthread $PTHREAD_LIBS" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + fi + # + # FreeBSD 4.10 gcc forgets to use -lc_r instead of -lc + # + if test x"$done" = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc_r fixes that" >&5 +$as_echo_n "checking whether -lc_r fixes that... " >&6; } + LIBS="-lc_r $PTHREAD_LIBS $save_LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +pthread_t th; pthread_join(th, 0); + pthread_attr_init(0); pthread_cleanup_push(0, 0); + pthread_create(0,0,0,0); pthread_cleanup_pop(0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + done=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$done" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + PTHREAD_LIBS="-lc_r $PTHREAD_LIBS" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + fi + if test x"$done" = xno; then + # OK, we have run out of ideas + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Impossible to determine how to use pthreads with shared libraries" >&5 +$as_echo "$as_me: WARNING: Impossible to determine how to use pthreads with shared libraries" >&2;} + + # so it's not safe to assume that we may use pthreads + acx_pthread_ok=no + fi + + CFLAGS="$save_CFLAGS" + LIBS="$save_LIBS" + CC="$save_CC" +else + PTHREAD_CC="$CC" +fi + + + + + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$acx_pthread_ok" = xyes; then + +$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h + + : +else + acx_pthread_ok=no + if test "x$with_pthreads" != "xcheck"; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "--with-pthreads was specified, but unable to be used +See \`config.log' for more details" "$LINENO" 5; } +fi +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 + + + have_pthreads="$acx_pthread_ok" +fi + if test "x$have_pthreads" = "xyes"; then + HAVE_PTHREADS_TRUE= + HAVE_PTHREADS_FALSE='#' +else + HAVE_PTHREADS_TRUE='#' + HAVE_PTHREADS_FALSE= +fi + + + + +# TODO(chandlerc@google.com) Check for the necessary system headers. + +# TODO(chandlerc@google.com) Check the types, structures, and other compiler +# and architecture characteristics. + +# Output the generated files. No further autoconf macros may be used. +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 + + + 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__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_PYTHON_TRUE}" && test -z "${HAVE_PYTHON_FALSE}"; then + as_fn_error $? "conditional \"HAVE_PYTHON\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_PTHREADS_TRUE}" && test -z "${HAVE_PTHREADS_FALSE}"; then + as_fn_error $? "conditional \"HAVE_PTHREADS\" 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 -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +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 + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# 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 Google C++ Testing Framework $as_me 1.7.0, which was +generated by GNU Autoconf 2.68. 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 ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +Google C++ Testing Framework config.status 1.7.0 +configured by $0, generated by GNU Autoconf 2.68, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2010 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 + "build-aux/config.h") CONFIG_HEADERS="$CONFIG_HEADERS build-aux/config.h" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "scripts/gtest-config") CONFIG_FILES="$CONFIG_FILES scripts/gtest-config" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + + *) 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` +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 +' >$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 +' >$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 + "scripts/gtest-config":F) chmod +x scripts/gtest-config ;; + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 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"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //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' -e 's/\$U/'"$U"'/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/gtest-1.7.0/configure.ac b/gtest-1.7.0/configure.ac new file mode 100644 index 0000000..cc592e1 --- /dev/null +++ b/gtest-1.7.0/configure.ac @@ -0,0 +1,68 @@ +m4_include(m4/acx_pthread.m4) + +# At this point, the Xcode project assumes the version string will be three +# integers separated by periods and surrounded by square brackets (e.g. +# "[1.0.1]"). It also asumes that there won't be any closing parenthesis +# between "AC_INIT(" and the closing ")" including comments and strings. +AC_INIT([Google C++ Testing Framework], + [1.7.0], + [googletestframework@googlegroups.com], + [gtest]) + +# Provide various options to initialize the Autoconf and configure processes. +AC_PREREQ([2.59]) +AC_CONFIG_SRCDIR([./LICENSE]) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_HEADERS([build-aux/config.h]) +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([scripts/gtest-config], [chmod +x scripts/gtest-config]) + +# Initialize Automake with various options. We require at least v1.9, prevent +# pedantic complaints about package files, and enable various distribution +# targets. +AM_INIT_AUTOMAKE([1.9 dist-bzip2 dist-zip foreign subdir-objects]) + +# Check for programs used in building Google Test. +AC_PROG_CC +AC_PROG_CXX +AC_LANG([C++]) +AC_PROG_LIBTOOL + +# TODO(chandlerc@google.com): Currently we aren't running the Python tests +# against the interpreter detected by AM_PATH_PYTHON, and so we condition +# HAVE_PYTHON by requiring "python" to be in the PATH, and that interpreter's +# version to be >= 2.3. This will allow the scripts to use a "/usr/bin/env" +# hashbang. +PYTHON= # We *do not* allow the user to specify a python interpreter +AC_PATH_PROG([PYTHON],[python],[:]) +AS_IF([test "$PYTHON" != ":"], + [AM_PYTHON_CHECK_VERSION([$PYTHON],[2.3],[:],[PYTHON=":"])]) +AM_CONDITIONAL([HAVE_PYTHON],[test "$PYTHON" != ":"]) + +# Configure pthreads. +AC_ARG_WITH([pthreads], + [AS_HELP_STRING([--with-pthreads], + [use pthreads (default is yes)])], + [with_pthreads=$withval], + [with_pthreads=check]) + +have_pthreads=no +AS_IF([test "x$with_pthreads" != "xno"], + [ACX_PTHREAD( + [], + [AS_IF([test "x$with_pthreads" != "xcheck"], + [AC_MSG_FAILURE( + [--with-pthreads was specified, but unable to be used])])]) + have_pthreads="$acx_pthread_ok"]) +AM_CONDITIONAL([HAVE_PTHREADS],[test "x$have_pthreads" = "xyes"]) +AC_SUBST(PTHREAD_CFLAGS) +AC_SUBST(PTHREAD_LIBS) + +# TODO(chandlerc@google.com) Check for the necessary system headers. + +# TODO(chandlerc@google.com) Check the types, structures, and other compiler +# and architecture characteristics. + +# Output the generated files. No further autoconf macros may be used. +AC_OUTPUT diff --git a/gtest-1.7.0/include/gtest/gtest-death-test.h b/gtest-1.7.0/include/gtest/gtest-death-test.h new file mode 100644 index 0000000..957a69c --- /dev/null +++ b/gtest-1.7.0/include/gtest/gtest-death-test.h @@ -0,0 +1,294 @@ +// Copyright 2005, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: wan@google.com (Zhanyong Wan) +// +// The Google C++ Testing Framework (Google Test) +// +// This header file defines the public API for death tests. It is +// #included by gtest.h so a user doesn't need to include this +// directly. + +#ifndef GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ +#define GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ + +#include "gtest/internal/gtest-death-test-internal.h" + +namespace testing { + +// This flag controls the style of death tests. Valid values are "threadsafe", +// meaning that the death test child process will re-execute the test binary +// from the start, running only a single death test, or "fast", +// meaning that the child process will execute the test logic immediately +// after forking. +GTEST_DECLARE_string_(death_test_style); + +#if GTEST_HAS_DEATH_TEST + +namespace internal { + +// Returns a Boolean value indicating whether the caller is currently +// executing in the context of the death test child process. Tools such as +// Valgrind heap checkers may need this to modify their behavior in death +// tests. IMPORTANT: This is an internal utility. Using it may break the +// implementation of death tests. User code MUST NOT use it. +GTEST_API_ bool InDeathTestChild(); + +} // namespace internal + +// The following macros are useful for writing death tests. + +// Here's what happens when an ASSERT_DEATH* or EXPECT_DEATH* is +// executed: +// +// 1. It generates a warning if there is more than one active +// thread. This is because it's safe to fork() or clone() only +// when there is a single thread. +// +// 2. The parent process clone()s a sub-process and runs the death +// test in it; the sub-process exits with code 0 at the end of the +// death test, if it hasn't exited already. +// +// 3. The parent process waits for the sub-process to terminate. +// +// 4. The parent process checks the exit code and error message of +// the sub-process. +// +// Examples: +// +// ASSERT_DEATH(server.SendMessage(56, "Hello"), "Invalid port number"); +// for (int i = 0; i < 5; i++) { +// EXPECT_DEATH(server.ProcessRequest(i), +// "Invalid request .* in ProcessRequest()") +// << "Failed to die on request " << i; +// } +// +// ASSERT_EXIT(server.ExitNow(), ::testing::ExitedWithCode(0), "Exiting"); +// +// bool KilledBySIGHUP(int exit_code) { +// return WIFSIGNALED(exit_code) && WTERMSIG(exit_code) == SIGHUP; +// } +// +// ASSERT_EXIT(client.HangUpServer(), KilledBySIGHUP, "Hanging up!"); +// +// On the regular expressions used in death tests: +// +// On POSIX-compliant systems (*nix), we use the library, +// which uses the POSIX extended regex syntax. +// +// On other platforms (e.g. Windows), we only support a simple regex +// syntax implemented as part of Google Test. This limited +// implementation should be enough most of the time when writing +// death tests; though it lacks many features you can find in PCRE +// or POSIX extended regex syntax. For example, we don't support +// union ("x|y"), grouping ("(xy)"), brackets ("[xy]"), and +// repetition count ("x{5,7}"), among others. +// +// Below is the syntax that we do support. We chose it to be a +// subset of both PCRE and POSIX extended regex, so it's easy to +// learn wherever you come from. In the following: 'A' denotes a +// literal character, period (.), or a single \\ escape sequence; +// 'x' and 'y' denote regular expressions; 'm' and 'n' are for +// natural numbers. +// +// c matches any literal character c +// \\d matches any decimal digit +// \\D matches any character that's not a decimal digit +// \\f matches \f +// \\n matches \n +// \\r matches \r +// \\s matches any ASCII whitespace, including \n +// \\S matches any character that's not a whitespace +// \\t matches \t +// \\v matches \v +// \\w matches any letter, _, or decimal digit +// \\W matches any character that \\w doesn't match +// \\c matches any literal character c, which must be a punctuation +// . matches any single character except \n +// A? matches 0 or 1 occurrences of A +// A* matches 0 or many occurrences of A +// A+ matches 1 or many occurrences of A +// ^ matches the beginning of a string (not that of each line) +// $ matches the end of a string (not that of each line) +// xy matches x followed by y +// +// If you accidentally use PCRE or POSIX extended regex features +// not implemented by us, you will get a run-time failure. In that +// case, please try to rewrite your regular expression within the +// above syntax. +// +// This implementation is *not* meant to be as highly tuned or robust +// as a compiled regex library, but should perform well enough for a +// death test, which already incurs significant overhead by launching +// a child process. +// +// Known caveats: +// +// A "threadsafe" style death test obtains the path to the test +// program from argv[0] and re-executes it in the sub-process. For +// simplicity, the current implementation doesn't search the PATH +// when launching the sub-process. This means that the user must +// invoke the test program via a path that contains at least one +// path separator (e.g. path/to/foo_test and +// /absolute/path/to/bar_test are fine, but foo_test is not). This +// is rarely a problem as people usually don't put the test binary +// directory in PATH. +// +// TODO(wan@google.com): make thread-safe death tests search the PATH. + +// Asserts that a given statement causes the program to exit, with an +// integer exit status that satisfies predicate, and emitting error output +// that matches regex. +# define ASSERT_EXIT(statement, predicate, regex) \ + GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_FATAL_FAILURE_) + +// Like ASSERT_EXIT, but continues on to successive tests in the +// test case, if any: +# define EXPECT_EXIT(statement, predicate, regex) \ + GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_NONFATAL_FAILURE_) + +// Asserts that a given statement causes the program to exit, either by +// explicitly exiting with a nonzero exit code or being killed by a +// signal, and emitting error output that matches regex. +# define ASSERT_DEATH(statement, regex) \ + ASSERT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex) + +// Like ASSERT_DEATH, but continues on to successive tests in the +// test case, if any: +# define EXPECT_DEATH(statement, regex) \ + EXPECT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex) + +// Two predicate classes that can be used in {ASSERT,EXPECT}_EXIT*: + +// Tests that an exit code describes a normal exit with a given exit code. +class GTEST_API_ ExitedWithCode { + public: + explicit ExitedWithCode(int exit_code); + bool operator()(int exit_status) const; + private: + // No implementation - assignment is unsupported. + void operator=(const ExitedWithCode& other); + + const int exit_code_; +}; + +# if !GTEST_OS_WINDOWS +// Tests that an exit code describes an exit due to termination by a +// given signal. +class GTEST_API_ KilledBySignal { + public: + explicit KilledBySignal(int signum); + bool operator()(int exit_status) const; + private: + const int signum_; +}; +# endif // !GTEST_OS_WINDOWS + +// EXPECT_DEBUG_DEATH asserts that the given statements die in debug mode. +// The death testing framework causes this to have interesting semantics, +// since the sideeffects of the call are only visible in opt mode, and not +// in debug mode. +// +// In practice, this can be used to test functions that utilize the +// LOG(DFATAL) macro using the following style: +// +// int DieInDebugOr12(int* sideeffect) { +// if (sideeffect) { +// *sideeffect = 12; +// } +// LOG(DFATAL) << "death"; +// return 12; +// } +// +// TEST(TestCase, TestDieOr12WorksInDgbAndOpt) { +// int sideeffect = 0; +// // Only asserts in dbg. +// EXPECT_DEBUG_DEATH(DieInDebugOr12(&sideeffect), "death"); +// +// #ifdef NDEBUG +// // opt-mode has sideeffect visible. +// EXPECT_EQ(12, sideeffect); +// #else +// // dbg-mode no visible sideeffect. +// EXPECT_EQ(0, sideeffect); +// #endif +// } +// +// This will assert that DieInDebugReturn12InOpt() crashes in debug +// mode, usually due to a DCHECK or LOG(DFATAL), but returns the +// appropriate fallback value (12 in this case) in opt mode. If you +// need to test that a function has appropriate side-effects in opt +// mode, include assertions against the side-effects. A general +// pattern for this is: +// +// EXPECT_DEBUG_DEATH({ +// // Side-effects here will have an effect after this statement in +// // opt mode, but none in debug mode. +// EXPECT_EQ(12, DieInDebugOr12(&sideeffect)); +// }, "death"); +// +# ifdef NDEBUG + +# define EXPECT_DEBUG_DEATH(statement, regex) \ + GTEST_EXECUTE_STATEMENT_(statement, regex) + +# define ASSERT_DEBUG_DEATH(statement, regex) \ + GTEST_EXECUTE_STATEMENT_(statement, regex) + +# else + +# define EXPECT_DEBUG_DEATH(statement, regex) \ + EXPECT_DEATH(statement, regex) + +# define ASSERT_DEBUG_DEATH(statement, regex) \ + ASSERT_DEATH(statement, regex) + +# endif // NDEBUG for EXPECT_DEBUG_DEATH +#endif // GTEST_HAS_DEATH_TEST + +// EXPECT_DEATH_IF_SUPPORTED(statement, regex) and +// ASSERT_DEATH_IF_SUPPORTED(statement, regex) expand to real death tests if +// death tests are supported; otherwise they just issue a warning. This is +// useful when you are combining death test assertions with normal test +// assertions in one test. +#if GTEST_HAS_DEATH_TEST +# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ + EXPECT_DEATH(statement, regex) +# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ + ASSERT_DEATH(statement, regex) +#else +# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ + GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, ) +# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ + GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, return) +#endif + +} // namespace testing + +#endif // GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ diff --git a/gtest-1.7.0/include/gtest/gtest-message.h b/gtest-1.7.0/include/gtest/gtest-message.h new file mode 100644 index 0000000..fe879bc --- /dev/null +++ b/gtest-1.7.0/include/gtest/gtest-message.h @@ -0,0 +1,250 @@ +// Copyright 2005, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: wan@google.com (Zhanyong Wan) +// +// The Google C++ Testing Framework (Google Test) +// +// This header file defines the Message class. +// +// IMPORTANT NOTE: Due to limitation of the C++ language, we have to +// leave some internal implementation details in this header file. +// They are clearly marked by comments like this: +// +// // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. +// +// Such code is NOT meant to be used by a user directly, and is subject +// to CHANGE WITHOUT NOTICE. Therefore DO NOT DEPEND ON IT in a user +// program! + +#ifndef GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ +#define GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ + +#include + +#include "gtest/internal/gtest-port.h" + +// Ensures that there is at least one operator<< in the global namespace. +// See Message& operator<<(...) below for why. +void operator<<(const testing::internal::Secret&, int); + +namespace testing { + +// The Message class works like an ostream repeater. +// +// Typical usage: +// +// 1. You stream a bunch of values to a Message object. +// It will remember the text in a stringstream. +// 2. Then you stream the Message object to an ostream. +// This causes the text in the Message to be streamed +// to the ostream. +// +// For example; +// +// testing::Message foo; +// foo << 1 << " != " << 2; +// std::cout << foo; +// +// will print "1 != 2". +// +// Message is not intended to be inherited from. In particular, its +// destructor is not virtual. +// +// Note that stringstream behaves differently in gcc and in MSVC. You +// can stream a NULL char pointer to it in the former, but not in the +// latter (it causes an access violation if you do). The Message +// class hides this difference by treating a NULL char pointer as +// "(null)". +class GTEST_API_ Message { + private: + // The type of basic IO manipulators (endl, ends, and flush) for + // narrow streams. + typedef std::ostream& (*BasicNarrowIoManip)(std::ostream&); + + public: + // Constructs an empty Message. + Message(); + + // Copy constructor. + Message(const Message& msg) : ss_(new ::std::stringstream) { // NOLINT + *ss_ << msg.GetString(); + } + + // Constructs a Message from a C-string. + explicit Message(const char* str) : ss_(new ::std::stringstream) { + *ss_ << str; + } + +#if GTEST_OS_SYMBIAN + // Streams a value (either a pointer or not) to this object. + template + inline Message& operator <<(const T& value) { + StreamHelper(typename internal::is_pointer::type(), value); + return *this; + } +#else + // Streams a non-pointer value to this object. + template + inline Message& operator <<(const T& val) { + // Some libraries overload << for STL containers. These + // overloads are defined in the global namespace instead of ::std. + // + // C++'s symbol lookup rule (i.e. Koenig lookup) says that these + // overloads are visible in either the std namespace or the global + // namespace, but not other namespaces, including the testing + // namespace which Google Test's Message class is in. + // + // To allow STL containers (and other types that has a << operator + // defined in the global namespace) to be used in Google Test + // assertions, testing::Message must access the custom << operator + // from the global namespace. With this using declaration, + // overloads of << defined in the global namespace and those + // visible via Koenig lookup are both exposed in this function. + using ::operator <<; + *ss_ << val; + return *this; + } + + // Streams a pointer value to this object. + // + // This function is an overload of the previous one. When you + // stream a pointer to a Message, this definition will be used as it + // is more specialized. (The C++ Standard, section + // [temp.func.order].) If you stream a non-pointer, then the + // previous definition will be used. + // + // The reason for this overload is that streaming a NULL pointer to + // ostream is undefined behavior. Depending on the compiler, you + // may get "0", "(nil)", "(null)", or an access violation. To + // ensure consistent result across compilers, we always treat NULL + // as "(null)". + template + inline Message& operator <<(T* const& pointer) { // NOLINT + if (pointer == NULL) { + *ss_ << "(null)"; + } else { + *ss_ << pointer; + } + return *this; + } +#endif // GTEST_OS_SYMBIAN + + // Since the basic IO manipulators are overloaded for both narrow + // and wide streams, we have to provide this specialized definition + // of operator <<, even though its body is the same as the + // templatized version above. Without this definition, streaming + // endl or other basic IO manipulators to Message will confuse the + // compiler. + Message& operator <<(BasicNarrowIoManip val) { + *ss_ << val; + return *this; + } + + // Instead of 1/0, we want to see true/false for bool values. + Message& operator <<(bool b) { + return *this << (b ? "true" : "false"); + } + + // These two overloads allow streaming a wide C string to a Message + // using the UTF-8 encoding. + Message& operator <<(const wchar_t* wide_c_str); + Message& operator <<(wchar_t* wide_c_str); + +#if GTEST_HAS_STD_WSTRING + // Converts the given wide string to a narrow string using the UTF-8 + // encoding, and streams the result to this Message object. + Message& operator <<(const ::std::wstring& wstr); +#endif // GTEST_HAS_STD_WSTRING + +#if GTEST_HAS_GLOBAL_WSTRING + // Converts the given wide string to a narrow string using the UTF-8 + // encoding, and streams the result to this Message object. + Message& operator <<(const ::wstring& wstr); +#endif // GTEST_HAS_GLOBAL_WSTRING + + // Gets the text streamed to this object so far as an std::string. + // Each '\0' character in the buffer is replaced with "\\0". + // + // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. + std::string GetString() const; + + private: + +#if GTEST_OS_SYMBIAN + // These are needed as the Nokia Symbian Compiler cannot decide between + // const T& and const T* in a function template. The Nokia compiler _can_ + // decide between class template specializations for T and T*, so a + // tr1::type_traits-like is_pointer works, and we can overload on that. + template + inline void StreamHelper(internal::true_type /*is_pointer*/, T* pointer) { + if (pointer == NULL) { + *ss_ << "(null)"; + } else { + *ss_ << pointer; + } + } + template + inline void StreamHelper(internal::false_type /*is_pointer*/, + const T& value) { + // See the comments in Message& operator <<(const T&) above for why + // we need this using statement. + using ::operator <<; + *ss_ << value; + } +#endif // GTEST_OS_SYMBIAN + + // We'll hold the text streamed to this object here. + const internal::scoped_ptr< ::std::stringstream> ss_; + + // We declare (but don't implement) this to prevent the compiler + // from implementing the assignment operator. + void operator=(const Message&); +}; + +// Streams a Message to an ostream. +inline std::ostream& operator <<(std::ostream& os, const Message& sb) { + return os << sb.GetString(); +} + +namespace internal { + +// Converts a streamable value to an std::string. A NULL pointer is +// converted to "(null)". When the input value is a ::string, +// ::std::string, ::wstring, or ::std::wstring object, each NUL +// character in it is replaced with "\\0". +template +std::string StreamableToString(const T& streamable) { + return (Message() << streamable).GetString(); +} + +} // namespace internal +} // namespace testing + +#endif // GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ diff --git a/gtest-1.7.0/include/gtest/gtest-param-test.h b/gtest-1.7.0/include/gtest/gtest-param-test.h new file mode 100644 index 0000000..d6702c8 --- /dev/null +++ b/gtest-1.7.0/include/gtest/gtest-param-test.h @@ -0,0 +1,1421 @@ +// This file was GENERATED by command: +// pump.py gtest-param-test.h.pump +// DO NOT EDIT BY HAND!!! + +// Copyright 2008, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Authors: vladl@google.com (Vlad Losev) +// +// Macros and functions for implementing parameterized tests +// in Google C++ Testing Framework (Google Test) +// +// This file is generated by a SCRIPT. DO NOT EDIT BY HAND! +// +#ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ +#define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ + + +// Value-parameterized tests allow you to test your code with different +// parameters without writing multiple copies of the same test. +// +// Here is how you use value-parameterized tests: + +#if 0 + +// To write value-parameterized tests, first you should define a fixture +// class. It is usually derived from testing::TestWithParam (see below for +// another inheritance scheme that's sometimes useful in more complicated +// class hierarchies), where the type of your parameter values. +// TestWithParam is itself derived from testing::Test. T can be any +// copyable type. If it's a raw pointer, you are responsible for managing the +// lifespan of the pointed values. + +class FooTest : public ::testing::TestWithParam { + // You can implement all the usual class fixture members here. +}; + +// Then, use the TEST_P macro to define as many parameterized tests +// for this fixture as you want. The _P suffix is for "parameterized" +// or "pattern", whichever you prefer to think. + +TEST_P(FooTest, DoesBlah) { + // Inside a test, access the test parameter with the GetParam() method + // of the TestWithParam class: + EXPECT_TRUE(foo.Blah(GetParam())); + ... +} + +TEST_P(FooTest, HasBlahBlah) { + ... +} + +// Finally, you can use INSTANTIATE_TEST_CASE_P to instantiate the test +// case with any set of parameters you want. Google Test defines a number +// of functions for generating test parameters. They return what we call +// (surprise!) parameter generators. Here is a summary of them, which +// are all in the testing namespace: +// +// +// Range(begin, end [, step]) - Yields values {begin, begin+step, +// begin+step+step, ...}. The values do not +// include end. step defaults to 1. +// Values(v1, v2, ..., vN) - Yields values {v1, v2, ..., vN}. +// ValuesIn(container) - Yields values from a C-style array, an STL +// ValuesIn(begin,end) container, or an iterator range [begin, end). +// Bool() - Yields sequence {false, true}. +// Combine(g1, g2, ..., gN) - Yields all combinations (the Cartesian product +// for the math savvy) of the values generated +// by the N generators. +// +// For more details, see comments at the definitions of these functions below +// in this file. +// +// The following statement will instantiate tests from the FooTest test case +// each with parameter values "meeny", "miny", and "moe". + +INSTANTIATE_TEST_CASE_P(InstantiationName, + FooTest, + Values("meeny", "miny", "moe")); + +// To distinguish different instances of the pattern, (yes, you +// can instantiate it more then once) the first argument to the +// INSTANTIATE_TEST_CASE_P macro is a prefix that will be added to the +// actual test case name. Remember to pick unique prefixes for different +// instantiations. The tests from the instantiation above will have +// these names: +// +// * InstantiationName/FooTest.DoesBlah/0 for "meeny" +// * InstantiationName/FooTest.DoesBlah/1 for "miny" +// * InstantiationName/FooTest.DoesBlah/2 for "moe" +// * InstantiationName/FooTest.HasBlahBlah/0 for "meeny" +// * InstantiationName/FooTest.HasBlahBlah/1 for "miny" +// * InstantiationName/FooTest.HasBlahBlah/2 for "moe" +// +// You can use these names in --gtest_filter. +// +// This statement will instantiate all tests from FooTest again, each +// with parameter values "cat" and "dog": + +const char* pets[] = {"cat", "dog"}; +INSTANTIATE_TEST_CASE_P(AnotherInstantiationName, FooTest, ValuesIn(pets)); + +// The tests from the instantiation above will have these names: +// +// * AnotherInstantiationName/FooTest.DoesBlah/0 for "cat" +// * AnotherInstantiationName/FooTest.DoesBlah/1 for "dog" +// * AnotherInstantiationName/FooTest.HasBlahBlah/0 for "cat" +// * AnotherInstantiationName/FooTest.HasBlahBlah/1 for "dog" +// +// Please note that INSTANTIATE_TEST_CASE_P will instantiate all tests +// in the given test case, whether their definitions come before or +// AFTER the INSTANTIATE_TEST_CASE_P statement. +// +// Please also note that generator expressions (including parameters to the +// generators) are evaluated in InitGoogleTest(), after main() has started. +// This allows the user on one hand, to adjust generator parameters in order +// to dynamically determine a set of tests to run and on the other hand, +// give the user a chance to inspect the generated tests with Google Test +// reflection API before RUN_ALL_TESTS() is executed. +// +// You can see samples/sample7_unittest.cc and samples/sample8_unittest.cc +// for more examples. +// +// In the future, we plan to publish the API for defining new parameter +// generators. But for now this interface remains part of the internal +// implementation and is subject to change. +// +// +// A parameterized test fixture must be derived from testing::Test and from +// testing::WithParamInterface, where T is the type of the parameter +// values. Inheriting from TestWithParam satisfies that requirement because +// TestWithParam inherits from both Test and WithParamInterface. In more +// complicated hierarchies, however, it is occasionally useful to inherit +// separately from Test and WithParamInterface. For example: + +class BaseTest : public ::testing::Test { + // You can inherit all the usual members for a non-parameterized test + // fixture here. +}; + +class DerivedTest : public BaseTest, public ::testing::WithParamInterface { + // The usual test fixture members go here too. +}; + +TEST_F(BaseTest, HasFoo) { + // This is an ordinary non-parameterized test. +} + +TEST_P(DerivedTest, DoesBlah) { + // GetParam works just the same here as if you inherit from TestWithParam. + EXPECT_TRUE(foo.Blah(GetParam())); +} + +#endif // 0 + +#include "gtest/internal/gtest-port.h" + +#if !GTEST_OS_SYMBIAN +# include +#endif + +// scripts/fuse_gtest.py depends on gtest's own header being #included +// *unconditionally*. Therefore these #includes cannot be moved +// inside #if GTEST_HAS_PARAM_TEST. +#include "gtest/internal/gtest-internal.h" +#include "gtest/internal/gtest-param-util.h" +#include "gtest/internal/gtest-param-util-generated.h" + +#if GTEST_HAS_PARAM_TEST + +namespace testing { + +// Functions producing parameter generators. +// +// Google Test uses these generators to produce parameters for value- +// parameterized tests. When a parameterized test case is instantiated +// with a particular generator, Google Test creates and runs tests +// for each element in the sequence produced by the generator. +// +// In the following sample, tests from test case FooTest are instantiated +// each three times with parameter values 3, 5, and 8: +// +// class FooTest : public TestWithParam { ... }; +// +// TEST_P(FooTest, TestThis) { +// } +// TEST_P(FooTest, TestThat) { +// } +// INSTANTIATE_TEST_CASE_P(TestSequence, FooTest, Values(3, 5, 8)); +// + +// Range() returns generators providing sequences of values in a range. +// +// Synopsis: +// Range(start, end) +// - returns a generator producing a sequence of values {start, start+1, +// start+2, ..., }. +// Range(start, end, step) +// - returns a generator producing a sequence of values {start, start+step, +// start+step+step, ..., }. +// Notes: +// * The generated sequences never include end. For example, Range(1, 5) +// returns a generator producing a sequence {1, 2, 3, 4}. Range(1, 9, 2) +// returns a generator producing {1, 3, 5, 7}. +// * start and end must have the same type. That type may be any integral or +// floating-point type or a user defined type satisfying these conditions: +// * It must be assignable (have operator=() defined). +// * It must have operator+() (operator+(int-compatible type) for +// two-operand version). +// * It must have operator<() defined. +// Elements in the resulting sequences will also have that type. +// * Condition start < end must be satisfied in order for resulting sequences +// to contain any elements. +// +template +internal::ParamGenerator Range(T start, T end, IncrementT step) { + return internal::ParamGenerator( + new internal::RangeGenerator(start, end, step)); +} + +template +internal::ParamGenerator Range(T start, T end) { + return Range(start, end, 1); +} + +// ValuesIn() function allows generation of tests with parameters coming from +// a container. +// +// Synopsis: +// ValuesIn(const T (&array)[N]) +// - returns a generator producing sequences with elements from +// a C-style array. +// ValuesIn(const Container& container) +// - returns a generator producing sequences with elements from +// an STL-style container. +// ValuesIn(Iterator begin, Iterator end) +// - returns a generator producing sequences with elements from +// a range [begin, end) defined by a pair of STL-style iterators. These +// iterators can also be plain C pointers. +// +// Please note that ValuesIn copies the values from the containers +// passed in and keeps them to generate tests in RUN_ALL_TESTS(). +// +// Examples: +// +// This instantiates tests from test case StringTest +// each with C-string values of "foo", "bar", and "baz": +// +// const char* strings[] = {"foo", "bar", "baz"}; +// INSTANTIATE_TEST_CASE_P(StringSequence, SrtingTest, ValuesIn(strings)); +// +// This instantiates tests from test case StlStringTest +// each with STL strings with values "a" and "b": +// +// ::std::vector< ::std::string> GetParameterStrings() { +// ::std::vector< ::std::string> v; +// v.push_back("a"); +// v.push_back("b"); +// return v; +// } +// +// INSTANTIATE_TEST_CASE_P(CharSequence, +// StlStringTest, +// ValuesIn(GetParameterStrings())); +// +// +// This will also instantiate tests from CharTest +// each with parameter values 'a' and 'b': +// +// ::std::list GetParameterChars() { +// ::std::list list; +// list.push_back('a'); +// list.push_back('b'); +// return list; +// } +// ::std::list l = GetParameterChars(); +// INSTANTIATE_TEST_CASE_P(CharSequence2, +// CharTest, +// ValuesIn(l.begin(), l.end())); +// +template +internal::ParamGenerator< + typename ::testing::internal::IteratorTraits::value_type> +ValuesIn(ForwardIterator begin, ForwardIterator end) { + typedef typename ::testing::internal::IteratorTraits + ::value_type ParamType; + return internal::ParamGenerator( + new internal::ValuesInIteratorRangeGenerator(begin, end)); +} + +template +internal::ParamGenerator ValuesIn(const T (&array)[N]) { + return ValuesIn(array, array + N); +} + +template +internal::ParamGenerator ValuesIn( + const Container& container) { + return ValuesIn(container.begin(), container.end()); +} + +// Values() allows generating tests from explicitly specified list of +// parameters. +// +// Synopsis: +// Values(T v1, T v2, ..., T vN) +// - returns a generator producing sequences with elements v1, v2, ..., vN. +// +// For example, this instantiates tests from test case BarTest each +// with values "one", "two", and "three": +// +// INSTANTIATE_TEST_CASE_P(NumSequence, BarTest, Values("one", "two", "three")); +// +// This instantiates tests from test case BazTest each with values 1, 2, 3.5. +// The exact type of values will depend on the type of parameter in BazTest. +// +// INSTANTIATE_TEST_CASE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5)); +// +// Currently, Values() supports from 1 to 50 parameters. +// +template +internal::ValueArray1 Values(T1 v1) { + return internal::ValueArray1(v1); +} + +template +internal::ValueArray2 Values(T1 v1, T2 v2) { + return internal::ValueArray2(v1, v2); +} + +template +internal::ValueArray3 Values(T1 v1, T2 v2, T3 v3) { + return internal::ValueArray3(v1, v2, v3); +} + +template +internal::ValueArray4 Values(T1 v1, T2 v2, T3 v3, T4 v4) { + return internal::ValueArray4(v1, v2, v3, v4); +} + +template +internal::ValueArray5 Values(T1 v1, T2 v2, T3 v3, T4 v4, + T5 v5) { + return internal::ValueArray5(v1, v2, v3, v4, v5); +} + +template +internal::ValueArray6 Values(T1 v1, T2 v2, T3 v3, + T4 v4, T5 v5, T6 v6) { + return internal::ValueArray6(v1, v2, v3, v4, v5, v6); +} + +template +internal::ValueArray7 Values(T1 v1, T2 v2, T3 v3, + T4 v4, T5 v5, T6 v6, T7 v7) { + return internal::ValueArray7(v1, v2, v3, v4, v5, + v6, v7); +} + +template +internal::ValueArray8 Values(T1 v1, T2 v2, + T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8) { + return internal::ValueArray8(v1, v2, v3, v4, + v5, v6, v7, v8); +} + +template +internal::ValueArray9 Values(T1 v1, T2 v2, + T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9) { + return internal::ValueArray9(v1, v2, v3, + v4, v5, v6, v7, v8, v9); +} + +template +internal::ValueArray10 Values(T1 v1, + T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10) { + return internal::ValueArray10(v1, + v2, v3, v4, v5, v6, v7, v8, v9, v10); +} + +template +internal::ValueArray11 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11) { + return internal::ValueArray11(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11); +} + +template +internal::ValueArray12 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12) { + return internal::ValueArray12(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12); +} + +template +internal::ValueArray13 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13) { + return internal::ValueArray13(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13); +} + +template +internal::ValueArray14 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) { + return internal::ValueArray14(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, + v14); +} + +template +internal::ValueArray15 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, + T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) { + return internal::ValueArray15(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, + v13, v14, v15); +} + +template +internal::ValueArray16 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, + T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, + T16 v16) { + return internal::ValueArray16(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, + v12, v13, v14, v15, v16); +} + +template +internal::ValueArray17 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, + T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, + T16 v16, T17 v17) { + return internal::ValueArray17(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, + v11, v12, v13, v14, v15, v16, v17); +} + +template +internal::ValueArray18 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, + T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, + T16 v16, T17 v17, T18 v18) { + return internal::ValueArray18(v1, v2, v3, v4, v5, v6, v7, v8, v9, + v10, v11, v12, v13, v14, v15, v16, v17, v18); +} + +template +internal::ValueArray19 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, + T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, + T15 v15, T16 v16, T17 v17, T18 v18, T19 v19) { + return internal::ValueArray19(v1, v2, v3, v4, v5, v6, v7, v8, + v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19); +} + +template +internal::ValueArray20 Values(T1 v1, T2 v2, T3 v3, T4 v4, + T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, + T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20) { + return internal::ValueArray20(v1, v2, v3, v4, v5, v6, v7, + v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20); +} + +template +internal::ValueArray21 Values(T1 v1, T2 v2, T3 v3, T4 v4, + T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, + T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21) { + return internal::ValueArray21(v1, v2, v3, v4, v5, v6, + v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21); +} + +template +internal::ValueArray22 Values(T1 v1, T2 v2, T3 v3, + T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, + T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, + T21 v21, T22 v22) { + return internal::ValueArray22(v1, v2, v3, v4, + v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, + v20, v21, v22); +} + +template +internal::ValueArray23 Values(T1 v1, T2 v2, + T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, + T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, + T21 v21, T22 v22, T23 v23) { + return internal::ValueArray23(v1, v2, v3, + v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, + v20, v21, v22, v23); +} + +template +internal::ValueArray24 Values(T1 v1, T2 v2, + T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, + T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, + T21 v21, T22 v22, T23 v23, T24 v24) { + return internal::ValueArray24(v1, v2, + v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, + v19, v20, v21, v22, v23, v24); +} + +template +internal::ValueArray25 Values(T1 v1, + T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, + T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, + T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25) { + return internal::ValueArray25(v1, + v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, + v18, v19, v20, v21, v22, v23, v24, v25); +} + +template +internal::ValueArray26 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26) { + return internal::ValueArray26(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, + v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26); +} + +template +internal::ValueArray27 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27) { + return internal::ValueArray27(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, + v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27); +} + +template +internal::ValueArray28 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28) { + return internal::ValueArray28(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, + v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, + v28); +} + +template +internal::ValueArray29 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29) { + return internal::ValueArray29(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, + v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, + v27, v28, v29); +} + +template +internal::ValueArray30 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, + T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, + T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, + T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) { + return internal::ValueArray30(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, + v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, + v26, v27, v28, v29, v30); +} + +template +internal::ValueArray31 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, + T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, + T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, + T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) { + return internal::ValueArray31(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, + v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, + v25, v26, v27, v28, v29, v30, v31); +} + +template +internal::ValueArray32 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, + T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, + T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, + T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, + T32 v32) { + return internal::ValueArray32(v1, v2, v3, v4, v5, v6, v7, v8, v9, + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, + v24, v25, v26, v27, v28, v29, v30, v31, v32); +} + +template +internal::ValueArray33 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, + T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, + T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, + T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, + T32 v32, T33 v33) { + return internal::ValueArray33(v1, v2, v3, v4, v5, v6, v7, v8, + v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, + v24, v25, v26, v27, v28, v29, v30, v31, v32, v33); +} + +template +internal::ValueArray34 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, + T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, + T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, + T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, + T31 v31, T32 v32, T33 v33, T34 v34) { + return internal::ValueArray34(v1, v2, v3, v4, v5, v6, v7, + v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, + v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34); +} + +template +internal::ValueArray35 Values(T1 v1, T2 v2, T3 v3, T4 v4, + T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, + T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, + T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, + T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35) { + return internal::ValueArray35(v1, v2, v3, v4, v5, v6, + v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, + v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35); +} + +template +internal::ValueArray36 Values(T1 v1, T2 v2, T3 v3, T4 v4, + T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, + T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, + T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, + T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36) { + return internal::ValueArray36(v1, v2, v3, v4, + v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, + v34, v35, v36); +} + +template +internal::ValueArray37 Values(T1 v1, T2 v2, T3 v3, + T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, + T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, + T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, + T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, + T37 v37) { + return internal::ValueArray37(v1, v2, v3, + v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, + v34, v35, v36, v37); +} + +template +internal::ValueArray38 Values(T1 v1, T2 v2, + T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, + T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, + T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, + T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, + T37 v37, T38 v38) { + return internal::ValueArray38(v1, v2, + v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, + v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, + v33, v34, v35, v36, v37, v38); +} + +template +internal::ValueArray39 Values(T1 v1, T2 v2, + T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, + T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, + T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, + T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, + T37 v37, T38 v38, T39 v39) { + return internal::ValueArray39(v1, + v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, + v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, + v32, v33, v34, v35, v36, v37, v38, v39); +} + +template +internal::ValueArray40 Values(T1 v1, + T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, + T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, + T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, + T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, + T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) { + return internal::ValueArray40(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, + v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, + v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40); +} + +template +internal::ValueArray41 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41) { + return internal::ValueArray41(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, + v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, + v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41); +} + +template +internal::ValueArray42 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, + T42 v42) { + return internal::ValueArray42(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, + v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, + v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, + v42); +} + +template +internal::ValueArray43 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, + T42 v42, T43 v43) { + return internal::ValueArray43(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, + v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, + v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, + v41, v42, v43); +} + +template +internal::ValueArray44 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, + T42 v42, T43 v43, T44 v44) { + return internal::ValueArray44(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, + v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, + v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, + v40, v41, v42, v43, v44); +} + +template +internal::ValueArray45 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, + T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, + T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, + T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, + T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, + T41 v41, T42 v42, T43 v43, T44 v44, T45 v45) { + return internal::ValueArray45(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, + v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, + v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, + v39, v40, v41, v42, v43, v44, v45); +} + +template +internal::ValueArray46 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, + T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, + T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, + T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, + T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, + T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) { + return internal::ValueArray46(v1, v2, v3, v4, v5, v6, v7, v8, v9, + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, + v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, + v38, v39, v40, v41, v42, v43, v44, v45, v46); +} + +template +internal::ValueArray47 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, + T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, + T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, + T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, + T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, + T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) { + return internal::ValueArray47(v1, v2, v3, v4, v5, v6, v7, v8, + v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, + v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, + v38, v39, v40, v41, v42, v43, v44, v45, v46, v47); +} + +template +internal::ValueArray48 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, + T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, + T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, + T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, + T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, + T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, + T48 v48) { + return internal::ValueArray48(v1, v2, v3, v4, v5, v6, v7, + v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, + v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, + v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48); +} + +template +internal::ValueArray49 Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, + T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, + T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, + T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, + T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, + T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, + T47 v47, T48 v48, T49 v49) { + return internal::ValueArray49(v1, v2, v3, v4, v5, v6, + v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, + v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, + v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49); +} + +template +internal::ValueArray50 Values(T1 v1, T2 v2, T3 v3, T4 v4, + T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, + T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, + T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, + T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, + T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, + T46 v46, T47 v47, T48 v48, T49 v49, T50 v50) { + return internal::ValueArray50(v1, v2, v3, v4, + v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, + v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, + v48, v49, v50); +} + +// Bool() allows generating tests with parameters in a set of (false, true). +// +// Synopsis: +// Bool() +// - returns a generator producing sequences with elements {false, true}. +// +// It is useful when testing code that depends on Boolean flags. Combinations +// of multiple flags can be tested when several Bool()'s are combined using +// Combine() function. +// +// In the following example all tests in the test case FlagDependentTest +// will be instantiated twice with parameters false and true. +// +// class FlagDependentTest : public testing::TestWithParam { +// virtual void SetUp() { +// external_flag = GetParam(); +// } +// } +// INSTANTIATE_TEST_CASE_P(BoolSequence, FlagDependentTest, Bool()); +// +inline internal::ParamGenerator Bool() { + return Values(false, true); +} + +# if GTEST_HAS_COMBINE +// Combine() allows the user to combine two or more sequences to produce +// values of a Cartesian product of those sequences' elements. +// +// Synopsis: +// Combine(gen1, gen2, ..., genN) +// - returns a generator producing sequences with elements coming from +// the Cartesian product of elements from the sequences generated by +// gen1, gen2, ..., genN. The sequence elements will have a type of +// tuple where T1, T2, ..., TN are the types +// of elements from sequences produces by gen1, gen2, ..., genN. +// +// Combine can have up to 10 arguments. This number is currently limited +// by the maximum number of elements in the tuple implementation used by Google +// Test. +// +// Example: +// +// This will instantiate tests in test case AnimalTest each one with +// the parameter values tuple("cat", BLACK), tuple("cat", WHITE), +// tuple("dog", BLACK), and tuple("dog", WHITE): +// +// enum Color { BLACK, GRAY, WHITE }; +// class AnimalTest +// : public testing::TestWithParam > {...}; +// +// TEST_P(AnimalTest, AnimalLooksNice) {...} +// +// INSTANTIATE_TEST_CASE_P(AnimalVariations, AnimalTest, +// Combine(Values("cat", "dog"), +// Values(BLACK, WHITE))); +// +// This will instantiate tests in FlagDependentTest with all variations of two +// Boolean flags: +// +// class FlagDependentTest +// : public testing::TestWithParam > { +// virtual void SetUp() { +// // Assigns external_flag_1 and external_flag_2 values from the tuple. +// tie(external_flag_1, external_flag_2) = GetParam(); +// } +// }; +// +// TEST_P(FlagDependentTest, TestFeature1) { +// // Test your code using external_flag_1 and external_flag_2 here. +// } +// INSTANTIATE_TEST_CASE_P(TwoBoolSequence, FlagDependentTest, +// Combine(Bool(), Bool())); +// +template +internal::CartesianProductHolder2 Combine( + const Generator1& g1, const Generator2& g2) { + return internal::CartesianProductHolder2( + g1, g2); +} + +template +internal::CartesianProductHolder3 Combine( + const Generator1& g1, const Generator2& g2, const Generator3& g3) { + return internal::CartesianProductHolder3( + g1, g2, g3); +} + +template +internal::CartesianProductHolder4 Combine( + const Generator1& g1, const Generator2& g2, const Generator3& g3, + const Generator4& g4) { + return internal::CartesianProductHolder4( + g1, g2, g3, g4); +} + +template +internal::CartesianProductHolder5 Combine( + const Generator1& g1, const Generator2& g2, const Generator3& g3, + const Generator4& g4, const Generator5& g5) { + return internal::CartesianProductHolder5( + g1, g2, g3, g4, g5); +} + +template +internal::CartesianProductHolder6 Combine( + const Generator1& g1, const Generator2& g2, const Generator3& g3, + const Generator4& g4, const Generator5& g5, const Generator6& g6) { + return internal::CartesianProductHolder6( + g1, g2, g3, g4, g5, g6); +} + +template +internal::CartesianProductHolder7 Combine( + const Generator1& g1, const Generator2& g2, const Generator3& g3, + const Generator4& g4, const Generator5& g5, const Generator6& g6, + const Generator7& g7) { + return internal::CartesianProductHolder7( + g1, g2, g3, g4, g5, g6, g7); +} + +template +internal::CartesianProductHolder8 Combine( + const Generator1& g1, const Generator2& g2, const Generator3& g3, + const Generator4& g4, const Generator5& g5, const Generator6& g6, + const Generator7& g7, const Generator8& g8) { + return internal::CartesianProductHolder8( + g1, g2, g3, g4, g5, g6, g7, g8); +} + +template +internal::CartesianProductHolder9 Combine( + const Generator1& g1, const Generator2& g2, const Generator3& g3, + const Generator4& g4, const Generator5& g5, const Generator6& g6, + const Generator7& g7, const Generator8& g8, const Generator9& g9) { + return internal::CartesianProductHolder9( + g1, g2, g3, g4, g5, g6, g7, g8, g9); +} + +template +internal::CartesianProductHolder10 Combine( + const Generator1& g1, const Generator2& g2, const Generator3& g3, + const Generator4& g4, const Generator5& g5, const Generator6& g6, + const Generator7& g7, const Generator8& g8, const Generator9& g9, + const Generator10& g10) { + return internal::CartesianProductHolder10( + g1, g2, g3, g4, g5, g6, g7, g8, g9, g10); +} +# endif // GTEST_HAS_COMBINE + + + +# define TEST_P(test_case_name, test_name) \ + class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \ + : public test_case_name { \ + public: \ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \ + virtual void TestBody(); \ + private: \ + static int AddToRegistry() { \ + ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ + GetTestCasePatternHolder(\ + #test_case_name, __FILE__, __LINE__)->AddTestPattern(\ + #test_case_name, \ + #test_name, \ + new ::testing::internal::TestMetaFactory< \ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>()); \ + return 0; \ + } \ + static int gtest_registering_dummy_; \ + GTEST_DISALLOW_COPY_AND_ASSIGN_(\ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \ + }; \ + int GTEST_TEST_CLASS_NAME_(test_case_name, \ + test_name)::gtest_registering_dummy_ = \ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \ + void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() + +# define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator) \ + ::testing::internal::ParamGenerator \ + gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \ + int gtest_##prefix##test_case_name##_dummy_ = \ + ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ + GetTestCasePatternHolder(\ + #test_case_name, __FILE__, __LINE__)->AddTestCaseInstantiation(\ + #prefix, \ + >est_##prefix##test_case_name##_EvalGenerator_, \ + __FILE__, __LINE__) + +} // namespace testing + +#endif // GTEST_HAS_PARAM_TEST + +#endif // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ diff --git a/gtest-1.7.0/include/gtest/gtest-param-test.h.pump b/gtest-1.7.0/include/gtest/gtest-param-test.h.pump new file mode 100644 index 0000000..2dc9303 --- /dev/null +++ b/gtest-1.7.0/include/gtest/gtest-param-test.h.pump @@ -0,0 +1,487 @@ +$$ -*- mode: c++; -*- +$var n = 50 $$ Maximum length of Values arguments we want to support. +$var maxtuple = 10 $$ Maximum number of Combine arguments we want to support. +// Copyright 2008, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Authors: vladl@google.com (Vlad Losev) +// +// Macros and functions for implementing parameterized tests +// in Google C++ Testing Framework (Google Test) +// +// This file is generated by a SCRIPT. DO NOT EDIT BY HAND! +// +#ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ +#define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ + + +// Value-parameterized tests allow you to test your code with different +// parameters without writing multiple copies of the same test. +// +// Here is how you use value-parameterized tests: + +#if 0 + +// To write value-parameterized tests, first you should define a fixture +// class. It is usually derived from testing::TestWithParam (see below for +// another inheritance scheme that's sometimes useful in more complicated +// class hierarchies), where the type of your parameter values. +// TestWithParam is itself derived from testing::Test. T can be any +// copyable type. If it's a raw pointer, you are responsible for managing the +// lifespan of the pointed values. + +class FooTest : public ::testing::TestWithParam { + // You can implement all the usual class fixture members here. +}; + +// Then, use the TEST_P macro to define as many parameterized tests +// for this fixture as you want. The _P suffix is for "parameterized" +// or "pattern", whichever you prefer to think. + +TEST_P(FooTest, DoesBlah) { + // Inside a test, access the test parameter with the GetParam() method + // of the TestWithParam class: + EXPECT_TRUE(foo.Blah(GetParam())); + ... +} + +TEST_P(FooTest, HasBlahBlah) { + ... +} + +// Finally, you can use INSTANTIATE_TEST_CASE_P to instantiate the test +// case with any set of parameters you want. Google Test defines a number +// of functions for generating test parameters. They return what we call +// (surprise!) parameter generators. Here is a summary of them, which +// are all in the testing namespace: +// +// +// Range(begin, end [, step]) - Yields values {begin, begin+step, +// begin+step+step, ...}. The values do not +// include end. step defaults to 1. +// Values(v1, v2, ..., vN) - Yields values {v1, v2, ..., vN}. +// ValuesIn(container) - Yields values from a C-style array, an STL +// ValuesIn(begin,end) container, or an iterator range [begin, end). +// Bool() - Yields sequence {false, true}. +// Combine(g1, g2, ..., gN) - Yields all combinations (the Cartesian product +// for the math savvy) of the values generated +// by the N generators. +// +// For more details, see comments at the definitions of these functions below +// in this file. +// +// The following statement will instantiate tests from the FooTest test case +// each with parameter values "meeny", "miny", and "moe". + +INSTANTIATE_TEST_CASE_P(InstantiationName, + FooTest, + Values("meeny", "miny", "moe")); + +// To distinguish different instances of the pattern, (yes, you +// can instantiate it more then once) the first argument to the +// INSTANTIATE_TEST_CASE_P macro is a prefix that will be added to the +// actual test case name. Remember to pick unique prefixes for different +// instantiations. The tests from the instantiation above will have +// these names: +// +// * InstantiationName/FooTest.DoesBlah/0 for "meeny" +// * InstantiationName/FooTest.DoesBlah/1 for "miny" +// * InstantiationName/FooTest.DoesBlah/2 for "moe" +// * InstantiationName/FooTest.HasBlahBlah/0 for "meeny" +// * InstantiationName/FooTest.HasBlahBlah/1 for "miny" +// * InstantiationName/FooTest.HasBlahBlah/2 for "moe" +// +// You can use these names in --gtest_filter. +// +// This statement will instantiate all tests from FooTest again, each +// with parameter values "cat" and "dog": + +const char* pets[] = {"cat", "dog"}; +INSTANTIATE_TEST_CASE_P(AnotherInstantiationName, FooTest, ValuesIn(pets)); + +// The tests from the instantiation above will have these names: +// +// * AnotherInstantiationName/FooTest.DoesBlah/0 for "cat" +// * AnotherInstantiationName/FooTest.DoesBlah/1 for "dog" +// * AnotherInstantiationName/FooTest.HasBlahBlah/0 for "cat" +// * AnotherInstantiationName/FooTest.HasBlahBlah/1 for "dog" +// +// Please note that INSTANTIATE_TEST_CASE_P will instantiate all tests +// in the given test case, whether their definitions come before or +// AFTER the INSTANTIATE_TEST_CASE_P statement. +// +// Please also note that generator expressions (including parameters to the +// generators) are evaluated in InitGoogleTest(), after main() has started. +// This allows the user on one hand, to adjust generator parameters in order +// to dynamically determine a set of tests to run and on the other hand, +// give the user a chance to inspect the generated tests with Google Test +// reflection API before RUN_ALL_TESTS() is executed. +// +// You can see samples/sample7_unittest.cc and samples/sample8_unittest.cc +// for more examples. +// +// In the future, we plan to publish the API for defining new parameter +// generators. But for now this interface remains part of the internal +// implementation and is subject to change. +// +// +// A parameterized test fixture must be derived from testing::Test and from +// testing::WithParamInterface, where T is the type of the parameter +// values. Inheriting from TestWithParam satisfies that requirement because +// TestWithParam inherits from both Test and WithParamInterface. In more +// complicated hierarchies, however, it is occasionally useful to inherit +// separately from Test and WithParamInterface. For example: + +class BaseTest : public ::testing::Test { + // You can inherit all the usual members for a non-parameterized test + // fixture here. +}; + +class DerivedTest : public BaseTest, public ::testing::WithParamInterface { + // The usual test fixture members go here too. +}; + +TEST_F(BaseTest, HasFoo) { + // This is an ordinary non-parameterized test. +} + +TEST_P(DerivedTest, DoesBlah) { + // GetParam works just the same here as if you inherit from TestWithParam. + EXPECT_TRUE(foo.Blah(GetParam())); +} + +#endif // 0 + +#include "gtest/internal/gtest-port.h" + +#if !GTEST_OS_SYMBIAN +# include +#endif + +// scripts/fuse_gtest.py depends on gtest's own header being #included +// *unconditionally*. Therefore these #includes cannot be moved +// inside #if GTEST_HAS_PARAM_TEST. +#include "gtest/internal/gtest-internal.h" +#include "gtest/internal/gtest-param-util.h" +#include "gtest/internal/gtest-param-util-generated.h" + +#if GTEST_HAS_PARAM_TEST + +namespace testing { + +// Functions producing parameter generators. +// +// Google Test uses these generators to produce parameters for value- +// parameterized tests. When a parameterized test case is instantiated +// with a particular generator, Google Test creates and runs tests +// for each element in the sequence produced by the generator. +// +// In the following sample, tests from test case FooTest are instantiated +// each three times with parameter values 3, 5, and 8: +// +// class FooTest : public TestWithParam { ... }; +// +// TEST_P(FooTest, TestThis) { +// } +// TEST_P(FooTest, TestThat) { +// } +// INSTANTIATE_TEST_CASE_P(TestSequence, FooTest, Values(3, 5, 8)); +// + +// Range() returns generators providing sequences of values in a range. +// +// Synopsis: +// Range(start, end) +// - returns a generator producing a sequence of values {start, start+1, +// start+2, ..., }. +// Range(start, end, step) +// - returns a generator producing a sequence of values {start, start+step, +// start+step+step, ..., }. +// Notes: +// * The generated sequences never include end. For example, Range(1, 5) +// returns a generator producing a sequence {1, 2, 3, 4}. Range(1, 9, 2) +// returns a generator producing {1, 3, 5, 7}. +// * start and end must have the same type. That type may be any integral or +// floating-point type or a user defined type satisfying these conditions: +// * It must be assignable (have operator=() defined). +// * It must have operator+() (operator+(int-compatible type) for +// two-operand version). +// * It must have operator<() defined. +// Elements in the resulting sequences will also have that type. +// * Condition start < end must be satisfied in order for resulting sequences +// to contain any elements. +// +template +internal::ParamGenerator Range(T start, T end, IncrementT step) { + return internal::ParamGenerator( + new internal::RangeGenerator(start, end, step)); +} + +template +internal::ParamGenerator Range(T start, T end) { + return Range(start, end, 1); +} + +// ValuesIn() function allows generation of tests with parameters coming from +// a container. +// +// Synopsis: +// ValuesIn(const T (&array)[N]) +// - returns a generator producing sequences with elements from +// a C-style array. +// ValuesIn(const Container& container) +// - returns a generator producing sequences with elements from +// an STL-style container. +// ValuesIn(Iterator begin, Iterator end) +// - returns a generator producing sequences with elements from +// a range [begin, end) defined by a pair of STL-style iterators. These +// iterators can also be plain C pointers. +// +// Please note that ValuesIn copies the values from the containers +// passed in and keeps them to generate tests in RUN_ALL_TESTS(). +// +// Examples: +// +// This instantiates tests from test case StringTest +// each with C-string values of "foo", "bar", and "baz": +// +// const char* strings[] = {"foo", "bar", "baz"}; +// INSTANTIATE_TEST_CASE_P(StringSequence, SrtingTest, ValuesIn(strings)); +// +// This instantiates tests from test case StlStringTest +// each with STL strings with values "a" and "b": +// +// ::std::vector< ::std::string> GetParameterStrings() { +// ::std::vector< ::std::string> v; +// v.push_back("a"); +// v.push_back("b"); +// return v; +// } +// +// INSTANTIATE_TEST_CASE_P(CharSequence, +// StlStringTest, +// ValuesIn(GetParameterStrings())); +// +// +// This will also instantiate tests from CharTest +// each with parameter values 'a' and 'b': +// +// ::std::list GetParameterChars() { +// ::std::list list; +// list.push_back('a'); +// list.push_back('b'); +// return list; +// } +// ::std::list l = GetParameterChars(); +// INSTANTIATE_TEST_CASE_P(CharSequence2, +// CharTest, +// ValuesIn(l.begin(), l.end())); +// +template +internal::ParamGenerator< + typename ::testing::internal::IteratorTraits::value_type> +ValuesIn(ForwardIterator begin, ForwardIterator end) { + typedef typename ::testing::internal::IteratorTraits + ::value_type ParamType; + return internal::ParamGenerator( + new internal::ValuesInIteratorRangeGenerator(begin, end)); +} + +template +internal::ParamGenerator ValuesIn(const T (&array)[N]) { + return ValuesIn(array, array + N); +} + +template +internal::ParamGenerator ValuesIn( + const Container& container) { + return ValuesIn(container.begin(), container.end()); +} + +// Values() allows generating tests from explicitly specified list of +// parameters. +// +// Synopsis: +// Values(T v1, T v2, ..., T vN) +// - returns a generator producing sequences with elements v1, v2, ..., vN. +// +// For example, this instantiates tests from test case BarTest each +// with values "one", "two", and "three": +// +// INSTANTIATE_TEST_CASE_P(NumSequence, BarTest, Values("one", "two", "three")); +// +// This instantiates tests from test case BazTest each with values 1, 2, 3.5. +// The exact type of values will depend on the type of parameter in BazTest. +// +// INSTANTIATE_TEST_CASE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5)); +// +// Currently, Values() supports from 1 to $n parameters. +// +$range i 1..n +$for i [[ +$range j 1..i + +template <$for j, [[typename T$j]]> +internal::ValueArray$i<$for j, [[T$j]]> Values($for j, [[T$j v$j]]) { + return internal::ValueArray$i<$for j, [[T$j]]>($for j, [[v$j]]); +} + +]] + +// Bool() allows generating tests with parameters in a set of (false, true). +// +// Synopsis: +// Bool() +// - returns a generator producing sequences with elements {false, true}. +// +// It is useful when testing code that depends on Boolean flags. Combinations +// of multiple flags can be tested when several Bool()'s are combined using +// Combine() function. +// +// In the following example all tests in the test case FlagDependentTest +// will be instantiated twice with parameters false and true. +// +// class FlagDependentTest : public testing::TestWithParam { +// virtual void SetUp() { +// external_flag = GetParam(); +// } +// } +// INSTANTIATE_TEST_CASE_P(BoolSequence, FlagDependentTest, Bool()); +// +inline internal::ParamGenerator Bool() { + return Values(false, true); +} + +# if GTEST_HAS_COMBINE +// Combine() allows the user to combine two or more sequences to produce +// values of a Cartesian product of those sequences' elements. +// +// Synopsis: +// Combine(gen1, gen2, ..., genN) +// - returns a generator producing sequences with elements coming from +// the Cartesian product of elements from the sequences generated by +// gen1, gen2, ..., genN. The sequence elements will have a type of +// tuple where T1, T2, ..., TN are the types +// of elements from sequences produces by gen1, gen2, ..., genN. +// +// Combine can have up to $maxtuple arguments. This number is currently limited +// by the maximum number of elements in the tuple implementation used by Google +// Test. +// +// Example: +// +// This will instantiate tests in test case AnimalTest each one with +// the parameter values tuple("cat", BLACK), tuple("cat", WHITE), +// tuple("dog", BLACK), and tuple("dog", WHITE): +// +// enum Color { BLACK, GRAY, WHITE }; +// class AnimalTest +// : public testing::TestWithParam > {...}; +// +// TEST_P(AnimalTest, AnimalLooksNice) {...} +// +// INSTANTIATE_TEST_CASE_P(AnimalVariations, AnimalTest, +// Combine(Values("cat", "dog"), +// Values(BLACK, WHITE))); +// +// This will instantiate tests in FlagDependentTest with all variations of two +// Boolean flags: +// +// class FlagDependentTest +// : public testing::TestWithParam > { +// virtual void SetUp() { +// // Assigns external_flag_1 and external_flag_2 values from the tuple. +// tie(external_flag_1, external_flag_2) = GetParam(); +// } +// }; +// +// TEST_P(FlagDependentTest, TestFeature1) { +// // Test your code using external_flag_1 and external_flag_2 here. +// } +// INSTANTIATE_TEST_CASE_P(TwoBoolSequence, FlagDependentTest, +// Combine(Bool(), Bool())); +// +$range i 2..maxtuple +$for i [[ +$range j 1..i + +template <$for j, [[typename Generator$j]]> +internal::CartesianProductHolder$i<$for j, [[Generator$j]]> Combine( + $for j, [[const Generator$j& g$j]]) { + return internal::CartesianProductHolder$i<$for j, [[Generator$j]]>( + $for j, [[g$j]]); +} + +]] +# endif // GTEST_HAS_COMBINE + + + +# define TEST_P(test_case_name, test_name) \ + class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \ + : public test_case_name { \ + public: \ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \ + virtual void TestBody(); \ + private: \ + static int AddToRegistry() { \ + ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ + GetTestCasePatternHolder(\ + #test_case_name, __FILE__, __LINE__)->AddTestPattern(\ + #test_case_name, \ + #test_name, \ + new ::testing::internal::TestMetaFactory< \ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>()); \ + return 0; \ + } \ + static int gtest_registering_dummy_; \ + GTEST_DISALLOW_COPY_AND_ASSIGN_(\ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \ + }; \ + int GTEST_TEST_CLASS_NAME_(test_case_name, \ + test_name)::gtest_registering_dummy_ = \ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \ + void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() + +# define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator) \ + ::testing::internal::ParamGenerator \ + gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \ + int gtest_##prefix##test_case_name##_dummy_ = \ + ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ + GetTestCasePatternHolder(\ + #test_case_name, __FILE__, __LINE__)->AddTestCaseInstantiation(\ + #prefix, \ + >est_##prefix##test_case_name##_EvalGenerator_, \ + __FILE__, __LINE__) + +} // namespace testing + +#endif // GTEST_HAS_PARAM_TEST + +#endif // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ diff --git a/gtest-1.7.0/include/gtest/gtest-printers.h b/gtest-1.7.0/include/gtest/gtest-printers.h new file mode 100644 index 0000000..0639d9f --- /dev/null +++ b/gtest-1.7.0/include/gtest/gtest-printers.h @@ -0,0 +1,855 @@ +// Copyright 2007, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: wan@google.com (Zhanyong Wan) + +// Google Test - The Google C++ Testing Framework +// +// This file implements a universal value printer that can print a +// value of any type T: +// +// void ::testing::internal::UniversalPrinter::Print(value, ostream_ptr); +// +// A user can teach this function how to print a class type T by +// defining either operator<<() or PrintTo() in the namespace that +// defines T. More specifically, the FIRST defined function in the +// following list will be used (assuming T is defined in namespace +// foo): +// +// 1. foo::PrintTo(const T&, ostream*) +// 2. operator<<(ostream&, const T&) defined in either foo or the +// global namespace. +// +// If none of the above is defined, it will print the debug string of +// the value if it is a protocol buffer, or print the raw bytes in the +// value otherwise. +// +// To aid debugging: when T is a reference type, the address of the +// value is also printed; when T is a (const) char pointer, both the +// pointer value and the NUL-terminated string it points to are +// printed. +// +// We also provide some convenient wrappers: +// +// // Prints a value to a string. For a (const or not) char +// // pointer, the NUL-terminated string (but not the pointer) is +// // printed. +// std::string ::testing::PrintToString(const T& value); +// +// // Prints a value tersely: for a reference type, the referenced +// // value (but not the address) is printed; for a (const or not) char +// // pointer, the NUL-terminated string (but not the pointer) is +// // printed. +// void ::testing::internal::UniversalTersePrint(const T& value, ostream*); +// +// // Prints value using the type inferred by the compiler. The difference +// // from UniversalTersePrint() is that this function prints both the +// // pointer and the NUL-terminated string for a (const or not) char pointer. +// void ::testing::internal::UniversalPrint(const T& value, ostream*); +// +// // Prints the fields of a tuple tersely to a string vector, one +// // element for each field. Tuple support must be enabled in +// // gtest-port.h. +// std::vector UniversalTersePrintTupleFieldsToStrings( +// const Tuple& value); +// +// Known limitation: +// +// The print primitives print the elements of an STL-style container +// using the compiler-inferred type of *iter where iter is a +// const_iterator of the container. When const_iterator is an input +// iterator but not a forward iterator, this inferred type may not +// match value_type, and the print output may be incorrect. In +// practice, this is rarely a problem as for most containers +// const_iterator is a forward iterator. We'll fix this if there's an +// actual need for it. Note that this fix cannot rely on value_type +// being defined as many user-defined container types don't have +// value_type. + +#ifndef GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ +#define GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ + +#include // NOLINT +#include +#include +#include +#include +#include "gtest/internal/gtest-port.h" +#include "gtest/internal/gtest-internal.h" + +namespace testing { + +// Definitions in the 'internal' and 'internal2' name spaces are +// subject to change without notice. DO NOT USE THEM IN USER CODE! +namespace internal2 { + +// Prints the given number of bytes in the given object to the given +// ostream. +GTEST_API_ void PrintBytesInObjectTo(const unsigned char* obj_bytes, + size_t count, + ::std::ostream* os); + +// For selecting which printer to use when a given type has neither << +// nor PrintTo(). +enum TypeKind { + kProtobuf, // a protobuf type + kConvertibleToInteger, // a type implicitly convertible to BiggestInt + // (e.g. a named or unnamed enum type) + kOtherType // anything else +}; + +// TypeWithoutFormatter::PrintValue(value, os) is called +// by the universal printer to print a value of type T when neither +// operator<< nor PrintTo() is defined for T, where kTypeKind is the +// "kind" of T as defined by enum TypeKind. +template +class TypeWithoutFormatter { + public: + // This default version is called when kTypeKind is kOtherType. + static void PrintValue(const T& value, ::std::ostream* os) { + PrintBytesInObjectTo(reinterpret_cast(&value), + sizeof(value), os); + } +}; + +// We print a protobuf using its ShortDebugString() when the string +// doesn't exceed this many characters; otherwise we print it using +// DebugString() for better readability. +const size_t kProtobufOneLinerMaxLength = 50; + +template +class TypeWithoutFormatter { + public: + static void PrintValue(const T& value, ::std::ostream* os) { + const ::testing::internal::string short_str = value.ShortDebugString(); + const ::testing::internal::string pretty_str = + short_str.length() <= kProtobufOneLinerMaxLength ? + short_str : ("\n" + value.DebugString()); + *os << ("<" + pretty_str + ">"); + } +}; + +template +class TypeWithoutFormatter { + public: + // Since T has no << operator or PrintTo() but can be implicitly + // converted to BiggestInt, we print it as a BiggestInt. + // + // Most likely T is an enum type (either named or unnamed), in which + // case printing it as an integer is the desired behavior. In case + // T is not an enum, printing it as an integer is the best we can do + // given that it has no user-defined printer. + static void PrintValue(const T& value, ::std::ostream* os) { + const internal::BiggestInt kBigInt = value; + *os << kBigInt; + } +}; + +// Prints the given value to the given ostream. If the value is a +// protocol message, its debug string is printed; if it's an enum or +// of a type implicitly convertible to BiggestInt, it's printed as an +// integer; otherwise the bytes in the value are printed. This is +// what UniversalPrinter::Print() does when it knows nothing about +// type T and T has neither << operator nor PrintTo(). +// +// A user can override this behavior for a class type Foo by defining +// a << operator in the namespace where Foo is defined. +// +// We put this operator in namespace 'internal2' instead of 'internal' +// to simplify the implementation, as much code in 'internal' needs to +// use << in STL, which would conflict with our own << were it defined +// in 'internal'. +// +// Note that this operator<< takes a generic std::basic_ostream type instead of the more restricted std::ostream. If +// we define it to take an std::ostream instead, we'll get an +// "ambiguous overloads" compiler error when trying to print a type +// Foo that supports streaming to std::basic_ostream, as the compiler cannot tell whether +// operator<<(std::ostream&, const T&) or +// operator<<(std::basic_stream, const Foo&) is more +// specific. +template +::std::basic_ostream& operator<<( + ::std::basic_ostream& os, const T& x) { + TypeWithoutFormatter::value ? kProtobuf : + internal::ImplicitlyConvertible::value ? + kConvertibleToInteger : kOtherType)>::PrintValue(x, &os); + return os; +} + +} // namespace internal2 +} // namespace testing + +// This namespace MUST NOT BE NESTED IN ::testing, or the name look-up +// magic needed for implementing UniversalPrinter won't work. +namespace testing_internal { + +// Used to print a value that is not an STL-style container when the +// user doesn't define PrintTo() for it. +template +void DefaultPrintNonContainerTo(const T& value, ::std::ostream* os) { + // With the following statement, during unqualified name lookup, + // testing::internal2::operator<< appears as if it was declared in + // the nearest enclosing namespace that contains both + // ::testing_internal and ::testing::internal2, i.e. the global + // namespace. For more details, refer to the C++ Standard section + // 7.3.4-1 [namespace.udir]. This allows us to fall back onto + // testing::internal2::operator<< in case T doesn't come with a << + // operator. + // + // We cannot write 'using ::testing::internal2::operator<<;', which + // gcc 3.3 fails to compile due to a compiler bug. + using namespace ::testing::internal2; // NOLINT + + // Assuming T is defined in namespace foo, in the next statement, + // the compiler will consider all of: + // + // 1. foo::operator<< (thanks to Koenig look-up), + // 2. ::operator<< (as the current namespace is enclosed in ::), + // 3. testing::internal2::operator<< (thanks to the using statement above). + // + // The operator<< whose type matches T best will be picked. + // + // We deliberately allow #2 to be a candidate, as sometimes it's + // impossible to define #1 (e.g. when foo is ::std, defining + // anything in it is undefined behavior unless you are a compiler + // vendor.). + *os << value; +} + +} // namespace testing_internal + +namespace testing { +namespace internal { + +// UniversalPrinter::Print(value, ostream_ptr) prints the given +// value to the given ostream. The caller must ensure that +// 'ostream_ptr' is not NULL, or the behavior is undefined. +// +// We define UniversalPrinter as a class template (as opposed to a +// function template), as we need to partially specialize it for +// reference types, which cannot be done with function templates. +template +class UniversalPrinter; + +template +void UniversalPrint(const T& value, ::std::ostream* os); + +// Used to print an STL-style container when the user doesn't define +// a PrintTo() for it. +template +void DefaultPrintTo(IsContainer /* dummy */, + false_type /* is not a pointer */, + const C& container, ::std::ostream* os) { + const size_t kMaxCount = 32; // The maximum number of elements to print. + *os << '{'; + size_t count = 0; + for (typename C::const_iterator it = container.begin(); + it != container.end(); ++it, ++count) { + if (count > 0) { + *os << ','; + if (count == kMaxCount) { // Enough has been printed. + *os << " ..."; + break; + } + } + *os << ' '; + // We cannot call PrintTo(*it, os) here as PrintTo() doesn't + // handle *it being a native array. + internal::UniversalPrint(*it, os); + } + + if (count > 0) { + *os << ' '; + } + *os << '}'; +} + +// Used to print a pointer that is neither a char pointer nor a member +// pointer, when the user doesn't define PrintTo() for it. (A member +// variable pointer or member function pointer doesn't really point to +// a location in the address space. Their representation is +// implementation-defined. Therefore they will be printed as raw +// bytes.) +template +void DefaultPrintTo(IsNotContainer /* dummy */, + true_type /* is a pointer */, + T* p, ::std::ostream* os) { + if (p == NULL) { + *os << "NULL"; + } else { + // C++ doesn't allow casting from a function pointer to any object + // pointer. + // + // IsTrue() silences warnings: "Condition is always true", + // "unreachable code". + if (IsTrue(ImplicitlyConvertible::value)) { + // T is not a function type. We just call << to print p, + // relying on ADL to pick up user-defined << for their pointer + // types, if any. + *os << p; + } else { + // T is a function type, so '*os << p' doesn't do what we want + // (it just prints p as bool). We want to print p as a const + // void*. However, we cannot cast it to const void* directly, + // even using reinterpret_cast, as earlier versions of gcc + // (e.g. 3.4.5) cannot compile the cast when p is a function + // pointer. Casting to UInt64 first solves the problem. + *os << reinterpret_cast( + reinterpret_cast(p)); + } + } +} + +// Used to print a non-container, non-pointer value when the user +// doesn't define PrintTo() for it. +template +void DefaultPrintTo(IsNotContainer /* dummy */, + false_type /* is not a pointer */, + const T& value, ::std::ostream* os) { + ::testing_internal::DefaultPrintNonContainerTo(value, os); +} + +// Prints the given value using the << operator if it has one; +// otherwise prints the bytes in it. This is what +// UniversalPrinter::Print() does when PrintTo() is not specialized +// or overloaded for type T. +// +// A user can override this behavior for a class type Foo by defining +// an overload of PrintTo() in the namespace where Foo is defined. We +// give the user this option as sometimes defining a << operator for +// Foo is not desirable (e.g. the coding style may prevent doing it, +// or there is already a << operator but it doesn't do what the user +// wants). +template +void PrintTo(const T& value, ::std::ostream* os) { + // DefaultPrintTo() is overloaded. The type of its first two + // arguments determine which version will be picked. If T is an + // STL-style container, the version for container will be called; if + // T is a pointer, the pointer version will be called; otherwise the + // generic version will be called. + // + // Note that we check for container types here, prior to we check + // for protocol message types in our operator<<. The rationale is: + // + // For protocol messages, we want to give people a chance to + // override Google Mock's format by defining a PrintTo() or + // operator<<. For STL containers, other formats can be + // incompatible with Google Mock's format for the container + // elements; therefore we check for container types here to ensure + // that our format is used. + // + // The second argument of DefaultPrintTo() is needed to bypass a bug + // in Symbian's C++ compiler that prevents it from picking the right + // overload between: + // + // PrintTo(const T& x, ...); + // PrintTo(T* x, ...); + DefaultPrintTo(IsContainerTest(0), is_pointer(), value, os); +} + +// The following list of PrintTo() overloads tells +// UniversalPrinter::Print() how to print standard types (built-in +// types, strings, plain arrays, and pointers). + +// Overloads for various char types. +GTEST_API_ void PrintTo(unsigned char c, ::std::ostream* os); +GTEST_API_ void PrintTo(signed char c, ::std::ostream* os); +inline void PrintTo(char c, ::std::ostream* os) { + // When printing a plain char, we always treat it as unsigned. This + // way, the output won't be affected by whether the compiler thinks + // char is signed or not. + PrintTo(static_cast(c), os); +} + +// Overloads for other simple built-in types. +inline void PrintTo(bool x, ::std::ostream* os) { + *os << (x ? "true" : "false"); +} + +// Overload for wchar_t type. +// Prints a wchar_t as a symbol if it is printable or as its internal +// code otherwise and also as its decimal code (except for L'\0'). +// The L'\0' char is printed as "L'\\0'". The decimal code is printed +// as signed integer when wchar_t is implemented by the compiler +// as a signed type and is printed as an unsigned integer when wchar_t +// is implemented as an unsigned type. +GTEST_API_ void PrintTo(wchar_t wc, ::std::ostream* os); + +// Overloads for C strings. +GTEST_API_ void PrintTo(const char* s, ::std::ostream* os); +inline void PrintTo(char* s, ::std::ostream* os) { + PrintTo(ImplicitCast_(s), os); +} + +// signed/unsigned char is often used for representing binary data, so +// we print pointers to it as void* to be safe. +inline void PrintTo(const signed char* s, ::std::ostream* os) { + PrintTo(ImplicitCast_(s), os); +} +inline void PrintTo(signed char* s, ::std::ostream* os) { + PrintTo(ImplicitCast_(s), os); +} +inline void PrintTo(const unsigned char* s, ::std::ostream* os) { + PrintTo(ImplicitCast_(s), os); +} +inline void PrintTo(unsigned char* s, ::std::ostream* os) { + PrintTo(ImplicitCast_(s), os); +} + +// MSVC can be configured to define wchar_t as a typedef of unsigned +// short. It defines _NATIVE_WCHAR_T_DEFINED when wchar_t is a native +// type. When wchar_t is a typedef, defining an overload for const +// wchar_t* would cause unsigned short* be printed as a wide string, +// possibly causing invalid memory accesses. +#if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED) +// Overloads for wide C strings +GTEST_API_ void PrintTo(const wchar_t* s, ::std::ostream* os); +inline void PrintTo(wchar_t* s, ::std::ostream* os) { + PrintTo(ImplicitCast_(s), os); +} +#endif + +// Overload for C arrays. Multi-dimensional arrays are printed +// properly. + +// Prints the given number of elements in an array, without printing +// the curly braces. +template +void PrintRawArrayTo(const T a[], size_t count, ::std::ostream* os) { + UniversalPrint(a[0], os); + for (size_t i = 1; i != count; i++) { + *os << ", "; + UniversalPrint(a[i], os); + } +} + +// Overloads for ::string and ::std::string. +#if GTEST_HAS_GLOBAL_STRING +GTEST_API_ void PrintStringTo(const ::string&s, ::std::ostream* os); +inline void PrintTo(const ::string& s, ::std::ostream* os) { + PrintStringTo(s, os); +} +#endif // GTEST_HAS_GLOBAL_STRING + +GTEST_API_ void PrintStringTo(const ::std::string&s, ::std::ostream* os); +inline void PrintTo(const ::std::string& s, ::std::ostream* os) { + PrintStringTo(s, os); +} + +// Overloads for ::wstring and ::std::wstring. +#if GTEST_HAS_GLOBAL_WSTRING +GTEST_API_ void PrintWideStringTo(const ::wstring&s, ::std::ostream* os); +inline void PrintTo(const ::wstring& s, ::std::ostream* os) { + PrintWideStringTo(s, os); +} +#endif // GTEST_HAS_GLOBAL_WSTRING + +#if GTEST_HAS_STD_WSTRING +GTEST_API_ void PrintWideStringTo(const ::std::wstring&s, ::std::ostream* os); +inline void PrintTo(const ::std::wstring& s, ::std::ostream* os) { + PrintWideStringTo(s, os); +} +#endif // GTEST_HAS_STD_WSTRING + +#if GTEST_HAS_TR1_TUPLE +// Overload for ::std::tr1::tuple. Needed for printing function arguments, +// which are packed as tuples. + +// Helper function for printing a tuple. T must be instantiated with +// a tuple type. +template +void PrintTupleTo(const T& t, ::std::ostream* os); + +// Overloaded PrintTo() for tuples of various arities. We support +// tuples of up-to 10 fields. The following implementation works +// regardless of whether tr1::tuple is implemented using the +// non-standard variadic template feature or not. + +inline void PrintTo(const ::std::tr1::tuple<>& t, ::std::ostream* os) { + PrintTupleTo(t, os); +} + +template +void PrintTo(const ::std::tr1::tuple& t, ::std::ostream* os) { + PrintTupleTo(t, os); +} + +template +void PrintTo(const ::std::tr1::tuple& t, ::std::ostream* os) { + PrintTupleTo(t, os); +} + +template +void PrintTo(const ::std::tr1::tuple& t, ::std::ostream* os) { + PrintTupleTo(t, os); +} + +template +void PrintTo(const ::std::tr1::tuple& t, ::std::ostream* os) { + PrintTupleTo(t, os); +} + +template +void PrintTo(const ::std::tr1::tuple& t, + ::std::ostream* os) { + PrintTupleTo(t, os); +} + +template +void PrintTo(const ::std::tr1::tuple& t, + ::std::ostream* os) { + PrintTupleTo(t, os); +} + +template +void PrintTo(const ::std::tr1::tuple& t, + ::std::ostream* os) { + PrintTupleTo(t, os); +} + +template +void PrintTo(const ::std::tr1::tuple& t, + ::std::ostream* os) { + PrintTupleTo(t, os); +} + +template +void PrintTo(const ::std::tr1::tuple& t, + ::std::ostream* os) { + PrintTupleTo(t, os); +} + +template +void PrintTo( + const ::std::tr1::tuple& t, + ::std::ostream* os) { + PrintTupleTo(t, os); +} +#endif // GTEST_HAS_TR1_TUPLE + +// Overload for std::pair. +template +void PrintTo(const ::std::pair& value, ::std::ostream* os) { + *os << '('; + // We cannot use UniversalPrint(value.first, os) here, as T1 may be + // a reference type. The same for printing value.second. + UniversalPrinter::Print(value.first, os); + *os << ", "; + UniversalPrinter::Print(value.second, os); + *os << ')'; +} + +// Implements printing a non-reference type T by letting the compiler +// pick the right overload of PrintTo() for T. +template +class UniversalPrinter { + public: + // MSVC warns about adding const to a function type, so we want to + // disable the warning. +#ifdef _MSC_VER +# pragma warning(push) // Saves the current warning state. +# pragma warning(disable:4180) // Temporarily disables warning 4180. +#endif // _MSC_VER + + // Note: we deliberately don't call this PrintTo(), as that name + // conflicts with ::testing::internal::PrintTo in the body of the + // function. + static void Print(const T& value, ::std::ostream* os) { + // By default, ::testing::internal::PrintTo() is used for printing + // the value. + // + // Thanks to Koenig look-up, if T is a class and has its own + // PrintTo() function defined in its namespace, that function will + // be visible here. Since it is more specific than the generic ones + // in ::testing::internal, it will be picked by the compiler in the + // following statement - exactly what we want. + PrintTo(value, os); + } + +#ifdef _MSC_VER +# pragma warning(pop) // Restores the warning state. +#endif // _MSC_VER +}; + +// UniversalPrintArray(begin, len, os) prints an array of 'len' +// elements, starting at address 'begin'. +template +void UniversalPrintArray(const T* begin, size_t len, ::std::ostream* os) { + if (len == 0) { + *os << "{}"; + } else { + *os << "{ "; + const size_t kThreshold = 18; + const size_t kChunkSize = 8; + // If the array has more than kThreshold elements, we'll have to + // omit some details by printing only the first and the last + // kChunkSize elements. + // TODO(wan@google.com): let the user control the threshold using a flag. + if (len <= kThreshold) { + PrintRawArrayTo(begin, len, os); + } else { + PrintRawArrayTo(begin, kChunkSize, os); + *os << ", ..., "; + PrintRawArrayTo(begin + len - kChunkSize, kChunkSize, os); + } + *os << " }"; + } +} +// This overload prints a (const) char array compactly. +GTEST_API_ void UniversalPrintArray( + const char* begin, size_t len, ::std::ostream* os); + +// This overload prints a (const) wchar_t array compactly. +GTEST_API_ void UniversalPrintArray( + const wchar_t* begin, size_t len, ::std::ostream* os); + +// Implements printing an array type T[N]. +template +class UniversalPrinter { + public: + // Prints the given array, omitting some elements when there are too + // many. + static void Print(const T (&a)[N], ::std::ostream* os) { + UniversalPrintArray(a, N, os); + } +}; + +// Implements printing a reference type T&. +template +class UniversalPrinter { + public: + // MSVC warns about adding const to a function type, so we want to + // disable the warning. +#ifdef _MSC_VER +# pragma warning(push) // Saves the current warning state. +# pragma warning(disable:4180) // Temporarily disables warning 4180. +#endif // _MSC_VER + + static void Print(const T& value, ::std::ostream* os) { + // Prints the address of the value. We use reinterpret_cast here + // as static_cast doesn't compile when T is a function type. + *os << "@" << reinterpret_cast(&value) << " "; + + // Then prints the value itself. + UniversalPrint(value, os); + } + +#ifdef _MSC_VER +# pragma warning(pop) // Restores the warning state. +#endif // _MSC_VER +}; + +// Prints a value tersely: for a reference type, the referenced value +// (but not the address) is printed; for a (const) char pointer, the +// NUL-terminated string (but not the pointer) is printed. + +template +class UniversalTersePrinter { + public: + static void Print(const T& value, ::std::ostream* os) { + UniversalPrint(value, os); + } +}; +template +class UniversalTersePrinter { + public: + static void Print(const T& value, ::std::ostream* os) { + UniversalPrint(value, os); + } +}; +template +class UniversalTersePrinter { + public: + static void Print(const T (&value)[N], ::std::ostream* os) { + UniversalPrinter::Print(value, os); + } +}; +template <> +class UniversalTersePrinter { + public: + static void Print(const char* str, ::std::ostream* os) { + if (str == NULL) { + *os << "NULL"; + } else { + UniversalPrint(string(str), os); + } + } +}; +template <> +class UniversalTersePrinter { + public: + static void Print(char* str, ::std::ostream* os) { + UniversalTersePrinter::Print(str, os); + } +}; + +#if GTEST_HAS_STD_WSTRING +template <> +class UniversalTersePrinter { + public: + static void Print(const wchar_t* str, ::std::ostream* os) { + if (str == NULL) { + *os << "NULL"; + } else { + UniversalPrint(::std::wstring(str), os); + } + } +}; +#endif + +template <> +class UniversalTersePrinter { + public: + static void Print(wchar_t* str, ::std::ostream* os) { + UniversalTersePrinter::Print(str, os); + } +}; + +template +void UniversalTersePrint(const T& value, ::std::ostream* os) { + UniversalTersePrinter::Print(value, os); +} + +// Prints a value using the type inferred by the compiler. The +// difference between this and UniversalTersePrint() is that for a +// (const) char pointer, this prints both the pointer and the +// NUL-terminated string. +template +void UniversalPrint(const T& value, ::std::ostream* os) { + // A workarond for the bug in VC++ 7.1 that prevents us from instantiating + // UniversalPrinter with T directly. + typedef T T1; + UniversalPrinter::Print(value, os); +} + +#if GTEST_HAS_TR1_TUPLE +typedef ::std::vector Strings; + +// This helper template allows PrintTo() for tuples and +// UniversalTersePrintTupleFieldsToStrings() to be defined by +// induction on the number of tuple fields. The idea is that +// TuplePrefixPrinter::PrintPrefixTo(t, os) prints the first N +// fields in tuple t, and can be defined in terms of +// TuplePrefixPrinter. + +// The inductive case. +template +struct TuplePrefixPrinter { + // Prints the first N fields of a tuple. + template + static void PrintPrefixTo(const Tuple& t, ::std::ostream* os) { + TuplePrefixPrinter::PrintPrefixTo(t, os); + *os << ", "; + UniversalPrinter::type> + ::Print(::std::tr1::get(t), os); + } + + // Tersely prints the first N fields of a tuple to a string vector, + // one element for each field. + template + static void TersePrintPrefixToStrings(const Tuple& t, Strings* strings) { + TuplePrefixPrinter::TersePrintPrefixToStrings(t, strings); + ::std::stringstream ss; + UniversalTersePrint(::std::tr1::get(t), &ss); + strings->push_back(ss.str()); + } +}; + +// Base cases. +template <> +struct TuplePrefixPrinter<0> { + template + static void PrintPrefixTo(const Tuple&, ::std::ostream*) {} + + template + static void TersePrintPrefixToStrings(const Tuple&, Strings*) {} +}; +// We have to specialize the entire TuplePrefixPrinter<> class +// template here, even though the definition of +// TersePrintPrefixToStrings() is the same as the generic version, as +// Embarcadero (formerly CodeGear, formerly Borland) C++ doesn't +// support specializing a method template of a class template. +template <> +struct TuplePrefixPrinter<1> { + template + static void PrintPrefixTo(const Tuple& t, ::std::ostream* os) { + UniversalPrinter::type>:: + Print(::std::tr1::get<0>(t), os); + } + + template + static void TersePrintPrefixToStrings(const Tuple& t, Strings* strings) { + ::std::stringstream ss; + UniversalTersePrint(::std::tr1::get<0>(t), &ss); + strings->push_back(ss.str()); + } +}; + +// Helper function for printing a tuple. T must be instantiated with +// a tuple type. +template +void PrintTupleTo(const T& t, ::std::ostream* os) { + *os << "("; + TuplePrefixPrinter< ::std::tr1::tuple_size::value>:: + PrintPrefixTo(t, os); + *os << ")"; +} + +// Prints the fields of a tuple tersely to a string vector, one +// element for each field. See the comment before +// UniversalTersePrint() for how we define "tersely". +template +Strings UniversalTersePrintTupleFieldsToStrings(const Tuple& value) { + Strings result; + TuplePrefixPrinter< ::std::tr1::tuple_size::value>:: + TersePrintPrefixToStrings(value, &result); + return result; +} +#endif // GTEST_HAS_TR1_TUPLE + +} // namespace internal + +template +::std::string PrintToString(const T& value) { + ::std::stringstream ss; + internal::UniversalTersePrinter::Print(value, &ss); + return ss.str(); +} + +} // namespace testing + +#endif // GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ diff --git a/gtest-1.7.0/include/gtest/gtest-spi.h b/gtest-1.7.0/include/gtest/gtest-spi.h new file mode 100644 index 0000000..f63fa9a --- /dev/null +++ b/gtest-1.7.0/include/gtest/gtest-spi.h @@ -0,0 +1,232 @@ +// Copyright 2007, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: wan@google.com (Zhanyong Wan) +// +// Utilities for testing Google Test itself and code that uses Google Test +// (e.g. frameworks built on top of Google Test). + +#ifndef GTEST_INCLUDE_GTEST_GTEST_SPI_H_ +#define GTEST_INCLUDE_GTEST_GTEST_SPI_H_ + +#include "gtest/gtest.h" + +namespace testing { + +// This helper class can be used to mock out Google Test failure reporting +// so that we can test Google Test or code that builds on Google Test. +// +// An object of this class appends a TestPartResult object to the +// TestPartResultArray object given in the constructor whenever a Google Test +// failure is reported. It can either intercept only failures that are +// generated in the same thread that created this object or it can intercept +// all generated failures. The scope of this mock object can be controlled with +// the second argument to the two arguments constructor. +class GTEST_API_ ScopedFakeTestPartResultReporter + : public TestPartResultReporterInterface { + public: + // The two possible mocking modes of this object. + enum InterceptMode { + INTERCEPT_ONLY_CURRENT_THREAD, // Intercepts only thread local failures. + INTERCEPT_ALL_THREADS // Intercepts all failures. + }; + + // The c'tor sets this object as the test part result reporter used + // by Google Test. The 'result' parameter specifies where to report the + // results. This reporter will only catch failures generated in the current + // thread. DEPRECATED + explicit ScopedFakeTestPartResultReporter(TestPartResultArray* result); + + // Same as above, but you can choose the interception scope of this object. + ScopedFakeTestPartResultReporter(InterceptMode intercept_mode, + TestPartResultArray* result); + + // The d'tor restores the previous test part result reporter. + virtual ~ScopedFakeTestPartResultReporter(); + + // Appends the TestPartResult object to the TestPartResultArray + // received in the constructor. + // + // This method is from the TestPartResultReporterInterface + // interface. + virtual void ReportTestPartResult(const TestPartResult& result); + private: + void Init(); + + const InterceptMode intercept_mode_; + TestPartResultReporterInterface* old_reporter_; + TestPartResultArray* const result_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedFakeTestPartResultReporter); +}; + +namespace internal { + +// A helper class for implementing EXPECT_FATAL_FAILURE() and +// EXPECT_NONFATAL_FAILURE(). Its destructor verifies that the given +// TestPartResultArray contains exactly one failure that has the given +// type and contains the given substring. If that's not the case, a +// non-fatal failure will be generated. +class GTEST_API_ SingleFailureChecker { + public: + // The constructor remembers the arguments. + SingleFailureChecker(const TestPartResultArray* results, + TestPartResult::Type type, + const string& substr); + ~SingleFailureChecker(); + private: + const TestPartResultArray* const results_; + const TestPartResult::Type type_; + const string substr_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(SingleFailureChecker); +}; + +} // namespace internal + +} // namespace testing + +// A set of macros for testing Google Test assertions or code that's expected +// to generate Google Test fatal failures. It verifies that the given +// statement will cause exactly one fatal Google Test failure with 'substr' +// being part of the failure message. +// +// There are two different versions of this macro. EXPECT_FATAL_FAILURE only +// affects and considers failures generated in the current thread and +// EXPECT_FATAL_FAILURE_ON_ALL_THREADS does the same but for all threads. +// +// The verification of the assertion is done correctly even when the statement +// throws an exception or aborts the current function. +// +// Known restrictions: +// - 'statement' cannot reference local non-static variables or +// non-static members of the current object. +// - 'statement' cannot return a value. +// - You cannot stream a failure message to this macro. +// +// Note that even though the implementations of the following two +// macros are much alike, we cannot refactor them to use a common +// helper macro, due to some peculiarity in how the preprocessor +// works. The AcceptsMacroThatExpandsToUnprotectedComma test in +// gtest_unittest.cc will fail to compile if we do that. +#define EXPECT_FATAL_FAILURE(statement, substr) \ + do { \ + class GTestExpectFatalFailureHelper {\ + public:\ + static void Execute() { statement; }\ + };\ + ::testing::TestPartResultArray gtest_failures;\ + ::testing::internal::SingleFailureChecker gtest_checker(\ + >est_failures, ::testing::TestPartResult::kFatalFailure, (substr));\ + {\ + ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\ + ::testing::ScopedFakeTestPartResultReporter:: \ + INTERCEPT_ONLY_CURRENT_THREAD, >est_failures);\ + GTestExpectFatalFailureHelper::Execute();\ + }\ + } while (::testing::internal::AlwaysFalse()) + +#define EXPECT_FATAL_FAILURE_ON_ALL_THREADS(statement, substr) \ + do { \ + class GTestExpectFatalFailureHelper {\ + public:\ + static void Execute() { statement; }\ + };\ + ::testing::TestPartResultArray gtest_failures;\ + ::testing::internal::SingleFailureChecker gtest_checker(\ + >est_failures, ::testing::TestPartResult::kFatalFailure, (substr));\ + {\ + ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\ + ::testing::ScopedFakeTestPartResultReporter:: \ + INTERCEPT_ALL_THREADS, >est_failures);\ + GTestExpectFatalFailureHelper::Execute();\ + }\ + } while (::testing::internal::AlwaysFalse()) + +// A macro for testing Google Test assertions or code that's expected to +// generate Google Test non-fatal failures. It asserts that the given +// statement will cause exactly one non-fatal Google Test failure with 'substr' +// being part of the failure message. +// +// There are two different versions of this macro. EXPECT_NONFATAL_FAILURE only +// affects and considers failures generated in the current thread and +// EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS does the same but for all threads. +// +// 'statement' is allowed to reference local variables and members of +// the current object. +// +// The verification of the assertion is done correctly even when the statement +// throws an exception or aborts the current function. +// +// Known restrictions: +// - You cannot stream a failure message to this macro. +// +// Note that even though the implementations of the following two +// macros are much alike, we cannot refactor them to use a common +// helper macro, due to some peculiarity in how the preprocessor +// works. If we do that, the code won't compile when the user gives +// EXPECT_NONFATAL_FAILURE() a statement that contains a macro that +// expands to code containing an unprotected comma. The +// AcceptsMacroThatExpandsToUnprotectedComma test in gtest_unittest.cc +// catches that. +// +// For the same reason, we have to write +// if (::testing::internal::AlwaysTrue()) { statement; } +// instead of +// GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) +// to avoid an MSVC warning on unreachable code. +#define EXPECT_NONFATAL_FAILURE(statement, substr) \ + do {\ + ::testing::TestPartResultArray gtest_failures;\ + ::testing::internal::SingleFailureChecker gtest_checker(\ + >est_failures, ::testing::TestPartResult::kNonFatalFailure, \ + (substr));\ + {\ + ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\ + ::testing::ScopedFakeTestPartResultReporter:: \ + INTERCEPT_ONLY_CURRENT_THREAD, >est_failures);\ + if (::testing::internal::AlwaysTrue()) { statement; }\ + }\ + } while (::testing::internal::AlwaysFalse()) + +#define EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(statement, substr) \ + do {\ + ::testing::TestPartResultArray gtest_failures;\ + ::testing::internal::SingleFailureChecker gtest_checker(\ + >est_failures, ::testing::TestPartResult::kNonFatalFailure, \ + (substr));\ + {\ + ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\ + ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \ + >est_failures);\ + if (::testing::internal::AlwaysTrue()) { statement; }\ + }\ + } while (::testing::internal::AlwaysFalse()) + +#endif // GTEST_INCLUDE_GTEST_GTEST_SPI_H_ diff --git a/gtest-1.7.0/include/gtest/gtest-test-part.h b/gtest-1.7.0/include/gtest/gtest-test-part.h new file mode 100644 index 0000000..77eb844 --- /dev/null +++ b/gtest-1.7.0/include/gtest/gtest-test-part.h @@ -0,0 +1,179 @@ +// Copyright 2008, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: mheule@google.com (Markus Heule) +// + +#ifndef GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ +#define GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ + +#include +#include +#include "gtest/internal/gtest-internal.h" +#include "gtest/internal/gtest-string.h" + +namespace testing { + +// A copyable object representing the result of a test part (i.e. an +// assertion or an explicit FAIL(), ADD_FAILURE(), or SUCCESS()). +// +// Don't inherit from TestPartResult as its destructor is not virtual. +class GTEST_API_ TestPartResult { + public: + // The possible outcomes of a test part (i.e. an assertion or an + // explicit SUCCEED(), FAIL(), or ADD_FAILURE()). + enum Type { + kSuccess, // Succeeded. + kNonFatalFailure, // Failed but the test can continue. + kFatalFailure // Failed and the test should be terminated. + }; + + // C'tor. TestPartResult does NOT have a default constructor. + // Always use this constructor (with parameters) to create a + // TestPartResult object. + TestPartResult(Type a_type, + const char* a_file_name, + int a_line_number, + const char* a_message) + : type_(a_type), + file_name_(a_file_name == NULL ? "" : a_file_name), + line_number_(a_line_number), + summary_(ExtractSummary(a_message)), + message_(a_message) { + } + + // Gets the outcome of the test part. + Type type() const { return type_; } + + // Gets the name of the source file where the test part took place, or + // NULL if it's unknown. + const char* file_name() const { + return file_name_.empty() ? NULL : file_name_.c_str(); + } + + // Gets the line in the source file where the test part took place, + // or -1 if it's unknown. + int line_number() const { return line_number_; } + + // Gets the summary of the failure message. + const char* summary() const { return summary_.c_str(); } + + // Gets the message associated with the test part. + const char* message() const { return message_.c_str(); } + + // Returns true iff the test part passed. + bool passed() const { return type_ == kSuccess; } + + // Returns true iff the test part failed. + bool failed() const { return type_ != kSuccess; } + + // Returns true iff the test part non-fatally failed. + bool nonfatally_failed() const { return type_ == kNonFatalFailure; } + + // Returns true iff the test part fatally failed. + bool fatally_failed() const { return type_ == kFatalFailure; } + + private: + Type type_; + + // Gets the summary of the failure message by omitting the stack + // trace in it. + static std::string ExtractSummary(const char* message); + + // The name of the source file where the test part took place, or + // "" if the source file is unknown. + std::string file_name_; + // The line in the source file where the test part took place, or -1 + // if the line number is unknown. + int line_number_; + std::string summary_; // The test failure summary. + std::string message_; // The test failure message. +}; + +// Prints a TestPartResult object. +std::ostream& operator<<(std::ostream& os, const TestPartResult& result); + +// An array of TestPartResult objects. +// +// Don't inherit from TestPartResultArray as its destructor is not +// virtual. +class GTEST_API_ TestPartResultArray { + public: + TestPartResultArray() {} + + // Appends the given TestPartResult to the array. + void Append(const TestPartResult& result); + + // Returns the TestPartResult at the given index (0-based). + const TestPartResult& GetTestPartResult(int index) const; + + // Returns the number of TestPartResult objects in the array. + int size() const; + + private: + std::vector array_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(TestPartResultArray); +}; + +// This interface knows how to report a test part result. +class TestPartResultReporterInterface { + public: + virtual ~TestPartResultReporterInterface() {} + + virtual void ReportTestPartResult(const TestPartResult& result) = 0; +}; + +namespace internal { + +// This helper class is used by {ASSERT|EXPECT}_NO_FATAL_FAILURE to check if a +// statement generates new fatal failures. To do so it registers itself as the +// current test part result reporter. Besides checking if fatal failures were +// reported, it only delegates the reporting to the former result reporter. +// The original result reporter is restored in the destructor. +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. +class GTEST_API_ HasNewFatalFailureHelper + : public TestPartResultReporterInterface { + public: + HasNewFatalFailureHelper(); + virtual ~HasNewFatalFailureHelper(); + virtual void ReportTestPartResult(const TestPartResult& result); + bool has_new_fatal_failure() const { return has_new_fatal_failure_; } + private: + bool has_new_fatal_failure_; + TestPartResultReporterInterface* original_reporter_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(HasNewFatalFailureHelper); +}; + +} // namespace internal + +} // namespace testing + +#endif // GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ diff --git a/gtest-1.7.0/include/gtest/gtest-typed-test.h b/gtest-1.7.0/include/gtest/gtest-typed-test.h new file mode 100644 index 0000000..fe1e83b --- /dev/null +++ b/gtest-1.7.0/include/gtest/gtest-typed-test.h @@ -0,0 +1,259 @@ +// Copyright 2008 Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: wan@google.com (Zhanyong Wan) + +#ifndef GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ +#define GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ + +// This header implements typed tests and type-parameterized tests. + +// Typed (aka type-driven) tests repeat the same test for types in a +// list. You must know which types you want to test with when writing +// typed tests. Here's how you do it: + +#if 0 + +// First, define a fixture class template. It should be parameterized +// by a type. Remember to derive it from testing::Test. +template +class FooTest : public testing::Test { + public: + ... + typedef std::list List; + static T shared_; + T value_; +}; + +// Next, associate a list of types with the test case, which will be +// repeated for each type in the list. The typedef is necessary for +// the macro to parse correctly. +typedef testing::Types MyTypes; +TYPED_TEST_CASE(FooTest, MyTypes); + +// If the type list contains only one type, you can write that type +// directly without Types<...>: +// TYPED_TEST_CASE(FooTest, int); + +// Then, use TYPED_TEST() instead of TEST_F() to define as many typed +// tests for this test case as you want. +TYPED_TEST(FooTest, DoesBlah) { + // Inside a test, refer to TypeParam to get the type parameter. + // Since we are inside a derived class template, C++ requires use to + // visit the members of FooTest via 'this'. + TypeParam n = this->value_; + + // To visit static members of the fixture, add the TestFixture:: + // prefix. + n += TestFixture::shared_; + + // To refer to typedefs in the fixture, add the "typename + // TestFixture::" prefix. + typename TestFixture::List values; + values.push_back(n); + ... +} + +TYPED_TEST(FooTest, HasPropertyA) { ... } + +#endif // 0 + +// Type-parameterized tests are abstract test patterns parameterized +// by a type. Compared with typed tests, type-parameterized tests +// allow you to define the test pattern without knowing what the type +// parameters are. The defined pattern can be instantiated with +// different types any number of times, in any number of translation +// units. +// +// If you are designing an interface or concept, you can define a +// suite of type-parameterized tests to verify properties that any +// valid implementation of the interface/concept should have. Then, +// each implementation can easily instantiate the test suite to verify +// that it conforms to the requirements, without having to write +// similar tests repeatedly. Here's an example: + +#if 0 + +// First, define a fixture class template. It should be parameterized +// by a type. Remember to derive it from testing::Test. +template +class FooTest : public testing::Test { + ... +}; + +// Next, declare that you will define a type-parameterized test case +// (the _P suffix is for "parameterized" or "pattern", whichever you +// prefer): +TYPED_TEST_CASE_P(FooTest); + +// Then, use TYPED_TEST_P() to define as many type-parameterized tests +// for this type-parameterized test case as you want. +TYPED_TEST_P(FooTest, DoesBlah) { + // Inside a test, refer to TypeParam to get the type parameter. + TypeParam n = 0; + ... +} + +TYPED_TEST_P(FooTest, HasPropertyA) { ... } + +// Now the tricky part: you need to register all test patterns before +// you can instantiate them. The first argument of the macro is the +// test case name; the rest are the names of the tests in this test +// case. +REGISTER_TYPED_TEST_CASE_P(FooTest, + DoesBlah, HasPropertyA); + +// Finally, you are free to instantiate the pattern with the types you +// want. If you put the above code in a header file, you can #include +// it in multiple C++ source files and instantiate it multiple times. +// +// To distinguish different instances of the pattern, the first +// argument to the INSTANTIATE_* macro is a prefix that will be added +// to the actual test case name. Remember to pick unique prefixes for +// different instances. +typedef testing::Types MyTypes; +INSTANTIATE_TYPED_TEST_CASE_P(My, FooTest, MyTypes); + +// If the type list contains only one type, you can write that type +// directly without Types<...>: +// INSTANTIATE_TYPED_TEST_CASE_P(My, FooTest, int); + +#endif // 0 + +#include "gtest/internal/gtest-port.h" +#include "gtest/internal/gtest-type-util.h" + +// Implements typed tests. + +#if GTEST_HAS_TYPED_TEST + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// Expands to the name of the typedef for the type parameters of the +// given test case. +# define GTEST_TYPE_PARAMS_(TestCaseName) gtest_type_params_##TestCaseName##_ + +// The 'Types' template argument below must have spaces around it +// since some compilers may choke on '>>' when passing a template +// instance (e.g. Types) +# define TYPED_TEST_CASE(CaseName, Types) \ + typedef ::testing::internal::TypeList< Types >::type \ + GTEST_TYPE_PARAMS_(CaseName) + +# define TYPED_TEST(CaseName, TestName) \ + template \ + class GTEST_TEST_CLASS_NAME_(CaseName, TestName) \ + : public CaseName { \ + private: \ + typedef CaseName TestFixture; \ + typedef gtest_TypeParam_ TypeParam; \ + virtual void TestBody(); \ + }; \ + bool gtest_##CaseName##_##TestName##_registered_ GTEST_ATTRIBUTE_UNUSED_ = \ + ::testing::internal::TypeParameterizedTest< \ + CaseName, \ + ::testing::internal::TemplateSel< \ + GTEST_TEST_CLASS_NAME_(CaseName, TestName)>, \ + GTEST_TYPE_PARAMS_(CaseName)>::Register(\ + "", #CaseName, #TestName, 0); \ + template \ + void GTEST_TEST_CLASS_NAME_(CaseName, TestName)::TestBody() + +#endif // GTEST_HAS_TYPED_TEST + +// Implements type-parameterized tests. + +#if GTEST_HAS_TYPED_TEST_P + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// Expands to the namespace name that the type-parameterized tests for +// the given type-parameterized test case are defined in. The exact +// name of the namespace is subject to change without notice. +# define GTEST_CASE_NAMESPACE_(TestCaseName) \ + gtest_case_##TestCaseName##_ + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// Expands to the name of the variable used to remember the names of +// the defined tests in the given test case. +# define GTEST_TYPED_TEST_CASE_P_STATE_(TestCaseName) \ + gtest_typed_test_case_p_state_##TestCaseName##_ + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE DIRECTLY. +// +// Expands to the name of the variable used to remember the names of +// the registered tests in the given test case. +# define GTEST_REGISTERED_TEST_NAMES_(TestCaseName) \ + gtest_registered_test_names_##TestCaseName##_ + +// The variables defined in the type-parameterized test macros are +// static as typically these macros are used in a .h file that can be +// #included in multiple translation units linked together. +# define TYPED_TEST_CASE_P(CaseName) \ + static ::testing::internal::TypedTestCasePState \ + GTEST_TYPED_TEST_CASE_P_STATE_(CaseName) + +# define TYPED_TEST_P(CaseName, TestName) \ + namespace GTEST_CASE_NAMESPACE_(CaseName) { \ + template \ + class TestName : public CaseName { \ + private: \ + typedef CaseName TestFixture; \ + typedef gtest_TypeParam_ TypeParam; \ + virtual void TestBody(); \ + }; \ + static bool gtest_##TestName##_defined_ GTEST_ATTRIBUTE_UNUSED_ = \ + GTEST_TYPED_TEST_CASE_P_STATE_(CaseName).AddTestName(\ + __FILE__, __LINE__, #CaseName, #TestName); \ + } \ + template \ + void GTEST_CASE_NAMESPACE_(CaseName)::TestName::TestBody() + +# define REGISTER_TYPED_TEST_CASE_P(CaseName, ...) \ + namespace GTEST_CASE_NAMESPACE_(CaseName) { \ + typedef ::testing::internal::Templates<__VA_ARGS__>::type gtest_AllTests_; \ + } \ + static const char* const GTEST_REGISTERED_TEST_NAMES_(CaseName) = \ + GTEST_TYPED_TEST_CASE_P_STATE_(CaseName).VerifyRegisteredTestNames(\ + __FILE__, __LINE__, #__VA_ARGS__) + +// The 'Types' template argument below must have spaces around it +// since some compilers may choke on '>>' when passing a template +// instance (e.g. Types) +# define INSTANTIATE_TYPED_TEST_CASE_P(Prefix, CaseName, Types) \ + bool gtest_##Prefix##_##CaseName GTEST_ATTRIBUTE_UNUSED_ = \ + ::testing::internal::TypeParameterizedTestCase::type>::Register(\ + #Prefix, #CaseName, GTEST_REGISTERED_TEST_NAMES_(CaseName)) + +#endif // GTEST_HAS_TYPED_TEST_P + +#endif // GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ diff --git a/gtest-1.7.0/include/gtest/gtest.h b/gtest-1.7.0/include/gtest/gtest.h new file mode 100644 index 0000000..6fa0a39 --- /dev/null +++ b/gtest-1.7.0/include/gtest/gtest.h @@ -0,0 +1,2291 @@ +// Copyright 2005, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: wan@google.com (Zhanyong Wan) +// +// The Google C++ Testing Framework (Google Test) +// +// This header file defines the public API for Google Test. It should be +// included by any test program that uses Google Test. +// +// IMPORTANT NOTE: Due to limitation of the C++ language, we have to +// leave some internal implementation details in this header file. +// They are clearly marked by comments like this: +// +// // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. +// +// Such code is NOT meant to be used by a user directly, and is subject +// to CHANGE WITHOUT NOTICE. Therefore DO NOT DEPEND ON IT in a user +// program! +// +// Acknowledgment: Google Test borrowed the idea of automatic test +// registration from Barthelemy Dagenais' (barthelemy@prologique.com) +// easyUnit framework. + +#ifndef GTEST_INCLUDE_GTEST_GTEST_H_ +#define GTEST_INCLUDE_GTEST_GTEST_H_ + +#include +#include +#include + +#include "gtest/internal/gtest-internal.h" +#include "gtest/internal/gtest-string.h" +#include "gtest/gtest-death-test.h" +#include "gtest/gtest-message.h" +#include "gtest/gtest-param-test.h" +#include "gtest/gtest-printers.h" +#include "gtest/gtest_prod.h" +#include "gtest/gtest-test-part.h" +#include "gtest/gtest-typed-test.h" + +// Depending on the platform, different string classes are available. +// On Linux, in addition to ::std::string, Google also makes use of +// class ::string, which has the same interface as ::std::string, but +// has a different implementation. +// +// The user can define GTEST_HAS_GLOBAL_STRING to 1 to indicate that +// ::string is available AND is a distinct type to ::std::string, or +// define it to 0 to indicate otherwise. +// +// If the user's ::std::string and ::string are the same class due to +// aliasing, he should define GTEST_HAS_GLOBAL_STRING to 0. +// +// If the user doesn't define GTEST_HAS_GLOBAL_STRING, it is defined +// heuristically. + +namespace testing { + +// Declares the flags. + +// This flag temporary enables the disabled tests. +GTEST_DECLARE_bool_(also_run_disabled_tests); + +// This flag brings the debugger on an assertion failure. +GTEST_DECLARE_bool_(break_on_failure); + +// This flag controls whether Google Test catches all test-thrown exceptions +// and logs them as failures. +GTEST_DECLARE_bool_(catch_exceptions); + +// This flag enables using colors in terminal output. Available values are +// "yes" to enable colors, "no" (disable colors), or "auto" (the default) +// to let Google Test decide. +GTEST_DECLARE_string_(color); + +// This flag sets up the filter to select by name using a glob pattern +// the tests to run. If the filter is not given all tests are executed. +GTEST_DECLARE_string_(filter); + +// This flag causes the Google Test to list tests. None of the tests listed +// are actually run if the flag is provided. +GTEST_DECLARE_bool_(list_tests); + +// This flag controls whether Google Test emits a detailed XML report to a file +// in addition to its normal textual output. +GTEST_DECLARE_string_(output); + +// This flags control whether Google Test prints the elapsed time for each +// test. +GTEST_DECLARE_bool_(print_time); + +// This flag specifies the random number seed. +GTEST_DECLARE_int32_(random_seed); + +// This flag sets how many times the tests are repeated. The default value +// is 1. If the value is -1 the tests are repeating forever. +GTEST_DECLARE_int32_(repeat); + +// This flag controls whether Google Test includes Google Test internal +// stack frames in failure stack traces. +GTEST_DECLARE_bool_(show_internal_stack_frames); + +// When this flag is specified, tests' order is randomized on every iteration. +GTEST_DECLARE_bool_(shuffle); + +// This flag specifies the maximum number of stack frames to be +// printed in a failure message. +GTEST_DECLARE_int32_(stack_trace_depth); + +// When this flag is specified, a failed assertion will throw an +// exception if exceptions are enabled, or exit the program with a +// non-zero code otherwise. +GTEST_DECLARE_bool_(throw_on_failure); + +// When this flag is set with a "host:port" string, on supported +// platforms test results are streamed to the specified port on +// the specified host machine. +GTEST_DECLARE_string_(stream_result_to); + +// The upper limit for valid stack trace depths. +const int kMaxStackTraceDepth = 100; + +namespace internal { + +class AssertHelper; +class DefaultGlobalTestPartResultReporter; +class ExecDeathTest; +class NoExecDeathTest; +class FinalSuccessChecker; +class GTestFlagSaver; +class StreamingListenerTest; +class TestResultAccessor; +class TestEventListenersAccessor; +class TestEventRepeater; +class UnitTestRecordPropertyTestHelper; +class WindowsDeathTest; +class UnitTestImpl* GetUnitTestImpl(); +void ReportFailureInUnknownLocation(TestPartResult::Type result_type, + const std::string& message); + +} // namespace internal + +// The friend relationship of some of these classes is cyclic. +// If we don't forward declare them the compiler might confuse the classes +// in friendship clauses with same named classes on the scope. +class Test; +class TestCase; +class TestInfo; +class UnitTest; + +// A class for indicating whether an assertion was successful. When +// the assertion wasn't successful, the AssertionResult object +// remembers a non-empty message that describes how it failed. +// +// To create an instance of this class, use one of the factory functions +// (AssertionSuccess() and AssertionFailure()). +// +// This class is useful for two purposes: +// 1. Defining predicate functions to be used with Boolean test assertions +// EXPECT_TRUE/EXPECT_FALSE and their ASSERT_ counterparts +// 2. Defining predicate-format functions to be +// used with predicate assertions (ASSERT_PRED_FORMAT*, etc). +// +// For example, if you define IsEven predicate: +// +// testing::AssertionResult IsEven(int n) { +// if ((n % 2) == 0) +// return testing::AssertionSuccess(); +// else +// return testing::AssertionFailure() << n << " is odd"; +// } +// +// Then the failed expectation EXPECT_TRUE(IsEven(Fib(5))) +// will print the message +// +// Value of: IsEven(Fib(5)) +// Actual: false (5 is odd) +// Expected: true +// +// instead of a more opaque +// +// Value of: IsEven(Fib(5)) +// Actual: false +// Expected: true +// +// in case IsEven is a simple Boolean predicate. +// +// If you expect your predicate to be reused and want to support informative +// messages in EXPECT_FALSE and ASSERT_FALSE (negative assertions show up +// about half as often as positive ones in our tests), supply messages for +// both success and failure cases: +// +// testing::AssertionResult IsEven(int n) { +// if ((n % 2) == 0) +// return testing::AssertionSuccess() << n << " is even"; +// else +// return testing::AssertionFailure() << n << " is odd"; +// } +// +// Then a statement EXPECT_FALSE(IsEven(Fib(6))) will print +// +// Value of: IsEven(Fib(6)) +// Actual: true (8 is even) +// Expected: false +// +// NB: Predicates that support negative Boolean assertions have reduced +// performance in positive ones so be careful not to use them in tests +// that have lots (tens of thousands) of positive Boolean assertions. +// +// To use this class with EXPECT_PRED_FORMAT assertions such as: +// +// // Verifies that Foo() returns an even number. +// EXPECT_PRED_FORMAT1(IsEven, Foo()); +// +// you need to define: +// +// testing::AssertionResult IsEven(const char* expr, int n) { +// if ((n % 2) == 0) +// return testing::AssertionSuccess(); +// else +// return testing::AssertionFailure() +// << "Expected: " << expr << " is even\n Actual: it's " << n; +// } +// +// If Foo() returns 5, you will see the following message: +// +// Expected: Foo() is even +// Actual: it's 5 +// +class GTEST_API_ AssertionResult { + public: + // Copy constructor. + // Used in EXPECT_TRUE/FALSE(assertion_result). + AssertionResult(const AssertionResult& other); + // Used in the EXPECT_TRUE/FALSE(bool_expression). + explicit AssertionResult(bool success) : success_(success) {} + + // Returns true iff the assertion succeeded. + operator bool() const { return success_; } // NOLINT + + // Returns the assertion's negation. Used with EXPECT/ASSERT_FALSE. + AssertionResult operator!() const; + + // Returns the text streamed into this AssertionResult. Test assertions + // use it when they fail (i.e., the predicate's outcome doesn't match the + // assertion's expectation). When nothing has been streamed into the + // object, returns an empty string. + const char* message() const { + return message_.get() != NULL ? message_->c_str() : ""; + } + // TODO(vladl@google.com): Remove this after making sure no clients use it. + // Deprecated; please use message() instead. + const char* failure_message() const { return message(); } + + // Streams a custom failure message into this object. + template AssertionResult& operator<<(const T& value) { + AppendMessage(Message() << value); + return *this; + } + + // Allows streaming basic output manipulators such as endl or flush into + // this object. + AssertionResult& operator<<( + ::std::ostream& (*basic_manipulator)(::std::ostream& stream)) { + AppendMessage(Message() << basic_manipulator); + return *this; + } + + private: + // Appends the contents of message to message_. + void AppendMessage(const Message& a_message) { + if (message_.get() == NULL) + message_.reset(new ::std::string); + message_->append(a_message.GetString().c_str()); + } + + // Stores result of the assertion predicate. + bool success_; + // Stores the message describing the condition in case the expectation + // construct is not satisfied with the predicate's outcome. + // Referenced via a pointer to avoid taking too much stack frame space + // with test assertions. + internal::scoped_ptr< ::std::string> message_; + + GTEST_DISALLOW_ASSIGN_(AssertionResult); +}; + +// Makes a successful assertion result. +GTEST_API_ AssertionResult AssertionSuccess(); + +// Makes a failed assertion result. +GTEST_API_ AssertionResult AssertionFailure(); + +// Makes a failed assertion result with the given failure message. +// Deprecated; use AssertionFailure() << msg. +GTEST_API_ AssertionResult AssertionFailure(const Message& msg); + +// The abstract class that all tests inherit from. +// +// In Google Test, a unit test program contains one or many TestCases, and +// each TestCase contains one or many Tests. +// +// When you define a test using the TEST macro, you don't need to +// explicitly derive from Test - the TEST macro automatically does +// this for you. +// +// The only time you derive from Test is when defining a test fixture +// to be used a TEST_F. For example: +// +// class FooTest : public testing::Test { +// protected: +// virtual void SetUp() { ... } +// virtual void TearDown() { ... } +// ... +// }; +// +// TEST_F(FooTest, Bar) { ... } +// TEST_F(FooTest, Baz) { ... } +// +// Test is not copyable. +class GTEST_API_ Test { + public: + friend class TestInfo; + + // Defines types for pointers to functions that set up and tear down + // a test case. + typedef internal::SetUpTestCaseFunc SetUpTestCaseFunc; + typedef internal::TearDownTestCaseFunc TearDownTestCaseFunc; + + // The d'tor is virtual as we intend to inherit from Test. + virtual ~Test(); + + // Sets up the stuff shared by all tests in this test case. + // + // Google Test will call Foo::SetUpTestCase() before running the first + // test in test case Foo. Hence a sub-class can define its own + // SetUpTestCase() method to shadow the one defined in the super + // class. + static void SetUpTestCase() {} + + // Tears down the stuff shared by all tests in this test case. + // + // Google Test will call Foo::TearDownTestCase() after running the last + // test in test case Foo. Hence a sub-class can define its own + // TearDownTestCase() method to shadow the one defined in the super + // class. + static void TearDownTestCase() {} + + // Returns true iff the current test has a fatal failure. + static bool HasFatalFailure(); + + // Returns true iff the current test has a non-fatal failure. + static bool HasNonfatalFailure(); + + // Returns true iff the current test has a (either fatal or + // non-fatal) failure. + static bool HasFailure() { return HasFatalFailure() || HasNonfatalFailure(); } + + // Logs a property for the current test, test case, or for the entire + // invocation of the test program when used outside of the context of a + // test case. Only the last value for a given key is remembered. These + // are public static so they can be called from utility functions that are + // not members of the test fixture. Calls to RecordProperty made during + // lifespan of the test (from the moment its constructor starts to the + // moment its destructor finishes) will be output in XML as attributes of + // the element. Properties recorded from fixture's + // SetUpTestCase or TearDownTestCase are logged as attributes of the + // corresponding element. Calls to RecordProperty made in the + // global context (before or after invocation of RUN_ALL_TESTS and from + // SetUp/TearDown method of Environment objects registered with Google + // Test) will be output as attributes of the element. + static void RecordProperty(const std::string& key, const std::string& value); + static void RecordProperty(const std::string& key, int value); + + protected: + // Creates a Test object. + Test(); + + // Sets up the test fixture. + virtual void SetUp(); + + // Tears down the test fixture. + virtual void TearDown(); + + private: + // Returns true iff the current test has the same fixture class as + // the first test in the current test case. + static bool HasSameFixtureClass(); + + // Runs the test after the test fixture has been set up. + // + // A sub-class must implement this to define the test logic. + // + // DO NOT OVERRIDE THIS FUNCTION DIRECTLY IN A USER PROGRAM. + // Instead, use the TEST or TEST_F macro. + virtual void TestBody() = 0; + + // Sets up, executes, and tears down the test. + void Run(); + + // Deletes self. We deliberately pick an unusual name for this + // internal method to avoid clashing with names used in user TESTs. + void DeleteSelf_() { delete this; } + + // Uses a GTestFlagSaver to save and restore all Google Test flags. + const internal::GTestFlagSaver* const gtest_flag_saver_; + + // Often a user mis-spells SetUp() as Setup() and spends a long time + // wondering why it is never called by Google Test. The declaration of + // the following method is solely for catching such an error at + // compile time: + // + // - The return type is deliberately chosen to be not void, so it + // will be a conflict if a user declares void Setup() in his test + // fixture. + // + // - This method is private, so it will be another compiler error + // if a user calls it from his test fixture. + // + // DO NOT OVERRIDE THIS FUNCTION. + // + // If you see an error about overriding the following function or + // about it being private, you have mis-spelled SetUp() as Setup(). + struct Setup_should_be_spelled_SetUp {}; + virtual Setup_should_be_spelled_SetUp* Setup() { return NULL; } + + // We disallow copying Tests. + GTEST_DISALLOW_COPY_AND_ASSIGN_(Test); +}; + +typedef internal::TimeInMillis TimeInMillis; + +// A copyable object representing a user specified test property which can be +// output as a key/value string pair. +// +// Don't inherit from TestProperty as its destructor is not virtual. +class TestProperty { + public: + // C'tor. TestProperty does NOT have a default constructor. + // Always use this constructor (with parameters) to create a + // TestProperty object. + TestProperty(const std::string& a_key, const std::string& a_value) : + key_(a_key), value_(a_value) { + } + + // Gets the user supplied key. + const char* key() const { + return key_.c_str(); + } + + // Gets the user supplied value. + const char* value() const { + return value_.c_str(); + } + + // Sets a new value, overriding the one supplied in the constructor. + void SetValue(const std::string& new_value) { + value_ = new_value; + } + + private: + // The key supplied by the user. + std::string key_; + // The value supplied by the user. + std::string value_; +}; + +// The result of a single Test. This includes a list of +// TestPartResults, a list of TestProperties, a count of how many +// death tests there are in the Test, and how much time it took to run +// the Test. +// +// TestResult is not copyable. +class GTEST_API_ TestResult { + public: + // Creates an empty TestResult. + TestResult(); + + // D'tor. Do not inherit from TestResult. + ~TestResult(); + + // Gets the number of all test parts. This is the sum of the number + // of successful test parts and the number of failed test parts. + int total_part_count() const; + + // Returns the number of the test properties. + int test_property_count() const; + + // Returns true iff the test passed (i.e. no test part failed). + bool Passed() const { return !Failed(); } + + // Returns true iff the test failed. + bool Failed() const; + + // Returns true iff the test fatally failed. + bool HasFatalFailure() const; + + // Returns true iff the test has a non-fatal failure. + bool HasNonfatalFailure() const; + + // Returns the elapsed time, in milliseconds. + TimeInMillis elapsed_time() const { return elapsed_time_; } + + // Returns the i-th test part result among all the results. i can range + // from 0 to test_property_count() - 1. If i is not in that range, aborts + // the program. + const TestPartResult& GetTestPartResult(int i) const; + + // Returns the i-th test property. i can range from 0 to + // test_property_count() - 1. If i is not in that range, aborts the + // program. + const TestProperty& GetTestProperty(int i) const; + + private: + friend class TestInfo; + friend class TestCase; + friend class UnitTest; + friend class internal::DefaultGlobalTestPartResultReporter; + friend class internal::ExecDeathTest; + friend class internal::TestResultAccessor; + friend class internal::UnitTestImpl; + friend class internal::WindowsDeathTest; + + // Gets the vector of TestPartResults. + const std::vector& test_part_results() const { + return test_part_results_; + } + + // Gets the vector of TestProperties. + const std::vector& test_properties() const { + return test_properties_; + } + + // Sets the elapsed time. + void set_elapsed_time(TimeInMillis elapsed) { elapsed_time_ = elapsed; } + + // Adds a test property to the list. The property is validated and may add + // a non-fatal failure if invalid (e.g., if it conflicts with reserved + // key names). If a property is already recorded for the same key, the + // value will be updated, rather than storing multiple values for the same + // key. xml_element specifies the element for which the property is being + // recorded and is used for validation. + void RecordProperty(const std::string& xml_element, + const TestProperty& test_property); + + // Adds a failure if the key is a reserved attribute of Google Test + // testcase tags. Returns true if the property is valid. + // TODO(russr): Validate attribute names are legal and human readable. + static bool ValidateTestProperty(const std::string& xml_element, + const TestProperty& test_property); + + // Adds a test part result to the list. + void AddTestPartResult(const TestPartResult& test_part_result); + + // Returns the death test count. + int death_test_count() const { return death_test_count_; } + + // Increments the death test count, returning the new count. + int increment_death_test_count() { return ++death_test_count_; } + + // Clears the test part results. + void ClearTestPartResults(); + + // Clears the object. + void Clear(); + + // Protects mutable state of the property vector and of owned + // properties, whose values may be updated. + internal::Mutex test_properites_mutex_; + + // The vector of TestPartResults + std::vector test_part_results_; + // The vector of TestProperties + std::vector test_properties_; + // Running count of death tests. + int death_test_count_; + // The elapsed time, in milliseconds. + TimeInMillis elapsed_time_; + + // We disallow copying TestResult. + GTEST_DISALLOW_COPY_AND_ASSIGN_(TestResult); +}; // class TestResult + +// A TestInfo object stores the following information about a test: +// +// Test case name +// Test name +// Whether the test should be run +// A function pointer that creates the test object when invoked +// Test result +// +// The constructor of TestInfo registers itself with the UnitTest +// singleton such that the RUN_ALL_TESTS() macro knows which tests to +// run. +class GTEST_API_ TestInfo { + public: + // Destructs a TestInfo object. This function is not virtual, so + // don't inherit from TestInfo. + ~TestInfo(); + + // Returns the test case name. + const char* test_case_name() const { return test_case_name_.c_str(); } + + // Returns the test name. + const char* name() const { return name_.c_str(); } + + // Returns the name of the parameter type, or NULL if this is not a typed + // or a type-parameterized test. + const char* type_param() const { + if (type_param_.get() != NULL) + return type_param_->c_str(); + return NULL; + } + + // Returns the text representation of the value parameter, or NULL if this + // is not a value-parameterized test. + const char* value_param() const { + if (value_param_.get() != NULL) + return value_param_->c_str(); + return NULL; + } + + // Returns true if this test should run, that is if the test is not + // disabled (or it is disabled but the also_run_disabled_tests flag has + // been specified) and its full name matches the user-specified filter. + // + // Google Test allows the user to filter the tests by their full names. + // The full name of a test Bar in test case Foo is defined as + // "Foo.Bar". Only the tests that match the filter will run. + // + // A filter is a colon-separated list of glob (not regex) patterns, + // optionally followed by a '-' and a colon-separated list of + // negative patterns (tests to exclude). A test is run if it + // matches one of the positive patterns and does not match any of + // the negative patterns. + // + // For example, *A*:Foo.* is a filter that matches any string that + // contains the character 'A' or starts with "Foo.". + bool should_run() const { return should_run_; } + + // Returns true iff this test will appear in the XML report. + bool is_reportable() const { + // For now, the XML report includes all tests matching the filter. + // In the future, we may trim tests that are excluded because of + // sharding. + return matches_filter_; + } + + // Returns the result of the test. + const TestResult* result() const { return &result_; } + + private: +#if GTEST_HAS_DEATH_TEST + friend class internal::DefaultDeathTestFactory; +#endif // GTEST_HAS_DEATH_TEST + friend class Test; + friend class TestCase; + friend class internal::UnitTestImpl; + friend class internal::StreamingListenerTest; + friend TestInfo* internal::MakeAndRegisterTestInfo( + const char* test_case_name, + const char* name, + const char* type_param, + const char* value_param, + internal::TypeId fixture_class_id, + Test::SetUpTestCaseFunc set_up_tc, + Test::TearDownTestCaseFunc tear_down_tc, + internal::TestFactoryBase* factory); + + // Constructs a TestInfo object. The newly constructed instance assumes + // ownership of the factory object. + TestInfo(const std::string& test_case_name, + const std::string& name, + const char* a_type_param, // NULL if not a type-parameterized test + const char* a_value_param, // NULL if not a value-parameterized test + internal::TypeId fixture_class_id, + internal::TestFactoryBase* factory); + + // Increments the number of death tests encountered in this test so + // far. + int increment_death_test_count() { + return result_.increment_death_test_count(); + } + + // Creates the test object, runs it, records its result, and then + // deletes it. + void Run(); + + static void ClearTestResult(TestInfo* test_info) { + test_info->result_.Clear(); + } + + // These fields are immutable properties of the test. + const std::string test_case_name_; // Test case name + const std::string name_; // Test name + // Name of the parameter type, or NULL if this is not a typed or a + // type-parameterized test. + const internal::scoped_ptr type_param_; + // Text representation of the value parameter, or NULL if this is not a + // value-parameterized test. + const internal::scoped_ptr value_param_; + const internal::TypeId fixture_class_id_; // ID of the test fixture class + bool should_run_; // True iff this test should run + bool is_disabled_; // True iff this test is disabled + bool matches_filter_; // True if this test matches the + // user-specified filter. + internal::TestFactoryBase* const factory_; // The factory that creates + // the test object + + // This field is mutable and needs to be reset before running the + // test for the second time. + TestResult result_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(TestInfo); +}; + +// A test case, which consists of a vector of TestInfos. +// +// TestCase is not copyable. +class GTEST_API_ TestCase { + public: + // Creates a TestCase with the given name. + // + // TestCase does NOT have a default constructor. Always use this + // constructor to create a TestCase object. + // + // Arguments: + // + // name: name of the test case + // a_type_param: the name of the test's type parameter, or NULL if + // this is not a type-parameterized test. + // set_up_tc: pointer to the function that sets up the test case + // tear_down_tc: pointer to the function that tears down the test case + TestCase(const char* name, const char* a_type_param, + Test::SetUpTestCaseFunc set_up_tc, + Test::TearDownTestCaseFunc tear_down_tc); + + // Destructor of TestCase. + virtual ~TestCase(); + + // Gets the name of the TestCase. + const char* name() const { return name_.c_str(); } + + // Returns the name of the parameter type, or NULL if this is not a + // type-parameterized test case. + const char* type_param() const { + if (type_param_.get() != NULL) + return type_param_->c_str(); + return NULL; + } + + // Returns true if any test in this test case should run. + bool should_run() const { return should_run_; } + + // Gets the number of successful tests in this test case. + int successful_test_count() const; + + // Gets the number of failed tests in this test case. + int failed_test_count() const; + + // Gets the number of disabled tests that will be reported in the XML report. + int reportable_disabled_test_count() const; + + // Gets the number of disabled tests in this test case. + int disabled_test_count() const; + + // Gets the number of tests to be printed in the XML report. + int reportable_test_count() const; + + // Get the number of tests in this test case that should run. + int test_to_run_count() const; + + // Gets the number of all tests in this test case. + int total_test_count() const; + + // Returns true iff the test case passed. + bool Passed() const { return !Failed(); } + + // Returns true iff the test case failed. + bool Failed() const { return failed_test_count() > 0; } + + // Returns the elapsed time, in milliseconds. + TimeInMillis elapsed_time() const { return elapsed_time_; } + + // Returns the i-th test among all the tests. i can range from 0 to + // total_test_count() - 1. If i is not in that range, returns NULL. + const TestInfo* GetTestInfo(int i) const; + + // Returns the TestResult that holds test properties recorded during + // execution of SetUpTestCase and TearDownTestCase. + const TestResult& ad_hoc_test_result() const { return ad_hoc_test_result_; } + + private: + friend class Test; + friend class internal::UnitTestImpl; + + // Gets the (mutable) vector of TestInfos in this TestCase. + std::vector& test_info_list() { return test_info_list_; } + + // Gets the (immutable) vector of TestInfos in this TestCase. + const std::vector& test_info_list() const { + return test_info_list_; + } + + // Returns the i-th test among all the tests. i can range from 0 to + // total_test_count() - 1. If i is not in that range, returns NULL. + TestInfo* GetMutableTestInfo(int i); + + // Sets the should_run member. + void set_should_run(bool should) { should_run_ = should; } + + // Adds a TestInfo to this test case. Will delete the TestInfo upon + // destruction of the TestCase object. + void AddTestInfo(TestInfo * test_info); + + // Clears the results of all tests in this test case. + void ClearResult(); + + // Clears the results of all tests in the given test case. + static void ClearTestCaseResult(TestCase* test_case) { + test_case->ClearResult(); + } + + // Runs every test in this TestCase. + void Run(); + + // Runs SetUpTestCase() for this TestCase. This wrapper is needed + // for catching exceptions thrown from SetUpTestCase(). + void RunSetUpTestCase() { (*set_up_tc_)(); } + + // Runs TearDownTestCase() for this TestCase. This wrapper is + // needed for catching exceptions thrown from TearDownTestCase(). + void RunTearDownTestCase() { (*tear_down_tc_)(); } + + // Returns true iff test passed. + static bool TestPassed(const TestInfo* test_info) { + return test_info->should_run() && test_info->result()->Passed(); + } + + // Returns true iff test failed. + static bool TestFailed(const TestInfo* test_info) { + return test_info->should_run() && test_info->result()->Failed(); + } + + // Returns true iff the test is disabled and will be reported in the XML + // report. + static bool TestReportableDisabled(const TestInfo* test_info) { + return test_info->is_reportable() && test_info->is_disabled_; + } + + // Returns true iff test is disabled. + static bool TestDisabled(const TestInfo* test_info) { + return test_info->is_disabled_; + } + + // Returns true iff this test will appear in the XML report. + static bool TestReportable(const TestInfo* test_info) { + return test_info->is_reportable(); + } + + // Returns true if the given test should run. + static bool ShouldRunTest(const TestInfo* test_info) { + return test_info->should_run(); + } + + // Shuffles the tests in this test case. + void ShuffleTests(internal::Random* random); + + // Restores the test order to before the first shuffle. + void UnshuffleTests(); + + // Name of the test case. + std::string name_; + // Name of the parameter type, or NULL if this is not a typed or a + // type-parameterized test. + const internal::scoped_ptr type_param_; + // The vector of TestInfos in their original order. It owns the + // elements in the vector. + std::vector test_info_list_; + // Provides a level of indirection for the test list to allow easy + // shuffling and restoring the test order. The i-th element in this + // vector is the index of the i-th test in the shuffled test list. + std::vector test_indices_; + // Pointer to the function that sets up the test case. + Test::SetUpTestCaseFunc set_up_tc_; + // Pointer to the function that tears down the test case. + Test::TearDownTestCaseFunc tear_down_tc_; + // True iff any test in this test case should run. + bool should_run_; + // Elapsed time, in milliseconds. + TimeInMillis elapsed_time_; + // Holds test properties recorded during execution of SetUpTestCase and + // TearDownTestCase. + TestResult ad_hoc_test_result_; + + // We disallow copying TestCases. + GTEST_DISALLOW_COPY_AND_ASSIGN_(TestCase); +}; + +// An Environment object is capable of setting up and tearing down an +// environment. The user should subclass this to define his own +// environment(s). +// +// An Environment object does the set-up and tear-down in virtual +// methods SetUp() and TearDown() instead of the constructor and the +// destructor, as: +// +// 1. You cannot safely throw from a destructor. This is a problem +// as in some cases Google Test is used where exceptions are enabled, and +// we may want to implement ASSERT_* using exceptions where they are +// available. +// 2. You cannot use ASSERT_* directly in a constructor or +// destructor. +class Environment { + public: + // The d'tor is virtual as we need to subclass Environment. + virtual ~Environment() {} + + // Override this to define how to set up the environment. + virtual void SetUp() {} + + // Override this to define how to tear down the environment. + virtual void TearDown() {} + private: + // If you see an error about overriding the following function or + // about it being private, you have mis-spelled SetUp() as Setup(). + struct Setup_should_be_spelled_SetUp {}; + virtual Setup_should_be_spelled_SetUp* Setup() { return NULL; } +}; + +// The interface for tracing execution of tests. The methods are organized in +// the order the corresponding events are fired. +class TestEventListener { + public: + virtual ~TestEventListener() {} + + // Fired before any test activity starts. + virtual void OnTestProgramStart(const UnitTest& unit_test) = 0; + + // Fired before each iteration of tests starts. There may be more than + // one iteration if GTEST_FLAG(repeat) is set. iteration is the iteration + // index, starting from 0. + virtual void OnTestIterationStart(const UnitTest& unit_test, + int iteration) = 0; + + // Fired before environment set-up for each iteration of tests starts. + virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test) = 0; + + // Fired after environment set-up for each iteration of tests ends. + virtual void OnEnvironmentsSetUpEnd(const UnitTest& unit_test) = 0; + + // Fired before the test case starts. + virtual void OnTestCaseStart(const TestCase& test_case) = 0; + + // Fired before the test starts. + virtual void OnTestStart(const TestInfo& test_info) = 0; + + // Fired after a failed assertion or a SUCCEED() invocation. + virtual void OnTestPartResult(const TestPartResult& test_part_result) = 0; + + // Fired after the test ends. + virtual void OnTestEnd(const TestInfo& test_info) = 0; + + // Fired after the test case ends. + virtual void OnTestCaseEnd(const TestCase& test_case) = 0; + + // Fired before environment tear-down for each iteration of tests starts. + virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test) = 0; + + // Fired after environment tear-down for each iteration of tests ends. + virtual void OnEnvironmentsTearDownEnd(const UnitTest& unit_test) = 0; + + // Fired after each iteration of tests finishes. + virtual void OnTestIterationEnd(const UnitTest& unit_test, + int iteration) = 0; + + // Fired after all test activities have ended. + virtual void OnTestProgramEnd(const UnitTest& unit_test) = 0; +}; + +// The convenience class for users who need to override just one or two +// methods and are not concerned that a possible change to a signature of +// the methods they override will not be caught during the build. For +// comments about each method please see the definition of TestEventListener +// above. +class EmptyTestEventListener : public TestEventListener { + public: + virtual void OnTestProgramStart(const UnitTest& /*unit_test*/) {} + virtual void OnTestIterationStart(const UnitTest& /*unit_test*/, + int /*iteration*/) {} + virtual void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) {} + virtual void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) {} + virtual void OnTestCaseStart(const TestCase& /*test_case*/) {} + virtual void OnTestStart(const TestInfo& /*test_info*/) {} + virtual void OnTestPartResult(const TestPartResult& /*test_part_result*/) {} + virtual void OnTestEnd(const TestInfo& /*test_info*/) {} + virtual void OnTestCaseEnd(const TestCase& /*test_case*/) {} + virtual void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) {} + virtual void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) {} + virtual void OnTestIterationEnd(const UnitTest& /*unit_test*/, + int /*iteration*/) {} + virtual void OnTestProgramEnd(const UnitTest& /*unit_test*/) {} +}; + +// TestEventListeners lets users add listeners to track events in Google Test. +class GTEST_API_ TestEventListeners { + public: + TestEventListeners(); + ~TestEventListeners(); + + // Appends an event listener to the end of the list. Google Test assumes + // the ownership of the listener (i.e. it will delete the listener when + // the test program finishes). + void Append(TestEventListener* listener); + + // Removes the given event listener from the list and returns it. It then + // becomes the caller's responsibility to delete the listener. Returns + // NULL if the listener is not found in the list. + TestEventListener* Release(TestEventListener* listener); + + // Returns the standard listener responsible for the default console + // output. Can be removed from the listeners list to shut down default + // console output. Note that removing this object from the listener list + // with Release transfers its ownership to the caller and makes this + // function return NULL the next time. + TestEventListener* default_result_printer() const { + return default_result_printer_; + } + + // Returns the standard listener responsible for the default XML output + // controlled by the --gtest_output=xml flag. Can be removed from the + // listeners list by users who want to shut down the default XML output + // controlled by this flag and substitute it with custom one. Note that + // removing this object from the listener list with Release transfers its + // ownership to the caller and makes this function return NULL the next + // time. + TestEventListener* default_xml_generator() const { + return default_xml_generator_; + } + + private: + friend class TestCase; + friend class TestInfo; + friend class internal::DefaultGlobalTestPartResultReporter; + friend class internal::NoExecDeathTest; + friend class internal::TestEventListenersAccessor; + friend class internal::UnitTestImpl; + + // Returns repeater that broadcasts the TestEventListener events to all + // subscribers. + TestEventListener* repeater(); + + // Sets the default_result_printer attribute to the provided listener. + // The listener is also added to the listener list and previous + // default_result_printer is removed from it and deleted. The listener can + // also be NULL in which case it will not be added to the list. Does + // nothing if the previous and the current listener objects are the same. + void SetDefaultResultPrinter(TestEventListener* listener); + + // Sets the default_xml_generator attribute to the provided listener. The + // listener is also added to the listener list and previous + // default_xml_generator is removed from it and deleted. The listener can + // also be NULL in which case it will not be added to the list. Does + // nothing if the previous and the current listener objects are the same. + void SetDefaultXmlGenerator(TestEventListener* listener); + + // Controls whether events will be forwarded by the repeater to the + // listeners in the list. + bool EventForwardingEnabled() const; + void SuppressEventForwarding(); + + // The actual list of listeners. + internal::TestEventRepeater* repeater_; + // Listener responsible for the standard result output. + TestEventListener* default_result_printer_; + // Listener responsible for the creation of the XML output file. + TestEventListener* default_xml_generator_; + + // We disallow copying TestEventListeners. + GTEST_DISALLOW_COPY_AND_ASSIGN_(TestEventListeners); +}; + +// A UnitTest consists of a vector of TestCases. +// +// This is a singleton class. The only instance of UnitTest is +// created when UnitTest::GetInstance() is first called. This +// instance is never deleted. +// +// UnitTest is not copyable. +// +// This class is thread-safe as long as the methods are called +// according to their specification. +class GTEST_API_ UnitTest { + public: + // Gets the singleton UnitTest object. The first time this method + // is called, a UnitTest object is constructed and returned. + // Consecutive calls will return the same object. + static UnitTest* GetInstance(); + + // Runs all tests in this UnitTest object and prints the result. + // Returns 0 if successful, or 1 otherwise. + // + // This method can only be called from the main thread. + // + // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. + int Run() GTEST_MUST_USE_RESULT_; + + // Returns the working directory when the first TEST() or TEST_F() + // was executed. The UnitTest object owns the string. + const char* original_working_dir() const; + + // Returns the TestCase object for the test that's currently running, + // or NULL if no test is running. + const TestCase* current_test_case() const + GTEST_LOCK_EXCLUDED_(mutex_); + + // Returns the TestInfo object for the test that's currently running, + // or NULL if no test is running. + const TestInfo* current_test_info() const + GTEST_LOCK_EXCLUDED_(mutex_); + + // Returns the random seed used at the start of the current test run. + int random_seed() const; + +#if GTEST_HAS_PARAM_TEST + // Returns the ParameterizedTestCaseRegistry object used to keep track of + // value-parameterized tests and instantiate and register them. + // + // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. + internal::ParameterizedTestCaseRegistry& parameterized_test_registry() + GTEST_LOCK_EXCLUDED_(mutex_); +#endif // GTEST_HAS_PARAM_TEST + + // Gets the number of successful test cases. + int successful_test_case_count() const; + + // Gets the number of failed test cases. + int failed_test_case_count() const; + + // Gets the number of all test cases. + int total_test_case_count() const; + + // Gets the number of all test cases that contain at least one test + // that should run. + int test_case_to_run_count() const; + + // Gets the number of successful tests. + int successful_test_count() const; + + // Gets the number of failed tests. + int failed_test_count() const; + + // Gets the number of disabled tests that will be reported in the XML report. + int reportable_disabled_test_count() const; + + // Gets the number of disabled tests. + int disabled_test_count() const; + + // Gets the number of tests to be printed in the XML report. + int reportable_test_count() const; + + // Gets the number of all tests. + int total_test_count() const; + + // Gets the number of tests that should run. + int test_to_run_count() const; + + // Gets the time of the test program start, in ms from the start of the + // UNIX epoch. + TimeInMillis start_timestamp() const; + + // Gets the elapsed time, in milliseconds. + TimeInMillis elapsed_time() const; + + // Returns true iff the unit test passed (i.e. all test cases passed). + bool Passed() const; + + // Returns true iff the unit test failed (i.e. some test case failed + // or something outside of all tests failed). + bool Failed() const; + + // Gets the i-th test case among all the test cases. i can range from 0 to + // total_test_case_count() - 1. If i is not in that range, returns NULL. + const TestCase* GetTestCase(int i) const; + + // Returns the TestResult containing information on test failures and + // properties logged outside of individual test cases. + const TestResult& ad_hoc_test_result() const; + + // Returns the list of event listeners that can be used to track events + // inside Google Test. + TestEventListeners& listeners(); + + private: + // Registers and returns a global test environment. When a test + // program is run, all global test environments will be set-up in + // the order they were registered. After all tests in the program + // have finished, all global test environments will be torn-down in + // the *reverse* order they were registered. + // + // The UnitTest object takes ownership of the given environment. + // + // This method can only be called from the main thread. + Environment* AddEnvironment(Environment* env); + + // Adds a TestPartResult to the current TestResult object. All + // Google Test assertion macros (e.g. ASSERT_TRUE, EXPECT_EQ, etc) + // eventually call this to report their results. The user code + // should use the assertion macros instead of calling this directly. + void AddTestPartResult(TestPartResult::Type result_type, + const char* file_name, + int line_number, + const std::string& message, + const std::string& os_stack_trace) + GTEST_LOCK_EXCLUDED_(mutex_); + + // Adds a TestProperty to the current TestResult object when invoked from + // inside a test, to current TestCase's ad_hoc_test_result_ when invoked + // from SetUpTestCase or TearDownTestCase, or to the global property set + // when invoked elsewhere. If the result already contains a property with + // the same key, the value will be updated. + void RecordProperty(const std::string& key, const std::string& value); + + // Gets the i-th test case among all the test cases. i can range from 0 to + // total_test_case_count() - 1. If i is not in that range, returns NULL. + TestCase* GetMutableTestCase(int i); + + // Accessors for the implementation object. + internal::UnitTestImpl* impl() { return impl_; } + const internal::UnitTestImpl* impl() const { return impl_; } + + // These classes and funcions are friends as they need to access private + // members of UnitTest. + friend class Test; + friend class internal::AssertHelper; + friend class internal::ScopedTrace; + friend class internal::StreamingListenerTest; + friend class internal::UnitTestRecordPropertyTestHelper; + friend Environment* AddGlobalTestEnvironment(Environment* env); + friend internal::UnitTestImpl* internal::GetUnitTestImpl(); + friend void internal::ReportFailureInUnknownLocation( + TestPartResult::Type result_type, + const std::string& message); + + // Creates an empty UnitTest. + UnitTest(); + + // D'tor + virtual ~UnitTest(); + + // Pushes a trace defined by SCOPED_TRACE() on to the per-thread + // Google Test trace stack. + void PushGTestTrace(const internal::TraceInfo& trace) + GTEST_LOCK_EXCLUDED_(mutex_); + + // Pops a trace from the per-thread Google Test trace stack. + void PopGTestTrace() + GTEST_LOCK_EXCLUDED_(mutex_); + + // Protects mutable state in *impl_. This is mutable as some const + // methods need to lock it too. + mutable internal::Mutex mutex_; + + // Opaque implementation object. This field is never changed once + // the object is constructed. We don't mark it as const here, as + // doing so will cause a warning in the constructor of UnitTest. + // Mutable state in *impl_ is protected by mutex_. + internal::UnitTestImpl* impl_; + + // We disallow copying UnitTest. + GTEST_DISALLOW_COPY_AND_ASSIGN_(UnitTest); +}; + +// A convenient wrapper for adding an environment for the test +// program. +// +// You should call this before RUN_ALL_TESTS() is called, probably in +// main(). If you use gtest_main, you need to call this before main() +// starts for it to take effect. For example, you can define a global +// variable like this: +// +// testing::Environment* const foo_env = +// testing::AddGlobalTestEnvironment(new FooEnvironment); +// +// However, we strongly recommend you to write your own main() and +// call AddGlobalTestEnvironment() there, as relying on initialization +// of global variables makes the code harder to read and may cause +// problems when you register multiple environments from different +// translation units and the environments have dependencies among them +// (remember that the compiler doesn't guarantee the order in which +// global variables from different translation units are initialized). +inline Environment* AddGlobalTestEnvironment(Environment* env) { + return UnitTest::GetInstance()->AddEnvironment(env); +} + +// Initializes Google Test. This must be called before calling +// RUN_ALL_TESTS(). In particular, it parses a command line for the +// flags that Google Test recognizes. Whenever a Google Test flag is +// seen, it is removed from argv, and *argc is decremented. +// +// No value is returned. Instead, the Google Test flag variables are +// updated. +// +// Calling the function for the second time has no user-visible effect. +GTEST_API_ void InitGoogleTest(int* argc, char** argv); + +// This overloaded version can be used in Windows programs compiled in +// UNICODE mode. +GTEST_API_ void InitGoogleTest(int* argc, wchar_t** argv); + +namespace internal { + +// FormatForComparison::Format(value) formats a +// value of type ToPrint that is an operand of a comparison assertion +// (e.g. ASSERT_EQ). OtherOperand is the type of the other operand in +// the comparison, and is used to help determine the best way to +// format the value. In particular, when the value is a C string +// (char pointer) and the other operand is an STL string object, we +// want to format the C string as a string, since we know it is +// compared by value with the string object. If the value is a char +// pointer but the other operand is not an STL string object, we don't +// know whether the pointer is supposed to point to a NUL-terminated +// string, and thus want to print it as a pointer to be safe. +// +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. + +// The default case. +template +class FormatForComparison { + public: + static ::std::string Format(const ToPrint& value) { + return ::testing::PrintToString(value); + } +}; + +// Array. +template +class FormatForComparison { + public: + static ::std::string Format(const ToPrint* value) { + return FormatForComparison::Format(value); + } +}; + +// By default, print C string as pointers to be safe, as we don't know +// whether they actually point to a NUL-terminated string. + +#define GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(CharType) \ + template \ + class FormatForComparison { \ + public: \ + static ::std::string Format(CharType* value) { \ + return ::testing::PrintToString(static_cast(value)); \ + } \ + } + +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(char); +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const char); +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(wchar_t); +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const wchar_t); + +#undef GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_ + +// If a C string is compared with an STL string object, we know it's meant +// to point to a NUL-terminated string, and thus can print it as a string. + +#define GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(CharType, OtherStringType) \ + template <> \ + class FormatForComparison { \ + public: \ + static ::std::string Format(CharType* value) { \ + return ::testing::PrintToString(value); \ + } \ + } + +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char, ::std::string); +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char, ::std::string); + +#if GTEST_HAS_GLOBAL_STRING +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char, ::string); +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char, ::string); +#endif + +#if GTEST_HAS_GLOBAL_WSTRING +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(wchar_t, ::wstring); +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const wchar_t, ::wstring); +#endif + +#if GTEST_HAS_STD_WSTRING +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(wchar_t, ::std::wstring); +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const wchar_t, ::std::wstring); +#endif + +#undef GTEST_IMPL_FORMAT_C_STRING_AS_STRING_ + +// Formats a comparison assertion (e.g. ASSERT_EQ, EXPECT_LT, and etc) +// operand to be used in a failure message. The type (but not value) +// of the other operand may affect the format. This allows us to +// print a char* as a raw pointer when it is compared against another +// char* or void*, and print it as a C string when it is compared +// against an std::string object, for example. +// +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. +template +std::string FormatForComparisonFailureMessage( + const T1& value, const T2& /* other_operand */) { + return FormatForComparison::Format(value); +} + +// The helper function for {ASSERT|EXPECT}_EQ. +template +AssertionResult CmpHelperEQ(const char* expected_expression, + const char* actual_expression, + const T1& expected, + const T2& actual) { +#ifdef _MSC_VER +# pragma warning(push) // Saves the current warning state. +# pragma warning(disable:4389) // Temporarily disables warning on + // signed/unsigned mismatch. +#endif + + if (expected == actual) { + return AssertionSuccess(); + } + +#ifdef _MSC_VER +# pragma warning(pop) // Restores the warning state. +#endif + + return EqFailure(expected_expression, + actual_expression, + FormatForComparisonFailureMessage(expected, actual), + FormatForComparisonFailureMessage(actual, expected), + false); +} + +// With this overloaded version, we allow anonymous enums to be used +// in {ASSERT|EXPECT}_EQ when compiled with gcc 4, as anonymous enums +// can be implicitly cast to BiggestInt. +GTEST_API_ AssertionResult CmpHelperEQ(const char* expected_expression, + const char* actual_expression, + BiggestInt expected, + BiggestInt actual); + +// The helper class for {ASSERT|EXPECT}_EQ. The template argument +// lhs_is_null_literal is true iff the first argument to ASSERT_EQ() +// is a null pointer literal. The following default implementation is +// for lhs_is_null_literal being false. +template +class EqHelper { + public: + // This templatized version is for the general case. + template + static AssertionResult Compare(const char* expected_expression, + const char* actual_expression, + const T1& expected, + const T2& actual) { + return CmpHelperEQ(expected_expression, actual_expression, expected, + actual); + } + + // With this overloaded version, we allow anonymous enums to be used + // in {ASSERT|EXPECT}_EQ when compiled with gcc 4, as anonymous + // enums can be implicitly cast to BiggestInt. + // + // Even though its body looks the same as the above version, we + // cannot merge the two, as it will make anonymous enums unhappy. + static AssertionResult Compare(const char* expected_expression, + const char* actual_expression, + BiggestInt expected, + BiggestInt actual) { + return CmpHelperEQ(expected_expression, actual_expression, expected, + actual); + } +}; + +// This specialization is used when the first argument to ASSERT_EQ() +// is a null pointer literal, like NULL, false, or 0. +template <> +class EqHelper { + public: + // We define two overloaded versions of Compare(). The first + // version will be picked when the second argument to ASSERT_EQ() is + // NOT a pointer, e.g. ASSERT_EQ(0, AnIntFunction()) or + // EXPECT_EQ(false, a_bool). + template + static AssertionResult Compare( + const char* expected_expression, + const char* actual_expression, + const T1& expected, + const T2& actual, + // The following line prevents this overload from being considered if T2 + // is not a pointer type. We need this because ASSERT_EQ(NULL, my_ptr) + // expands to Compare("", "", NULL, my_ptr), which requires a conversion + // to match the Secret* in the other overload, which would otherwise make + // this template match better. + typename EnableIf::value>::type* = 0) { + return CmpHelperEQ(expected_expression, actual_expression, expected, + actual); + } + + // This version will be picked when the second argument to ASSERT_EQ() is a + // pointer, e.g. ASSERT_EQ(NULL, a_pointer). + template + static AssertionResult Compare( + const char* expected_expression, + const char* actual_expression, + // We used to have a second template parameter instead of Secret*. That + // template parameter would deduce to 'long', making this a better match + // than the first overload even without the first overload's EnableIf. + // Unfortunately, gcc with -Wconversion-null warns when "passing NULL to + // non-pointer argument" (even a deduced integral argument), so the old + // implementation caused warnings in user code. + Secret* /* expected (NULL) */, + T* actual) { + // We already know that 'expected' is a null pointer. + return CmpHelperEQ(expected_expression, actual_expression, + static_cast(NULL), actual); + } +}; + +// A macro for implementing the helper functions needed to implement +// ASSERT_?? and EXPECT_??. It is here just to avoid copy-and-paste +// of similar code. +// +// For each templatized helper function, we also define an overloaded +// version for BiggestInt in order to reduce code bloat and allow +// anonymous enums to be used with {ASSERT|EXPECT}_?? when compiled +// with gcc 4. +// +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. +#define GTEST_IMPL_CMP_HELPER_(op_name, op)\ +template \ +AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \ + const T1& val1, const T2& val2) {\ + if (val1 op val2) {\ + return AssertionSuccess();\ + } else {\ + return AssertionFailure() \ + << "Expected: (" << expr1 << ") " #op " (" << expr2\ + << "), actual: " << FormatForComparisonFailureMessage(val1, val2)\ + << " vs " << FormatForComparisonFailureMessage(val2, val1);\ + }\ +}\ +GTEST_API_ AssertionResult CmpHelper##op_name(\ + const char* expr1, const char* expr2, BiggestInt val1, BiggestInt val2) + +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. + +// Implements the helper function for {ASSERT|EXPECT}_NE +GTEST_IMPL_CMP_HELPER_(NE, !=); +// Implements the helper function for {ASSERT|EXPECT}_LE +GTEST_IMPL_CMP_HELPER_(LE, <=); +// Implements the helper function for {ASSERT|EXPECT}_LT +GTEST_IMPL_CMP_HELPER_(LT, <); +// Implements the helper function for {ASSERT|EXPECT}_GE +GTEST_IMPL_CMP_HELPER_(GE, >=); +// Implements the helper function for {ASSERT|EXPECT}_GT +GTEST_IMPL_CMP_HELPER_(GT, >); + +#undef GTEST_IMPL_CMP_HELPER_ + +// The helper function for {ASSERT|EXPECT}_STREQ. +// +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. +GTEST_API_ AssertionResult CmpHelperSTREQ(const char* expected_expression, + const char* actual_expression, + const char* expected, + const char* actual); + +// The helper function for {ASSERT|EXPECT}_STRCASEEQ. +// +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. +GTEST_API_ AssertionResult CmpHelperSTRCASEEQ(const char* expected_expression, + const char* actual_expression, + const char* expected, + const char* actual); + +// The helper function for {ASSERT|EXPECT}_STRNE. +// +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. +GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression, + const char* s2_expression, + const char* s1, + const char* s2); + +// The helper function for {ASSERT|EXPECT}_STRCASENE. +// +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. +GTEST_API_ AssertionResult CmpHelperSTRCASENE(const char* s1_expression, + const char* s2_expression, + const char* s1, + const char* s2); + + +// Helper function for *_STREQ on wide strings. +// +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. +GTEST_API_ AssertionResult CmpHelperSTREQ(const char* expected_expression, + const char* actual_expression, + const wchar_t* expected, + const wchar_t* actual); + +// Helper function for *_STRNE on wide strings. +// +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. +GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression, + const char* s2_expression, + const wchar_t* s1, + const wchar_t* s2); + +} // namespace internal + +// IsSubstring() and IsNotSubstring() are intended to be used as the +// first argument to {EXPECT,ASSERT}_PRED_FORMAT2(), not by +// themselves. They check whether needle is a substring of haystack +// (NULL is considered a substring of itself only), and return an +// appropriate error message when they fail. +// +// The {needle,haystack}_expr arguments are the stringified +// expressions that generated the two real arguments. +GTEST_API_ AssertionResult IsSubstring( + const char* needle_expr, const char* haystack_expr, + const char* needle, const char* haystack); +GTEST_API_ AssertionResult IsSubstring( + const char* needle_expr, const char* haystack_expr, + const wchar_t* needle, const wchar_t* haystack); +GTEST_API_ AssertionResult IsNotSubstring( + const char* needle_expr, const char* haystack_expr, + const char* needle, const char* haystack); +GTEST_API_ AssertionResult IsNotSubstring( + const char* needle_expr, const char* haystack_expr, + const wchar_t* needle, const wchar_t* haystack); +GTEST_API_ AssertionResult IsSubstring( + const char* needle_expr, const char* haystack_expr, + const ::std::string& needle, const ::std::string& haystack); +GTEST_API_ AssertionResult IsNotSubstring( + const char* needle_expr, const char* haystack_expr, + const ::std::string& needle, const ::std::string& haystack); + +#if GTEST_HAS_STD_WSTRING +GTEST_API_ AssertionResult IsSubstring( + const char* needle_expr, const char* haystack_expr, + const ::std::wstring& needle, const ::std::wstring& haystack); +GTEST_API_ AssertionResult IsNotSubstring( + const char* needle_expr, const char* haystack_expr, + const ::std::wstring& needle, const ::std::wstring& haystack); +#endif // GTEST_HAS_STD_WSTRING + +namespace internal { + +// Helper template function for comparing floating-points. +// +// Template parameter: +// +// RawType: the raw floating-point type (either float or double) +// +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. +template +AssertionResult CmpHelperFloatingPointEQ(const char* expected_expression, + const char* actual_expression, + RawType expected, + RawType actual) { + const FloatingPoint lhs(expected), rhs(actual); + + if (lhs.AlmostEquals(rhs)) { + return AssertionSuccess(); + } + + ::std::stringstream expected_ss; + expected_ss << std::setprecision(std::numeric_limits::digits10 + 2) + << expected; + + ::std::stringstream actual_ss; + actual_ss << std::setprecision(std::numeric_limits::digits10 + 2) + << actual; + + return EqFailure(expected_expression, + actual_expression, + StringStreamToString(&expected_ss), + StringStreamToString(&actual_ss), + false); +} + +// Helper function for implementing ASSERT_NEAR. +// +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. +GTEST_API_ AssertionResult DoubleNearPredFormat(const char* expr1, + const char* expr2, + const char* abs_error_expr, + double val1, + double val2, + double abs_error); + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// A class that enables one to stream messages to assertion macros +class GTEST_API_ AssertHelper { + public: + // Constructor. + AssertHelper(TestPartResult::Type type, + const char* file, + int line, + const char* message); + ~AssertHelper(); + + // Message assignment is a semantic trick to enable assertion + // streaming; see the GTEST_MESSAGE_ macro below. + void operator=(const Message& message) const; + + private: + // We put our data in a struct so that the size of the AssertHelper class can + // be as small as possible. This is important because gcc is incapable of + // re-using stack space even for temporary variables, so every EXPECT_EQ + // reserves stack space for another AssertHelper. + struct AssertHelperData { + AssertHelperData(TestPartResult::Type t, + const char* srcfile, + int line_num, + const char* msg) + : type(t), file(srcfile), line(line_num), message(msg) { } + + TestPartResult::Type const type; + const char* const file; + int const line; + std::string const message; + + private: + GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelperData); + }; + + AssertHelperData* const data_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelper); +}; + +} // namespace internal + +#if GTEST_HAS_PARAM_TEST +// The pure interface class that all value-parameterized tests inherit from. +// A value-parameterized class must inherit from both ::testing::Test and +// ::testing::WithParamInterface. In most cases that just means inheriting +// from ::testing::TestWithParam, but more complicated test hierarchies +// may need to inherit from Test and WithParamInterface at different levels. +// +// This interface has support for accessing the test parameter value via +// the GetParam() method. +// +// Use it with one of the parameter generator defining functions, like Range(), +// Values(), ValuesIn(), Bool(), and Combine(). +// +// class FooTest : public ::testing::TestWithParam { +// protected: +// FooTest() { +// // Can use GetParam() here. +// } +// virtual ~FooTest() { +// // Can use GetParam() here. +// } +// virtual void SetUp() { +// // Can use GetParam() here. +// } +// virtual void TearDown { +// // Can use GetParam() here. +// } +// }; +// TEST_P(FooTest, DoesBar) { +// // Can use GetParam() method here. +// Foo foo; +// ASSERT_TRUE(foo.DoesBar(GetParam())); +// } +// INSTANTIATE_TEST_CASE_P(OneToTenRange, FooTest, ::testing::Range(1, 10)); + +template +class WithParamInterface { + public: + typedef T ParamType; + virtual ~WithParamInterface() {} + + // The current parameter value. Is also available in the test fixture's + // constructor. This member function is non-static, even though it only + // references static data, to reduce the opportunity for incorrect uses + // like writing 'WithParamInterface::GetParam()' for a test that + // uses a fixture whose parameter type is int. + const ParamType& GetParam() const { + GTEST_CHECK_(parameter_ != NULL) + << "GetParam() can only be called inside a value-parameterized test " + << "-- did you intend to write TEST_P instead of TEST_F?"; + return *parameter_; + } + + private: + // Sets parameter value. The caller is responsible for making sure the value + // remains alive and unchanged throughout the current test. + static void SetParam(const ParamType* parameter) { + parameter_ = parameter; + } + + // Static value used for accessing parameter during a test lifetime. + static const ParamType* parameter_; + + // TestClass must be a subclass of WithParamInterface and Test. + template friend class internal::ParameterizedTestFactory; +}; + +template +const T* WithParamInterface::parameter_ = NULL; + +// Most value-parameterized classes can ignore the existence of +// WithParamInterface, and can just inherit from ::testing::TestWithParam. + +template +class TestWithParam : public Test, public WithParamInterface { +}; + +#endif // GTEST_HAS_PARAM_TEST + +// Macros for indicating success/failure in test code. + +// ADD_FAILURE unconditionally adds a failure to the current test. +// SUCCEED generates a success - it doesn't automatically make the +// current test successful, as a test is only successful when it has +// no failure. +// +// EXPECT_* verifies that a certain condition is satisfied. If not, +// it behaves like ADD_FAILURE. In particular: +// +// EXPECT_TRUE verifies that a Boolean condition is true. +// EXPECT_FALSE verifies that a Boolean condition is false. +// +// FAIL and ASSERT_* are similar to ADD_FAILURE and EXPECT_*, except +// that they will also abort the current function on failure. People +// usually want the fail-fast behavior of FAIL and ASSERT_*, but those +// writing data-driven tests often find themselves using ADD_FAILURE +// and EXPECT_* more. + +// Generates a nonfatal failure with a generic message. +#define ADD_FAILURE() GTEST_NONFATAL_FAILURE_("Failed") + +// Generates a nonfatal failure at the given source file location with +// a generic message. +#define ADD_FAILURE_AT(file, line) \ + GTEST_MESSAGE_AT_(file, line, "Failed", \ + ::testing::TestPartResult::kNonFatalFailure) + +// Generates a fatal failure with a generic message. +#define GTEST_FAIL() GTEST_FATAL_FAILURE_("Failed") + +// Define this macro to 1 to omit the definition of FAIL(), which is a +// generic name and clashes with some other libraries. +#if !GTEST_DONT_DEFINE_FAIL +# define FAIL() GTEST_FAIL() +#endif + +// Generates a success with a generic message. +#define GTEST_SUCCEED() GTEST_SUCCESS_("Succeeded") + +// Define this macro to 1 to omit the definition of SUCCEED(), which +// is a generic name and clashes with some other libraries. +#if !GTEST_DONT_DEFINE_SUCCEED +# define SUCCEED() GTEST_SUCCEED() +#endif + +// Macros for testing exceptions. +// +// * {ASSERT|EXPECT}_THROW(statement, expected_exception): +// Tests that the statement throws the expected exception. +// * {ASSERT|EXPECT}_NO_THROW(statement): +// Tests that the statement doesn't throw any exception. +// * {ASSERT|EXPECT}_ANY_THROW(statement): +// Tests that the statement throws an exception. + +#define EXPECT_THROW(statement, expected_exception) \ + GTEST_TEST_THROW_(statement, expected_exception, GTEST_NONFATAL_FAILURE_) +#define EXPECT_NO_THROW(statement) \ + GTEST_TEST_NO_THROW_(statement, GTEST_NONFATAL_FAILURE_) +#define EXPECT_ANY_THROW(statement) \ + GTEST_TEST_ANY_THROW_(statement, GTEST_NONFATAL_FAILURE_) +#define ASSERT_THROW(statement, expected_exception) \ + GTEST_TEST_THROW_(statement, expected_exception, GTEST_FATAL_FAILURE_) +#define ASSERT_NO_THROW(statement) \ + GTEST_TEST_NO_THROW_(statement, GTEST_FATAL_FAILURE_) +#define ASSERT_ANY_THROW(statement) \ + GTEST_TEST_ANY_THROW_(statement, GTEST_FATAL_FAILURE_) + +// Boolean assertions. Condition can be either a Boolean expression or an +// AssertionResult. For more information on how to use AssertionResult with +// these macros see comments on that class. +#define EXPECT_TRUE(condition) \ + GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \ + GTEST_NONFATAL_FAILURE_) +#define EXPECT_FALSE(condition) \ + GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \ + GTEST_NONFATAL_FAILURE_) +#define ASSERT_TRUE(condition) \ + GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \ + GTEST_FATAL_FAILURE_) +#define ASSERT_FALSE(condition) \ + GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \ + GTEST_FATAL_FAILURE_) + +// Includes the auto-generated header that implements a family of +// generic predicate assertion macros. +#include "gtest/gtest_pred_impl.h" + +// Macros for testing equalities and inequalities. +// +// * {ASSERT|EXPECT}_EQ(expected, actual): Tests that expected == actual +// * {ASSERT|EXPECT}_NE(v1, v2): Tests that v1 != v2 +// * {ASSERT|EXPECT}_LT(v1, v2): Tests that v1 < v2 +// * {ASSERT|EXPECT}_LE(v1, v2): Tests that v1 <= v2 +// * {ASSERT|EXPECT}_GT(v1, v2): Tests that v1 > v2 +// * {ASSERT|EXPECT}_GE(v1, v2): Tests that v1 >= v2 +// +// When they are not, Google Test prints both the tested expressions and +// their actual values. The values must be compatible built-in types, +// or you will get a compiler error. By "compatible" we mean that the +// values can be compared by the respective operator. +// +// Note: +// +// 1. It is possible to make a user-defined type work with +// {ASSERT|EXPECT}_??(), but that requires overloading the +// comparison operators and is thus discouraged by the Google C++ +// Usage Guide. Therefore, you are advised to use the +// {ASSERT|EXPECT}_TRUE() macro to assert that two objects are +// equal. +// +// 2. The {ASSERT|EXPECT}_??() macros do pointer comparisons on +// pointers (in particular, C strings). Therefore, if you use it +// with two C strings, you are testing how their locations in memory +// are related, not how their content is related. To compare two C +// strings by content, use {ASSERT|EXPECT}_STR*(). +// +// 3. {ASSERT|EXPECT}_EQ(expected, actual) is preferred to +// {ASSERT|EXPECT}_TRUE(expected == actual), as the former tells you +// what the actual value is when it fails, and similarly for the +// other comparisons. +// +// 4. Do not depend on the order in which {ASSERT|EXPECT}_??() +// evaluate their arguments, which is undefined. +// +// 5. These macros evaluate their arguments exactly once. +// +// Examples: +// +// EXPECT_NE(5, Foo()); +// EXPECT_EQ(NULL, a_pointer); +// ASSERT_LT(i, array_size); +// ASSERT_GT(records.size(), 0) << "There is no record left."; + +#define EXPECT_EQ(expected, actual) \ + EXPECT_PRED_FORMAT2(::testing::internal:: \ + EqHelper::Compare, \ + expected, actual) +#define EXPECT_NE(expected, actual) \ + EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperNE, expected, actual) +#define EXPECT_LE(val1, val2) \ + EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2) +#define EXPECT_LT(val1, val2) \ + EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2) +#define EXPECT_GE(val1, val2) \ + EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2) +#define EXPECT_GT(val1, val2) \ + EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2) + +#define GTEST_ASSERT_EQ(expected, actual) \ + ASSERT_PRED_FORMAT2(::testing::internal:: \ + EqHelper::Compare, \ + expected, actual) +#define GTEST_ASSERT_NE(val1, val2) \ + ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2) +#define GTEST_ASSERT_LE(val1, val2) \ + ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2) +#define GTEST_ASSERT_LT(val1, val2) \ + ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2) +#define GTEST_ASSERT_GE(val1, val2) \ + ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2) +#define GTEST_ASSERT_GT(val1, val2) \ + ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2) + +// Define macro GTEST_DONT_DEFINE_ASSERT_XY to 1 to omit the definition of +// ASSERT_XY(), which clashes with some users' own code. + +#if !GTEST_DONT_DEFINE_ASSERT_EQ +# define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2) +#endif + +#if !GTEST_DONT_DEFINE_ASSERT_NE +# define ASSERT_NE(val1, val2) GTEST_ASSERT_NE(val1, val2) +#endif + +#if !GTEST_DONT_DEFINE_ASSERT_LE +# define ASSERT_LE(val1, val2) GTEST_ASSERT_LE(val1, val2) +#endif + +#if !GTEST_DONT_DEFINE_ASSERT_LT +# define ASSERT_LT(val1, val2) GTEST_ASSERT_LT(val1, val2) +#endif + +#if !GTEST_DONT_DEFINE_ASSERT_GE +# define ASSERT_GE(val1, val2) GTEST_ASSERT_GE(val1, val2) +#endif + +#if !GTEST_DONT_DEFINE_ASSERT_GT +# define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2) +#endif + +// C-string Comparisons. All tests treat NULL and any non-NULL string +// as different. Two NULLs are equal. +// +// * {ASSERT|EXPECT}_STREQ(s1, s2): Tests that s1 == s2 +// * {ASSERT|EXPECT}_STRNE(s1, s2): Tests that s1 != s2 +// * {ASSERT|EXPECT}_STRCASEEQ(s1, s2): Tests that s1 == s2, ignoring case +// * {ASSERT|EXPECT}_STRCASENE(s1, s2): Tests that s1 != s2, ignoring case +// +// For wide or narrow string objects, you can use the +// {ASSERT|EXPECT}_??() macros. +// +// Don't depend on the order in which the arguments are evaluated, +// which is undefined. +// +// These macros evaluate their arguments exactly once. + +#define EXPECT_STREQ(expected, actual) \ + EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, expected, actual) +#define EXPECT_STRNE(s1, s2) \ + EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2) +#define EXPECT_STRCASEEQ(expected, actual) \ + EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, expected, actual) +#define EXPECT_STRCASENE(s1, s2)\ + EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2) + +#define ASSERT_STREQ(expected, actual) \ + ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, expected, actual) +#define ASSERT_STRNE(s1, s2) \ + ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2) +#define ASSERT_STRCASEEQ(expected, actual) \ + ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, expected, actual) +#define ASSERT_STRCASENE(s1, s2)\ + ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2) + +// Macros for comparing floating-point numbers. +// +// * {ASSERT|EXPECT}_FLOAT_EQ(expected, actual): +// Tests that two float values are almost equal. +// * {ASSERT|EXPECT}_DOUBLE_EQ(expected, actual): +// Tests that two double values are almost equal. +// * {ASSERT|EXPECT}_NEAR(v1, v2, abs_error): +// Tests that v1 and v2 are within the given distance to each other. +// +// Google Test uses ULP-based comparison to automatically pick a default +// error bound that is appropriate for the operands. See the +// FloatingPoint template class in gtest-internal.h if you are +// interested in the implementation details. + +#define EXPECT_FLOAT_EQ(expected, actual)\ + EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ + expected, actual) + +#define EXPECT_DOUBLE_EQ(expected, actual)\ + EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ + expected, actual) + +#define ASSERT_FLOAT_EQ(expected, actual)\ + ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ + expected, actual) + +#define ASSERT_DOUBLE_EQ(expected, actual)\ + ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ + expected, actual) + +#define EXPECT_NEAR(val1, val2, abs_error)\ + EXPECT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \ + val1, val2, abs_error) + +#define ASSERT_NEAR(val1, val2, abs_error)\ + ASSERT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \ + val1, val2, abs_error) + +// These predicate format functions work on floating-point values, and +// can be used in {ASSERT|EXPECT}_PRED_FORMAT2*(), e.g. +// +// EXPECT_PRED_FORMAT2(testing::DoubleLE, Foo(), 5.0); + +// Asserts that val1 is less than, or almost equal to, val2. Fails +// otherwise. In particular, it fails if either val1 or val2 is NaN. +GTEST_API_ AssertionResult FloatLE(const char* expr1, const char* expr2, + float val1, float val2); +GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2, + double val1, double val2); + + +#if GTEST_OS_WINDOWS + +// Macros that test for HRESULT failure and success, these are only useful +// on Windows, and rely on Windows SDK macros and APIs to compile. +// +// * {ASSERT|EXPECT}_HRESULT_{SUCCEEDED|FAILED}(expr) +// +// When expr unexpectedly fails or succeeds, Google Test prints the +// expected result and the actual result with both a human-readable +// string representation of the error, if available, as well as the +// hex result code. +# define EXPECT_HRESULT_SUCCEEDED(expr) \ + EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr)) + +# define ASSERT_HRESULT_SUCCEEDED(expr) \ + ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr)) + +# define EXPECT_HRESULT_FAILED(expr) \ + EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr)) + +# define ASSERT_HRESULT_FAILED(expr) \ + ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr)) + +#endif // GTEST_OS_WINDOWS + +// Macros that execute statement and check that it doesn't generate new fatal +// failures in the current thread. +// +// * {ASSERT|EXPECT}_NO_FATAL_FAILURE(statement); +// +// Examples: +// +// EXPECT_NO_FATAL_FAILURE(Process()); +// ASSERT_NO_FATAL_FAILURE(Process()) << "Process() failed"; +// +#define ASSERT_NO_FATAL_FAILURE(statement) \ + GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_FATAL_FAILURE_) +#define EXPECT_NO_FATAL_FAILURE(statement) \ + GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_) + +// Causes a trace (including the source file path, the current line +// number, and the given message) to be included in every test failure +// message generated by code in the current scope. The effect is +// undone when the control leaves the current scope. +// +// The message argument can be anything streamable to std::ostream. +// +// In the implementation, we include the current line number as part +// of the dummy variable name, thus allowing multiple SCOPED_TRACE()s +// to appear in the same block - as long as they are on different +// lines. +#define SCOPED_TRACE(message) \ + ::testing::internal::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\ + __FILE__, __LINE__, ::testing::Message() << (message)) + +// Compile-time assertion for type equality. +// StaticAssertTypeEq() compiles iff type1 and type2 are +// the same type. The value it returns is not interesting. +// +// Instead of making StaticAssertTypeEq a class template, we make it a +// function template that invokes a helper class template. This +// prevents a user from misusing StaticAssertTypeEq by +// defining objects of that type. +// +// CAVEAT: +// +// When used inside a method of a class template, +// StaticAssertTypeEq() is effective ONLY IF the method is +// instantiated. For example, given: +// +// template class Foo { +// public: +// void Bar() { testing::StaticAssertTypeEq(); } +// }; +// +// the code: +// +// void Test1() { Foo foo; } +// +// will NOT generate a compiler error, as Foo::Bar() is never +// actually instantiated. Instead, you need: +// +// void Test2() { Foo foo; foo.Bar(); } +// +// to cause a compiler error. +template +bool StaticAssertTypeEq() { + (void)internal::StaticAssertTypeEqHelper(); + return true; +} + +// Defines a test. +// +// The first parameter is the name of the test case, and the second +// parameter is the name of the test within the test case. +// +// The convention is to end the test case name with "Test". For +// example, a test case for the Foo class can be named FooTest. +// +// The user should put his test code between braces after using this +// macro. Example: +// +// TEST(FooTest, InitializesCorrectly) { +// Foo foo; +// EXPECT_TRUE(foo.StatusIsOK()); +// } + +// Note that we call GetTestTypeId() instead of GetTypeId< +// ::testing::Test>() here to get the type ID of testing::Test. This +// is to work around a suspected linker bug when using Google Test as +// a framework on Mac OS X. The bug causes GetTypeId< +// ::testing::Test>() to return different values depending on whether +// the call is from the Google Test framework itself or from user test +// code. GetTestTypeId() is guaranteed to always return the same +// value, as it always calls GetTypeId<>() from the Google Test +// framework. +#define GTEST_TEST(test_case_name, test_name)\ + GTEST_TEST_(test_case_name, test_name, \ + ::testing::Test, ::testing::internal::GetTestTypeId()) + +// Define this macro to 1 to omit the definition of TEST(), which +// is a generic name and clashes with some other libraries. +#if !GTEST_DONT_DEFINE_TEST +# define TEST(test_case_name, test_name) GTEST_TEST(test_case_name, test_name) +#endif + +// Defines a test that uses a test fixture. +// +// The first parameter is the name of the test fixture class, which +// also doubles as the test case name. The second parameter is the +// name of the test within the test case. +// +// A test fixture class must be declared earlier. The user should put +// his test code between braces after using this macro. Example: +// +// class FooTest : public testing::Test { +// protected: +// virtual void SetUp() { b_.AddElement(3); } +// +// Foo a_; +// Foo b_; +// }; +// +// TEST_F(FooTest, InitializesCorrectly) { +// EXPECT_TRUE(a_.StatusIsOK()); +// } +// +// TEST_F(FooTest, ReturnsElementCountCorrectly) { +// EXPECT_EQ(0, a_.size()); +// EXPECT_EQ(1, b_.size()); +// } + +#define TEST_F(test_fixture, test_name)\ + GTEST_TEST_(test_fixture, test_name, test_fixture, \ + ::testing::internal::GetTypeId()) + +} // namespace testing + +// Use this function in main() to run all tests. It returns 0 if all +// tests are successful, or 1 otherwise. +// +// RUN_ALL_TESTS() should be invoked after the command line has been +// parsed by InitGoogleTest(). +// +// This function was formerly a macro; thus, it is in the global +// namespace and has an all-caps name. +int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_; + +inline int RUN_ALL_TESTS() { + return ::testing::UnitTest::GetInstance()->Run(); +} + +#endif // GTEST_INCLUDE_GTEST_GTEST_H_ diff --git a/gtest-1.7.0/include/gtest/gtest_pred_impl.h b/gtest-1.7.0/include/gtest/gtest_pred_impl.h new file mode 100644 index 0000000..30ae712 --- /dev/null +++ b/gtest-1.7.0/include/gtest/gtest_pred_impl.h @@ -0,0 +1,358 @@ +// Copyright 2006, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// This file is AUTOMATICALLY GENERATED on 10/31/2011 by command +// 'gen_gtest_pred_impl.py 5'. DO NOT EDIT BY HAND! +// +// Implements a family of generic predicate assertion macros. + +#ifndef GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ +#define GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ + +// Makes sure this header is not included before gtest.h. +#ifndef GTEST_INCLUDE_GTEST_GTEST_H_ +# error Do not include gtest_pred_impl.h directly. Include gtest.h instead. +#endif // GTEST_INCLUDE_GTEST_GTEST_H_ + +// This header implements a family of generic predicate assertion +// macros: +// +// ASSERT_PRED_FORMAT1(pred_format, v1) +// ASSERT_PRED_FORMAT2(pred_format, v1, v2) +// ... +// +// where pred_format is a function or functor that takes n (in the +// case of ASSERT_PRED_FORMATn) values and their source expression +// text, and returns a testing::AssertionResult. See the definition +// of ASSERT_EQ in gtest.h for an example. +// +// If you don't care about formatting, you can use the more +// restrictive version: +// +// ASSERT_PRED1(pred, v1) +// ASSERT_PRED2(pred, v1, v2) +// ... +// +// where pred is an n-ary function or functor that returns bool, +// and the values v1, v2, ..., must support the << operator for +// streaming to std::ostream. +// +// We also define the EXPECT_* variations. +// +// For now we only support predicates whose arity is at most 5. +// Please email googletestframework@googlegroups.com if you need +// support for higher arities. + +// GTEST_ASSERT_ is the basic statement to which all of the assertions +// in this file reduce. Don't use this in your code. + +#define GTEST_ASSERT_(expression, on_failure) \ + GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ + if (const ::testing::AssertionResult gtest_ar = (expression)) \ + ; \ + else \ + on_failure(gtest_ar.failure_message()) + + +// Helper function for implementing {EXPECT|ASSERT}_PRED1. Don't use +// this in your code. +template +AssertionResult AssertPred1Helper(const char* pred_text, + const char* e1, + Pred pred, + const T1& v1) { + if (pred(v1)) return AssertionSuccess(); + + return AssertionFailure() << pred_text << "(" + << e1 << ") evaluates to false, where" + << "\n" << e1 << " evaluates to " << v1; +} + +// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT1. +// Don't use this in your code. +#define GTEST_PRED_FORMAT1_(pred_format, v1, on_failure)\ + GTEST_ASSERT_(pred_format(#v1, v1), \ + on_failure) + +// Internal macro for implementing {EXPECT|ASSERT}_PRED1. Don't use +// this in your code. +#define GTEST_PRED1_(pred, v1, on_failure)\ + GTEST_ASSERT_(::testing::AssertPred1Helper(#pred, \ + #v1, \ + pred, \ + v1), on_failure) + +// Unary predicate assertion macros. +#define EXPECT_PRED_FORMAT1(pred_format, v1) \ + GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_) +#define EXPECT_PRED1(pred, v1) \ + GTEST_PRED1_(pred, v1, GTEST_NONFATAL_FAILURE_) +#define ASSERT_PRED_FORMAT1(pred_format, v1) \ + GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_) +#define ASSERT_PRED1(pred, v1) \ + GTEST_PRED1_(pred, v1, GTEST_FATAL_FAILURE_) + + + +// Helper function for implementing {EXPECT|ASSERT}_PRED2. Don't use +// this in your code. +template +AssertionResult AssertPred2Helper(const char* pred_text, + const char* e1, + const char* e2, + Pred pred, + const T1& v1, + const T2& v2) { + if (pred(v1, v2)) return AssertionSuccess(); + + return AssertionFailure() << pred_text << "(" + << e1 << ", " + << e2 << ") evaluates to false, where" + << "\n" << e1 << " evaluates to " << v1 + << "\n" << e2 << " evaluates to " << v2; +} + +// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT2. +// Don't use this in your code. +#define GTEST_PRED_FORMAT2_(pred_format, v1, v2, on_failure)\ + GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), \ + on_failure) + +// Internal macro for implementing {EXPECT|ASSERT}_PRED2. Don't use +// this in your code. +#define GTEST_PRED2_(pred, v1, v2, on_failure)\ + GTEST_ASSERT_(::testing::AssertPred2Helper(#pred, \ + #v1, \ + #v2, \ + pred, \ + v1, \ + v2), on_failure) + +// Binary predicate assertion macros. +#define EXPECT_PRED_FORMAT2(pred_format, v1, v2) \ + GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_) +#define EXPECT_PRED2(pred, v1, v2) \ + GTEST_PRED2_(pred, v1, v2, GTEST_NONFATAL_FAILURE_) +#define ASSERT_PRED_FORMAT2(pred_format, v1, v2) \ + GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_) +#define ASSERT_PRED2(pred, v1, v2) \ + GTEST_PRED2_(pred, v1, v2, GTEST_FATAL_FAILURE_) + + + +// Helper function for implementing {EXPECT|ASSERT}_PRED3. Don't use +// this in your code. +template +AssertionResult AssertPred3Helper(const char* pred_text, + const char* e1, + const char* e2, + const char* e3, + Pred pred, + const T1& v1, + const T2& v2, + const T3& v3) { + if (pred(v1, v2, v3)) return AssertionSuccess(); + + return AssertionFailure() << pred_text << "(" + << e1 << ", " + << e2 << ", " + << e3 << ") evaluates to false, where" + << "\n" << e1 << " evaluates to " << v1 + << "\n" << e2 << " evaluates to " << v2 + << "\n" << e3 << " evaluates to " << v3; +} + +// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT3. +// Don't use this in your code. +#define GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, on_failure)\ + GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3), \ + on_failure) + +// Internal macro for implementing {EXPECT|ASSERT}_PRED3. Don't use +// this in your code. +#define GTEST_PRED3_(pred, v1, v2, v3, on_failure)\ + GTEST_ASSERT_(::testing::AssertPred3Helper(#pred, \ + #v1, \ + #v2, \ + #v3, \ + pred, \ + v1, \ + v2, \ + v3), on_failure) + +// Ternary predicate assertion macros. +#define EXPECT_PRED_FORMAT3(pred_format, v1, v2, v3) \ + GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_NONFATAL_FAILURE_) +#define EXPECT_PRED3(pred, v1, v2, v3) \ + GTEST_PRED3_(pred, v1, v2, v3, GTEST_NONFATAL_FAILURE_) +#define ASSERT_PRED_FORMAT3(pred_format, v1, v2, v3) \ + GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_FATAL_FAILURE_) +#define ASSERT_PRED3(pred, v1, v2, v3) \ + GTEST_PRED3_(pred, v1, v2, v3, GTEST_FATAL_FAILURE_) + + + +// Helper function for implementing {EXPECT|ASSERT}_PRED4. Don't use +// this in your code. +template +AssertionResult AssertPred4Helper(const char* pred_text, + const char* e1, + const char* e2, + const char* e3, + const char* e4, + Pred pred, + const T1& v1, + const T2& v2, + const T3& v3, + const T4& v4) { + if (pred(v1, v2, v3, v4)) return AssertionSuccess(); + + return AssertionFailure() << pred_text << "(" + << e1 << ", " + << e2 << ", " + << e3 << ", " + << e4 << ") evaluates to false, where" + << "\n" << e1 << " evaluates to " << v1 + << "\n" << e2 << " evaluates to " << v2 + << "\n" << e3 << " evaluates to " << v3 + << "\n" << e4 << " evaluates to " << v4; +} + +// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT4. +// Don't use this in your code. +#define GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, on_failure)\ + GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4), \ + on_failure) + +// Internal macro for implementing {EXPECT|ASSERT}_PRED4. Don't use +// this in your code. +#define GTEST_PRED4_(pred, v1, v2, v3, v4, on_failure)\ + GTEST_ASSERT_(::testing::AssertPred4Helper(#pred, \ + #v1, \ + #v2, \ + #v3, \ + #v4, \ + pred, \ + v1, \ + v2, \ + v3, \ + v4), on_failure) + +// 4-ary predicate assertion macros. +#define EXPECT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \ + GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_) +#define EXPECT_PRED4(pred, v1, v2, v3, v4) \ + GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_) +#define ASSERT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \ + GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_FATAL_FAILURE_) +#define ASSERT_PRED4(pred, v1, v2, v3, v4) \ + GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_FATAL_FAILURE_) + + + +// Helper function for implementing {EXPECT|ASSERT}_PRED5. Don't use +// this in your code. +template +AssertionResult AssertPred5Helper(const char* pred_text, + const char* e1, + const char* e2, + const char* e3, + const char* e4, + const char* e5, + Pred pred, + const T1& v1, + const T2& v2, + const T3& v3, + const T4& v4, + const T5& v5) { + if (pred(v1, v2, v3, v4, v5)) return AssertionSuccess(); + + return AssertionFailure() << pred_text << "(" + << e1 << ", " + << e2 << ", " + << e3 << ", " + << e4 << ", " + << e5 << ") evaluates to false, where" + << "\n" << e1 << " evaluates to " << v1 + << "\n" << e2 << " evaluates to " << v2 + << "\n" << e3 << " evaluates to " << v3 + << "\n" << e4 << " evaluates to " << v4 + << "\n" << e5 << " evaluates to " << v5; +} + +// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT5. +// Don't use this in your code. +#define GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, on_failure)\ + GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5), \ + on_failure) + +// Internal macro for implementing {EXPECT|ASSERT}_PRED5. Don't use +// this in your code. +#define GTEST_PRED5_(pred, v1, v2, v3, v4, v5, on_failure)\ + GTEST_ASSERT_(::testing::AssertPred5Helper(#pred, \ + #v1, \ + #v2, \ + #v3, \ + #v4, \ + #v5, \ + pred, \ + v1, \ + v2, \ + v3, \ + v4, \ + v5), on_failure) + +// 5-ary predicate assertion macros. +#define EXPECT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \ + GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_) +#define EXPECT_PRED5(pred, v1, v2, v3, v4, v5) \ + GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_) +#define ASSERT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \ + GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_) +#define ASSERT_PRED5(pred, v1, v2, v3, v4, v5) \ + GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_) + + + +#endif // GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ diff --git a/gtest-1.7.0/include/gtest/gtest_prod.h b/gtest-1.7.0/include/gtest/gtest_prod.h new file mode 100644 index 0000000..da80ddc --- /dev/null +++ b/gtest-1.7.0/include/gtest/gtest_prod.h @@ -0,0 +1,58 @@ +// Copyright 2006, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: wan@google.com (Zhanyong Wan) +// +// Google C++ Testing Framework definitions useful in production code. + +#ifndef GTEST_INCLUDE_GTEST_GTEST_PROD_H_ +#define GTEST_INCLUDE_GTEST_GTEST_PROD_H_ + +// When you need to test the private or protected members of a class, +// use the FRIEND_TEST macro to declare your tests as friends of the +// class. For example: +// +// class MyClass { +// private: +// void MyMethod(); +// FRIEND_TEST(MyClassTest, MyMethod); +// }; +// +// class MyClassTest : public testing::Test { +// // ... +// }; +// +// TEST_F(MyClassTest, MyMethod) { +// // Can call MyClass::MyMethod() here. +// } + +#define FRIEND_TEST(test_case_name, test_name)\ +friend class test_case_name##_##test_name##_Test + +#endif // GTEST_INCLUDE_GTEST_GTEST_PROD_H_ diff --git a/gtest-1.7.0/include/gtest/internal/gtest-death-test-internal.h b/gtest-1.7.0/include/gtest/internal/gtest-death-test-internal.h new file mode 100644 index 0000000..2b3a78f --- /dev/null +++ b/gtest-1.7.0/include/gtest/internal/gtest-death-test-internal.h @@ -0,0 +1,319 @@ +// Copyright 2005, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee) +// +// The Google C++ Testing Framework (Google Test) +// +// This header file defines internal utilities needed for implementing +// death tests. They are subject to change without notice. + +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ + +#include "gtest/internal/gtest-internal.h" + +#include + +namespace testing { +namespace internal { + +GTEST_DECLARE_string_(internal_run_death_test); + +// Names of the flags (needed for parsing Google Test flags). +const char kDeathTestStyleFlag[] = "death_test_style"; +const char kDeathTestUseFork[] = "death_test_use_fork"; +const char kInternalRunDeathTestFlag[] = "internal_run_death_test"; + +#if GTEST_HAS_DEATH_TEST + +// DeathTest is a class that hides much of the complexity of the +// GTEST_DEATH_TEST_ macro. It is abstract; its static Create method +// returns a concrete class that depends on the prevailing death test +// style, as defined by the --gtest_death_test_style and/or +// --gtest_internal_run_death_test flags. + +// In describing the results of death tests, these terms are used with +// the corresponding definitions: +// +// exit status: The integer exit information in the format specified +// by wait(2) +// exit code: The integer code passed to exit(3), _exit(2), or +// returned from main() +class GTEST_API_ DeathTest { + public: + // Create returns false if there was an error determining the + // appropriate action to take for the current death test; for example, + // if the gtest_death_test_style flag is set to an invalid value. + // The LastMessage method will return a more detailed message in that + // case. Otherwise, the DeathTest pointer pointed to by the "test" + // argument is set. If the death test should be skipped, the pointer + // is set to NULL; otherwise, it is set to the address of a new concrete + // DeathTest object that controls the execution of the current test. + static bool Create(const char* statement, const RE* regex, + const char* file, int line, DeathTest** test); + DeathTest(); + virtual ~DeathTest() { } + + // A helper class that aborts a death test when it's deleted. + class ReturnSentinel { + public: + explicit ReturnSentinel(DeathTest* test) : test_(test) { } + ~ReturnSentinel() { test_->Abort(TEST_ENCOUNTERED_RETURN_STATEMENT); } + private: + DeathTest* const test_; + GTEST_DISALLOW_COPY_AND_ASSIGN_(ReturnSentinel); + } GTEST_ATTRIBUTE_UNUSED_; + + // An enumeration of possible roles that may be taken when a death + // test is encountered. EXECUTE means that the death test logic should + // be executed immediately. OVERSEE means that the program should prepare + // the appropriate environment for a child process to execute the death + // test, then wait for it to complete. + enum TestRole { OVERSEE_TEST, EXECUTE_TEST }; + + // An enumeration of the three reasons that a test might be aborted. + enum AbortReason { + TEST_ENCOUNTERED_RETURN_STATEMENT, + TEST_THREW_EXCEPTION, + TEST_DID_NOT_DIE + }; + + // Assumes one of the above roles. + virtual TestRole AssumeRole() = 0; + + // Waits for the death test to finish and returns its status. + virtual int Wait() = 0; + + // Returns true if the death test passed; that is, the test process + // exited during the test, its exit status matches a user-supplied + // predicate, and its stderr output matches a user-supplied regular + // expression. + // The user-supplied predicate may be a macro expression rather + // than a function pointer or functor, or else Wait and Passed could + // be combined. + virtual bool Passed(bool exit_status_ok) = 0; + + // Signals that the death test did not die as expected. + virtual void Abort(AbortReason reason) = 0; + + // Returns a human-readable outcome message regarding the outcome of + // the last death test. + static const char* LastMessage(); + + static void set_last_death_test_message(const std::string& message); + + private: + // A string containing a description of the outcome of the last death test. + static std::string last_death_test_message_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(DeathTest); +}; + +// Factory interface for death tests. May be mocked out for testing. +class DeathTestFactory { + public: + virtual ~DeathTestFactory() { } + virtual bool Create(const char* statement, const RE* regex, + const char* file, int line, DeathTest** test) = 0; +}; + +// A concrete DeathTestFactory implementation for normal use. +class DefaultDeathTestFactory : public DeathTestFactory { + public: + virtual bool Create(const char* statement, const RE* regex, + const char* file, int line, DeathTest** test); +}; + +// Returns true if exit_status describes a process that was terminated +// by a signal, or exited normally with a nonzero exit code. +GTEST_API_ bool ExitedUnsuccessfully(int exit_status); + +// Traps C++ exceptions escaping statement and reports them as test +// failures. Note that trapping SEH exceptions is not implemented here. +# if GTEST_HAS_EXCEPTIONS +# define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \ + try { \ + GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ + } catch (const ::std::exception& gtest_exception) { \ + fprintf(\ + stderr, \ + "\n%s: Caught std::exception-derived exception escaping the " \ + "death test statement. Exception message: %s\n", \ + ::testing::internal::FormatFileLocation(__FILE__, __LINE__).c_str(), \ + gtest_exception.what()); \ + fflush(stderr); \ + death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \ + } catch (...) { \ + death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \ + } + +# else +# define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \ + GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) + +# endif + +// This macro is for implementing ASSERT_DEATH*, EXPECT_DEATH*, +// ASSERT_EXIT*, and EXPECT_EXIT*. +# define GTEST_DEATH_TEST_(statement, predicate, regex, fail) \ + GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ + if (::testing::internal::AlwaysTrue()) { \ + const ::testing::internal::RE& gtest_regex = (regex); \ + ::testing::internal::DeathTest* gtest_dt; \ + if (!::testing::internal::DeathTest::Create(#statement, >est_regex, \ + __FILE__, __LINE__, >est_dt)) { \ + goto GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__); \ + } \ + if (gtest_dt != NULL) { \ + ::testing::internal::scoped_ptr< ::testing::internal::DeathTest> \ + gtest_dt_ptr(gtest_dt); \ + switch (gtest_dt->AssumeRole()) { \ + case ::testing::internal::DeathTest::OVERSEE_TEST: \ + if (!gtest_dt->Passed(predicate(gtest_dt->Wait()))) { \ + goto GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__); \ + } \ + break; \ + case ::testing::internal::DeathTest::EXECUTE_TEST: { \ + ::testing::internal::DeathTest::ReturnSentinel \ + gtest_sentinel(gtest_dt); \ + GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, gtest_dt); \ + gtest_dt->Abort(::testing::internal::DeathTest::TEST_DID_NOT_DIE); \ + break; \ + } \ + default: \ + break; \ + } \ + } \ + } else \ + GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__): \ + fail(::testing::internal::DeathTest::LastMessage()) +// The symbol "fail" here expands to something into which a message +// can be streamed. + +// This macro is for implementing ASSERT/EXPECT_DEBUG_DEATH when compiled in +// NDEBUG mode. In this case we need the statements to be executed, the regex is +// ignored, and the macro must accept a streamed message even though the message +// is never printed. +# define GTEST_EXECUTE_STATEMENT_(statement, regex) \ + GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ + if (::testing::internal::AlwaysTrue()) { \ + GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ + } else \ + ::testing::Message() + +// A class representing the parsed contents of the +// --gtest_internal_run_death_test flag, as it existed when +// RUN_ALL_TESTS was called. +class InternalRunDeathTestFlag { + public: + InternalRunDeathTestFlag(const std::string& a_file, + int a_line, + int an_index, + int a_write_fd) + : file_(a_file), line_(a_line), index_(an_index), + write_fd_(a_write_fd) {} + + ~InternalRunDeathTestFlag() { + if (write_fd_ >= 0) + posix::Close(write_fd_); + } + + const std::string& file() const { return file_; } + int line() const { return line_; } + int index() const { return index_; } + int write_fd() const { return write_fd_; } + + private: + std::string file_; + int line_; + int index_; + int write_fd_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(InternalRunDeathTestFlag); +}; + +// Returns a newly created InternalRunDeathTestFlag object with fields +// initialized from the GTEST_FLAG(internal_run_death_test) flag if +// the flag is specified; otherwise returns NULL. +InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag(); + +#else // GTEST_HAS_DEATH_TEST + +// This macro is used for implementing macros such as +// EXPECT_DEATH_IF_SUPPORTED and ASSERT_DEATH_IF_SUPPORTED on systems where +// death tests are not supported. Those macros must compile on such systems +// iff EXPECT_DEATH and ASSERT_DEATH compile with the same parameters on +// systems that support death tests. This allows one to write such a macro +// on a system that does not support death tests and be sure that it will +// compile on a death-test supporting system. +// +// Parameters: +// statement - A statement that a macro such as EXPECT_DEATH would test +// for program termination. This macro has to make sure this +// statement is compiled but not executed, to ensure that +// EXPECT_DEATH_IF_SUPPORTED compiles with a certain +// parameter iff EXPECT_DEATH compiles with it. +// regex - A regex that a macro such as EXPECT_DEATH would use to test +// the output of statement. This parameter has to be +// compiled but not evaluated by this macro, to ensure that +// this macro only accepts expressions that a macro such as +// EXPECT_DEATH would accept. +// terminator - Must be an empty statement for EXPECT_DEATH_IF_SUPPORTED +// and a return statement for ASSERT_DEATH_IF_SUPPORTED. +// This ensures that ASSERT_DEATH_IF_SUPPORTED will not +// compile inside functions where ASSERT_DEATH doesn't +// compile. +// +// The branch that has an always false condition is used to ensure that +// statement and regex are compiled (and thus syntactically correct) but +// never executed. The unreachable code macro protects the terminator +// statement from generating an 'unreachable code' warning in case +// statement unconditionally returns or throws. The Message constructor at +// the end allows the syntax of streaming additional messages into the +// macro, for compilational compatibility with EXPECT_DEATH/ASSERT_DEATH. +# define GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, terminator) \ + GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ + if (::testing::internal::AlwaysTrue()) { \ + GTEST_LOG_(WARNING) \ + << "Death tests are not supported on this platform.\n" \ + << "Statement '" #statement "' cannot be verified."; \ + } else if (::testing::internal::AlwaysFalse()) { \ + ::testing::internal::RE::PartialMatch(".*", (regex)); \ + GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ + terminator; \ + } else \ + ::testing::Message() + +#endif // GTEST_HAS_DEATH_TEST + +} // namespace internal +} // namespace testing + +#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ diff --git a/gtest-1.7.0/include/gtest/internal/gtest-filepath.h b/gtest-1.7.0/include/gtest/internal/gtest-filepath.h new file mode 100644 index 0000000..7a13b4b --- /dev/null +++ b/gtest-1.7.0/include/gtest/internal/gtest-filepath.h @@ -0,0 +1,206 @@ +// Copyright 2008, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: keith.ray@gmail.com (Keith Ray) +// +// Google Test filepath utilities +// +// This header file declares classes and functions used internally by +// Google Test. They are subject to change without notice. +// +// This file is #included in . +// Do not include this header file separately! + +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ + +#include "gtest/internal/gtest-string.h" + +namespace testing { +namespace internal { + +// FilePath - a class for file and directory pathname manipulation which +// handles platform-specific conventions (like the pathname separator). +// Used for helper functions for naming files in a directory for xml output. +// Except for Set methods, all methods are const or static, which provides an +// "immutable value object" -- useful for peace of mind. +// A FilePath with a value ending in a path separator ("like/this/") represents +// a directory, otherwise it is assumed to represent a file. In either case, +// it may or may not represent an actual file or directory in the file system. +// Names are NOT checked for syntax correctness -- no checking for illegal +// characters, malformed paths, etc. + +class GTEST_API_ FilePath { + public: + FilePath() : pathname_("") { } + FilePath(const FilePath& rhs) : pathname_(rhs.pathname_) { } + + explicit FilePath(const std::string& pathname) : pathname_(pathname) { + Normalize(); + } + + FilePath& operator=(const FilePath& rhs) { + Set(rhs); + return *this; + } + + void Set(const FilePath& rhs) { + pathname_ = rhs.pathname_; + } + + const std::string& string() const { return pathname_; } + const char* c_str() const { return pathname_.c_str(); } + + // Returns the current working directory, or "" if unsuccessful. + static FilePath GetCurrentDir(); + + // Given directory = "dir", base_name = "test", number = 0, + // extension = "xml", returns "dir/test.xml". If number is greater + // than zero (e.g., 12), returns "dir/test_12.xml". + // On Windows platform, uses \ as the separator rather than /. + static FilePath MakeFileName(const FilePath& directory, + const FilePath& base_name, + int number, + const char* extension); + + // Given directory = "dir", relative_path = "test.xml", + // returns "dir/test.xml". + // On Windows, uses \ as the separator rather than /. + static FilePath ConcatPaths(const FilePath& directory, + const FilePath& relative_path); + + // Returns a pathname for a file that does not currently exist. The pathname + // will be directory/base_name.extension or + // directory/base_name_.extension if directory/base_name.extension + // already exists. The number will be incremented until a pathname is found + // that does not already exist. + // Examples: 'dir/foo_test.xml' or 'dir/foo_test_1.xml'. + // There could be a race condition if two or more processes are calling this + // function at the same time -- they could both pick the same filename. + static FilePath GenerateUniqueFileName(const FilePath& directory, + const FilePath& base_name, + const char* extension); + + // Returns true iff the path is "". + bool IsEmpty() const { return pathname_.empty(); } + + // If input name has a trailing separator character, removes it and returns + // the name, otherwise return the name string unmodified. + // On Windows platform, uses \ as the separator, other platforms use /. + FilePath RemoveTrailingPathSeparator() const; + + // Returns a copy of the FilePath with the directory part removed. + // Example: FilePath("path/to/file").RemoveDirectoryName() returns + // FilePath("file"). If there is no directory part ("just_a_file"), it returns + // the FilePath unmodified. If there is no file part ("just_a_dir/") it + // returns an empty FilePath (""). + // On Windows platform, '\' is the path separator, otherwise it is '/'. + FilePath RemoveDirectoryName() const; + + // RemoveFileName returns the directory path with the filename removed. + // Example: FilePath("path/to/file").RemoveFileName() returns "path/to/". + // If the FilePath is "a_file" or "/a_file", RemoveFileName returns + // FilePath("./") or, on Windows, FilePath(".\\"). If the filepath does + // not have a file, like "just/a/dir/", it returns the FilePath unmodified. + // On Windows platform, '\' is the path separator, otherwise it is '/'. + FilePath RemoveFileName() const; + + // Returns a copy of the FilePath with the case-insensitive extension removed. + // Example: FilePath("dir/file.exe").RemoveExtension("EXE") returns + // FilePath("dir/file"). If a case-insensitive extension is not + // found, returns a copy of the original FilePath. + FilePath RemoveExtension(const char* extension) const; + + // Creates directories so that path exists. Returns true if successful or if + // the directories already exist; returns false if unable to create + // directories for any reason. Will also return false if the FilePath does + // not represent a directory (that is, it doesn't end with a path separator). + bool CreateDirectoriesRecursively() const; + + // Create the directory so that path exists. Returns true if successful or + // if the directory already exists; returns false if unable to create the + // directory for any reason, including if the parent directory does not + // exist. Not named "CreateDirectory" because that's a macro on Windows. + bool CreateFolder() const; + + // Returns true if FilePath describes something in the file-system, + // either a file, directory, or whatever, and that something exists. + bool FileOrDirectoryExists() const; + + // Returns true if pathname describes a directory in the file-system + // that exists. + bool DirectoryExists() const; + + // Returns true if FilePath ends with a path separator, which indicates that + // it is intended to represent a directory. Returns false otherwise. + // This does NOT check that a directory (or file) actually exists. + bool IsDirectory() const; + + // Returns true if pathname describes a root directory. (Windows has one + // root directory per disk drive.) + bool IsRootDirectory() const; + + // Returns true if pathname describes an absolute path. + bool IsAbsolutePath() const; + + private: + // Replaces multiple consecutive separators with a single separator. + // For example, "bar///foo" becomes "bar/foo". Does not eliminate other + // redundancies that might be in a pathname involving "." or "..". + // + // A pathname with multiple consecutive separators may occur either through + // user error or as a result of some scripts or APIs that generate a pathname + // with a trailing separator. On other platforms the same API or script + // may NOT generate a pathname with a trailing "/". Then elsewhere that + // pathname may have another "/" and pathname components added to it, + // without checking for the separator already being there. + // The script language and operating system may allow paths like "foo//bar" + // but some of the functions in FilePath will not handle that correctly. In + // particular, RemoveTrailingPathSeparator() only removes one separator, and + // it is called in CreateDirectoriesRecursively() assuming that it will change + // a pathname from directory syntax (trailing separator) to filename syntax. + // + // On Windows this method also replaces the alternate path separator '/' with + // the primary path separator '\\', so that for example "bar\\/\\foo" becomes + // "bar\\foo". + + void Normalize(); + + // Returns a pointer to the last occurence of a valid path separator in + // the FilePath. On Windows, for example, both '/' and '\' are valid path + // separators. Returns NULL if no path separator was found. + const char* FindLastPathSeparator() const; + + std::string pathname_; +}; // class FilePath + +} // namespace internal +} // namespace testing + +#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ diff --git a/gtest-1.7.0/include/gtest/internal/gtest-internal.h b/gtest-1.7.0/include/gtest/internal/gtest-internal.h new file mode 100644 index 0000000..0dcc3a3 --- /dev/null +++ b/gtest-1.7.0/include/gtest/internal/gtest-internal.h @@ -0,0 +1,1158 @@ +// Copyright 2005, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee) +// +// The Google C++ Testing Framework (Google Test) +// +// This header file declares functions and macros used internally by +// Google Test. They are subject to change without notice. + +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ + +#include "gtest/internal/gtest-port.h" + +#if GTEST_OS_LINUX +# include +# include +# include +# include +#endif // GTEST_OS_LINUX + +#if GTEST_HAS_EXCEPTIONS +# include +#endif + +#include +#include +#include +#include +#include +#include + +#include "gtest/gtest-message.h" +#include "gtest/internal/gtest-string.h" +#include "gtest/internal/gtest-filepath.h" +#include "gtest/internal/gtest-type-util.h" + +// Due to C++ preprocessor weirdness, we need double indirection to +// concatenate two tokens when one of them is __LINE__. Writing +// +// foo ## __LINE__ +// +// will result in the token foo__LINE__, instead of foo followed by +// the current line number. For more details, see +// http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.6 +#define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar) +#define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar + +class ProtocolMessage; +namespace proto2 { class Message; } + +namespace testing { + +// Forward declarations. + +class AssertionResult; // Result of an assertion. +class Message; // Represents a failure message. +class Test; // Represents a test. +class TestInfo; // Information about a test. +class TestPartResult; // Result of a test part. +class UnitTest; // A collection of test cases. + +template +::std::string PrintToString(const T& value); + +namespace internal { + +struct TraceInfo; // Information about a trace point. +class ScopedTrace; // Implements scoped trace. +class TestInfoImpl; // Opaque implementation of TestInfo +class UnitTestImpl; // Opaque implementation of UnitTest + +// How many times InitGoogleTest() has been called. +GTEST_API_ extern int g_init_gtest_count; + +// The text used in failure messages to indicate the start of the +// stack trace. +GTEST_API_ extern const char kStackTraceMarker[]; + +// Two overloaded helpers for checking at compile time whether an +// expression is a null pointer literal (i.e. NULL or any 0-valued +// compile-time integral constant). Their return values have +// different sizes, so we can use sizeof() to test which version is +// picked by the compiler. These helpers have no implementations, as +// we only need their signatures. +// +// Given IsNullLiteralHelper(x), the compiler will pick the first +// version if x can be implicitly converted to Secret*, and pick the +// second version otherwise. Since Secret is a secret and incomplete +// type, the only expression a user can write that has type Secret* is +// a null pointer literal. Therefore, we know that x is a null +// pointer literal if and only if the first version is picked by the +// compiler. +char IsNullLiteralHelper(Secret* p); +char (&IsNullLiteralHelper(...))[2]; // NOLINT + +// A compile-time bool constant that is true if and only if x is a +// null pointer literal (i.e. NULL or any 0-valued compile-time +// integral constant). +#ifdef GTEST_ELLIPSIS_NEEDS_POD_ +// We lose support for NULL detection where the compiler doesn't like +// passing non-POD classes through ellipsis (...). +# define GTEST_IS_NULL_LITERAL_(x) false +#else +# define GTEST_IS_NULL_LITERAL_(x) \ + (sizeof(::testing::internal::IsNullLiteralHelper(x)) == 1) +#endif // GTEST_ELLIPSIS_NEEDS_POD_ + +// Appends the user-supplied message to the Google-Test-generated message. +GTEST_API_ std::string AppendUserMessage( + const std::string& gtest_msg, const Message& user_msg); + +#if GTEST_HAS_EXCEPTIONS + +// This exception is thrown by (and only by) a failed Google Test +// assertion when GTEST_FLAG(throw_on_failure) is true (if exceptions +// are enabled). We derive it from std::runtime_error, which is for +// errors presumably detectable only at run time. Since +// std::runtime_error inherits from std::exception, many testing +// frameworks know how to extract and print the message inside it. +class GTEST_API_ GoogleTestFailureException : public ::std::runtime_error { + public: + explicit GoogleTestFailureException(const TestPartResult& failure); +}; + +#endif // GTEST_HAS_EXCEPTIONS + +// A helper class for creating scoped traces in user programs. +class GTEST_API_ ScopedTrace { + public: + // The c'tor pushes the given source file location and message onto + // a trace stack maintained by Google Test. + ScopedTrace(const char* file, int line, const Message& message); + + // The d'tor pops the info pushed by the c'tor. + // + // Note that the d'tor is not virtual in order to be efficient. + // Don't inherit from ScopedTrace! + ~ScopedTrace(); + + private: + GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedTrace); +} GTEST_ATTRIBUTE_UNUSED_; // A ScopedTrace object does its job in its + // c'tor and d'tor. Therefore it doesn't + // need to be used otherwise. + +// Constructs and returns the message for an equality assertion +// (e.g. ASSERT_EQ, EXPECT_STREQ, etc) failure. +// +// The first four parameters are the expressions used in the assertion +// and their values, as strings. For example, for ASSERT_EQ(foo, bar) +// where foo is 5 and bar is 6, we have: +// +// expected_expression: "foo" +// actual_expression: "bar" +// expected_value: "5" +// actual_value: "6" +// +// The ignoring_case parameter is true iff the assertion is a +// *_STRCASEEQ*. When it's true, the string " (ignoring case)" will +// be inserted into the message. +GTEST_API_ AssertionResult EqFailure(const char* expected_expression, + const char* actual_expression, + const std::string& expected_value, + const std::string& actual_value, + bool ignoring_case); + +// Constructs a failure message for Boolean assertions such as EXPECT_TRUE. +GTEST_API_ std::string GetBoolAssertionFailureMessage( + const AssertionResult& assertion_result, + const char* expression_text, + const char* actual_predicate_value, + const char* expected_predicate_value); + +// This template class represents an IEEE floating-point number +// (either single-precision or double-precision, depending on the +// template parameters). +// +// The purpose of this class is to do more sophisticated number +// comparison. (Due to round-off error, etc, it's very unlikely that +// two floating-points will be equal exactly. Hence a naive +// comparison by the == operation often doesn't work.) +// +// Format of IEEE floating-point: +// +// The most-significant bit being the leftmost, an IEEE +// floating-point looks like +// +// sign_bit exponent_bits fraction_bits +// +// Here, sign_bit is a single bit that designates the sign of the +// number. +// +// For float, there are 8 exponent bits and 23 fraction bits. +// +// For double, there are 11 exponent bits and 52 fraction bits. +// +// More details can be found at +// http://en.wikipedia.org/wiki/IEEE_floating-point_standard. +// +// Template parameter: +// +// RawType: the raw floating-point type (either float or double) +template +class FloatingPoint { + public: + // Defines the unsigned integer type that has the same size as the + // floating point number. + typedef typename TypeWithSize::UInt Bits; + + // Constants. + + // # of bits in a number. + static const size_t kBitCount = 8*sizeof(RawType); + + // # of fraction bits in a number. + static const size_t kFractionBitCount = + std::numeric_limits::digits - 1; + + // # of exponent bits in a number. + static const size_t kExponentBitCount = kBitCount - 1 - kFractionBitCount; + + // The mask for the sign bit. + static const Bits kSignBitMask = static_cast(1) << (kBitCount - 1); + + // The mask for the fraction bits. + static const Bits kFractionBitMask = + ~static_cast(0) >> (kExponentBitCount + 1); + + // The mask for the exponent bits. + static const Bits kExponentBitMask = ~(kSignBitMask | kFractionBitMask); + + // How many ULP's (Units in the Last Place) we want to tolerate when + // comparing two numbers. The larger the value, the more error we + // allow. A 0 value means that two numbers must be exactly the same + // to be considered equal. + // + // The maximum error of a single floating-point operation is 0.5 + // units in the last place. On Intel CPU's, all floating-point + // calculations are done with 80-bit precision, while double has 64 + // bits. Therefore, 4 should be enough for ordinary use. + // + // See the following article for more details on ULP: + // http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ + static const size_t kMaxUlps = 4; + + // Constructs a FloatingPoint from a raw floating-point number. + // + // On an Intel CPU, passing a non-normalized NAN (Not a Number) + // around may change its bits, although the new value is guaranteed + // to be also a NAN. Therefore, don't expect this constructor to + // preserve the bits in x when x is a NAN. + explicit FloatingPoint(const RawType& x) { u_.value_ = x; } + + // Static methods + + // Reinterprets a bit pattern as a floating-point number. + // + // This function is needed to test the AlmostEquals() method. + static RawType ReinterpretBits(const Bits bits) { + FloatingPoint fp(0); + fp.u_.bits_ = bits; + return fp.u_.value_; + } + + // Returns the floating-point number that represent positive infinity. + static RawType Infinity() { + return ReinterpretBits(kExponentBitMask); + } + + // Returns the maximum representable finite floating-point number. + static RawType Max(); + + // Non-static methods + + // Returns the bits that represents this number. + const Bits &bits() const { return u_.bits_; } + + // Returns the exponent bits of this number. + Bits exponent_bits() const { return kExponentBitMask & u_.bits_; } + + // Returns the fraction bits of this number. + Bits fraction_bits() const { return kFractionBitMask & u_.bits_; } + + // Returns the sign bit of this number. + Bits sign_bit() const { return kSignBitMask & u_.bits_; } + + // Returns true iff this is NAN (not a number). + bool is_nan() const { + // It's a NAN if the exponent bits are all ones and the fraction + // bits are not entirely zeros. + return (exponent_bits() == kExponentBitMask) && (fraction_bits() != 0); + } + + // Returns true iff this number is at most kMaxUlps ULP's away from + // rhs. In particular, this function: + // + // - returns false if either number is (or both are) NAN. + // - treats really large numbers as almost equal to infinity. + // - thinks +0.0 and -0.0 are 0 DLP's apart. + bool AlmostEquals(const FloatingPoint& rhs) const { + // The IEEE standard says that any comparison operation involving + // a NAN must return false. + if (is_nan() || rhs.is_nan()) return false; + + return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_) + <= kMaxUlps; + } + + private: + // The data type used to store the actual floating-point number. + union FloatingPointUnion { + RawType value_; // The raw floating-point number. + Bits bits_; // The bits that represent the number. + }; + + // Converts an integer from the sign-and-magnitude representation to + // the biased representation. More precisely, let N be 2 to the + // power of (kBitCount - 1), an integer x is represented by the + // unsigned number x + N. + // + // For instance, + // + // -N + 1 (the most negative number representable using + // sign-and-magnitude) is represented by 1; + // 0 is represented by N; and + // N - 1 (the biggest number representable using + // sign-and-magnitude) is represented by 2N - 1. + // + // Read http://en.wikipedia.org/wiki/Signed_number_representations + // for more details on signed number representations. + static Bits SignAndMagnitudeToBiased(const Bits &sam) { + if (kSignBitMask & sam) { + // sam represents a negative number. + return ~sam + 1; + } else { + // sam represents a positive number. + return kSignBitMask | sam; + } + } + + // Given two numbers in the sign-and-magnitude representation, + // returns the distance between them as an unsigned number. + static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits &sam1, + const Bits &sam2) { + const Bits biased1 = SignAndMagnitudeToBiased(sam1); + const Bits biased2 = SignAndMagnitudeToBiased(sam2); + return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1); + } + + FloatingPointUnion u_; +}; + +// We cannot use std::numeric_limits::max() as it clashes with the max() +// macro defined by . +template <> +inline float FloatingPoint::Max() { return FLT_MAX; } +template <> +inline double FloatingPoint::Max() { return DBL_MAX; } + +// Typedefs the instances of the FloatingPoint template class that we +// care to use. +typedef FloatingPoint Float; +typedef FloatingPoint Double; + +// In order to catch the mistake of putting tests that use different +// test fixture classes in the same test case, we need to assign +// unique IDs to fixture classes and compare them. The TypeId type is +// used to hold such IDs. The user should treat TypeId as an opaque +// type: the only operation allowed on TypeId values is to compare +// them for equality using the == operator. +typedef const void* TypeId; + +template +class TypeIdHelper { + public: + // dummy_ must not have a const type. Otherwise an overly eager + // compiler (e.g. MSVC 7.1 & 8.0) may try to merge + // TypeIdHelper::dummy_ for different Ts as an "optimization". + static bool dummy_; +}; + +template +bool TypeIdHelper::dummy_ = false; + +// GetTypeId() returns the ID of type T. Different values will be +// returned for different types. Calling the function twice with the +// same type argument is guaranteed to return the same ID. +template +TypeId GetTypeId() { + // The compiler is required to allocate a different + // TypeIdHelper::dummy_ variable for each T used to instantiate + // the template. Therefore, the address of dummy_ is guaranteed to + // be unique. + return &(TypeIdHelper::dummy_); +} + +// Returns the type ID of ::testing::Test. Always call this instead +// of GetTypeId< ::testing::Test>() to get the type ID of +// ::testing::Test, as the latter may give the wrong result due to a +// suspected linker bug when compiling Google Test as a Mac OS X +// framework. +GTEST_API_ TypeId GetTestTypeId(); + +// Defines the abstract factory interface that creates instances +// of a Test object. +class TestFactoryBase { + public: + virtual ~TestFactoryBase() {} + + // Creates a test instance to run. The instance is both created and destroyed + // within TestInfoImpl::Run() + virtual Test* CreateTest() = 0; + + protected: + TestFactoryBase() {} + + private: + GTEST_DISALLOW_COPY_AND_ASSIGN_(TestFactoryBase); +}; + +// This class provides implementation of TeastFactoryBase interface. +// It is used in TEST and TEST_F macros. +template +class TestFactoryImpl : public TestFactoryBase { + public: + virtual Test* CreateTest() { return new TestClass; } +}; + +#if GTEST_OS_WINDOWS + +// Predicate-formatters for implementing the HRESULT checking macros +// {ASSERT|EXPECT}_HRESULT_{SUCCEEDED|FAILED} +// We pass a long instead of HRESULT to avoid causing an +// include dependency for the HRESULT type. +GTEST_API_ AssertionResult IsHRESULTSuccess(const char* expr, + long hr); // NOLINT +GTEST_API_ AssertionResult IsHRESULTFailure(const char* expr, + long hr); // NOLINT + +#endif // GTEST_OS_WINDOWS + +// Types of SetUpTestCase() and TearDownTestCase() functions. +typedef void (*SetUpTestCaseFunc)(); +typedef void (*TearDownTestCaseFunc)(); + +// Creates a new TestInfo object and registers it with Google Test; +// returns the created object. +// +// Arguments: +// +// test_case_name: name of the test case +// name: name of the test +// type_param the name of the test's type parameter, or NULL if +// this is not a typed or a type-parameterized test. +// value_param text representation of the test's value parameter, +// or NULL if this is not a type-parameterized test. +// fixture_class_id: ID of the test fixture class +// set_up_tc: pointer to the function that sets up the test case +// tear_down_tc: pointer to the function that tears down the test case +// factory: pointer to the factory that creates a test object. +// The newly created TestInfo instance will assume +// ownership of the factory object. +GTEST_API_ TestInfo* MakeAndRegisterTestInfo( + const char* test_case_name, + const char* name, + const char* type_param, + const char* value_param, + TypeId fixture_class_id, + SetUpTestCaseFunc set_up_tc, + TearDownTestCaseFunc tear_down_tc, + TestFactoryBase* factory); + +// If *pstr starts with the given prefix, modifies *pstr to be right +// past the prefix and returns true; otherwise leaves *pstr unchanged +// and returns false. None of pstr, *pstr, and prefix can be NULL. +GTEST_API_ bool SkipPrefix(const char* prefix, const char** pstr); + +#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P + +// State of the definition of a type-parameterized test case. +class GTEST_API_ TypedTestCasePState { + public: + TypedTestCasePState() : registered_(false) {} + + // Adds the given test name to defined_test_names_ and return true + // if the test case hasn't been registered; otherwise aborts the + // program. + bool AddTestName(const char* file, int line, const char* case_name, + const char* test_name) { + if (registered_) { + fprintf(stderr, "%s Test %s must be defined before " + "REGISTER_TYPED_TEST_CASE_P(%s, ...).\n", + FormatFileLocation(file, line).c_str(), test_name, case_name); + fflush(stderr); + posix::Abort(); + } + defined_test_names_.insert(test_name); + return true; + } + + // Verifies that registered_tests match the test names in + // defined_test_names_; returns registered_tests if successful, or + // aborts the program otherwise. + const char* VerifyRegisteredTestNames( + const char* file, int line, const char* registered_tests); + + private: + bool registered_; + ::std::set defined_test_names_; +}; + +// Skips to the first non-space char after the first comma in 'str'; +// returns NULL if no comma is found in 'str'. +inline const char* SkipComma(const char* str) { + const char* comma = strchr(str, ','); + if (comma == NULL) { + return NULL; + } + while (IsSpace(*(++comma))) {} + return comma; +} + +// Returns the prefix of 'str' before the first comma in it; returns +// the entire string if it contains no comma. +inline std::string GetPrefixUntilComma(const char* str) { + const char* comma = strchr(str, ','); + return comma == NULL ? str : std::string(str, comma); +} + +// TypeParameterizedTest::Register() +// registers a list of type-parameterized tests with Google Test. The +// return value is insignificant - we just need to return something +// such that we can call this function in a namespace scope. +// +// Implementation note: The GTEST_TEMPLATE_ macro declares a template +// template parameter. It's defined in gtest-type-util.h. +template +class TypeParameterizedTest { + public: + // 'index' is the index of the test in the type list 'Types' + // specified in INSTANTIATE_TYPED_TEST_CASE_P(Prefix, TestCase, + // Types). Valid values for 'index' are [0, N - 1] where N is the + // length of Types. + static bool Register(const char* prefix, const char* case_name, + const char* test_names, int index) { + typedef typename Types::Head Type; + typedef Fixture FixtureClass; + typedef typename GTEST_BIND_(TestSel, Type) TestClass; + + // First, registers the first type-parameterized test in the type + // list. + MakeAndRegisterTestInfo( + (std::string(prefix) + (prefix[0] == '\0' ? "" : "/") + case_name + "/" + + StreamableToString(index)).c_str(), + GetPrefixUntilComma(test_names).c_str(), + GetTypeName().c_str(), + NULL, // No value parameter. + GetTypeId(), + TestClass::SetUpTestCase, + TestClass::TearDownTestCase, + new TestFactoryImpl); + + // Next, recurses (at compile time) with the tail of the type list. + return TypeParameterizedTest + ::Register(prefix, case_name, test_names, index + 1); + } +}; + +// The base case for the compile time recursion. +template +class TypeParameterizedTest { + public: + static bool Register(const char* /*prefix*/, const char* /*case_name*/, + const char* /*test_names*/, int /*index*/) { + return true; + } +}; + +// TypeParameterizedTestCase::Register() +// registers *all combinations* of 'Tests' and 'Types' with Google +// Test. The return value is insignificant - we just need to return +// something such that we can call this function in a namespace scope. +template +class TypeParameterizedTestCase { + public: + static bool Register(const char* prefix, const char* case_name, + const char* test_names) { + typedef typename Tests::Head Head; + + // First, register the first test in 'Test' for each type in 'Types'. + TypeParameterizedTest::Register( + prefix, case_name, test_names, 0); + + // Next, recurses (at compile time) with the tail of the test list. + return TypeParameterizedTestCase + ::Register(prefix, case_name, SkipComma(test_names)); + } +}; + +// The base case for the compile time recursion. +template +class TypeParameterizedTestCase { + public: + static bool Register(const char* /*prefix*/, const char* /*case_name*/, + const char* /*test_names*/) { + return true; + } +}; + +#endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P + +// Returns the current OS stack trace as an std::string. +// +// The maximum number of stack frames to be included is specified by +// the gtest_stack_trace_depth flag. The skip_count parameter +// specifies the number of top frames to be skipped, which doesn't +// count against the number of frames to be included. +// +// For example, if Foo() calls Bar(), which in turn calls +// GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in +// the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't. +GTEST_API_ std::string GetCurrentOsStackTraceExceptTop( + UnitTest* unit_test, int skip_count); + +// Helpers for suppressing warnings on unreachable code or constant +// condition. + +// Always returns true. +GTEST_API_ bool AlwaysTrue(); + +// Always returns false. +inline bool AlwaysFalse() { return !AlwaysTrue(); } + +// Helper for suppressing false warning from Clang on a const char* +// variable declared in a conditional expression always being NULL in +// the else branch. +struct GTEST_API_ ConstCharPtr { + ConstCharPtr(const char* str) : value(str) {} + operator bool() const { return true; } + const char* value; +}; + +// A simple Linear Congruential Generator for generating random +// numbers with a uniform distribution. Unlike rand() and srand(), it +// doesn't use global state (and therefore can't interfere with user +// code). Unlike rand_r(), it's portable. An LCG isn't very random, +// but it's good enough for our purposes. +class GTEST_API_ Random { + public: + static const UInt32 kMaxRange = 1u << 31; + + explicit Random(UInt32 seed) : state_(seed) {} + + void Reseed(UInt32 seed) { state_ = seed; } + + // Generates a random number from [0, range). Crashes if 'range' is + // 0 or greater than kMaxRange. + UInt32 Generate(UInt32 range); + + private: + UInt32 state_; + GTEST_DISALLOW_COPY_AND_ASSIGN_(Random); +}; + +// Defining a variable of type CompileAssertTypesEqual will cause a +// compiler error iff T1 and T2 are different types. +template +struct CompileAssertTypesEqual; + +template +struct CompileAssertTypesEqual { +}; + +// Removes the reference from a type if it is a reference type, +// otherwise leaves it unchanged. This is the same as +// tr1::remove_reference, which is not widely available yet. +template +struct RemoveReference { typedef T type; }; // NOLINT +template +struct RemoveReference { typedef T type; }; // NOLINT + +// A handy wrapper around RemoveReference that works when the argument +// T depends on template parameters. +#define GTEST_REMOVE_REFERENCE_(T) \ + typename ::testing::internal::RemoveReference::type + +// Removes const from a type if it is a const type, otherwise leaves +// it unchanged. This is the same as tr1::remove_const, which is not +// widely available yet. +template +struct RemoveConst { typedef T type; }; // NOLINT +template +struct RemoveConst { typedef T type; }; // NOLINT + +// MSVC 8.0, Sun C++, and IBM XL C++ have a bug which causes the above +// definition to fail to remove the const in 'const int[3]' and 'const +// char[3][4]'. The following specialization works around the bug. +template +struct RemoveConst { + typedef typename RemoveConst::type type[N]; +}; + +#if defined(_MSC_VER) && _MSC_VER < 1400 +// This is the only specialization that allows VC++ 7.1 to remove const in +// 'const int[3] and 'const int[3][4]'. However, it causes trouble with GCC +// and thus needs to be conditionally compiled. +template +struct RemoveConst { + typedef typename RemoveConst::type type[N]; +}; +#endif + +// A handy wrapper around RemoveConst that works when the argument +// T depends on template parameters. +#define GTEST_REMOVE_CONST_(T) \ + typename ::testing::internal::RemoveConst::type + +// Turns const U&, U&, const U, and U all into U. +#define GTEST_REMOVE_REFERENCE_AND_CONST_(T) \ + GTEST_REMOVE_CONST_(GTEST_REMOVE_REFERENCE_(T)) + +// Adds reference to a type if it is not a reference type, +// otherwise leaves it unchanged. This is the same as +// tr1::add_reference, which is not widely available yet. +template +struct AddReference { typedef T& type; }; // NOLINT +template +struct AddReference { typedef T& type; }; // NOLINT + +// A handy wrapper around AddReference that works when the argument T +// depends on template parameters. +#define GTEST_ADD_REFERENCE_(T) \ + typename ::testing::internal::AddReference::type + +// Adds a reference to const on top of T as necessary. For example, +// it transforms +// +// char ==> const char& +// const char ==> const char& +// char& ==> const char& +// const char& ==> const char& +// +// The argument T must depend on some template parameters. +#define GTEST_REFERENCE_TO_CONST_(T) \ + GTEST_ADD_REFERENCE_(const GTEST_REMOVE_REFERENCE_(T)) + +// ImplicitlyConvertible::value is a compile-time bool +// constant that's true iff type From can be implicitly converted to +// type To. +template +class ImplicitlyConvertible { + private: + // We need the following helper functions only for their types. + // They have no implementations. + + // MakeFrom() is an expression whose type is From. We cannot simply + // use From(), as the type From may not have a public default + // constructor. + static From MakeFrom(); + + // These two functions are overloaded. Given an expression + // Helper(x), the compiler will pick the first version if x can be + // implicitly converted to type To; otherwise it will pick the + // second version. + // + // The first version returns a value of size 1, and the second + // version returns a value of size 2. Therefore, by checking the + // size of Helper(x), which can be done at compile time, we can tell + // which version of Helper() is used, and hence whether x can be + // implicitly converted to type To. + static char Helper(To); + static char (&Helper(...))[2]; // NOLINT + + // We have to put the 'public' section after the 'private' section, + // or MSVC refuses to compile the code. + public: + // MSVC warns about implicitly converting from double to int for + // possible loss of data, so we need to temporarily disable the + // warning. +#ifdef _MSC_VER +# pragma warning(push) // Saves the current warning state. +# pragma warning(disable:4244) // Temporarily disables warning 4244. + + static const bool value = + sizeof(Helper(ImplicitlyConvertible::MakeFrom())) == 1; +# pragma warning(pop) // Restores the warning state. +#elif defined(__BORLANDC__) + // C++Builder cannot use member overload resolution during template + // instantiation. The simplest workaround is to use its C++0x type traits + // functions (C++Builder 2009 and above only). + static const bool value = __is_convertible(From, To); +#else + static const bool value = + sizeof(Helper(ImplicitlyConvertible::MakeFrom())) == 1; +#endif // _MSV_VER +}; +template +const bool ImplicitlyConvertible::value; + +// IsAProtocolMessage::value is a compile-time bool constant that's +// true iff T is type ProtocolMessage, proto2::Message, or a subclass +// of those. +template +struct IsAProtocolMessage + : public bool_constant< + ImplicitlyConvertible::value || + ImplicitlyConvertible::value> { +}; + +// When the compiler sees expression IsContainerTest(0), if C is an +// STL-style container class, the first overload of IsContainerTest +// will be viable (since both C::iterator* and C::const_iterator* are +// valid types and NULL can be implicitly converted to them). It will +// be picked over the second overload as 'int' is a perfect match for +// the type of argument 0. If C::iterator or C::const_iterator is not +// a valid type, the first overload is not viable, and the second +// overload will be picked. Therefore, we can determine whether C is +// a container class by checking the type of IsContainerTest(0). +// The value of the expression is insignificant. +// +// Note that we look for both C::iterator and C::const_iterator. The +// reason is that C++ injects the name of a class as a member of the +// class itself (e.g. you can refer to class iterator as either +// 'iterator' or 'iterator::iterator'). If we look for C::iterator +// only, for example, we would mistakenly think that a class named +// iterator is an STL container. +// +// Also note that the simpler approach of overloading +// IsContainerTest(typename C::const_iterator*) and +// IsContainerTest(...) doesn't work with Visual Age C++ and Sun C++. +typedef int IsContainer; +template +IsContainer IsContainerTest(int /* dummy */, + typename C::iterator* /* it */ = NULL, + typename C::const_iterator* /* const_it */ = NULL) { + return 0; +} + +typedef char IsNotContainer; +template +IsNotContainer IsContainerTest(long /* dummy */) { return '\0'; } + +// EnableIf::type is void when 'Cond' is true, and +// undefined when 'Cond' is false. To use SFINAE to make a function +// overload only apply when a particular expression is true, add +// "typename EnableIf::type* = 0" as the last parameter. +template struct EnableIf; +template<> struct EnableIf { typedef void type; }; // NOLINT + +// Utilities for native arrays. + +// ArrayEq() compares two k-dimensional native arrays using the +// elements' operator==, where k can be any integer >= 0. When k is +// 0, ArrayEq() degenerates into comparing a single pair of values. + +template +bool ArrayEq(const T* lhs, size_t size, const U* rhs); + +// This generic version is used when k is 0. +template +inline bool ArrayEq(const T& lhs, const U& rhs) { return lhs == rhs; } + +// This overload is used when k >= 1. +template +inline bool ArrayEq(const T(&lhs)[N], const U(&rhs)[N]) { + return internal::ArrayEq(lhs, N, rhs); +} + +// This helper reduces code bloat. If we instead put its logic inside +// the previous ArrayEq() function, arrays with different sizes would +// lead to different copies of the template code. +template +bool ArrayEq(const T* lhs, size_t size, const U* rhs) { + for (size_t i = 0; i != size; i++) { + if (!internal::ArrayEq(lhs[i], rhs[i])) + return false; + } + return true; +} + +// Finds the first element in the iterator range [begin, end) that +// equals elem. Element may be a native array type itself. +template +Iter ArrayAwareFind(Iter begin, Iter end, const Element& elem) { + for (Iter it = begin; it != end; ++it) { + if (internal::ArrayEq(*it, elem)) + return it; + } + return end; +} + +// CopyArray() copies a k-dimensional native array using the elements' +// operator=, where k can be any integer >= 0. When k is 0, +// CopyArray() degenerates into copying a single value. + +template +void CopyArray(const T* from, size_t size, U* to); + +// This generic version is used when k is 0. +template +inline void CopyArray(const T& from, U* to) { *to = from; } + +// This overload is used when k >= 1. +template +inline void CopyArray(const T(&from)[N], U(*to)[N]) { + internal::CopyArray(from, N, *to); +} + +// This helper reduces code bloat. If we instead put its logic inside +// the previous CopyArray() function, arrays with different sizes +// would lead to different copies of the template code. +template +void CopyArray(const T* from, size_t size, U* to) { + for (size_t i = 0; i != size; i++) { + internal::CopyArray(from[i], to + i); + } +} + +// The relation between an NativeArray object (see below) and the +// native array it represents. +enum RelationToSource { + kReference, // The NativeArray references the native array. + kCopy // The NativeArray makes a copy of the native array and + // owns the copy. +}; + +// Adapts a native array to a read-only STL-style container. Instead +// of the complete STL container concept, this adaptor only implements +// members useful for Google Mock's container matchers. New members +// should be added as needed. To simplify the implementation, we only +// support Element being a raw type (i.e. having no top-level const or +// reference modifier). It's the client's responsibility to satisfy +// this requirement. Element can be an array type itself (hence +// multi-dimensional arrays are supported). +template +class NativeArray { + public: + // STL-style container typedefs. + typedef Element value_type; + typedef Element* iterator; + typedef const Element* const_iterator; + + // Constructs from a native array. + NativeArray(const Element* array, size_t count, RelationToSource relation) { + Init(array, count, relation); + } + + // Copy constructor. + NativeArray(const NativeArray& rhs) { + Init(rhs.array_, rhs.size_, rhs.relation_to_source_); + } + + ~NativeArray() { + // Ensures that the user doesn't instantiate NativeArray with a + // const or reference type. + static_cast(StaticAssertTypeEqHelper()); + if (relation_to_source_ == kCopy) + delete[] array_; + } + + // STL-style container methods. + size_t size() const { return size_; } + const_iterator begin() const { return array_; } + const_iterator end() const { return array_ + size_; } + bool operator==(const NativeArray& rhs) const { + return size() == rhs.size() && + ArrayEq(begin(), size(), rhs.begin()); + } + + private: + // Initializes this object; makes a copy of the input array if + // 'relation' is kCopy. + void Init(const Element* array, size_t a_size, RelationToSource relation) { + if (relation == kReference) { + array_ = array; + } else { + Element* const copy = new Element[a_size]; + CopyArray(array, a_size, copy); + array_ = copy; + } + size_ = a_size; + relation_to_source_ = relation; + } + + const Element* array_; + size_t size_; + RelationToSource relation_to_source_; + + GTEST_DISALLOW_ASSIGN_(NativeArray); +}; + +} // namespace internal +} // namespace testing + +#define GTEST_MESSAGE_AT_(file, line, message, result_type) \ + ::testing::internal::AssertHelper(result_type, file, line, message) \ + = ::testing::Message() + +#define GTEST_MESSAGE_(message, result_type) \ + GTEST_MESSAGE_AT_(__FILE__, __LINE__, message, result_type) + +#define GTEST_FATAL_FAILURE_(message) \ + return GTEST_MESSAGE_(message, ::testing::TestPartResult::kFatalFailure) + +#define GTEST_NONFATAL_FAILURE_(message) \ + GTEST_MESSAGE_(message, ::testing::TestPartResult::kNonFatalFailure) + +#define GTEST_SUCCESS_(message) \ + GTEST_MESSAGE_(message, ::testing::TestPartResult::kSuccess) + +// Suppresses MSVC warnings 4072 (unreachable code) for the code following +// statement if it returns or throws (or doesn't return or throw in some +// situations). +#define GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) \ + if (::testing::internal::AlwaysTrue()) { statement; } + +#define GTEST_TEST_THROW_(statement, expected_exception, fail) \ + GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ + if (::testing::internal::ConstCharPtr gtest_msg = "") { \ + bool gtest_caught_expected = false; \ + try { \ + GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ + } \ + catch (expected_exception const&) { \ + gtest_caught_expected = true; \ + } \ + catch (...) { \ + gtest_msg.value = \ + "Expected: " #statement " throws an exception of type " \ + #expected_exception ".\n Actual: it throws a different type."; \ + goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \ + } \ + if (!gtest_caught_expected) { \ + gtest_msg.value = \ + "Expected: " #statement " throws an exception of type " \ + #expected_exception ".\n Actual: it throws nothing."; \ + goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \ + } \ + } else \ + GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__): \ + fail(gtest_msg.value) + +#define GTEST_TEST_NO_THROW_(statement, fail) \ + GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ + if (::testing::internal::AlwaysTrue()) { \ + try { \ + GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ + } \ + catch (...) { \ + goto GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__); \ + } \ + } else \ + GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__): \ + fail("Expected: " #statement " doesn't throw an exception.\n" \ + " Actual: it throws.") + +#define GTEST_TEST_ANY_THROW_(statement, fail) \ + GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ + if (::testing::internal::AlwaysTrue()) { \ + bool gtest_caught_any = false; \ + try { \ + GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ + } \ + catch (...) { \ + gtest_caught_any = true; \ + } \ + if (!gtest_caught_any) { \ + goto GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__); \ + } \ + } else \ + GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__): \ + fail("Expected: " #statement " throws an exception.\n" \ + " Actual: it doesn't.") + + +// Implements Boolean test assertions such as EXPECT_TRUE. expression can be +// either a boolean expression or an AssertionResult. text is a textual +// represenation of expression as it was passed into the EXPECT_TRUE. +#define GTEST_TEST_BOOLEAN_(expression, text, actual, expected, fail) \ + GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ + if (const ::testing::AssertionResult gtest_ar_ = \ + ::testing::AssertionResult(expression)) \ + ; \ + else \ + fail(::testing::internal::GetBoolAssertionFailureMessage(\ + gtest_ar_, text, #actual, #expected).c_str()) + +#define GTEST_TEST_NO_FATAL_FAILURE_(statement, fail) \ + GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ + if (::testing::internal::AlwaysTrue()) { \ + ::testing::internal::HasNewFatalFailureHelper gtest_fatal_failure_checker; \ + GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ + if (gtest_fatal_failure_checker.has_new_fatal_failure()) { \ + goto GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__); \ + } \ + } else \ + GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__): \ + fail("Expected: " #statement " doesn't generate new fatal " \ + "failures in the current thread.\n" \ + " Actual: it does.") + +// Expands to the name of the class that implements the given test. +#define GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \ + test_case_name##_##test_name##_Test + +// Helper macro for defining tests. +#define GTEST_TEST_(test_case_name, test_name, parent_class, parent_id)\ +class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) : public parent_class {\ + public:\ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {}\ + private:\ + virtual void TestBody();\ + static ::testing::TestInfo* const test_info_ GTEST_ATTRIBUTE_UNUSED_;\ + GTEST_DISALLOW_COPY_AND_ASSIGN_(\ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name));\ +};\ +\ +::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_case_name, test_name)\ + ::test_info_ =\ + ::testing::internal::MakeAndRegisterTestInfo(\ + #test_case_name, #test_name, NULL, NULL, \ + (parent_id), \ + parent_class::SetUpTestCase, \ + parent_class::TearDownTestCase, \ + new ::testing::internal::TestFactoryImpl<\ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>);\ +void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() + +#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ diff --git a/gtest-1.7.0/include/gtest/internal/gtest-linked_ptr.h b/gtest-1.7.0/include/gtest/internal/gtest-linked_ptr.h new file mode 100644 index 0000000..b1362cd --- /dev/null +++ b/gtest-1.7.0/include/gtest/internal/gtest-linked_ptr.h @@ -0,0 +1,233 @@ +// Copyright 2003 Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Authors: Dan Egnor (egnor@google.com) +// +// A "smart" pointer type with reference tracking. Every pointer to a +// particular object is kept on a circular linked list. When the last pointer +// to an object is destroyed or reassigned, the object is deleted. +// +// Used properly, this deletes the object when the last reference goes away. +// There are several caveats: +// - Like all reference counting schemes, cycles lead to leaks. +// - Each smart pointer is actually two pointers (8 bytes instead of 4). +// - Every time a pointer is assigned, the entire list of pointers to that +// object is traversed. This class is therefore NOT SUITABLE when there +// will often be more than two or three pointers to a particular object. +// - References are only tracked as long as linked_ptr<> objects are copied. +// If a linked_ptr<> is converted to a raw pointer and back, BAD THINGS +// will happen (double deletion). +// +// A good use of this class is storing object references in STL containers. +// You can safely put linked_ptr<> in a vector<>. +// Other uses may not be as good. +// +// Note: If you use an incomplete type with linked_ptr<>, the class +// *containing* linked_ptr<> must have a constructor and destructor (even +// if they do nothing!). +// +// Bill Gibbons suggested we use something like this. +// +// Thread Safety: +// Unlike other linked_ptr implementations, in this implementation +// a linked_ptr object is thread-safe in the sense that: +// - it's safe to copy linked_ptr objects concurrently, +// - it's safe to copy *from* a linked_ptr and read its underlying +// raw pointer (e.g. via get()) concurrently, and +// - it's safe to write to two linked_ptrs that point to the same +// shared object concurrently. +// TODO(wan@google.com): rename this to safe_linked_ptr to avoid +// confusion with normal linked_ptr. + +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_LINKED_PTR_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_LINKED_PTR_H_ + +#include +#include + +#include "gtest/internal/gtest-port.h" + +namespace testing { +namespace internal { + +// Protects copying of all linked_ptr objects. +GTEST_API_ GTEST_DECLARE_STATIC_MUTEX_(g_linked_ptr_mutex); + +// This is used internally by all instances of linked_ptr<>. It needs to be +// a non-template class because different types of linked_ptr<> can refer to +// the same object (linked_ptr(obj) vs linked_ptr(obj)). +// So, it needs to be possible for different types of linked_ptr to participate +// in the same circular linked list, so we need a single class type here. +// +// DO NOT USE THIS CLASS DIRECTLY YOURSELF. Use linked_ptr. +class linked_ptr_internal { + public: + // Create a new circle that includes only this instance. + void join_new() { + next_ = this; + } + + // Many linked_ptr operations may change p.link_ for some linked_ptr + // variable p in the same circle as this object. Therefore we need + // to prevent two such operations from occurring concurrently. + // + // Note that different types of linked_ptr objects can coexist in a + // circle (e.g. linked_ptr, linked_ptr, and + // linked_ptr). Therefore we must use a single mutex to + // protect all linked_ptr objects. This can create serious + // contention in production code, but is acceptable in a testing + // framework. + + // Join an existing circle. + void join(linked_ptr_internal const* ptr) + GTEST_LOCK_EXCLUDED_(g_linked_ptr_mutex) { + MutexLock lock(&g_linked_ptr_mutex); + + linked_ptr_internal const* p = ptr; + while (p->next_ != ptr) p = p->next_; + p->next_ = this; + next_ = ptr; + } + + // Leave whatever circle we're part of. Returns true if we were the + // last member of the circle. Once this is done, you can join() another. + bool depart() + GTEST_LOCK_EXCLUDED_(g_linked_ptr_mutex) { + MutexLock lock(&g_linked_ptr_mutex); + + if (next_ == this) return true; + linked_ptr_internal const* p = next_; + while (p->next_ != this) p = p->next_; + p->next_ = next_; + return false; + } + + private: + mutable linked_ptr_internal const* next_; +}; + +template +class linked_ptr { + public: + typedef T element_type; + + // Take over ownership of a raw pointer. This should happen as soon as + // possible after the object is created. + explicit linked_ptr(T* ptr = NULL) { capture(ptr); } + ~linked_ptr() { depart(); } + + // Copy an existing linked_ptr<>, adding ourselves to the list of references. + template linked_ptr(linked_ptr const& ptr) { copy(&ptr); } + linked_ptr(linked_ptr const& ptr) { // NOLINT + assert(&ptr != this); + copy(&ptr); + } + + // Assignment releases the old value and acquires the new. + template linked_ptr& operator=(linked_ptr const& ptr) { + depart(); + copy(&ptr); + return *this; + } + + linked_ptr& operator=(linked_ptr const& ptr) { + if (&ptr != this) { + depart(); + copy(&ptr); + } + return *this; + } + + // Smart pointer members. + void reset(T* ptr = NULL) { + depart(); + capture(ptr); + } + T* get() const { return value_; } + T* operator->() const { return value_; } + T& operator*() const { return *value_; } + + bool operator==(T* p) const { return value_ == p; } + bool operator!=(T* p) const { return value_ != p; } + template + bool operator==(linked_ptr const& ptr) const { + return value_ == ptr.get(); + } + template + bool operator!=(linked_ptr const& ptr) const { + return value_ != ptr.get(); + } + + private: + template + friend class linked_ptr; + + T* value_; + linked_ptr_internal link_; + + void depart() { + if (link_.depart()) delete value_; + } + + void capture(T* ptr) { + value_ = ptr; + link_.join_new(); + } + + template void copy(linked_ptr const* ptr) { + value_ = ptr->get(); + if (value_) + link_.join(&ptr->link_); + else + link_.join_new(); + } +}; + +template inline +bool operator==(T* ptr, const linked_ptr& x) { + return ptr == x.get(); +} + +template inline +bool operator!=(T* ptr, const linked_ptr& x) { + return ptr != x.get(); +} + +// A function to convert T* into linked_ptr +// Doing e.g. make_linked_ptr(new FooBarBaz(arg)) is a shorter notation +// for linked_ptr >(new FooBarBaz(arg)) +template +linked_ptr make_linked_ptr(T* ptr) { + return linked_ptr(ptr); +} + +} // namespace internal +} // namespace testing + +#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_LINKED_PTR_H_ diff --git a/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h b/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h new file mode 100644 index 0000000..e805485 --- /dev/null +++ b/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h @@ -0,0 +1,5143 @@ +// This file was GENERATED by command: +// pump.py gtest-param-util-generated.h.pump +// DO NOT EDIT BY HAND!!! + +// Copyright 2008 Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: vladl@google.com (Vlad Losev) + +// Type and function utilities for implementing parameterized tests. +// This file is generated by a SCRIPT. DO NOT EDIT BY HAND! +// +// Currently Google Test supports at most 50 arguments in Values, +// and at most 10 arguments in Combine. Please contact +// googletestframework@googlegroups.com if you need more. +// Please note that the number of arguments to Combine is limited +// by the maximum arity of the implementation of tr1::tuple which is +// currently set at 10. + +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_ + +// scripts/fuse_gtest.py depends on gtest's own header being #included +// *unconditionally*. Therefore these #includes cannot be moved +// inside #if GTEST_HAS_PARAM_TEST. +#include "gtest/internal/gtest-param-util.h" +#include "gtest/internal/gtest-port.h" + +#if GTEST_HAS_PARAM_TEST + +namespace testing { + +// Forward declarations of ValuesIn(), which is implemented in +// include/gtest/gtest-param-test.h. +template +internal::ParamGenerator< + typename ::testing::internal::IteratorTraits::value_type> +ValuesIn(ForwardIterator begin, ForwardIterator end); + +template +internal::ParamGenerator ValuesIn(const T (&array)[N]); + +template +internal::ParamGenerator ValuesIn( + const Container& container); + +namespace internal { + +// Used in the Values() function to provide polymorphic capabilities. +template +class ValueArray1 { + public: + explicit ValueArray1(T1 v1) : v1_(v1) {} + + template + operator ParamGenerator() const { return ValuesIn(&v1_, &v1_ + 1); } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray1& other); + + const T1 v1_; +}; + +template +class ValueArray2 { + public: + ValueArray2(T1 v1, T2 v2) : v1_(v1), v2_(v2) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray2& other); + + const T1 v1_; + const T2 v2_; +}; + +template +class ValueArray3 { + public: + ValueArray3(T1 v1, T2 v2, T3 v3) : v1_(v1), v2_(v2), v3_(v3) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray3& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; +}; + +template +class ValueArray4 { + public: + ValueArray4(T1 v1, T2 v2, T3 v3, T4 v4) : v1_(v1), v2_(v2), v3_(v3), + v4_(v4) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray4& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; +}; + +template +class ValueArray5 { + public: + ValueArray5(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5) : v1_(v1), v2_(v2), v3_(v3), + v4_(v4), v5_(v5) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray5& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; +}; + +template +class ValueArray6 { + public: + ValueArray6(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6) : v1_(v1), v2_(v2), + v3_(v3), v4_(v4), v5_(v5), v6_(v6) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray6& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; +}; + +template +class ValueArray7 { + public: + ValueArray7(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7) : v1_(v1), + v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray7& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; +}; + +template +class ValueArray8 { + public: + ValueArray8(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, + T8 v8) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), + v8_(v8) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray8& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; +}; + +template +class ValueArray9 { + public: + ValueArray9(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, + T9 v9) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), + v8_(v8), v9_(v9) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray9& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; +}; + +template +class ValueArray10 { + public: + ValueArray10(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), + v8_(v8), v9_(v9), v10_(v10) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray10& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; +}; + +template +class ValueArray11 { + public: + ValueArray11(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), + v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray11& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; +}; + +template +class ValueArray12 { + public: + ValueArray12(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), + v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray12& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; +}; + +template +class ValueArray13 { + public: + ValueArray13(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), + v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), + v12_(v12), v13_(v13) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray13& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; +}; + +template +class ValueArray14 { + public: + ValueArray14(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) : v1_(v1), v2_(v2), v3_(v3), + v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), + v11_(v11), v12_(v12), v13_(v13), v14_(v14) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray14& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; +}; + +template +class ValueArray15 { + public: + ValueArray15(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) : v1_(v1), v2_(v2), + v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), + v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray15& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; +}; + +template +class ValueArray16 { + public: + ValueArray16(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16) : v1_(v1), + v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), + v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), + v16_(v16) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray16& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; +}; + +template +class ValueArray17 { + public: + ValueArray17(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, + T17 v17) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), + v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), + v15_(v15), v16_(v16), v17_(v17) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray17& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; +}; + +template +class ValueArray18 { + public: + ValueArray18(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), + v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), + v15_(v15), v16_(v16), v17_(v17), v18_(v18) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray18& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; +}; + +template +class ValueArray19 { + public: + ValueArray19(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), + v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), + v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray19& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; +}; + +template +class ValueArray20 { + public: + ValueArray20(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), + v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), + v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), + v19_(v19), v20_(v20) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray20& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; +}; + +template +class ValueArray21 { + public: + ValueArray21(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), + v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), + v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), + v18_(v18), v19_(v19), v20_(v20), v21_(v21) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray21& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; +}; + +template +class ValueArray22 { + public: + ValueArray22(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22) : v1_(v1), v2_(v2), v3_(v3), + v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), + v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), + v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray22& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; +}; + +template +class ValueArray23 { + public: + ValueArray23(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23) : v1_(v1), v2_(v2), + v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), + v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), + v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), + v23_(v23) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray23& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; +}; + +template +class ValueArray24 { + public: + ValueArray24(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24) : v1_(v1), + v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), + v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), + v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), + v22_(v22), v23_(v23), v24_(v24) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray24& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; +}; + +template +class ValueArray25 { + public: + ValueArray25(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, + T25 v25) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), + v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), + v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), + v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray25& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; +}; + +template +class ValueArray26 { + public: + ValueArray26(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), + v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), + v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), + v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray26& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; +}; + +template +class ValueArray27 { + public: + ValueArray27(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), + v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), + v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), + v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), + v26_(v26), v27_(v27) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray27& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; +}; + +template +class ValueArray28 { + public: + ValueArray28(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), + v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), + v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), + v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), + v25_(v25), v26_(v26), v27_(v27), v28_(v28) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray28& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; +}; + +template +class ValueArray29 { + public: + ValueArray29(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), + v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), + v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), + v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), + v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray29& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; +}; + +template +class ValueArray30 { + public: + ValueArray30(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) : v1_(v1), v2_(v2), v3_(v3), + v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), + v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), + v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), + v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), + v29_(v29), v30_(v30) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray30& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; +}; + +template +class ValueArray31 { + public: + ValueArray31(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) : v1_(v1), v2_(v2), + v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), + v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), + v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), + v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), + v29_(v29), v30_(v30), v31_(v31) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray31& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; +}; + +template +class ValueArray32 { + public: + ValueArray32(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32) : v1_(v1), + v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), + v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), + v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), + v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), + v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray32& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; +}; + +template +class ValueArray33 { + public: + ValueArray33(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, + T33 v33) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), + v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), + v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), + v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), + v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), + v33_(v33) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray33& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; +}; + +template +class ValueArray34 { + public: + ValueArray34(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), + v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), + v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), + v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), + v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), + v33_(v33), v34_(v34) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray34& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; +}; + +template +class ValueArray35 { + public: + ValueArray35(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), + v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), + v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), + v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), + v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), + v32_(v32), v33_(v33), v34_(v34), v35_(v35) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray35& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; +}; + +template +class ValueArray36 { + public: + ValueArray36(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), + v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), + v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), + v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), + v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), + v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray36& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; +}; + +template +class ValueArray37 { + public: + ValueArray37(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), + v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), + v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), + v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), + v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), + v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), + v36_(v36), v37_(v37) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_), static_cast(v37_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray37& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; + const T37 v37_; +}; + +template +class ValueArray38 { + public: + ValueArray38(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38) : v1_(v1), v2_(v2), v3_(v3), + v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), + v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), + v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), + v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), + v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), + v35_(v35), v36_(v36), v37_(v37), v38_(v38) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_), static_cast(v37_), static_cast(v38_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray38& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; + const T37 v37_; + const T38 v38_; +}; + +template +class ValueArray39 { + public: + ValueArray39(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39) : v1_(v1), v2_(v2), + v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), + v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), + v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), + v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), + v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), + v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_), static_cast(v37_), static_cast(v38_), + static_cast(v39_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray39& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; + const T37 v37_; + const T38 v38_; + const T39 v39_; +}; + +template +class ValueArray40 { + public: + ValueArray40(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) : v1_(v1), + v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), + v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), + v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), + v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), + v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), + v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), + v40_(v40) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_), static_cast(v37_), static_cast(v38_), + static_cast(v39_), static_cast(v40_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray40& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; + const T37 v37_; + const T38 v38_; + const T39 v39_; + const T40 v40_; +}; + +template +class ValueArray41 { + public: + ValueArray41(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, + T41 v41) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), + v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), + v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), + v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), + v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), + v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), + v39_(v39), v40_(v40), v41_(v41) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_), static_cast(v37_), static_cast(v38_), + static_cast(v39_), static_cast(v40_), static_cast(v41_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray41& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; + const T37 v37_; + const T38 v38_; + const T39 v39_; + const T40 v40_; + const T41 v41_; +}; + +template +class ValueArray42 { + public: + ValueArray42(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, + T42 v42) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), + v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), + v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), + v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), + v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), + v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), + v39_(v39), v40_(v40), v41_(v41), v42_(v42) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_), static_cast(v37_), static_cast(v38_), + static_cast(v39_), static_cast(v40_), static_cast(v41_), + static_cast(v42_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray42& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; + const T37 v37_; + const T38 v38_; + const T39 v39_; + const T40 v40_; + const T41 v41_; + const T42 v42_; +}; + +template +class ValueArray43 { + public: + ValueArray43(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, + T42 v42, T43 v43) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), + v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), + v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), + v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), + v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), + v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), + v38_(v38), v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_), static_cast(v37_), static_cast(v38_), + static_cast(v39_), static_cast(v40_), static_cast(v41_), + static_cast(v42_), static_cast(v43_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray43& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; + const T37 v37_; + const T38 v38_; + const T39 v39_; + const T40 v40_; + const T41 v41_; + const T42 v42_; + const T43 v43_; +}; + +template +class ValueArray44 { + public: + ValueArray44(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, + T42 v42, T43 v43, T44 v44) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), + v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), + v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), + v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), + v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), + v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36), + v37_(v37), v38_(v38), v39_(v39), v40_(v40), v41_(v41), v42_(v42), + v43_(v43), v44_(v44) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_), static_cast(v37_), static_cast(v38_), + static_cast(v39_), static_cast(v40_), static_cast(v41_), + static_cast(v42_), static_cast(v43_), static_cast(v44_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray44& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; + const T37 v37_; + const T38 v38_; + const T39 v39_; + const T40 v40_; + const T41 v41_; + const T42 v42_; + const T43 v43_; + const T44 v44_; +}; + +template +class ValueArray45 { + public: + ValueArray45(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, + T42 v42, T43 v43, T44 v44, T45 v45) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), + v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), + v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), + v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), + v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), + v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), + v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40), v41_(v41), + v42_(v42), v43_(v43), v44_(v44), v45_(v45) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_), static_cast(v37_), static_cast(v38_), + static_cast(v39_), static_cast(v40_), static_cast(v41_), + static_cast(v42_), static_cast(v43_), static_cast(v44_), + static_cast(v45_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray45& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; + const T37 v37_; + const T38 v38_; + const T39 v39_; + const T40 v40_; + const T41 v41_; + const T42 v42_; + const T43 v43_; + const T44 v44_; + const T45 v45_; +}; + +template +class ValueArray46 { + public: + ValueArray46(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, + T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) : v1_(v1), v2_(v2), v3_(v3), + v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), + v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), + v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), + v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), + v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), + v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40), + v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), v46_(v46) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_), static_cast(v37_), static_cast(v38_), + static_cast(v39_), static_cast(v40_), static_cast(v41_), + static_cast(v42_), static_cast(v43_), static_cast(v44_), + static_cast(v45_), static_cast(v46_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray46& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; + const T37 v37_; + const T38 v38_; + const T39 v39_; + const T40 v40_; + const T41 v41_; + const T42 v42_; + const T43 v43_; + const T44 v44_; + const T45 v45_; + const T46 v46_; +}; + +template +class ValueArray47 { + public: + ValueArray47(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, + T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) : v1_(v1), v2_(v2), + v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), + v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), + v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), + v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), + v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), + v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40), + v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), v46_(v46), + v47_(v47) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_), static_cast(v37_), static_cast(v38_), + static_cast(v39_), static_cast(v40_), static_cast(v41_), + static_cast(v42_), static_cast(v43_), static_cast(v44_), + static_cast(v45_), static_cast(v46_), static_cast(v47_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray47& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; + const T37 v37_; + const T38 v38_; + const T39 v39_; + const T40 v40_; + const T41 v41_; + const T42 v42_; + const T43 v43_; + const T44 v44_; + const T45 v45_; + const T46 v46_; + const T47 v47_; +}; + +template +class ValueArray48 { + public: + ValueArray48(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, + T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48) : v1_(v1), + v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), + v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), + v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), + v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), + v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), + v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), + v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), + v46_(v46), v47_(v47), v48_(v48) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_), static_cast(v37_), static_cast(v38_), + static_cast(v39_), static_cast(v40_), static_cast(v41_), + static_cast(v42_), static_cast(v43_), static_cast(v44_), + static_cast(v45_), static_cast(v46_), static_cast(v47_), + static_cast(v48_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray48& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; + const T37 v37_; + const T38 v38_; + const T39 v39_; + const T40 v40_; + const T41 v41_; + const T42 v42_; + const T43 v43_; + const T44 v44_; + const T45 v45_; + const T46 v46_; + const T47 v47_; + const T48 v48_; +}; + +template +class ValueArray49 { + public: + ValueArray49(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, + T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48, + T49 v49) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), + v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), + v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), + v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), + v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), + v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), + v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44), + v45_(v45), v46_(v46), v47_(v47), v48_(v48), v49_(v49) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_), static_cast(v37_), static_cast(v38_), + static_cast(v39_), static_cast(v40_), static_cast(v41_), + static_cast(v42_), static_cast(v43_), static_cast(v44_), + static_cast(v45_), static_cast(v46_), static_cast(v47_), + static_cast(v48_), static_cast(v49_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray49& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; + const T37 v37_; + const T38 v38_; + const T39 v39_; + const T40 v40_; + const T41 v41_; + const T42 v42_; + const T43 v43_; + const T44 v44_; + const T45 v45_; + const T46 v46_; + const T47 v47_; + const T48 v48_; + const T49 v49_; +}; + +template +class ValueArray50 { + public: + ValueArray50(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, + T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, + T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, + T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, + T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, + T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48, T49 v49, + T50 v50) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), + v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), + v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), + v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), + v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), + v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), + v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44), + v45_(v45), v46_(v46), v47_(v47), v48_(v48), v49_(v49), v50_(v50) {} + + template + operator ParamGenerator() const { + const T array[] = {static_cast(v1_), static_cast(v2_), + static_cast(v3_), static_cast(v4_), static_cast(v5_), + static_cast(v6_), static_cast(v7_), static_cast(v8_), + static_cast(v9_), static_cast(v10_), static_cast(v11_), + static_cast(v12_), static_cast(v13_), static_cast(v14_), + static_cast(v15_), static_cast(v16_), static_cast(v17_), + static_cast(v18_), static_cast(v19_), static_cast(v20_), + static_cast(v21_), static_cast(v22_), static_cast(v23_), + static_cast(v24_), static_cast(v25_), static_cast(v26_), + static_cast(v27_), static_cast(v28_), static_cast(v29_), + static_cast(v30_), static_cast(v31_), static_cast(v32_), + static_cast(v33_), static_cast(v34_), static_cast(v35_), + static_cast(v36_), static_cast(v37_), static_cast(v38_), + static_cast(v39_), static_cast(v40_), static_cast(v41_), + static_cast(v42_), static_cast(v43_), static_cast(v44_), + static_cast(v45_), static_cast(v46_), static_cast(v47_), + static_cast(v48_), static_cast(v49_), static_cast(v50_)}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray50& other); + + const T1 v1_; + const T2 v2_; + const T3 v3_; + const T4 v4_; + const T5 v5_; + const T6 v6_; + const T7 v7_; + const T8 v8_; + const T9 v9_; + const T10 v10_; + const T11 v11_; + const T12 v12_; + const T13 v13_; + const T14 v14_; + const T15 v15_; + const T16 v16_; + const T17 v17_; + const T18 v18_; + const T19 v19_; + const T20 v20_; + const T21 v21_; + const T22 v22_; + const T23 v23_; + const T24 v24_; + const T25 v25_; + const T26 v26_; + const T27 v27_; + const T28 v28_; + const T29 v29_; + const T30 v30_; + const T31 v31_; + const T32 v32_; + const T33 v33_; + const T34 v34_; + const T35 v35_; + const T36 v36_; + const T37 v37_; + const T38 v38_; + const T39 v39_; + const T40 v40_; + const T41 v41_; + const T42 v42_; + const T43 v43_; + const T44 v44_; + const T45 v45_; + const T46 v46_; + const T47 v47_; + const T48 v48_; + const T49 v49_; + const T50 v50_; +}; + +# if GTEST_HAS_COMBINE +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// Generates values from the Cartesian product of values produced +// by the argument generators. +// +template +class CartesianProductGenerator2 + : public ParamGeneratorInterface< ::std::tr1::tuple > { + public: + typedef ::std::tr1::tuple ParamType; + + CartesianProductGenerator2(const ParamGenerator& g1, + const ParamGenerator& g2) + : g1_(g1), g2_(g2) {} + virtual ~CartesianProductGenerator2() {} + + virtual ParamIteratorInterface* Begin() const { + return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin()); + } + virtual ParamIteratorInterface* End() const { + return new Iterator(this, g1_, g1_.end(), g2_, g2_.end()); + } + + private: + class Iterator : public ParamIteratorInterface { + public: + Iterator(const ParamGeneratorInterface* base, + const ParamGenerator& g1, + const typename ParamGenerator::iterator& current1, + const ParamGenerator& g2, + const typename ParamGenerator::iterator& current2) + : base_(base), + begin1_(g1.begin()), end1_(g1.end()), current1_(current1), + begin2_(g2.begin()), end2_(g2.end()), current2_(current2) { + ComputeCurrentValue(); + } + virtual ~Iterator() {} + + virtual const ParamGeneratorInterface* BaseGenerator() const { + return base_; + } + // Advance should not be called on beyond-of-range iterators + // so no component iterators must be beyond end of range, either. + virtual void Advance() { + assert(!AtEnd()); + ++current2_; + if (current2_ == end2_) { + current2_ = begin2_; + ++current1_; + } + ComputeCurrentValue(); + } + virtual ParamIteratorInterface* Clone() const { + return new Iterator(*this); + } + virtual const ParamType* Current() const { return ¤t_value_; } + virtual bool Equals(const ParamIteratorInterface& other) const { + // Having the same base generator guarantees that the other + // iterator is of the same type and we can downcast. + GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) + << "The program attempted to compare iterators " + << "from different generators." << std::endl; + const Iterator* typed_other = + CheckedDowncastToActualType(&other); + // We must report iterators equal if they both point beyond their + // respective ranges. That can happen in a variety of fashions, + // so we have to consult AtEnd(). + return (AtEnd() && typed_other->AtEnd()) || + ( + current1_ == typed_other->current1_ && + current2_ == typed_other->current2_); + } + + private: + Iterator(const Iterator& other) + : base_(other.base_), + begin1_(other.begin1_), + end1_(other.end1_), + current1_(other.current1_), + begin2_(other.begin2_), + end2_(other.end2_), + current2_(other.current2_) { + ComputeCurrentValue(); + } + + void ComputeCurrentValue() { + if (!AtEnd()) + current_value_ = ParamType(*current1_, *current2_); + } + bool AtEnd() const { + // We must report iterator past the end of the range when either of the + // component iterators has reached the end of its range. + return + current1_ == end1_ || + current2_ == end2_; + } + + // No implementation - assignment is unsupported. + void operator=(const Iterator& other); + + const ParamGeneratorInterface* const base_; + // begin[i]_ and end[i]_ define the i-th range that Iterator traverses. + // current[i]_ is the actual traversing iterator. + const typename ParamGenerator::iterator begin1_; + const typename ParamGenerator::iterator end1_; + typename ParamGenerator::iterator current1_; + const typename ParamGenerator::iterator begin2_; + const typename ParamGenerator::iterator end2_; + typename ParamGenerator::iterator current2_; + ParamType current_value_; + }; // class CartesianProductGenerator2::Iterator + + // No implementation - assignment is unsupported. + void operator=(const CartesianProductGenerator2& other); + + const ParamGenerator g1_; + const ParamGenerator g2_; +}; // class CartesianProductGenerator2 + + +template +class CartesianProductGenerator3 + : public ParamGeneratorInterface< ::std::tr1::tuple > { + public: + typedef ::std::tr1::tuple ParamType; + + CartesianProductGenerator3(const ParamGenerator& g1, + const ParamGenerator& g2, const ParamGenerator& g3) + : g1_(g1), g2_(g2), g3_(g3) {} + virtual ~CartesianProductGenerator3() {} + + virtual ParamIteratorInterface* Begin() const { + return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_, + g3_.begin()); + } + virtual ParamIteratorInterface* End() const { + return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end()); + } + + private: + class Iterator : public ParamIteratorInterface { + public: + Iterator(const ParamGeneratorInterface* base, + const ParamGenerator& g1, + const typename ParamGenerator::iterator& current1, + const ParamGenerator& g2, + const typename ParamGenerator::iterator& current2, + const ParamGenerator& g3, + const typename ParamGenerator::iterator& current3) + : base_(base), + begin1_(g1.begin()), end1_(g1.end()), current1_(current1), + begin2_(g2.begin()), end2_(g2.end()), current2_(current2), + begin3_(g3.begin()), end3_(g3.end()), current3_(current3) { + ComputeCurrentValue(); + } + virtual ~Iterator() {} + + virtual const ParamGeneratorInterface* BaseGenerator() const { + return base_; + } + // Advance should not be called on beyond-of-range iterators + // so no component iterators must be beyond end of range, either. + virtual void Advance() { + assert(!AtEnd()); + ++current3_; + if (current3_ == end3_) { + current3_ = begin3_; + ++current2_; + } + if (current2_ == end2_) { + current2_ = begin2_; + ++current1_; + } + ComputeCurrentValue(); + } + virtual ParamIteratorInterface* Clone() const { + return new Iterator(*this); + } + virtual const ParamType* Current() const { return ¤t_value_; } + virtual bool Equals(const ParamIteratorInterface& other) const { + // Having the same base generator guarantees that the other + // iterator is of the same type and we can downcast. + GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) + << "The program attempted to compare iterators " + << "from different generators." << std::endl; + const Iterator* typed_other = + CheckedDowncastToActualType(&other); + // We must report iterators equal if they both point beyond their + // respective ranges. That can happen in a variety of fashions, + // so we have to consult AtEnd(). + return (AtEnd() && typed_other->AtEnd()) || + ( + current1_ == typed_other->current1_ && + current2_ == typed_other->current2_ && + current3_ == typed_other->current3_); + } + + private: + Iterator(const Iterator& other) + : base_(other.base_), + begin1_(other.begin1_), + end1_(other.end1_), + current1_(other.current1_), + begin2_(other.begin2_), + end2_(other.end2_), + current2_(other.current2_), + begin3_(other.begin3_), + end3_(other.end3_), + current3_(other.current3_) { + ComputeCurrentValue(); + } + + void ComputeCurrentValue() { + if (!AtEnd()) + current_value_ = ParamType(*current1_, *current2_, *current3_); + } + bool AtEnd() const { + // We must report iterator past the end of the range when either of the + // component iterators has reached the end of its range. + return + current1_ == end1_ || + current2_ == end2_ || + current3_ == end3_; + } + + // No implementation - assignment is unsupported. + void operator=(const Iterator& other); + + const ParamGeneratorInterface* const base_; + // begin[i]_ and end[i]_ define the i-th range that Iterator traverses. + // current[i]_ is the actual traversing iterator. + const typename ParamGenerator::iterator begin1_; + const typename ParamGenerator::iterator end1_; + typename ParamGenerator::iterator current1_; + const typename ParamGenerator::iterator begin2_; + const typename ParamGenerator::iterator end2_; + typename ParamGenerator::iterator current2_; + const typename ParamGenerator::iterator begin3_; + const typename ParamGenerator::iterator end3_; + typename ParamGenerator::iterator current3_; + ParamType current_value_; + }; // class CartesianProductGenerator3::Iterator + + // No implementation - assignment is unsupported. + void operator=(const CartesianProductGenerator3& other); + + const ParamGenerator g1_; + const ParamGenerator g2_; + const ParamGenerator g3_; +}; // class CartesianProductGenerator3 + + +template +class CartesianProductGenerator4 + : public ParamGeneratorInterface< ::std::tr1::tuple > { + public: + typedef ::std::tr1::tuple ParamType; + + CartesianProductGenerator4(const ParamGenerator& g1, + const ParamGenerator& g2, const ParamGenerator& g3, + const ParamGenerator& g4) + : g1_(g1), g2_(g2), g3_(g3), g4_(g4) {} + virtual ~CartesianProductGenerator4() {} + + virtual ParamIteratorInterface* Begin() const { + return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_, + g3_.begin(), g4_, g4_.begin()); + } + virtual ParamIteratorInterface* End() const { + return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(), + g4_, g4_.end()); + } + + private: + class Iterator : public ParamIteratorInterface { + public: + Iterator(const ParamGeneratorInterface* base, + const ParamGenerator& g1, + const typename ParamGenerator::iterator& current1, + const ParamGenerator& g2, + const typename ParamGenerator::iterator& current2, + const ParamGenerator& g3, + const typename ParamGenerator::iterator& current3, + const ParamGenerator& g4, + const typename ParamGenerator::iterator& current4) + : base_(base), + begin1_(g1.begin()), end1_(g1.end()), current1_(current1), + begin2_(g2.begin()), end2_(g2.end()), current2_(current2), + begin3_(g3.begin()), end3_(g3.end()), current3_(current3), + begin4_(g4.begin()), end4_(g4.end()), current4_(current4) { + ComputeCurrentValue(); + } + virtual ~Iterator() {} + + virtual const ParamGeneratorInterface* BaseGenerator() const { + return base_; + } + // Advance should not be called on beyond-of-range iterators + // so no component iterators must be beyond end of range, either. + virtual void Advance() { + assert(!AtEnd()); + ++current4_; + if (current4_ == end4_) { + current4_ = begin4_; + ++current3_; + } + if (current3_ == end3_) { + current3_ = begin3_; + ++current2_; + } + if (current2_ == end2_) { + current2_ = begin2_; + ++current1_; + } + ComputeCurrentValue(); + } + virtual ParamIteratorInterface* Clone() const { + return new Iterator(*this); + } + virtual const ParamType* Current() const { return ¤t_value_; } + virtual bool Equals(const ParamIteratorInterface& other) const { + // Having the same base generator guarantees that the other + // iterator is of the same type and we can downcast. + GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) + << "The program attempted to compare iterators " + << "from different generators." << std::endl; + const Iterator* typed_other = + CheckedDowncastToActualType(&other); + // We must report iterators equal if they both point beyond their + // respective ranges. That can happen in a variety of fashions, + // so we have to consult AtEnd(). + return (AtEnd() && typed_other->AtEnd()) || + ( + current1_ == typed_other->current1_ && + current2_ == typed_other->current2_ && + current3_ == typed_other->current3_ && + current4_ == typed_other->current4_); + } + + private: + Iterator(const Iterator& other) + : base_(other.base_), + begin1_(other.begin1_), + end1_(other.end1_), + current1_(other.current1_), + begin2_(other.begin2_), + end2_(other.end2_), + current2_(other.current2_), + begin3_(other.begin3_), + end3_(other.end3_), + current3_(other.current3_), + begin4_(other.begin4_), + end4_(other.end4_), + current4_(other.current4_) { + ComputeCurrentValue(); + } + + void ComputeCurrentValue() { + if (!AtEnd()) + current_value_ = ParamType(*current1_, *current2_, *current3_, + *current4_); + } + bool AtEnd() const { + // We must report iterator past the end of the range when either of the + // component iterators has reached the end of its range. + return + current1_ == end1_ || + current2_ == end2_ || + current3_ == end3_ || + current4_ == end4_; + } + + // No implementation - assignment is unsupported. + void operator=(const Iterator& other); + + const ParamGeneratorInterface* const base_; + // begin[i]_ and end[i]_ define the i-th range that Iterator traverses. + // current[i]_ is the actual traversing iterator. + const typename ParamGenerator::iterator begin1_; + const typename ParamGenerator::iterator end1_; + typename ParamGenerator::iterator current1_; + const typename ParamGenerator::iterator begin2_; + const typename ParamGenerator::iterator end2_; + typename ParamGenerator::iterator current2_; + const typename ParamGenerator::iterator begin3_; + const typename ParamGenerator::iterator end3_; + typename ParamGenerator::iterator current3_; + const typename ParamGenerator::iterator begin4_; + const typename ParamGenerator::iterator end4_; + typename ParamGenerator::iterator current4_; + ParamType current_value_; + }; // class CartesianProductGenerator4::Iterator + + // No implementation - assignment is unsupported. + void operator=(const CartesianProductGenerator4& other); + + const ParamGenerator g1_; + const ParamGenerator g2_; + const ParamGenerator g3_; + const ParamGenerator g4_; +}; // class CartesianProductGenerator4 + + +template +class CartesianProductGenerator5 + : public ParamGeneratorInterface< ::std::tr1::tuple > { + public: + typedef ::std::tr1::tuple ParamType; + + CartesianProductGenerator5(const ParamGenerator& g1, + const ParamGenerator& g2, const ParamGenerator& g3, + const ParamGenerator& g4, const ParamGenerator& g5) + : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5) {} + virtual ~CartesianProductGenerator5() {} + + virtual ParamIteratorInterface* Begin() const { + return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_, + g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin()); + } + virtual ParamIteratorInterface* End() const { + return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(), + g4_, g4_.end(), g5_, g5_.end()); + } + + private: + class Iterator : public ParamIteratorInterface { + public: + Iterator(const ParamGeneratorInterface* base, + const ParamGenerator& g1, + const typename ParamGenerator::iterator& current1, + const ParamGenerator& g2, + const typename ParamGenerator::iterator& current2, + const ParamGenerator& g3, + const typename ParamGenerator::iterator& current3, + const ParamGenerator& g4, + const typename ParamGenerator::iterator& current4, + const ParamGenerator& g5, + const typename ParamGenerator::iterator& current5) + : base_(base), + begin1_(g1.begin()), end1_(g1.end()), current1_(current1), + begin2_(g2.begin()), end2_(g2.end()), current2_(current2), + begin3_(g3.begin()), end3_(g3.end()), current3_(current3), + begin4_(g4.begin()), end4_(g4.end()), current4_(current4), + begin5_(g5.begin()), end5_(g5.end()), current5_(current5) { + ComputeCurrentValue(); + } + virtual ~Iterator() {} + + virtual const ParamGeneratorInterface* BaseGenerator() const { + return base_; + } + // Advance should not be called on beyond-of-range iterators + // so no component iterators must be beyond end of range, either. + virtual void Advance() { + assert(!AtEnd()); + ++current5_; + if (current5_ == end5_) { + current5_ = begin5_; + ++current4_; + } + if (current4_ == end4_) { + current4_ = begin4_; + ++current3_; + } + if (current3_ == end3_) { + current3_ = begin3_; + ++current2_; + } + if (current2_ == end2_) { + current2_ = begin2_; + ++current1_; + } + ComputeCurrentValue(); + } + virtual ParamIteratorInterface* Clone() const { + return new Iterator(*this); + } + virtual const ParamType* Current() const { return ¤t_value_; } + virtual bool Equals(const ParamIteratorInterface& other) const { + // Having the same base generator guarantees that the other + // iterator is of the same type and we can downcast. + GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) + << "The program attempted to compare iterators " + << "from different generators." << std::endl; + const Iterator* typed_other = + CheckedDowncastToActualType(&other); + // We must report iterators equal if they both point beyond their + // respective ranges. That can happen in a variety of fashions, + // so we have to consult AtEnd(). + return (AtEnd() && typed_other->AtEnd()) || + ( + current1_ == typed_other->current1_ && + current2_ == typed_other->current2_ && + current3_ == typed_other->current3_ && + current4_ == typed_other->current4_ && + current5_ == typed_other->current5_); + } + + private: + Iterator(const Iterator& other) + : base_(other.base_), + begin1_(other.begin1_), + end1_(other.end1_), + current1_(other.current1_), + begin2_(other.begin2_), + end2_(other.end2_), + current2_(other.current2_), + begin3_(other.begin3_), + end3_(other.end3_), + current3_(other.current3_), + begin4_(other.begin4_), + end4_(other.end4_), + current4_(other.current4_), + begin5_(other.begin5_), + end5_(other.end5_), + current5_(other.current5_) { + ComputeCurrentValue(); + } + + void ComputeCurrentValue() { + if (!AtEnd()) + current_value_ = ParamType(*current1_, *current2_, *current3_, + *current4_, *current5_); + } + bool AtEnd() const { + // We must report iterator past the end of the range when either of the + // component iterators has reached the end of its range. + return + current1_ == end1_ || + current2_ == end2_ || + current3_ == end3_ || + current4_ == end4_ || + current5_ == end5_; + } + + // No implementation - assignment is unsupported. + void operator=(const Iterator& other); + + const ParamGeneratorInterface* const base_; + // begin[i]_ and end[i]_ define the i-th range that Iterator traverses. + // current[i]_ is the actual traversing iterator. + const typename ParamGenerator::iterator begin1_; + const typename ParamGenerator::iterator end1_; + typename ParamGenerator::iterator current1_; + const typename ParamGenerator::iterator begin2_; + const typename ParamGenerator::iterator end2_; + typename ParamGenerator::iterator current2_; + const typename ParamGenerator::iterator begin3_; + const typename ParamGenerator::iterator end3_; + typename ParamGenerator::iterator current3_; + const typename ParamGenerator::iterator begin4_; + const typename ParamGenerator::iterator end4_; + typename ParamGenerator::iterator current4_; + const typename ParamGenerator::iterator begin5_; + const typename ParamGenerator::iterator end5_; + typename ParamGenerator::iterator current5_; + ParamType current_value_; + }; // class CartesianProductGenerator5::Iterator + + // No implementation - assignment is unsupported. + void operator=(const CartesianProductGenerator5& other); + + const ParamGenerator g1_; + const ParamGenerator g2_; + const ParamGenerator g3_; + const ParamGenerator g4_; + const ParamGenerator g5_; +}; // class CartesianProductGenerator5 + + +template +class CartesianProductGenerator6 + : public ParamGeneratorInterface< ::std::tr1::tuple > { + public: + typedef ::std::tr1::tuple ParamType; + + CartesianProductGenerator6(const ParamGenerator& g1, + const ParamGenerator& g2, const ParamGenerator& g3, + const ParamGenerator& g4, const ParamGenerator& g5, + const ParamGenerator& g6) + : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6) {} + virtual ~CartesianProductGenerator6() {} + + virtual ParamIteratorInterface* Begin() const { + return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_, + g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin()); + } + virtual ParamIteratorInterface* End() const { + return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(), + g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end()); + } + + private: + class Iterator : public ParamIteratorInterface { + public: + Iterator(const ParamGeneratorInterface* base, + const ParamGenerator& g1, + const typename ParamGenerator::iterator& current1, + const ParamGenerator& g2, + const typename ParamGenerator::iterator& current2, + const ParamGenerator& g3, + const typename ParamGenerator::iterator& current3, + const ParamGenerator& g4, + const typename ParamGenerator::iterator& current4, + const ParamGenerator& g5, + const typename ParamGenerator::iterator& current5, + const ParamGenerator& g6, + const typename ParamGenerator::iterator& current6) + : base_(base), + begin1_(g1.begin()), end1_(g1.end()), current1_(current1), + begin2_(g2.begin()), end2_(g2.end()), current2_(current2), + begin3_(g3.begin()), end3_(g3.end()), current3_(current3), + begin4_(g4.begin()), end4_(g4.end()), current4_(current4), + begin5_(g5.begin()), end5_(g5.end()), current5_(current5), + begin6_(g6.begin()), end6_(g6.end()), current6_(current6) { + ComputeCurrentValue(); + } + virtual ~Iterator() {} + + virtual const ParamGeneratorInterface* BaseGenerator() const { + return base_; + } + // Advance should not be called on beyond-of-range iterators + // so no component iterators must be beyond end of range, either. + virtual void Advance() { + assert(!AtEnd()); + ++current6_; + if (current6_ == end6_) { + current6_ = begin6_; + ++current5_; + } + if (current5_ == end5_) { + current5_ = begin5_; + ++current4_; + } + if (current4_ == end4_) { + current4_ = begin4_; + ++current3_; + } + if (current3_ == end3_) { + current3_ = begin3_; + ++current2_; + } + if (current2_ == end2_) { + current2_ = begin2_; + ++current1_; + } + ComputeCurrentValue(); + } + virtual ParamIteratorInterface* Clone() const { + return new Iterator(*this); + } + virtual const ParamType* Current() const { return ¤t_value_; } + virtual bool Equals(const ParamIteratorInterface& other) const { + // Having the same base generator guarantees that the other + // iterator is of the same type and we can downcast. + GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) + << "The program attempted to compare iterators " + << "from different generators." << std::endl; + const Iterator* typed_other = + CheckedDowncastToActualType(&other); + // We must report iterators equal if they both point beyond their + // respective ranges. That can happen in a variety of fashions, + // so we have to consult AtEnd(). + return (AtEnd() && typed_other->AtEnd()) || + ( + current1_ == typed_other->current1_ && + current2_ == typed_other->current2_ && + current3_ == typed_other->current3_ && + current4_ == typed_other->current4_ && + current5_ == typed_other->current5_ && + current6_ == typed_other->current6_); + } + + private: + Iterator(const Iterator& other) + : base_(other.base_), + begin1_(other.begin1_), + end1_(other.end1_), + current1_(other.current1_), + begin2_(other.begin2_), + end2_(other.end2_), + current2_(other.current2_), + begin3_(other.begin3_), + end3_(other.end3_), + current3_(other.current3_), + begin4_(other.begin4_), + end4_(other.end4_), + current4_(other.current4_), + begin5_(other.begin5_), + end5_(other.end5_), + current5_(other.current5_), + begin6_(other.begin6_), + end6_(other.end6_), + current6_(other.current6_) { + ComputeCurrentValue(); + } + + void ComputeCurrentValue() { + if (!AtEnd()) + current_value_ = ParamType(*current1_, *current2_, *current3_, + *current4_, *current5_, *current6_); + } + bool AtEnd() const { + // We must report iterator past the end of the range when either of the + // component iterators has reached the end of its range. + return + current1_ == end1_ || + current2_ == end2_ || + current3_ == end3_ || + current4_ == end4_ || + current5_ == end5_ || + current6_ == end6_; + } + + // No implementation - assignment is unsupported. + void operator=(const Iterator& other); + + const ParamGeneratorInterface* const base_; + // begin[i]_ and end[i]_ define the i-th range that Iterator traverses. + // current[i]_ is the actual traversing iterator. + const typename ParamGenerator::iterator begin1_; + const typename ParamGenerator::iterator end1_; + typename ParamGenerator::iterator current1_; + const typename ParamGenerator::iterator begin2_; + const typename ParamGenerator::iterator end2_; + typename ParamGenerator::iterator current2_; + const typename ParamGenerator::iterator begin3_; + const typename ParamGenerator::iterator end3_; + typename ParamGenerator::iterator current3_; + const typename ParamGenerator::iterator begin4_; + const typename ParamGenerator::iterator end4_; + typename ParamGenerator::iterator current4_; + const typename ParamGenerator::iterator begin5_; + const typename ParamGenerator::iterator end5_; + typename ParamGenerator::iterator current5_; + const typename ParamGenerator::iterator begin6_; + const typename ParamGenerator::iterator end6_; + typename ParamGenerator::iterator current6_; + ParamType current_value_; + }; // class CartesianProductGenerator6::Iterator + + // No implementation - assignment is unsupported. + void operator=(const CartesianProductGenerator6& other); + + const ParamGenerator g1_; + const ParamGenerator g2_; + const ParamGenerator g3_; + const ParamGenerator g4_; + const ParamGenerator g5_; + const ParamGenerator g6_; +}; // class CartesianProductGenerator6 + + +template +class CartesianProductGenerator7 + : public ParamGeneratorInterface< ::std::tr1::tuple > { + public: + typedef ::std::tr1::tuple ParamType; + + CartesianProductGenerator7(const ParamGenerator& g1, + const ParamGenerator& g2, const ParamGenerator& g3, + const ParamGenerator& g4, const ParamGenerator& g5, + const ParamGenerator& g6, const ParamGenerator& g7) + : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7) {} + virtual ~CartesianProductGenerator7() {} + + virtual ParamIteratorInterface* Begin() const { + return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_, + g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_, + g7_.begin()); + } + virtual ParamIteratorInterface* End() const { + return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(), + g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end()); + } + + private: + class Iterator : public ParamIteratorInterface { + public: + Iterator(const ParamGeneratorInterface* base, + const ParamGenerator& g1, + const typename ParamGenerator::iterator& current1, + const ParamGenerator& g2, + const typename ParamGenerator::iterator& current2, + const ParamGenerator& g3, + const typename ParamGenerator::iterator& current3, + const ParamGenerator& g4, + const typename ParamGenerator::iterator& current4, + const ParamGenerator& g5, + const typename ParamGenerator::iterator& current5, + const ParamGenerator& g6, + const typename ParamGenerator::iterator& current6, + const ParamGenerator& g7, + const typename ParamGenerator::iterator& current7) + : base_(base), + begin1_(g1.begin()), end1_(g1.end()), current1_(current1), + begin2_(g2.begin()), end2_(g2.end()), current2_(current2), + begin3_(g3.begin()), end3_(g3.end()), current3_(current3), + begin4_(g4.begin()), end4_(g4.end()), current4_(current4), + begin5_(g5.begin()), end5_(g5.end()), current5_(current5), + begin6_(g6.begin()), end6_(g6.end()), current6_(current6), + begin7_(g7.begin()), end7_(g7.end()), current7_(current7) { + ComputeCurrentValue(); + } + virtual ~Iterator() {} + + virtual const ParamGeneratorInterface* BaseGenerator() const { + return base_; + } + // Advance should not be called on beyond-of-range iterators + // so no component iterators must be beyond end of range, either. + virtual void Advance() { + assert(!AtEnd()); + ++current7_; + if (current7_ == end7_) { + current7_ = begin7_; + ++current6_; + } + if (current6_ == end6_) { + current6_ = begin6_; + ++current5_; + } + if (current5_ == end5_) { + current5_ = begin5_; + ++current4_; + } + if (current4_ == end4_) { + current4_ = begin4_; + ++current3_; + } + if (current3_ == end3_) { + current3_ = begin3_; + ++current2_; + } + if (current2_ == end2_) { + current2_ = begin2_; + ++current1_; + } + ComputeCurrentValue(); + } + virtual ParamIteratorInterface* Clone() const { + return new Iterator(*this); + } + virtual const ParamType* Current() const { return ¤t_value_; } + virtual bool Equals(const ParamIteratorInterface& other) const { + // Having the same base generator guarantees that the other + // iterator is of the same type and we can downcast. + GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) + << "The program attempted to compare iterators " + << "from different generators." << std::endl; + const Iterator* typed_other = + CheckedDowncastToActualType(&other); + // We must report iterators equal if they both point beyond their + // respective ranges. That can happen in a variety of fashions, + // so we have to consult AtEnd(). + return (AtEnd() && typed_other->AtEnd()) || + ( + current1_ == typed_other->current1_ && + current2_ == typed_other->current2_ && + current3_ == typed_other->current3_ && + current4_ == typed_other->current4_ && + current5_ == typed_other->current5_ && + current6_ == typed_other->current6_ && + current7_ == typed_other->current7_); + } + + private: + Iterator(const Iterator& other) + : base_(other.base_), + begin1_(other.begin1_), + end1_(other.end1_), + current1_(other.current1_), + begin2_(other.begin2_), + end2_(other.end2_), + current2_(other.current2_), + begin3_(other.begin3_), + end3_(other.end3_), + current3_(other.current3_), + begin4_(other.begin4_), + end4_(other.end4_), + current4_(other.current4_), + begin5_(other.begin5_), + end5_(other.end5_), + current5_(other.current5_), + begin6_(other.begin6_), + end6_(other.end6_), + current6_(other.current6_), + begin7_(other.begin7_), + end7_(other.end7_), + current7_(other.current7_) { + ComputeCurrentValue(); + } + + void ComputeCurrentValue() { + if (!AtEnd()) + current_value_ = ParamType(*current1_, *current2_, *current3_, + *current4_, *current5_, *current6_, *current7_); + } + bool AtEnd() const { + // We must report iterator past the end of the range when either of the + // component iterators has reached the end of its range. + return + current1_ == end1_ || + current2_ == end2_ || + current3_ == end3_ || + current4_ == end4_ || + current5_ == end5_ || + current6_ == end6_ || + current7_ == end7_; + } + + // No implementation - assignment is unsupported. + void operator=(const Iterator& other); + + const ParamGeneratorInterface* const base_; + // begin[i]_ and end[i]_ define the i-th range that Iterator traverses. + // current[i]_ is the actual traversing iterator. + const typename ParamGenerator::iterator begin1_; + const typename ParamGenerator::iterator end1_; + typename ParamGenerator::iterator current1_; + const typename ParamGenerator::iterator begin2_; + const typename ParamGenerator::iterator end2_; + typename ParamGenerator::iterator current2_; + const typename ParamGenerator::iterator begin3_; + const typename ParamGenerator::iterator end3_; + typename ParamGenerator::iterator current3_; + const typename ParamGenerator::iterator begin4_; + const typename ParamGenerator::iterator end4_; + typename ParamGenerator::iterator current4_; + const typename ParamGenerator::iterator begin5_; + const typename ParamGenerator::iterator end5_; + typename ParamGenerator::iterator current5_; + const typename ParamGenerator::iterator begin6_; + const typename ParamGenerator::iterator end6_; + typename ParamGenerator::iterator current6_; + const typename ParamGenerator::iterator begin7_; + const typename ParamGenerator::iterator end7_; + typename ParamGenerator::iterator current7_; + ParamType current_value_; + }; // class CartesianProductGenerator7::Iterator + + // No implementation - assignment is unsupported. + void operator=(const CartesianProductGenerator7& other); + + const ParamGenerator g1_; + const ParamGenerator g2_; + const ParamGenerator g3_; + const ParamGenerator g4_; + const ParamGenerator g5_; + const ParamGenerator g6_; + const ParamGenerator g7_; +}; // class CartesianProductGenerator7 + + +template +class CartesianProductGenerator8 + : public ParamGeneratorInterface< ::std::tr1::tuple > { + public: + typedef ::std::tr1::tuple ParamType; + + CartesianProductGenerator8(const ParamGenerator& g1, + const ParamGenerator& g2, const ParamGenerator& g3, + const ParamGenerator& g4, const ParamGenerator& g5, + const ParamGenerator& g6, const ParamGenerator& g7, + const ParamGenerator& g8) + : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), + g8_(g8) {} + virtual ~CartesianProductGenerator8() {} + + virtual ParamIteratorInterface* Begin() const { + return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_, + g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_, + g7_.begin(), g8_, g8_.begin()); + } + virtual ParamIteratorInterface* End() const { + return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(), + g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_, + g8_.end()); + } + + private: + class Iterator : public ParamIteratorInterface { + public: + Iterator(const ParamGeneratorInterface* base, + const ParamGenerator& g1, + const typename ParamGenerator::iterator& current1, + const ParamGenerator& g2, + const typename ParamGenerator::iterator& current2, + const ParamGenerator& g3, + const typename ParamGenerator::iterator& current3, + const ParamGenerator& g4, + const typename ParamGenerator::iterator& current4, + const ParamGenerator& g5, + const typename ParamGenerator::iterator& current5, + const ParamGenerator& g6, + const typename ParamGenerator::iterator& current6, + const ParamGenerator& g7, + const typename ParamGenerator::iterator& current7, + const ParamGenerator& g8, + const typename ParamGenerator::iterator& current8) + : base_(base), + begin1_(g1.begin()), end1_(g1.end()), current1_(current1), + begin2_(g2.begin()), end2_(g2.end()), current2_(current2), + begin3_(g3.begin()), end3_(g3.end()), current3_(current3), + begin4_(g4.begin()), end4_(g4.end()), current4_(current4), + begin5_(g5.begin()), end5_(g5.end()), current5_(current5), + begin6_(g6.begin()), end6_(g6.end()), current6_(current6), + begin7_(g7.begin()), end7_(g7.end()), current7_(current7), + begin8_(g8.begin()), end8_(g8.end()), current8_(current8) { + ComputeCurrentValue(); + } + virtual ~Iterator() {} + + virtual const ParamGeneratorInterface* BaseGenerator() const { + return base_; + } + // Advance should not be called on beyond-of-range iterators + // so no component iterators must be beyond end of range, either. + virtual void Advance() { + assert(!AtEnd()); + ++current8_; + if (current8_ == end8_) { + current8_ = begin8_; + ++current7_; + } + if (current7_ == end7_) { + current7_ = begin7_; + ++current6_; + } + if (current6_ == end6_) { + current6_ = begin6_; + ++current5_; + } + if (current5_ == end5_) { + current5_ = begin5_; + ++current4_; + } + if (current4_ == end4_) { + current4_ = begin4_; + ++current3_; + } + if (current3_ == end3_) { + current3_ = begin3_; + ++current2_; + } + if (current2_ == end2_) { + current2_ = begin2_; + ++current1_; + } + ComputeCurrentValue(); + } + virtual ParamIteratorInterface* Clone() const { + return new Iterator(*this); + } + virtual const ParamType* Current() const { return ¤t_value_; } + virtual bool Equals(const ParamIteratorInterface& other) const { + // Having the same base generator guarantees that the other + // iterator is of the same type and we can downcast. + GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) + << "The program attempted to compare iterators " + << "from different generators." << std::endl; + const Iterator* typed_other = + CheckedDowncastToActualType(&other); + // We must report iterators equal if they both point beyond their + // respective ranges. That can happen in a variety of fashions, + // so we have to consult AtEnd(). + return (AtEnd() && typed_other->AtEnd()) || + ( + current1_ == typed_other->current1_ && + current2_ == typed_other->current2_ && + current3_ == typed_other->current3_ && + current4_ == typed_other->current4_ && + current5_ == typed_other->current5_ && + current6_ == typed_other->current6_ && + current7_ == typed_other->current7_ && + current8_ == typed_other->current8_); + } + + private: + Iterator(const Iterator& other) + : base_(other.base_), + begin1_(other.begin1_), + end1_(other.end1_), + current1_(other.current1_), + begin2_(other.begin2_), + end2_(other.end2_), + current2_(other.current2_), + begin3_(other.begin3_), + end3_(other.end3_), + current3_(other.current3_), + begin4_(other.begin4_), + end4_(other.end4_), + current4_(other.current4_), + begin5_(other.begin5_), + end5_(other.end5_), + current5_(other.current5_), + begin6_(other.begin6_), + end6_(other.end6_), + current6_(other.current6_), + begin7_(other.begin7_), + end7_(other.end7_), + current7_(other.current7_), + begin8_(other.begin8_), + end8_(other.end8_), + current8_(other.current8_) { + ComputeCurrentValue(); + } + + void ComputeCurrentValue() { + if (!AtEnd()) + current_value_ = ParamType(*current1_, *current2_, *current3_, + *current4_, *current5_, *current6_, *current7_, *current8_); + } + bool AtEnd() const { + // We must report iterator past the end of the range when either of the + // component iterators has reached the end of its range. + return + current1_ == end1_ || + current2_ == end2_ || + current3_ == end3_ || + current4_ == end4_ || + current5_ == end5_ || + current6_ == end6_ || + current7_ == end7_ || + current8_ == end8_; + } + + // No implementation - assignment is unsupported. + void operator=(const Iterator& other); + + const ParamGeneratorInterface* const base_; + // begin[i]_ and end[i]_ define the i-th range that Iterator traverses. + // current[i]_ is the actual traversing iterator. + const typename ParamGenerator::iterator begin1_; + const typename ParamGenerator::iterator end1_; + typename ParamGenerator::iterator current1_; + const typename ParamGenerator::iterator begin2_; + const typename ParamGenerator::iterator end2_; + typename ParamGenerator::iterator current2_; + const typename ParamGenerator::iterator begin3_; + const typename ParamGenerator::iterator end3_; + typename ParamGenerator::iterator current3_; + const typename ParamGenerator::iterator begin4_; + const typename ParamGenerator::iterator end4_; + typename ParamGenerator::iterator current4_; + const typename ParamGenerator::iterator begin5_; + const typename ParamGenerator::iterator end5_; + typename ParamGenerator::iterator current5_; + const typename ParamGenerator::iterator begin6_; + const typename ParamGenerator::iterator end6_; + typename ParamGenerator::iterator current6_; + const typename ParamGenerator::iterator begin7_; + const typename ParamGenerator::iterator end7_; + typename ParamGenerator::iterator current7_; + const typename ParamGenerator::iterator begin8_; + const typename ParamGenerator::iterator end8_; + typename ParamGenerator::iterator current8_; + ParamType current_value_; + }; // class CartesianProductGenerator8::Iterator + + // No implementation - assignment is unsupported. + void operator=(const CartesianProductGenerator8& other); + + const ParamGenerator g1_; + const ParamGenerator g2_; + const ParamGenerator g3_; + const ParamGenerator g4_; + const ParamGenerator g5_; + const ParamGenerator g6_; + const ParamGenerator g7_; + const ParamGenerator g8_; +}; // class CartesianProductGenerator8 + + +template +class CartesianProductGenerator9 + : public ParamGeneratorInterface< ::std::tr1::tuple > { + public: + typedef ::std::tr1::tuple ParamType; + + CartesianProductGenerator9(const ParamGenerator& g1, + const ParamGenerator& g2, const ParamGenerator& g3, + const ParamGenerator& g4, const ParamGenerator& g5, + const ParamGenerator& g6, const ParamGenerator& g7, + const ParamGenerator& g8, const ParamGenerator& g9) + : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8), + g9_(g9) {} + virtual ~CartesianProductGenerator9() {} + + virtual ParamIteratorInterface* Begin() const { + return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_, + g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_, + g7_.begin(), g8_, g8_.begin(), g9_, g9_.begin()); + } + virtual ParamIteratorInterface* End() const { + return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(), + g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_, + g8_.end(), g9_, g9_.end()); + } + + private: + class Iterator : public ParamIteratorInterface { + public: + Iterator(const ParamGeneratorInterface* base, + const ParamGenerator& g1, + const typename ParamGenerator::iterator& current1, + const ParamGenerator& g2, + const typename ParamGenerator::iterator& current2, + const ParamGenerator& g3, + const typename ParamGenerator::iterator& current3, + const ParamGenerator& g4, + const typename ParamGenerator::iterator& current4, + const ParamGenerator& g5, + const typename ParamGenerator::iterator& current5, + const ParamGenerator& g6, + const typename ParamGenerator::iterator& current6, + const ParamGenerator& g7, + const typename ParamGenerator::iterator& current7, + const ParamGenerator& g8, + const typename ParamGenerator::iterator& current8, + const ParamGenerator& g9, + const typename ParamGenerator::iterator& current9) + : base_(base), + begin1_(g1.begin()), end1_(g1.end()), current1_(current1), + begin2_(g2.begin()), end2_(g2.end()), current2_(current2), + begin3_(g3.begin()), end3_(g3.end()), current3_(current3), + begin4_(g4.begin()), end4_(g4.end()), current4_(current4), + begin5_(g5.begin()), end5_(g5.end()), current5_(current5), + begin6_(g6.begin()), end6_(g6.end()), current6_(current6), + begin7_(g7.begin()), end7_(g7.end()), current7_(current7), + begin8_(g8.begin()), end8_(g8.end()), current8_(current8), + begin9_(g9.begin()), end9_(g9.end()), current9_(current9) { + ComputeCurrentValue(); + } + virtual ~Iterator() {} + + virtual const ParamGeneratorInterface* BaseGenerator() const { + return base_; + } + // Advance should not be called on beyond-of-range iterators + // so no component iterators must be beyond end of range, either. + virtual void Advance() { + assert(!AtEnd()); + ++current9_; + if (current9_ == end9_) { + current9_ = begin9_; + ++current8_; + } + if (current8_ == end8_) { + current8_ = begin8_; + ++current7_; + } + if (current7_ == end7_) { + current7_ = begin7_; + ++current6_; + } + if (current6_ == end6_) { + current6_ = begin6_; + ++current5_; + } + if (current5_ == end5_) { + current5_ = begin5_; + ++current4_; + } + if (current4_ == end4_) { + current4_ = begin4_; + ++current3_; + } + if (current3_ == end3_) { + current3_ = begin3_; + ++current2_; + } + if (current2_ == end2_) { + current2_ = begin2_; + ++current1_; + } + ComputeCurrentValue(); + } + virtual ParamIteratorInterface* Clone() const { + return new Iterator(*this); + } + virtual const ParamType* Current() const { return ¤t_value_; } + virtual bool Equals(const ParamIteratorInterface& other) const { + // Having the same base generator guarantees that the other + // iterator is of the same type and we can downcast. + GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) + << "The program attempted to compare iterators " + << "from different generators." << std::endl; + const Iterator* typed_other = + CheckedDowncastToActualType(&other); + // We must report iterators equal if they both point beyond their + // respective ranges. That can happen in a variety of fashions, + // so we have to consult AtEnd(). + return (AtEnd() && typed_other->AtEnd()) || + ( + current1_ == typed_other->current1_ && + current2_ == typed_other->current2_ && + current3_ == typed_other->current3_ && + current4_ == typed_other->current4_ && + current5_ == typed_other->current5_ && + current6_ == typed_other->current6_ && + current7_ == typed_other->current7_ && + current8_ == typed_other->current8_ && + current9_ == typed_other->current9_); + } + + private: + Iterator(const Iterator& other) + : base_(other.base_), + begin1_(other.begin1_), + end1_(other.end1_), + current1_(other.current1_), + begin2_(other.begin2_), + end2_(other.end2_), + current2_(other.current2_), + begin3_(other.begin3_), + end3_(other.end3_), + current3_(other.current3_), + begin4_(other.begin4_), + end4_(other.end4_), + current4_(other.current4_), + begin5_(other.begin5_), + end5_(other.end5_), + current5_(other.current5_), + begin6_(other.begin6_), + end6_(other.end6_), + current6_(other.current6_), + begin7_(other.begin7_), + end7_(other.end7_), + current7_(other.current7_), + begin8_(other.begin8_), + end8_(other.end8_), + current8_(other.current8_), + begin9_(other.begin9_), + end9_(other.end9_), + current9_(other.current9_) { + ComputeCurrentValue(); + } + + void ComputeCurrentValue() { + if (!AtEnd()) + current_value_ = ParamType(*current1_, *current2_, *current3_, + *current4_, *current5_, *current6_, *current7_, *current8_, + *current9_); + } + bool AtEnd() const { + // We must report iterator past the end of the range when either of the + // component iterators has reached the end of its range. + return + current1_ == end1_ || + current2_ == end2_ || + current3_ == end3_ || + current4_ == end4_ || + current5_ == end5_ || + current6_ == end6_ || + current7_ == end7_ || + current8_ == end8_ || + current9_ == end9_; + } + + // No implementation - assignment is unsupported. + void operator=(const Iterator& other); + + const ParamGeneratorInterface* const base_; + // begin[i]_ and end[i]_ define the i-th range that Iterator traverses. + // current[i]_ is the actual traversing iterator. + const typename ParamGenerator::iterator begin1_; + const typename ParamGenerator::iterator end1_; + typename ParamGenerator::iterator current1_; + const typename ParamGenerator::iterator begin2_; + const typename ParamGenerator::iterator end2_; + typename ParamGenerator::iterator current2_; + const typename ParamGenerator::iterator begin3_; + const typename ParamGenerator::iterator end3_; + typename ParamGenerator::iterator current3_; + const typename ParamGenerator::iterator begin4_; + const typename ParamGenerator::iterator end4_; + typename ParamGenerator::iterator current4_; + const typename ParamGenerator::iterator begin5_; + const typename ParamGenerator::iterator end5_; + typename ParamGenerator::iterator current5_; + const typename ParamGenerator::iterator begin6_; + const typename ParamGenerator::iterator end6_; + typename ParamGenerator::iterator current6_; + const typename ParamGenerator::iterator begin7_; + const typename ParamGenerator::iterator end7_; + typename ParamGenerator::iterator current7_; + const typename ParamGenerator::iterator begin8_; + const typename ParamGenerator::iterator end8_; + typename ParamGenerator::iterator current8_; + const typename ParamGenerator::iterator begin9_; + const typename ParamGenerator::iterator end9_; + typename ParamGenerator::iterator current9_; + ParamType current_value_; + }; // class CartesianProductGenerator9::Iterator + + // No implementation - assignment is unsupported. + void operator=(const CartesianProductGenerator9& other); + + const ParamGenerator g1_; + const ParamGenerator g2_; + const ParamGenerator g3_; + const ParamGenerator g4_; + const ParamGenerator g5_; + const ParamGenerator g6_; + const ParamGenerator g7_; + const ParamGenerator g8_; + const ParamGenerator g9_; +}; // class CartesianProductGenerator9 + + +template +class CartesianProductGenerator10 + : public ParamGeneratorInterface< ::std::tr1::tuple > { + public: + typedef ::std::tr1::tuple ParamType; + + CartesianProductGenerator10(const ParamGenerator& g1, + const ParamGenerator& g2, const ParamGenerator& g3, + const ParamGenerator& g4, const ParamGenerator& g5, + const ParamGenerator& g6, const ParamGenerator& g7, + const ParamGenerator& g8, const ParamGenerator& g9, + const ParamGenerator& g10) + : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8), + g9_(g9), g10_(g10) {} + virtual ~CartesianProductGenerator10() {} + + virtual ParamIteratorInterface* Begin() const { + return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_, + g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_, + g7_.begin(), g8_, g8_.begin(), g9_, g9_.begin(), g10_, g10_.begin()); + } + virtual ParamIteratorInterface* End() const { + return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(), + g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_, + g8_.end(), g9_, g9_.end(), g10_, g10_.end()); + } + + private: + class Iterator : public ParamIteratorInterface { + public: + Iterator(const ParamGeneratorInterface* base, + const ParamGenerator& g1, + const typename ParamGenerator::iterator& current1, + const ParamGenerator& g2, + const typename ParamGenerator::iterator& current2, + const ParamGenerator& g3, + const typename ParamGenerator::iterator& current3, + const ParamGenerator& g4, + const typename ParamGenerator::iterator& current4, + const ParamGenerator& g5, + const typename ParamGenerator::iterator& current5, + const ParamGenerator& g6, + const typename ParamGenerator::iterator& current6, + const ParamGenerator& g7, + const typename ParamGenerator::iterator& current7, + const ParamGenerator& g8, + const typename ParamGenerator::iterator& current8, + const ParamGenerator& g9, + const typename ParamGenerator::iterator& current9, + const ParamGenerator& g10, + const typename ParamGenerator::iterator& current10) + : base_(base), + begin1_(g1.begin()), end1_(g1.end()), current1_(current1), + begin2_(g2.begin()), end2_(g2.end()), current2_(current2), + begin3_(g3.begin()), end3_(g3.end()), current3_(current3), + begin4_(g4.begin()), end4_(g4.end()), current4_(current4), + begin5_(g5.begin()), end5_(g5.end()), current5_(current5), + begin6_(g6.begin()), end6_(g6.end()), current6_(current6), + begin7_(g7.begin()), end7_(g7.end()), current7_(current7), + begin8_(g8.begin()), end8_(g8.end()), current8_(current8), + begin9_(g9.begin()), end9_(g9.end()), current9_(current9), + begin10_(g10.begin()), end10_(g10.end()), current10_(current10) { + ComputeCurrentValue(); + } + virtual ~Iterator() {} + + virtual const ParamGeneratorInterface* BaseGenerator() const { + return base_; + } + // Advance should not be called on beyond-of-range iterators + // so no component iterators must be beyond end of range, either. + virtual void Advance() { + assert(!AtEnd()); + ++current10_; + if (current10_ == end10_) { + current10_ = begin10_; + ++current9_; + } + if (current9_ == end9_) { + current9_ = begin9_; + ++current8_; + } + if (current8_ == end8_) { + current8_ = begin8_; + ++current7_; + } + if (current7_ == end7_) { + current7_ = begin7_; + ++current6_; + } + if (current6_ == end6_) { + current6_ = begin6_; + ++current5_; + } + if (current5_ == end5_) { + current5_ = begin5_; + ++current4_; + } + if (current4_ == end4_) { + current4_ = begin4_; + ++current3_; + } + if (current3_ == end3_) { + current3_ = begin3_; + ++current2_; + } + if (current2_ == end2_) { + current2_ = begin2_; + ++current1_; + } + ComputeCurrentValue(); + } + virtual ParamIteratorInterface* Clone() const { + return new Iterator(*this); + } + virtual const ParamType* Current() const { return ¤t_value_; } + virtual bool Equals(const ParamIteratorInterface& other) const { + // Having the same base generator guarantees that the other + // iterator is of the same type and we can downcast. + GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) + << "The program attempted to compare iterators " + << "from different generators." << std::endl; + const Iterator* typed_other = + CheckedDowncastToActualType(&other); + // We must report iterators equal if they both point beyond their + // respective ranges. That can happen in a variety of fashions, + // so we have to consult AtEnd(). + return (AtEnd() && typed_other->AtEnd()) || + ( + current1_ == typed_other->current1_ && + current2_ == typed_other->current2_ && + current3_ == typed_other->current3_ && + current4_ == typed_other->current4_ && + current5_ == typed_other->current5_ && + current6_ == typed_other->current6_ && + current7_ == typed_other->current7_ && + current8_ == typed_other->current8_ && + current9_ == typed_other->current9_ && + current10_ == typed_other->current10_); + } + + private: + Iterator(const Iterator& other) + : base_(other.base_), + begin1_(other.begin1_), + end1_(other.end1_), + current1_(other.current1_), + begin2_(other.begin2_), + end2_(other.end2_), + current2_(other.current2_), + begin3_(other.begin3_), + end3_(other.end3_), + current3_(other.current3_), + begin4_(other.begin4_), + end4_(other.end4_), + current4_(other.current4_), + begin5_(other.begin5_), + end5_(other.end5_), + current5_(other.current5_), + begin6_(other.begin6_), + end6_(other.end6_), + current6_(other.current6_), + begin7_(other.begin7_), + end7_(other.end7_), + current7_(other.current7_), + begin8_(other.begin8_), + end8_(other.end8_), + current8_(other.current8_), + begin9_(other.begin9_), + end9_(other.end9_), + current9_(other.current9_), + begin10_(other.begin10_), + end10_(other.end10_), + current10_(other.current10_) { + ComputeCurrentValue(); + } + + void ComputeCurrentValue() { + if (!AtEnd()) + current_value_ = ParamType(*current1_, *current2_, *current3_, + *current4_, *current5_, *current6_, *current7_, *current8_, + *current9_, *current10_); + } + bool AtEnd() const { + // We must report iterator past the end of the range when either of the + // component iterators has reached the end of its range. + return + current1_ == end1_ || + current2_ == end2_ || + current3_ == end3_ || + current4_ == end4_ || + current5_ == end5_ || + current6_ == end6_ || + current7_ == end7_ || + current8_ == end8_ || + current9_ == end9_ || + current10_ == end10_; + } + + // No implementation - assignment is unsupported. + void operator=(const Iterator& other); + + const ParamGeneratorInterface* const base_; + // begin[i]_ and end[i]_ define the i-th range that Iterator traverses. + // current[i]_ is the actual traversing iterator. + const typename ParamGenerator::iterator begin1_; + const typename ParamGenerator::iterator end1_; + typename ParamGenerator::iterator current1_; + const typename ParamGenerator::iterator begin2_; + const typename ParamGenerator::iterator end2_; + typename ParamGenerator::iterator current2_; + const typename ParamGenerator::iterator begin3_; + const typename ParamGenerator::iterator end3_; + typename ParamGenerator::iterator current3_; + const typename ParamGenerator::iterator begin4_; + const typename ParamGenerator::iterator end4_; + typename ParamGenerator::iterator current4_; + const typename ParamGenerator::iterator begin5_; + const typename ParamGenerator::iterator end5_; + typename ParamGenerator::iterator current5_; + const typename ParamGenerator::iterator begin6_; + const typename ParamGenerator::iterator end6_; + typename ParamGenerator::iterator current6_; + const typename ParamGenerator::iterator begin7_; + const typename ParamGenerator::iterator end7_; + typename ParamGenerator::iterator current7_; + const typename ParamGenerator::iterator begin8_; + const typename ParamGenerator::iterator end8_; + typename ParamGenerator::iterator current8_; + const typename ParamGenerator::iterator begin9_; + const typename ParamGenerator::iterator end9_; + typename ParamGenerator::iterator current9_; + const typename ParamGenerator::iterator begin10_; + const typename ParamGenerator::iterator end10_; + typename ParamGenerator::iterator current10_; + ParamType current_value_; + }; // class CartesianProductGenerator10::Iterator + + // No implementation - assignment is unsupported. + void operator=(const CartesianProductGenerator10& other); + + const ParamGenerator g1_; + const ParamGenerator g2_; + const ParamGenerator g3_; + const ParamGenerator g4_; + const ParamGenerator g5_; + const ParamGenerator g6_; + const ParamGenerator g7_; + const ParamGenerator g8_; + const ParamGenerator g9_; + const ParamGenerator g10_; +}; // class CartesianProductGenerator10 + + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// Helper classes providing Combine() with polymorphic features. They allow +// casting CartesianProductGeneratorN to ParamGenerator if T is +// convertible to U. +// +template +class CartesianProductHolder2 { + public: +CartesianProductHolder2(const Generator1& g1, const Generator2& g2) + : g1_(g1), g2_(g2) {} + template + operator ParamGenerator< ::std::tr1::tuple >() const { + return ParamGenerator< ::std::tr1::tuple >( + new CartesianProductGenerator2( + static_cast >(g1_), + static_cast >(g2_))); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const CartesianProductHolder2& other); + + const Generator1 g1_; + const Generator2 g2_; +}; // class CartesianProductHolder2 + +template +class CartesianProductHolder3 { + public: +CartesianProductHolder3(const Generator1& g1, const Generator2& g2, + const Generator3& g3) + : g1_(g1), g2_(g2), g3_(g3) {} + template + operator ParamGenerator< ::std::tr1::tuple >() const { + return ParamGenerator< ::std::tr1::tuple >( + new CartesianProductGenerator3( + static_cast >(g1_), + static_cast >(g2_), + static_cast >(g3_))); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const CartesianProductHolder3& other); + + const Generator1 g1_; + const Generator2 g2_; + const Generator3 g3_; +}; // class CartesianProductHolder3 + +template +class CartesianProductHolder4 { + public: +CartesianProductHolder4(const Generator1& g1, const Generator2& g2, + const Generator3& g3, const Generator4& g4) + : g1_(g1), g2_(g2), g3_(g3), g4_(g4) {} + template + operator ParamGenerator< ::std::tr1::tuple >() const { + return ParamGenerator< ::std::tr1::tuple >( + new CartesianProductGenerator4( + static_cast >(g1_), + static_cast >(g2_), + static_cast >(g3_), + static_cast >(g4_))); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const CartesianProductHolder4& other); + + const Generator1 g1_; + const Generator2 g2_; + const Generator3 g3_; + const Generator4 g4_; +}; // class CartesianProductHolder4 + +template +class CartesianProductHolder5 { + public: +CartesianProductHolder5(const Generator1& g1, const Generator2& g2, + const Generator3& g3, const Generator4& g4, const Generator5& g5) + : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5) {} + template + operator ParamGenerator< ::std::tr1::tuple >() const { + return ParamGenerator< ::std::tr1::tuple >( + new CartesianProductGenerator5( + static_cast >(g1_), + static_cast >(g2_), + static_cast >(g3_), + static_cast >(g4_), + static_cast >(g5_))); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const CartesianProductHolder5& other); + + const Generator1 g1_; + const Generator2 g2_; + const Generator3 g3_; + const Generator4 g4_; + const Generator5 g5_; +}; // class CartesianProductHolder5 + +template +class CartesianProductHolder6 { + public: +CartesianProductHolder6(const Generator1& g1, const Generator2& g2, + const Generator3& g3, const Generator4& g4, const Generator5& g5, + const Generator6& g6) + : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6) {} + template + operator ParamGenerator< ::std::tr1::tuple >() const { + return ParamGenerator< ::std::tr1::tuple >( + new CartesianProductGenerator6( + static_cast >(g1_), + static_cast >(g2_), + static_cast >(g3_), + static_cast >(g4_), + static_cast >(g5_), + static_cast >(g6_))); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const CartesianProductHolder6& other); + + const Generator1 g1_; + const Generator2 g2_; + const Generator3 g3_; + const Generator4 g4_; + const Generator5 g5_; + const Generator6 g6_; +}; // class CartesianProductHolder6 + +template +class CartesianProductHolder7 { + public: +CartesianProductHolder7(const Generator1& g1, const Generator2& g2, + const Generator3& g3, const Generator4& g4, const Generator5& g5, + const Generator6& g6, const Generator7& g7) + : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7) {} + template + operator ParamGenerator< ::std::tr1::tuple >() const { + return ParamGenerator< ::std::tr1::tuple >( + new CartesianProductGenerator7( + static_cast >(g1_), + static_cast >(g2_), + static_cast >(g3_), + static_cast >(g4_), + static_cast >(g5_), + static_cast >(g6_), + static_cast >(g7_))); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const CartesianProductHolder7& other); + + const Generator1 g1_; + const Generator2 g2_; + const Generator3 g3_; + const Generator4 g4_; + const Generator5 g5_; + const Generator6 g6_; + const Generator7 g7_; +}; // class CartesianProductHolder7 + +template +class CartesianProductHolder8 { + public: +CartesianProductHolder8(const Generator1& g1, const Generator2& g2, + const Generator3& g3, const Generator4& g4, const Generator5& g5, + const Generator6& g6, const Generator7& g7, const Generator8& g8) + : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), + g8_(g8) {} + template + operator ParamGenerator< ::std::tr1::tuple >() const { + return ParamGenerator< ::std::tr1::tuple >( + new CartesianProductGenerator8( + static_cast >(g1_), + static_cast >(g2_), + static_cast >(g3_), + static_cast >(g4_), + static_cast >(g5_), + static_cast >(g6_), + static_cast >(g7_), + static_cast >(g8_))); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const CartesianProductHolder8& other); + + const Generator1 g1_; + const Generator2 g2_; + const Generator3 g3_; + const Generator4 g4_; + const Generator5 g5_; + const Generator6 g6_; + const Generator7 g7_; + const Generator8 g8_; +}; // class CartesianProductHolder8 + +template +class CartesianProductHolder9 { + public: +CartesianProductHolder9(const Generator1& g1, const Generator2& g2, + const Generator3& g3, const Generator4& g4, const Generator5& g5, + const Generator6& g6, const Generator7& g7, const Generator8& g8, + const Generator9& g9) + : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8), + g9_(g9) {} + template + operator ParamGenerator< ::std::tr1::tuple >() const { + return ParamGenerator< ::std::tr1::tuple >( + new CartesianProductGenerator9( + static_cast >(g1_), + static_cast >(g2_), + static_cast >(g3_), + static_cast >(g4_), + static_cast >(g5_), + static_cast >(g6_), + static_cast >(g7_), + static_cast >(g8_), + static_cast >(g9_))); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const CartesianProductHolder9& other); + + const Generator1 g1_; + const Generator2 g2_; + const Generator3 g3_; + const Generator4 g4_; + const Generator5 g5_; + const Generator6 g6_; + const Generator7 g7_; + const Generator8 g8_; + const Generator9 g9_; +}; // class CartesianProductHolder9 + +template +class CartesianProductHolder10 { + public: +CartesianProductHolder10(const Generator1& g1, const Generator2& g2, + const Generator3& g3, const Generator4& g4, const Generator5& g5, + const Generator6& g6, const Generator7& g7, const Generator8& g8, + const Generator9& g9, const Generator10& g10) + : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8), + g9_(g9), g10_(g10) {} + template + operator ParamGenerator< ::std::tr1::tuple >() const { + return ParamGenerator< ::std::tr1::tuple >( + new CartesianProductGenerator10( + static_cast >(g1_), + static_cast >(g2_), + static_cast >(g3_), + static_cast >(g4_), + static_cast >(g5_), + static_cast >(g6_), + static_cast >(g7_), + static_cast >(g8_), + static_cast >(g9_), + static_cast >(g10_))); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const CartesianProductHolder10& other); + + const Generator1 g1_; + const Generator2 g2_; + const Generator3 g3_; + const Generator4 g4_; + const Generator5 g5_; + const Generator6 g6_; + const Generator7 g7_; + const Generator8 g8_; + const Generator9 g9_; + const Generator10 g10_; +}; // class CartesianProductHolder10 + +# endif // GTEST_HAS_COMBINE + +} // namespace internal +} // namespace testing + +#endif // GTEST_HAS_PARAM_TEST + +#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_ diff --git a/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h.pump b/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h.pump new file mode 100644 index 0000000..009206f --- /dev/null +++ b/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h.pump @@ -0,0 +1,301 @@ +$$ -*- mode: c++; -*- +$var n = 50 $$ Maximum length of Values arguments we want to support. +$var maxtuple = 10 $$ Maximum number of Combine arguments we want to support. +// Copyright 2008 Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: vladl@google.com (Vlad Losev) + +// Type and function utilities for implementing parameterized tests. +// This file is generated by a SCRIPT. DO NOT EDIT BY HAND! +// +// Currently Google Test supports at most $n arguments in Values, +// and at most $maxtuple arguments in Combine. Please contact +// googletestframework@googlegroups.com if you need more. +// Please note that the number of arguments to Combine is limited +// by the maximum arity of the implementation of tr1::tuple which is +// currently set at $maxtuple. + +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_ + +// scripts/fuse_gtest.py depends on gtest's own header being #included +// *unconditionally*. Therefore these #includes cannot be moved +// inside #if GTEST_HAS_PARAM_TEST. +#include "gtest/internal/gtest-param-util.h" +#include "gtest/internal/gtest-port.h" + +#if GTEST_HAS_PARAM_TEST + +namespace testing { + +// Forward declarations of ValuesIn(), which is implemented in +// include/gtest/gtest-param-test.h. +template +internal::ParamGenerator< + typename ::testing::internal::IteratorTraits::value_type> +ValuesIn(ForwardIterator begin, ForwardIterator end); + +template +internal::ParamGenerator ValuesIn(const T (&array)[N]); + +template +internal::ParamGenerator ValuesIn( + const Container& container); + +namespace internal { + +// Used in the Values() function to provide polymorphic capabilities. +template +class ValueArray1 { + public: + explicit ValueArray1(T1 v1) : v1_(v1) {} + + template + operator ParamGenerator() const { return ValuesIn(&v1_, &v1_ + 1); } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray1& other); + + const T1 v1_; +}; + +$range i 2..n +$for i [[ +$range j 1..i + +template <$for j, [[typename T$j]]> +class ValueArray$i { + public: + ValueArray$i($for j, [[T$j v$j]]) : $for j, [[v$(j)_(v$j)]] {} + + template + operator ParamGenerator() const { + const T array[] = {$for j, [[static_cast(v$(j)_)]]}; + return ValuesIn(array); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const ValueArray$i& other); + +$for j [[ + + const T$j v$(j)_; +]] + +}; + +]] + +# if GTEST_HAS_COMBINE +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// Generates values from the Cartesian product of values produced +// by the argument generators. +// +$range i 2..maxtuple +$for i [[ +$range j 1..i +$range k 2..i + +template <$for j, [[typename T$j]]> +class CartesianProductGenerator$i + : public ParamGeneratorInterface< ::std::tr1::tuple<$for j, [[T$j]]> > { + public: + typedef ::std::tr1::tuple<$for j, [[T$j]]> ParamType; + + CartesianProductGenerator$i($for j, [[const ParamGenerator& g$j]]) + : $for j, [[g$(j)_(g$j)]] {} + virtual ~CartesianProductGenerator$i() {} + + virtual ParamIteratorInterface* Begin() const { + return new Iterator(this, $for j, [[g$(j)_, g$(j)_.begin()]]); + } + virtual ParamIteratorInterface* End() const { + return new Iterator(this, $for j, [[g$(j)_, g$(j)_.end()]]); + } + + private: + class Iterator : public ParamIteratorInterface { + public: + Iterator(const ParamGeneratorInterface* base, $for j, [[ + + const ParamGenerator& g$j, + const typename ParamGenerator::iterator& current$(j)]]) + : base_(base), +$for j, [[ + + begin$(j)_(g$j.begin()), end$(j)_(g$j.end()), current$(j)_(current$j) +]] { + ComputeCurrentValue(); + } + virtual ~Iterator() {} + + virtual const ParamGeneratorInterface* BaseGenerator() const { + return base_; + } + // Advance should not be called on beyond-of-range iterators + // so no component iterators must be beyond end of range, either. + virtual void Advance() { + assert(!AtEnd()); + ++current$(i)_; + +$for k [[ + if (current$(i+2-k)_ == end$(i+2-k)_) { + current$(i+2-k)_ = begin$(i+2-k)_; + ++current$(i+2-k-1)_; + } + +]] + ComputeCurrentValue(); + } + virtual ParamIteratorInterface* Clone() const { + return new Iterator(*this); + } + virtual const ParamType* Current() const { return ¤t_value_; } + virtual bool Equals(const ParamIteratorInterface& other) const { + // Having the same base generator guarantees that the other + // iterator is of the same type and we can downcast. + GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) + << "The program attempted to compare iterators " + << "from different generators." << std::endl; + const Iterator* typed_other = + CheckedDowncastToActualType(&other); + // We must report iterators equal if they both point beyond their + // respective ranges. That can happen in a variety of fashions, + // so we have to consult AtEnd(). + return (AtEnd() && typed_other->AtEnd()) || + ($for j && [[ + + current$(j)_ == typed_other->current$(j)_ +]]); + } + + private: + Iterator(const Iterator& other) + : base_(other.base_), $for j, [[ + + begin$(j)_(other.begin$(j)_), + end$(j)_(other.end$(j)_), + current$(j)_(other.current$(j)_) +]] { + ComputeCurrentValue(); + } + + void ComputeCurrentValue() { + if (!AtEnd()) + current_value_ = ParamType($for j, [[*current$(j)_]]); + } + bool AtEnd() const { + // We must report iterator past the end of the range when either of the + // component iterators has reached the end of its range. + return +$for j || [[ + + current$(j)_ == end$(j)_ +]]; + } + + // No implementation - assignment is unsupported. + void operator=(const Iterator& other); + + const ParamGeneratorInterface* const base_; + // begin[i]_ and end[i]_ define the i-th range that Iterator traverses. + // current[i]_ is the actual traversing iterator. +$for j [[ + + const typename ParamGenerator::iterator begin$(j)_; + const typename ParamGenerator::iterator end$(j)_; + typename ParamGenerator::iterator current$(j)_; +]] + + ParamType current_value_; + }; // class CartesianProductGenerator$i::Iterator + + // No implementation - assignment is unsupported. + void operator=(const CartesianProductGenerator$i& other); + + +$for j [[ + const ParamGenerator g$(j)_; + +]] +}; // class CartesianProductGenerator$i + + +]] + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// Helper classes providing Combine() with polymorphic features. They allow +// casting CartesianProductGeneratorN to ParamGenerator if T is +// convertible to U. +// +$range i 2..maxtuple +$for i [[ +$range j 1..i + +template <$for j, [[class Generator$j]]> +class CartesianProductHolder$i { + public: +CartesianProductHolder$i($for j, [[const Generator$j& g$j]]) + : $for j, [[g$(j)_(g$j)]] {} + template <$for j, [[typename T$j]]> + operator ParamGenerator< ::std::tr1::tuple<$for j, [[T$j]]> >() const { + return ParamGenerator< ::std::tr1::tuple<$for j, [[T$j]]> >( + new CartesianProductGenerator$i<$for j, [[T$j]]>( +$for j,[[ + + static_cast >(g$(j)_) +]])); + } + + private: + // No implementation - assignment is unsupported. + void operator=(const CartesianProductHolder$i& other); + + +$for j [[ + const Generator$j g$(j)_; + +]] +}; // class CartesianProductHolder$i + +]] + +# endif // GTEST_HAS_COMBINE + +} // namespace internal +} // namespace testing + +#endif // GTEST_HAS_PARAM_TEST + +#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_ diff --git a/gtest-1.7.0/include/gtest/internal/gtest-param-util.h b/gtest-1.7.0/include/gtest/internal/gtest-param-util.h new file mode 100644 index 0000000..d5e1028 --- /dev/null +++ b/gtest-1.7.0/include/gtest/internal/gtest-param-util.h @@ -0,0 +1,619 @@ +// Copyright 2008 Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: vladl@google.com (Vlad Losev) + +// Type and function utilities for implementing parameterized tests. + +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ + +#include +#include +#include + +// scripts/fuse_gtest.py depends on gtest's own header being #included +// *unconditionally*. Therefore these #includes cannot be moved +// inside #if GTEST_HAS_PARAM_TEST. +#include "gtest/internal/gtest-internal.h" +#include "gtest/internal/gtest-linked_ptr.h" +#include "gtest/internal/gtest-port.h" +#include "gtest/gtest-printers.h" + +#if GTEST_HAS_PARAM_TEST + +namespace testing { +namespace internal { + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// Outputs a message explaining invalid registration of different +// fixture class for the same test case. This may happen when +// TEST_P macro is used to define two tests with the same name +// but in different namespaces. +GTEST_API_ void ReportInvalidTestCaseType(const char* test_case_name, + const char* file, int line); + +template class ParamGeneratorInterface; +template class ParamGenerator; + +// Interface for iterating over elements provided by an implementation +// of ParamGeneratorInterface. +template +class ParamIteratorInterface { + public: + virtual ~ParamIteratorInterface() {} + // A pointer to the base generator instance. + // Used only for the purposes of iterator comparison + // to make sure that two iterators belong to the same generator. + virtual const ParamGeneratorInterface* BaseGenerator() const = 0; + // Advances iterator to point to the next element + // provided by the generator. The caller is responsible + // for not calling Advance() on an iterator equal to + // BaseGenerator()->End(). + virtual void Advance() = 0; + // Clones the iterator object. Used for implementing copy semantics + // of ParamIterator. + virtual ParamIteratorInterface* Clone() const = 0; + // Dereferences the current iterator and provides (read-only) access + // to the pointed value. It is the caller's responsibility not to call + // Current() on an iterator equal to BaseGenerator()->End(). + // Used for implementing ParamGenerator::operator*(). + virtual const T* Current() const = 0; + // Determines whether the given iterator and other point to the same + // element in the sequence generated by the generator. + // Used for implementing ParamGenerator::operator==(). + virtual bool Equals(const ParamIteratorInterface& other) const = 0; +}; + +// Class iterating over elements provided by an implementation of +// ParamGeneratorInterface. It wraps ParamIteratorInterface +// and implements the const forward iterator concept. +template +class ParamIterator { + public: + typedef T value_type; + typedef const T& reference; + typedef ptrdiff_t difference_type; + + // ParamIterator assumes ownership of the impl_ pointer. + ParamIterator(const ParamIterator& other) : impl_(other.impl_->Clone()) {} + ParamIterator& operator=(const ParamIterator& other) { + if (this != &other) + impl_.reset(other.impl_->Clone()); + return *this; + } + + const T& operator*() const { return *impl_->Current(); } + const T* operator->() const { return impl_->Current(); } + // Prefix version of operator++. + ParamIterator& operator++() { + impl_->Advance(); + return *this; + } + // Postfix version of operator++. + ParamIterator operator++(int /*unused*/) { + ParamIteratorInterface* clone = impl_->Clone(); + impl_->Advance(); + return ParamIterator(clone); + } + bool operator==(const ParamIterator& other) const { + return impl_.get() == other.impl_.get() || impl_->Equals(*other.impl_); + } + bool operator!=(const ParamIterator& other) const { + return !(*this == other); + } + + private: + friend class ParamGenerator; + explicit ParamIterator(ParamIteratorInterface* impl) : impl_(impl) {} + scoped_ptr > impl_; +}; + +// ParamGeneratorInterface is the binary interface to access generators +// defined in other translation units. +template +class ParamGeneratorInterface { + public: + typedef T ParamType; + + virtual ~ParamGeneratorInterface() {} + + // Generator interface definition + virtual ParamIteratorInterface* Begin() const = 0; + virtual ParamIteratorInterface* End() const = 0; +}; + +// Wraps ParamGeneratorInterface and provides general generator syntax +// compatible with the STL Container concept. +// This class implements copy initialization semantics and the contained +// ParamGeneratorInterface instance is shared among all copies +// of the original object. This is possible because that instance is immutable. +template +class ParamGenerator { + public: + typedef ParamIterator iterator; + + explicit ParamGenerator(ParamGeneratorInterface* impl) : impl_(impl) {} + ParamGenerator(const ParamGenerator& other) : impl_(other.impl_) {} + + ParamGenerator& operator=(const ParamGenerator& other) { + impl_ = other.impl_; + return *this; + } + + iterator begin() const { return iterator(impl_->Begin()); } + iterator end() const { return iterator(impl_->End()); } + + private: + linked_ptr > impl_; +}; + +// Generates values from a range of two comparable values. Can be used to +// generate sequences of user-defined types that implement operator+() and +// operator<(). +// This class is used in the Range() function. +template +class RangeGenerator : public ParamGeneratorInterface { + public: + RangeGenerator(T begin, T end, IncrementT step) + : begin_(begin), end_(end), + step_(step), end_index_(CalculateEndIndex(begin, end, step)) {} + virtual ~RangeGenerator() {} + + virtual ParamIteratorInterface* Begin() const { + return new Iterator(this, begin_, 0, step_); + } + virtual ParamIteratorInterface* End() const { + return new Iterator(this, end_, end_index_, step_); + } + + private: + class Iterator : public ParamIteratorInterface { + public: + Iterator(const ParamGeneratorInterface* base, T value, int index, + IncrementT step) + : base_(base), value_(value), index_(index), step_(step) {} + virtual ~Iterator() {} + + virtual const ParamGeneratorInterface* BaseGenerator() const { + return base_; + } + virtual void Advance() { + value_ = value_ + step_; + index_++; + } + virtual ParamIteratorInterface* Clone() const { + return new Iterator(*this); + } + virtual const T* Current() const { return &value_; } + virtual bool Equals(const ParamIteratorInterface& other) const { + // Having the same base generator guarantees that the other + // iterator is of the same type and we can downcast. + GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) + << "The program attempted to compare iterators " + << "from different generators." << std::endl; + const int other_index = + CheckedDowncastToActualType(&other)->index_; + return index_ == other_index; + } + + private: + Iterator(const Iterator& other) + : ParamIteratorInterface(), + base_(other.base_), value_(other.value_), index_(other.index_), + step_(other.step_) {} + + // No implementation - assignment is unsupported. + void operator=(const Iterator& other); + + const ParamGeneratorInterface* const base_; + T value_; + int index_; + const IncrementT step_; + }; // class RangeGenerator::Iterator + + static int CalculateEndIndex(const T& begin, + const T& end, + const IncrementT& step) { + int end_index = 0; + for (T i = begin; i < end; i = i + step) + end_index++; + return end_index; + } + + // No implementation - assignment is unsupported. + void operator=(const RangeGenerator& other); + + const T begin_; + const T end_; + const IncrementT step_; + // The index for the end() iterator. All the elements in the generated + // sequence are indexed (0-based) to aid iterator comparison. + const int end_index_; +}; // class RangeGenerator + + +// Generates values from a pair of STL-style iterators. Used in the +// ValuesIn() function. The elements are copied from the source range +// since the source can be located on the stack, and the generator +// is likely to persist beyond that stack frame. +template +class ValuesInIteratorRangeGenerator : public ParamGeneratorInterface { + public: + template + ValuesInIteratorRangeGenerator(ForwardIterator begin, ForwardIterator end) + : container_(begin, end) {} + virtual ~ValuesInIteratorRangeGenerator() {} + + virtual ParamIteratorInterface* Begin() const { + return new Iterator(this, container_.begin()); + } + virtual ParamIteratorInterface* End() const { + return new Iterator(this, container_.end()); + } + + private: + typedef typename ::std::vector ContainerType; + + class Iterator : public ParamIteratorInterface { + public: + Iterator(const ParamGeneratorInterface* base, + typename ContainerType::const_iterator iterator) + : base_(base), iterator_(iterator) {} + virtual ~Iterator() {} + + virtual const ParamGeneratorInterface* BaseGenerator() const { + return base_; + } + virtual void Advance() { + ++iterator_; + value_.reset(); + } + virtual ParamIteratorInterface* Clone() const { + return new Iterator(*this); + } + // We need to use cached value referenced by iterator_ because *iterator_ + // can return a temporary object (and of type other then T), so just + // having "return &*iterator_;" doesn't work. + // value_ is updated here and not in Advance() because Advance() + // can advance iterator_ beyond the end of the range, and we cannot + // detect that fact. The client code, on the other hand, is + // responsible for not calling Current() on an out-of-range iterator. + virtual const T* Current() const { + if (value_.get() == NULL) + value_.reset(new T(*iterator_)); + return value_.get(); + } + virtual bool Equals(const ParamIteratorInterface& other) const { + // Having the same base generator guarantees that the other + // iterator is of the same type and we can downcast. + GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) + << "The program attempted to compare iterators " + << "from different generators." << std::endl; + return iterator_ == + CheckedDowncastToActualType(&other)->iterator_; + } + + private: + Iterator(const Iterator& other) + // The explicit constructor call suppresses a false warning + // emitted by gcc when supplied with the -Wextra option. + : ParamIteratorInterface(), + base_(other.base_), + iterator_(other.iterator_) {} + + const ParamGeneratorInterface* const base_; + typename ContainerType::const_iterator iterator_; + // A cached value of *iterator_. We keep it here to allow access by + // pointer in the wrapping iterator's operator->(). + // value_ needs to be mutable to be accessed in Current(). + // Use of scoped_ptr helps manage cached value's lifetime, + // which is bound by the lifespan of the iterator itself. + mutable scoped_ptr value_; + }; // class ValuesInIteratorRangeGenerator::Iterator + + // No implementation - assignment is unsupported. + void operator=(const ValuesInIteratorRangeGenerator& other); + + const ContainerType container_; +}; // class ValuesInIteratorRangeGenerator + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// Stores a parameter value and later creates tests parameterized with that +// value. +template +class ParameterizedTestFactory : public TestFactoryBase { + public: + typedef typename TestClass::ParamType ParamType; + explicit ParameterizedTestFactory(ParamType parameter) : + parameter_(parameter) {} + virtual Test* CreateTest() { + TestClass::SetParam(¶meter_); + return new TestClass(); + } + + private: + const ParamType parameter_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestFactory); +}; + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// TestMetaFactoryBase is a base class for meta-factories that create +// test factories for passing into MakeAndRegisterTestInfo function. +template +class TestMetaFactoryBase { + public: + virtual ~TestMetaFactoryBase() {} + + virtual TestFactoryBase* CreateTestFactory(ParamType parameter) = 0; +}; + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// TestMetaFactory creates test factories for passing into +// MakeAndRegisterTestInfo function. Since MakeAndRegisterTestInfo receives +// ownership of test factory pointer, same factory object cannot be passed +// into that method twice. But ParameterizedTestCaseInfo is going to call +// it for each Test/Parameter value combination. Thus it needs meta factory +// creator class. +template +class TestMetaFactory + : public TestMetaFactoryBase { + public: + typedef typename TestCase::ParamType ParamType; + + TestMetaFactory() {} + + virtual TestFactoryBase* CreateTestFactory(ParamType parameter) { + return new ParameterizedTestFactory(parameter); + } + + private: + GTEST_DISALLOW_COPY_AND_ASSIGN_(TestMetaFactory); +}; + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// ParameterizedTestCaseInfoBase is a generic interface +// to ParameterizedTestCaseInfo classes. ParameterizedTestCaseInfoBase +// accumulates test information provided by TEST_P macro invocations +// and generators provided by INSTANTIATE_TEST_CASE_P macro invocations +// and uses that information to register all resulting test instances +// in RegisterTests method. The ParameterizeTestCaseRegistry class holds +// a collection of pointers to the ParameterizedTestCaseInfo objects +// and calls RegisterTests() on each of them when asked. +class ParameterizedTestCaseInfoBase { + public: + virtual ~ParameterizedTestCaseInfoBase() {} + + // Base part of test case name for display purposes. + virtual const string& GetTestCaseName() const = 0; + // Test case id to verify identity. + virtual TypeId GetTestCaseTypeId() const = 0; + // UnitTest class invokes this method to register tests in this + // test case right before running them in RUN_ALL_TESTS macro. + // This method should not be called more then once on any single + // instance of a ParameterizedTestCaseInfoBase derived class. + virtual void RegisterTests() = 0; + + protected: + ParameterizedTestCaseInfoBase() {} + + private: + GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestCaseInfoBase); +}; + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// ParameterizedTestCaseInfo accumulates tests obtained from TEST_P +// macro invocations for a particular test case and generators +// obtained from INSTANTIATE_TEST_CASE_P macro invocations for that +// test case. It registers tests with all values generated by all +// generators when asked. +template +class ParameterizedTestCaseInfo : public ParameterizedTestCaseInfoBase { + public: + // ParamType and GeneratorCreationFunc are private types but are required + // for declarations of public methods AddTestPattern() and + // AddTestCaseInstantiation(). + typedef typename TestCase::ParamType ParamType; + // A function that returns an instance of appropriate generator type. + typedef ParamGenerator(GeneratorCreationFunc)(); + + explicit ParameterizedTestCaseInfo(const char* name) + : test_case_name_(name) {} + + // Test case base name for display purposes. + virtual const string& GetTestCaseName() const { return test_case_name_; } + // Test case id to verify identity. + virtual TypeId GetTestCaseTypeId() const { return GetTypeId(); } + // TEST_P macro uses AddTestPattern() to record information + // about a single test in a LocalTestInfo structure. + // test_case_name is the base name of the test case (without invocation + // prefix). test_base_name is the name of an individual test without + // parameter index. For the test SequenceA/FooTest.DoBar/1 FooTest is + // test case base name and DoBar is test base name. + void AddTestPattern(const char* test_case_name, + const char* test_base_name, + TestMetaFactoryBase* meta_factory) { + tests_.push_back(linked_ptr(new TestInfo(test_case_name, + test_base_name, + meta_factory))); + } + // INSTANTIATE_TEST_CASE_P macro uses AddGenerator() to record information + // about a generator. + int AddTestCaseInstantiation(const string& instantiation_name, + GeneratorCreationFunc* func, + const char* /* file */, + int /* line */) { + instantiations_.push_back(::std::make_pair(instantiation_name, func)); + return 0; // Return value used only to run this method in namespace scope. + } + // UnitTest class invokes this method to register tests in this test case + // test cases right before running tests in RUN_ALL_TESTS macro. + // This method should not be called more then once on any single + // instance of a ParameterizedTestCaseInfoBase derived class. + // UnitTest has a guard to prevent from calling this method more then once. + virtual void RegisterTests() { + for (typename TestInfoContainer::iterator test_it = tests_.begin(); + test_it != tests_.end(); ++test_it) { + linked_ptr test_info = *test_it; + for (typename InstantiationContainer::iterator gen_it = + instantiations_.begin(); gen_it != instantiations_.end(); + ++gen_it) { + const string& instantiation_name = gen_it->first; + ParamGenerator generator((*gen_it->second)()); + + string test_case_name; + if ( !instantiation_name.empty() ) + test_case_name = instantiation_name + "/"; + test_case_name += test_info->test_case_base_name; + + int i = 0; + for (typename ParamGenerator::iterator param_it = + generator.begin(); + param_it != generator.end(); ++param_it, ++i) { + Message test_name_stream; + test_name_stream << test_info->test_base_name << "/" << i; + MakeAndRegisterTestInfo( + test_case_name.c_str(), + test_name_stream.GetString().c_str(), + NULL, // No type parameter. + PrintToString(*param_it).c_str(), + GetTestCaseTypeId(), + TestCase::SetUpTestCase, + TestCase::TearDownTestCase, + test_info->test_meta_factory->CreateTestFactory(*param_it)); + } // for param_it + } // for gen_it + } // for test_it + } // RegisterTests + + private: + // LocalTestInfo structure keeps information about a single test registered + // with TEST_P macro. + struct TestInfo { + TestInfo(const char* a_test_case_base_name, + const char* a_test_base_name, + TestMetaFactoryBase* a_test_meta_factory) : + test_case_base_name(a_test_case_base_name), + test_base_name(a_test_base_name), + test_meta_factory(a_test_meta_factory) {} + + const string test_case_base_name; + const string test_base_name; + const scoped_ptr > test_meta_factory; + }; + typedef ::std::vector > TestInfoContainer; + // Keeps pairs of + // received from INSTANTIATE_TEST_CASE_P macros. + typedef ::std::vector > + InstantiationContainer; + + const string test_case_name_; + TestInfoContainer tests_; + InstantiationContainer instantiations_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestCaseInfo); +}; // class ParameterizedTestCaseInfo + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// ParameterizedTestCaseRegistry contains a map of ParameterizedTestCaseInfoBase +// classes accessed by test case names. TEST_P and INSTANTIATE_TEST_CASE_P +// macros use it to locate their corresponding ParameterizedTestCaseInfo +// descriptors. +class ParameterizedTestCaseRegistry { + public: + ParameterizedTestCaseRegistry() {} + ~ParameterizedTestCaseRegistry() { + for (TestCaseInfoContainer::iterator it = test_case_infos_.begin(); + it != test_case_infos_.end(); ++it) { + delete *it; + } + } + + // Looks up or creates and returns a structure containing information about + // tests and instantiations of a particular test case. + template + ParameterizedTestCaseInfo* GetTestCasePatternHolder( + const char* test_case_name, + const char* file, + int line) { + ParameterizedTestCaseInfo* typed_test_info = NULL; + for (TestCaseInfoContainer::iterator it = test_case_infos_.begin(); + it != test_case_infos_.end(); ++it) { + if ((*it)->GetTestCaseName() == test_case_name) { + if ((*it)->GetTestCaseTypeId() != GetTypeId()) { + // Complain about incorrect usage of Google Test facilities + // and terminate the program since we cannot guaranty correct + // test case setup and tear-down in this case. + ReportInvalidTestCaseType(test_case_name, file, line); + posix::Abort(); + } else { + // At this point we are sure that the object we found is of the same + // type we are looking for, so we downcast it to that type + // without further checks. + typed_test_info = CheckedDowncastToActualType< + ParameterizedTestCaseInfo >(*it); + } + break; + } + } + if (typed_test_info == NULL) { + typed_test_info = new ParameterizedTestCaseInfo(test_case_name); + test_case_infos_.push_back(typed_test_info); + } + return typed_test_info; + } + void RegisterTests() { + for (TestCaseInfoContainer::iterator it = test_case_infos_.begin(); + it != test_case_infos_.end(); ++it) { + (*it)->RegisterTests(); + } + } + + private: + typedef ::std::vector TestCaseInfoContainer; + + TestCaseInfoContainer test_case_infos_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestCaseRegistry); +}; + +} // namespace internal +} // namespace testing + +#endif // GTEST_HAS_PARAM_TEST + +#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ diff --git a/gtest-1.7.0/include/gtest/internal/gtest-port.h b/gtest-1.7.0/include/gtest/internal/gtest-port.h new file mode 100644 index 0000000..dc4fe0c --- /dev/null +++ b/gtest-1.7.0/include/gtest/internal/gtest-port.h @@ -0,0 +1,1947 @@ +// Copyright 2005, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Authors: wan@google.com (Zhanyong Wan) +// +// Low-level types and utilities for porting Google Test to various +// platforms. They are subject to change without notice. DO NOT USE +// THEM IN USER CODE. +// +// This file is fundamental to Google Test. All other Google Test source +// files are expected to #include this. Therefore, it cannot #include +// any other Google Test header. + +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ + +// The user can define the following macros in the build script to +// control Google Test's behavior. If the user doesn't define a macro +// in this list, Google Test will define it. +// +// GTEST_HAS_CLONE - Define it to 1/0 to indicate that clone(2) +// is/isn't available. +// GTEST_HAS_EXCEPTIONS - Define it to 1/0 to indicate that exceptions +// are enabled. +// GTEST_HAS_GLOBAL_STRING - Define it to 1/0 to indicate that ::string +// is/isn't available (some systems define +// ::string, which is different to std::string). +// GTEST_HAS_GLOBAL_WSTRING - Define it to 1/0 to indicate that ::string +// is/isn't available (some systems define +// ::wstring, which is different to std::wstring). +// GTEST_HAS_POSIX_RE - Define it to 1/0 to indicate that POSIX regular +// expressions are/aren't available. +// GTEST_HAS_PTHREAD - Define it to 1/0 to indicate that +// is/isn't available. +// GTEST_HAS_RTTI - Define it to 1/0 to indicate that RTTI is/isn't +// enabled. +// GTEST_HAS_STD_WSTRING - Define it to 1/0 to indicate that +// std::wstring does/doesn't work (Google Test can +// be used where std::wstring is unavailable). +// GTEST_HAS_TR1_TUPLE - Define it to 1/0 to indicate tr1::tuple +// is/isn't available. +// GTEST_HAS_SEH - Define it to 1/0 to indicate whether the +// compiler supports Microsoft's "Structured +// Exception Handling". +// GTEST_HAS_STREAM_REDIRECTION +// - Define it to 1/0 to indicate whether the +// platform supports I/O stream redirection using +// dup() and dup2(). +// GTEST_USE_OWN_TR1_TUPLE - Define it to 1/0 to indicate whether Google +// Test's own tr1 tuple implementation should be +// used. Unused when the user sets +// GTEST_HAS_TR1_TUPLE to 0. +// GTEST_LANG_CXX11 - Define it to 1/0 to indicate that Google Test +// is building in C++11/C++98 mode. +// GTEST_LINKED_AS_SHARED_LIBRARY +// - Define to 1 when compiling tests that use +// Google Test as a shared library (known as +// DLL on Windows). +// GTEST_CREATE_SHARED_LIBRARY +// - Define to 1 when compiling Google Test itself +// as a shared library. + +// This header defines the following utilities: +// +// Macros indicating the current platform (defined to 1 if compiled on +// the given platform; otherwise undefined): +// GTEST_OS_AIX - IBM AIX +// GTEST_OS_CYGWIN - Cygwin +// GTEST_OS_HPUX - HP-UX +// GTEST_OS_LINUX - Linux +// GTEST_OS_LINUX_ANDROID - Google Android +// GTEST_OS_MAC - Mac OS X +// GTEST_OS_IOS - iOS +// GTEST_OS_IOS_SIMULATOR - iOS simulator +// GTEST_OS_NACL - Google Native Client (NaCl) +// GTEST_OS_OPENBSD - OpenBSD +// GTEST_OS_QNX - QNX +// GTEST_OS_SOLARIS - Sun Solaris +// GTEST_OS_SYMBIAN - Symbian +// GTEST_OS_WINDOWS - Windows (Desktop, MinGW, or Mobile) +// GTEST_OS_WINDOWS_DESKTOP - Windows Desktop +// GTEST_OS_WINDOWS_MINGW - MinGW +// GTEST_OS_WINDOWS_MOBILE - Windows Mobile +// GTEST_OS_ZOS - z/OS +// +// Among the platforms, Cygwin, Linux, Max OS X, and Windows have the +// most stable support. Since core members of the Google Test project +// don't have access to other platforms, support for them may be less +// stable. If you notice any problems on your platform, please notify +// googletestframework@googlegroups.com (patches for fixing them are +// even more welcome!). +// +// Note that it is possible that none of the GTEST_OS_* macros are defined. +// +// Macros indicating available Google Test features (defined to 1 if +// the corresponding feature is supported; otherwise undefined): +// GTEST_HAS_COMBINE - the Combine() function (for value-parameterized +// tests) +// GTEST_HAS_DEATH_TEST - death tests +// GTEST_HAS_PARAM_TEST - value-parameterized tests +// GTEST_HAS_TYPED_TEST - typed tests +// GTEST_HAS_TYPED_TEST_P - type-parameterized tests +// GTEST_USES_POSIX_RE - enhanced POSIX regex is used. Do not confuse with +// GTEST_HAS_POSIX_RE (see above) which users can +// define themselves. +// GTEST_USES_SIMPLE_RE - our own simple regex is used; +// the above two are mutually exclusive. +// GTEST_CAN_COMPARE_NULL - accepts untyped NULL in EXPECT_EQ(). +// +// Macros for basic C++ coding: +// GTEST_AMBIGUOUS_ELSE_BLOCKER_ - for disabling a gcc warning. +// GTEST_ATTRIBUTE_UNUSED_ - declares that a class' instances or a +// variable don't have to be used. +// GTEST_DISALLOW_ASSIGN_ - disables operator=. +// GTEST_DISALLOW_COPY_AND_ASSIGN_ - disables copy ctor and operator=. +// GTEST_MUST_USE_RESULT_ - declares that a function's result must be used. +// +// Synchronization: +// Mutex, MutexLock, ThreadLocal, GetThreadCount() +// - synchronization primitives. +// GTEST_IS_THREADSAFE - defined to 1 to indicate that the above +// synchronization primitives have real implementations +// and Google Test is thread-safe; or 0 otherwise. +// +// Template meta programming: +// is_pointer - as in TR1; needed on Symbian and IBM XL C/C++ only. +// IteratorTraits - partial implementation of std::iterator_traits, which +// is not available in libCstd when compiled with Sun C++. +// +// Smart pointers: +// scoped_ptr - as in TR2. +// +// Regular expressions: +// RE - a simple regular expression class using the POSIX +// Extended Regular Expression syntax on UNIX-like +// platforms, or a reduced regular exception syntax on +// other platforms, including Windows. +// +// Logging: +// GTEST_LOG_() - logs messages at the specified severity level. +// LogToStderr() - directs all log messages to stderr. +// FlushInfoLog() - flushes informational log messages. +// +// Stdout and stderr capturing: +// CaptureStdout() - starts capturing stdout. +// GetCapturedStdout() - stops capturing stdout and returns the captured +// string. +// CaptureStderr() - starts capturing stderr. +// GetCapturedStderr() - stops capturing stderr and returns the captured +// string. +// +// Integer types: +// TypeWithSize - maps an integer to a int type. +// Int32, UInt32, Int64, UInt64, TimeInMillis +// - integers of known sizes. +// BiggestInt - the biggest signed integer type. +// +// Command-line utilities: +// GTEST_FLAG() - references a flag. +// GTEST_DECLARE_*() - declares a flag. +// GTEST_DEFINE_*() - defines a flag. +// GetInjectableArgvs() - returns the command line as a vector of strings. +// +// Environment variable utilities: +// GetEnv() - gets the value of an environment variable. +// BoolFromGTestEnv() - parses a bool environment variable. +// Int32FromGTestEnv() - parses an Int32 environment variable. +// StringFromGTestEnv() - parses a string environment variable. + +#include // for isspace, etc +#include // for ptrdiff_t +#include +#include +#include +#ifndef _WIN32_WCE +# include +# include +#endif // !_WIN32_WCE + +#if defined __APPLE__ +# include +# include +#endif + +#include // NOLINT +#include // NOLINT +#include // NOLINT + +#define GTEST_DEV_EMAIL_ "googletestframework@@googlegroups.com" +#define GTEST_FLAG_PREFIX_ "gtest_" +#define GTEST_FLAG_PREFIX_DASH_ "gtest-" +#define GTEST_FLAG_PREFIX_UPPER_ "GTEST_" +#define GTEST_NAME_ "Google Test" +#define GTEST_PROJECT_URL_ "http://code.google.com/p/googletest/" + +// Determines the version of gcc that is used to compile this. +#ifdef __GNUC__ +// 40302 means version 4.3.2. +# define GTEST_GCC_VER_ \ + (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__) +#endif // __GNUC__ + +// Determines the platform on which Google Test is compiled. +#ifdef __CYGWIN__ +# define GTEST_OS_CYGWIN 1 +#elif defined __SYMBIAN32__ +# define GTEST_OS_SYMBIAN 1 +#elif defined _WIN32 +# define GTEST_OS_WINDOWS 1 +# ifdef _WIN32_WCE +# define GTEST_OS_WINDOWS_MOBILE 1 +# elif defined(__MINGW__) || defined(__MINGW32__) +# define GTEST_OS_WINDOWS_MINGW 1 +# else +# define GTEST_OS_WINDOWS_DESKTOP 1 +# endif // _WIN32_WCE +#elif defined __APPLE__ +# define GTEST_OS_MAC 1 +# if TARGET_OS_IPHONE +# define GTEST_OS_IOS 1 +# if TARGET_IPHONE_SIMULATOR +# define GTEST_OS_IOS_SIMULATOR 1 +# endif +# endif +#elif defined __linux__ +# define GTEST_OS_LINUX 1 +# if defined __ANDROID__ +# define GTEST_OS_LINUX_ANDROID 1 +# endif +#elif defined __MVS__ +# define GTEST_OS_ZOS 1 +#elif defined(__sun) && defined(__SVR4) +# define GTEST_OS_SOLARIS 1 +#elif defined(_AIX) +# define GTEST_OS_AIX 1 +#elif defined(__hpux) +# define GTEST_OS_HPUX 1 +#elif defined __native_client__ +# define GTEST_OS_NACL 1 +#elif defined __OpenBSD__ +# define GTEST_OS_OPENBSD 1 +#elif defined __QNX__ +# define GTEST_OS_QNX 1 +#endif // __CYGWIN__ + +#ifndef GTEST_LANG_CXX11 +// gcc and clang define __GXX_EXPERIMENTAL_CXX0X__ when +// -std={c,gnu}++{0x,11} is passed. The C++11 standard specifies a +// value for __cplusplus, and recent versions of clang, gcc, and +// probably other compilers set that too in C++11 mode. +# if __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L +// Compiling in at least C++11 mode. +# define GTEST_LANG_CXX11 1 +# else +# define GTEST_LANG_CXX11 0 +# endif +#endif + +// Brings in definitions for functions used in the testing::internal::posix +// namespace (read, write, close, chdir, isatty, stat). We do not currently +// use them on Windows Mobile. +#if !GTEST_OS_WINDOWS +// This assumes that non-Windows OSes provide unistd.h. For OSes where this +// is not the case, we need to include headers that provide the functions +// mentioned above. +# include +# include +#elif !GTEST_OS_WINDOWS_MOBILE +# include +# include +#endif + +#if GTEST_OS_LINUX_ANDROID +// Used to define __ANDROID_API__ matching the target NDK API level. +# include // NOLINT +#endif + +// Defines this to true iff Google Test can use POSIX regular expressions. +#ifndef GTEST_HAS_POSIX_RE +# if GTEST_OS_LINUX_ANDROID +// On Android, is only available starting with Gingerbread. +# define GTEST_HAS_POSIX_RE (__ANDROID_API__ >= 9) +# else +# define GTEST_HAS_POSIX_RE (!GTEST_OS_WINDOWS) +# endif +#endif + +#if GTEST_HAS_POSIX_RE + +// On some platforms, needs someone to define size_t, and +// won't compile otherwise. We can #include it here as we already +// included , which is guaranteed to define size_t through +// . +# include // NOLINT + +# define GTEST_USES_POSIX_RE 1 + +#elif GTEST_OS_WINDOWS + +// is not available on Windows. Use our own simple regex +// implementation instead. +# define GTEST_USES_SIMPLE_RE 1 + +#else + +// may not be available on this platform. Use our own +// simple regex implementation instead. +# define GTEST_USES_SIMPLE_RE 1 + +#endif // GTEST_HAS_POSIX_RE + +#ifndef GTEST_HAS_EXCEPTIONS +// The user didn't tell us whether exceptions are enabled, so we need +// to figure it out. +# if defined(_MSC_VER) || defined(__BORLANDC__) +// MSVC's and C++Builder's implementations of the STL use the _HAS_EXCEPTIONS +// macro to enable exceptions, so we'll do the same. +// Assumes that exceptions are enabled by default. +# ifndef _HAS_EXCEPTIONS +# define _HAS_EXCEPTIONS 1 +# endif // _HAS_EXCEPTIONS +# define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS +# elif defined(__GNUC__) && __EXCEPTIONS +// gcc defines __EXCEPTIONS to 1 iff exceptions are enabled. +# define GTEST_HAS_EXCEPTIONS 1 +# elif defined(__SUNPRO_CC) +// Sun Pro CC supports exceptions. However, there is no compile-time way of +// detecting whether they are enabled or not. Therefore, we assume that +// they are enabled unless the user tells us otherwise. +# define GTEST_HAS_EXCEPTIONS 1 +# elif defined(__IBMCPP__) && __EXCEPTIONS +// xlC defines __EXCEPTIONS to 1 iff exceptions are enabled. +# define GTEST_HAS_EXCEPTIONS 1 +# elif defined(__HP_aCC) +// Exception handling is in effect by default in HP aCC compiler. It has to +// be turned of by +noeh compiler option if desired. +# define GTEST_HAS_EXCEPTIONS 1 +# else +// For other compilers, we assume exceptions are disabled to be +// conservative. +# define GTEST_HAS_EXCEPTIONS 0 +# endif // defined(_MSC_VER) || defined(__BORLANDC__) +#endif // GTEST_HAS_EXCEPTIONS + +#if !defined(GTEST_HAS_STD_STRING) +// Even though we don't use this macro any longer, we keep it in case +// some clients still depend on it. +# define GTEST_HAS_STD_STRING 1 +#elif !GTEST_HAS_STD_STRING +// The user told us that ::std::string isn't available. +# error "Google Test cannot be used where ::std::string isn't available." +#endif // !defined(GTEST_HAS_STD_STRING) + +#ifndef GTEST_HAS_GLOBAL_STRING +// The user didn't tell us whether ::string is available, so we need +// to figure it out. + +# define GTEST_HAS_GLOBAL_STRING 0 + +#endif // GTEST_HAS_GLOBAL_STRING + +#ifndef GTEST_HAS_STD_WSTRING +// The user didn't tell us whether ::std::wstring is available, so we need +// to figure it out. +// TODO(wan@google.com): uses autoconf to detect whether ::std::wstring +// is available. + +// Cygwin 1.7 and below doesn't support ::std::wstring. +// Solaris' libc++ doesn't support it either. Android has +// no support for it at least as recent as Froyo (2.2). +# define GTEST_HAS_STD_WSTRING \ + (!(GTEST_OS_LINUX_ANDROID || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS)) + +#endif // GTEST_HAS_STD_WSTRING + +#ifndef GTEST_HAS_GLOBAL_WSTRING +// The user didn't tell us whether ::wstring is available, so we need +// to figure it out. +# define GTEST_HAS_GLOBAL_WSTRING \ + (GTEST_HAS_STD_WSTRING && GTEST_HAS_GLOBAL_STRING) +#endif // GTEST_HAS_GLOBAL_WSTRING + +// Determines whether RTTI is available. +#ifndef GTEST_HAS_RTTI +// The user didn't tell us whether RTTI is enabled, so we need to +// figure it out. + +# ifdef _MSC_VER + +# ifdef _CPPRTTI // MSVC defines this macro iff RTTI is enabled. +# define GTEST_HAS_RTTI 1 +# else +# define GTEST_HAS_RTTI 0 +# endif + +// Starting with version 4.3.2, gcc defines __GXX_RTTI iff RTTI is enabled. +# elif defined(__GNUC__) && (GTEST_GCC_VER_ >= 40302) + +# ifdef __GXX_RTTI +// When building against STLport with the Android NDK and with +// -frtti -fno-exceptions, the build fails at link time with undefined +// references to __cxa_bad_typeid. Note sure if STL or toolchain bug, +// so disable RTTI when detected. +# if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) && \ + !defined(__EXCEPTIONS) +# define GTEST_HAS_RTTI 0 +# else +# define GTEST_HAS_RTTI 1 +# endif // GTEST_OS_LINUX_ANDROID && __STLPORT_MAJOR && !__EXCEPTIONS +# else +# define GTEST_HAS_RTTI 0 +# endif // __GXX_RTTI + +// Clang defines __GXX_RTTI starting with version 3.0, but its manual recommends +// using has_feature instead. has_feature(cxx_rtti) is supported since 2.7, the +// first version with C++ support. +# elif defined(__clang__) + +# define GTEST_HAS_RTTI __has_feature(cxx_rtti) + +// Starting with version 9.0 IBM Visual Age defines __RTTI_ALL__ to 1 if +// both the typeid and dynamic_cast features are present. +# elif defined(__IBMCPP__) && (__IBMCPP__ >= 900) + +# ifdef __RTTI_ALL__ +# define GTEST_HAS_RTTI 1 +# else +# define GTEST_HAS_RTTI 0 +# endif + +# else + +// For all other compilers, we assume RTTI is enabled. +# define GTEST_HAS_RTTI 1 + +# endif // _MSC_VER + +#endif // GTEST_HAS_RTTI + +// It's this header's responsibility to #include when RTTI +// is enabled. +#if GTEST_HAS_RTTI +# include +#endif + +// Determines whether Google Test can use the pthreads library. +#ifndef GTEST_HAS_PTHREAD +// The user didn't tell us explicitly, so we assume pthreads support is +// available on Linux and Mac. +// +// To disable threading support in Google Test, add -DGTEST_HAS_PTHREAD=0 +// to your compiler flags. +# define GTEST_HAS_PTHREAD (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX \ + || GTEST_OS_QNX) +#endif // GTEST_HAS_PTHREAD + +#if GTEST_HAS_PTHREAD +// gtest-port.h guarantees to #include when GTEST_HAS_PTHREAD is +// true. +# include // NOLINT + +// For timespec and nanosleep, used below. +# include // NOLINT +#endif + +// Determines whether Google Test can use tr1/tuple. You can define +// this macro to 0 to prevent Google Test from using tuple (any +// feature depending on tuple with be disabled in this mode). +#ifndef GTEST_HAS_TR1_TUPLE +# if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) +// STLport, provided with the Android NDK, has neither or . +# define GTEST_HAS_TR1_TUPLE 0 +# else +// The user didn't tell us not to do it, so we assume it's OK. +# define GTEST_HAS_TR1_TUPLE 1 +# endif +#endif // GTEST_HAS_TR1_TUPLE + +// Determines whether Google Test's own tr1 tuple implementation +// should be used. +#ifndef GTEST_USE_OWN_TR1_TUPLE +// The user didn't tell us, so we need to figure it out. + +// We use our own TR1 tuple if we aren't sure the user has an +// implementation of it already. At this time, libstdc++ 4.0.0+ and +// MSVC 2010 are the only mainstream standard libraries that come +// with a TR1 tuple implementation. NVIDIA's CUDA NVCC compiler +// pretends to be GCC by defining __GNUC__ and friends, but cannot +// compile GCC's tuple implementation. MSVC 2008 (9.0) provides TR1 +// tuple in a 323 MB Feature Pack download, which we cannot assume the +// user has. QNX's QCC compiler is a modified GCC but it doesn't +// support TR1 tuple. libc++ only provides std::tuple, in C++11 mode, +// and it can be used with some compilers that define __GNUC__. +# if (defined(__GNUC__) && !defined(__CUDACC__) && (GTEST_GCC_VER_ >= 40000) \ + && !GTEST_OS_QNX && !defined(_LIBCPP_VERSION)) || _MSC_VER >= 1600 +# define GTEST_ENV_HAS_TR1_TUPLE_ 1 +# endif + +// C++11 specifies that provides std::tuple. Use that if gtest is used +// in C++11 mode and libstdc++ isn't very old (binaries targeting OS X 10.6 +// can build with clang but need to use gcc4.2's libstdc++). +# if GTEST_LANG_CXX11 && (!defined(__GLIBCXX__) || __GLIBCXX__ > 20110325) +# define GTEST_ENV_HAS_STD_TUPLE_ 1 +# endif + +# if GTEST_ENV_HAS_TR1_TUPLE_ || GTEST_ENV_HAS_STD_TUPLE_ +# define GTEST_USE_OWN_TR1_TUPLE 0 +# else +# define GTEST_USE_OWN_TR1_TUPLE 1 +# endif + +#endif // GTEST_USE_OWN_TR1_TUPLE + +// To avoid conditional compilation everywhere, we make it +// gtest-port.h's responsibility to #include the header implementing +// tr1/tuple. +#if GTEST_HAS_TR1_TUPLE + +# if GTEST_USE_OWN_TR1_TUPLE +# include "gtest/internal/gtest-tuple.h" +# elif GTEST_ENV_HAS_STD_TUPLE_ +# include +// C++11 puts its tuple into the ::std namespace rather than +// ::std::tr1. gtest expects tuple to live in ::std::tr1, so put it there. +// This causes undefined behavior, but supported compilers react in +// the way we intend. +namespace std { +namespace tr1 { +using ::std::get; +using ::std::make_tuple; +using ::std::tuple; +using ::std::tuple_element; +using ::std::tuple_size; +} +} + +# elif GTEST_OS_SYMBIAN + +// On Symbian, BOOST_HAS_TR1_TUPLE causes Boost's TR1 tuple library to +// use STLport's tuple implementation, which unfortunately doesn't +// work as the copy of STLport distributed with Symbian is incomplete. +// By making sure BOOST_HAS_TR1_TUPLE is undefined, we force Boost to +// use its own tuple implementation. +# ifdef BOOST_HAS_TR1_TUPLE +# undef BOOST_HAS_TR1_TUPLE +# endif // BOOST_HAS_TR1_TUPLE + +// This prevents , which defines +// BOOST_HAS_TR1_TUPLE, from being #included by Boost's . +# define BOOST_TR1_DETAIL_CONFIG_HPP_INCLUDED +# include + +# elif defined(__GNUC__) && (GTEST_GCC_VER_ >= 40000) +// GCC 4.0+ implements tr1/tuple in the header. This does +// not conform to the TR1 spec, which requires the header to be . + +# if !GTEST_HAS_RTTI && GTEST_GCC_VER_ < 40302 +// Until version 4.3.2, gcc has a bug that causes , +// which is #included by , to not compile when RTTI is +// disabled. _TR1_FUNCTIONAL is the header guard for +// . Hence the following #define is a hack to prevent +// from being included. +# define _TR1_FUNCTIONAL 1 +# include +# undef _TR1_FUNCTIONAL // Allows the user to #include + // if he chooses to. +# else +# include // NOLINT +# endif // !GTEST_HAS_RTTI && GTEST_GCC_VER_ < 40302 + +# else +// If the compiler is not GCC 4.0+, we assume the user is using a +// spec-conforming TR1 implementation. +# include // NOLINT +# endif // GTEST_USE_OWN_TR1_TUPLE + +#endif // GTEST_HAS_TR1_TUPLE + +// Determines whether clone(2) is supported. +// Usually it will only be available on Linux, excluding +// Linux on the Itanium architecture. +// Also see http://linux.die.net/man/2/clone. +#ifndef GTEST_HAS_CLONE +// The user didn't tell us, so we need to figure it out. + +# if GTEST_OS_LINUX && !defined(__ia64__) +# if GTEST_OS_LINUX_ANDROID +// On Android, clone() is only available on ARM starting with Gingerbread. +# if defined(__arm__) && __ANDROID_API__ >= 9 +# define GTEST_HAS_CLONE 1 +# else +# define GTEST_HAS_CLONE 0 +# endif +# else +# define GTEST_HAS_CLONE 1 +# endif +# else +# define GTEST_HAS_CLONE 0 +# endif // GTEST_OS_LINUX && !defined(__ia64__) + +#endif // GTEST_HAS_CLONE + +// Determines whether to support stream redirection. This is used to test +// output correctness and to implement death tests. +#ifndef GTEST_HAS_STREAM_REDIRECTION +// By default, we assume that stream redirection is supported on all +// platforms except known mobile ones. +# if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_SYMBIAN +# define GTEST_HAS_STREAM_REDIRECTION 0 +# else +# define GTEST_HAS_STREAM_REDIRECTION 1 +# endif // !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_SYMBIAN +#endif // GTEST_HAS_STREAM_REDIRECTION + +// Determines whether to support death tests. +// Google Test does not support death tests for VC 7.1 and earlier as +// abort() in a VC 7.1 application compiled as GUI in debug config +// pops up a dialog window that cannot be suppressed programmatically. +#if (GTEST_OS_LINUX || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \ + (GTEST_OS_MAC && !GTEST_OS_IOS) || GTEST_OS_IOS_SIMULATOR || \ + (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER >= 1400) || \ + GTEST_OS_WINDOWS_MINGW || GTEST_OS_AIX || GTEST_OS_HPUX || \ + GTEST_OS_OPENBSD || GTEST_OS_QNX) +# define GTEST_HAS_DEATH_TEST 1 +# include // NOLINT +#endif + +// We don't support MSVC 7.1 with exceptions disabled now. Therefore +// all the compilers we care about are adequate for supporting +// value-parameterized tests. +#define GTEST_HAS_PARAM_TEST 1 + +// Determines whether to support type-driven tests. + +// Typed tests need and variadic macros, which GCC, VC++ 8.0, +// Sun Pro CC, IBM Visual Age, and HP aCC support. +#if defined(__GNUC__) || (_MSC_VER >= 1400) || defined(__SUNPRO_CC) || \ + defined(__IBMCPP__) || defined(__HP_aCC) +# define GTEST_HAS_TYPED_TEST 1 +# define GTEST_HAS_TYPED_TEST_P 1 +#endif + +// Determines whether to support Combine(). This only makes sense when +// value-parameterized tests are enabled. The implementation doesn't +// work on Sun Studio since it doesn't understand templated conversion +// operators. +#if GTEST_HAS_PARAM_TEST && GTEST_HAS_TR1_TUPLE && !defined(__SUNPRO_CC) +# define GTEST_HAS_COMBINE 1 +#endif + +// Determines whether the system compiler uses UTF-16 for encoding wide strings. +#define GTEST_WIDE_STRING_USES_UTF16_ \ + (GTEST_OS_WINDOWS || GTEST_OS_CYGWIN || GTEST_OS_SYMBIAN || GTEST_OS_AIX) + +// Determines whether test results can be streamed to a socket. +#if GTEST_OS_LINUX +# define GTEST_CAN_STREAM_RESULTS_ 1 +#endif + +// Defines some utility macros. + +// The GNU compiler emits a warning if nested "if" statements are followed by +// an "else" statement and braces are not used to explicitly disambiguate the +// "else" binding. This leads to problems with code like: +// +// if (gate) +// ASSERT_*(condition) << "Some message"; +// +// The "switch (0) case 0:" idiom is used to suppress this. +#ifdef __INTEL_COMPILER +# define GTEST_AMBIGUOUS_ELSE_BLOCKER_ +#else +# define GTEST_AMBIGUOUS_ELSE_BLOCKER_ switch (0) case 0: default: // NOLINT +#endif + +// Use this annotation at the end of a struct/class definition to +// prevent the compiler from optimizing away instances that are never +// used. This is useful when all interesting logic happens inside the +// c'tor and / or d'tor. Example: +// +// struct Foo { +// Foo() { ... } +// } GTEST_ATTRIBUTE_UNUSED_; +// +// Also use it after a variable or parameter declaration to tell the +// compiler the variable/parameter does not have to be used. +#if defined(__GNUC__) && !defined(COMPILER_ICC) +# define GTEST_ATTRIBUTE_UNUSED_ __attribute__ ((unused)) +#else +# define GTEST_ATTRIBUTE_UNUSED_ +#endif + +// A macro to disallow operator= +// This should be used in the private: declarations for a class. +#define GTEST_DISALLOW_ASSIGN_(type)\ + void operator=(type const &) + +// A macro to disallow copy constructor and operator= +// This should be used in the private: declarations for a class. +#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type)\ + type(type const &);\ + GTEST_DISALLOW_ASSIGN_(type) + +// Tell the compiler to warn about unused return values for functions declared +// with this macro. The macro should be used on function declarations +// following the argument list: +// +// Sprocket* AllocateSprocket() GTEST_MUST_USE_RESULT_; +#if defined(__GNUC__) && (GTEST_GCC_VER_ >= 30400) && !defined(COMPILER_ICC) +# define GTEST_MUST_USE_RESULT_ __attribute__ ((warn_unused_result)) +#else +# define GTEST_MUST_USE_RESULT_ +#endif // __GNUC__ && (GTEST_GCC_VER_ >= 30400) && !COMPILER_ICC + +// Determine whether the compiler supports Microsoft's Structured Exception +// Handling. This is supported by several Windows compilers but generally +// does not exist on any other system. +#ifndef GTEST_HAS_SEH +// The user didn't tell us, so we need to figure it out. + +# if defined(_MSC_VER) || defined(__BORLANDC__) +// These two compilers are known to support SEH. +# define GTEST_HAS_SEH 1 +# else +// Assume no SEH. +# define GTEST_HAS_SEH 0 +# endif + +#endif // GTEST_HAS_SEH + +#ifdef _MSC_VER + +# if GTEST_LINKED_AS_SHARED_LIBRARY +# define GTEST_API_ __declspec(dllimport) +# elif GTEST_CREATE_SHARED_LIBRARY +# define GTEST_API_ __declspec(dllexport) +# endif + +#endif // _MSC_VER + +#ifndef GTEST_API_ +# define GTEST_API_ +#endif + +#ifdef __GNUC__ +// Ask the compiler to never inline a given function. +# define GTEST_NO_INLINE_ __attribute__((noinline)) +#else +# define GTEST_NO_INLINE_ +#endif + +// _LIBCPP_VERSION is defined by the libc++ library from the LLVM project. +#if defined(__GLIBCXX__) || defined(_LIBCPP_VERSION) +# define GTEST_HAS_CXXABI_H_ 1 +#else +# define GTEST_HAS_CXXABI_H_ 0 +#endif + +namespace testing { + +class Message; + +namespace internal { + +// A secret type that Google Test users don't know about. It has no +// definition on purpose. Therefore it's impossible to create a +// Secret object, which is what we want. +class Secret; + +// The GTEST_COMPILE_ASSERT_ macro can be used to verify that a compile time +// expression is true. For example, you could use it to verify the +// size of a static array: +// +// GTEST_COMPILE_ASSERT_(ARRAYSIZE(content_type_names) == CONTENT_NUM_TYPES, +// content_type_names_incorrect_size); +// +// or to make sure a struct is smaller than a certain size: +// +// GTEST_COMPILE_ASSERT_(sizeof(foo) < 128, foo_too_large); +// +// The second argument to the macro is the name of the variable. If +// the expression is false, most compilers will issue a warning/error +// containing the name of the variable. + +template +struct CompileAssert { +}; + +#define GTEST_COMPILE_ASSERT_(expr, msg) \ + typedef ::testing::internal::CompileAssert<(static_cast(expr))> \ + msg[static_cast(expr) ? 1 : -1] GTEST_ATTRIBUTE_UNUSED_ + +// Implementation details of GTEST_COMPILE_ASSERT_: +// +// - GTEST_COMPILE_ASSERT_ works by defining an array type that has -1 +// elements (and thus is invalid) when the expression is false. +// +// - The simpler definition +// +// #define GTEST_COMPILE_ASSERT_(expr, msg) typedef char msg[(expr) ? 1 : -1] +// +// does not work, as gcc supports variable-length arrays whose sizes +// are determined at run-time (this is gcc's extension and not part +// of the C++ standard). As a result, gcc fails to reject the +// following code with the simple definition: +// +// int foo; +// GTEST_COMPILE_ASSERT_(foo, msg); // not supposed to compile as foo is +// // not a compile-time constant. +// +// - By using the type CompileAssert<(bool(expr))>, we ensures that +// expr is a compile-time constant. (Template arguments must be +// determined at compile-time.) +// +// - The outter parentheses in CompileAssert<(bool(expr))> are necessary +// to work around a bug in gcc 3.4.4 and 4.0.1. If we had written +// +// CompileAssert +// +// instead, these compilers will refuse to compile +// +// GTEST_COMPILE_ASSERT_(5 > 0, some_message); +// +// (They seem to think the ">" in "5 > 0" marks the end of the +// template argument list.) +// +// - The array size is (bool(expr) ? 1 : -1), instead of simply +// +// ((expr) ? 1 : -1). +// +// This is to avoid running into a bug in MS VC 7.1, which +// causes ((0.0) ? 1 : -1) to incorrectly evaluate to 1. + +// StaticAssertTypeEqHelper is used by StaticAssertTypeEq defined in gtest.h. +// +// This template is declared, but intentionally undefined. +template +struct StaticAssertTypeEqHelper; + +template +struct StaticAssertTypeEqHelper {}; + +#if GTEST_HAS_GLOBAL_STRING +typedef ::string string; +#else +typedef ::std::string string; +#endif // GTEST_HAS_GLOBAL_STRING + +#if GTEST_HAS_GLOBAL_WSTRING +typedef ::wstring wstring; +#elif GTEST_HAS_STD_WSTRING +typedef ::std::wstring wstring; +#endif // GTEST_HAS_GLOBAL_WSTRING + +// A helper for suppressing warnings on constant condition. It just +// returns 'condition'. +GTEST_API_ bool IsTrue(bool condition); + +// Defines scoped_ptr. + +// This implementation of scoped_ptr is PARTIAL - it only contains +// enough stuff to satisfy Google Test's need. +template +class scoped_ptr { + public: + typedef T element_type; + + explicit scoped_ptr(T* p = NULL) : ptr_(p) {} + ~scoped_ptr() { reset(); } + + T& operator*() const { return *ptr_; } + T* operator->() const { return ptr_; } + T* get() const { return ptr_; } + + T* release() { + T* const ptr = ptr_; + ptr_ = NULL; + return ptr; + } + + void reset(T* p = NULL) { + if (p != ptr_) { + if (IsTrue(sizeof(T) > 0)) { // Makes sure T is a complete type. + delete ptr_; + } + ptr_ = p; + } + } + + private: + T* ptr_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(scoped_ptr); +}; + +// Defines RE. + +// A simple C++ wrapper for . It uses the POSIX Extended +// Regular Expression syntax. +class GTEST_API_ RE { + public: + // A copy constructor is required by the Standard to initialize object + // references from r-values. + RE(const RE& other) { Init(other.pattern()); } + + // Constructs an RE from a string. + RE(const ::std::string& regex) { Init(regex.c_str()); } // NOLINT + +#if GTEST_HAS_GLOBAL_STRING + + RE(const ::string& regex) { Init(regex.c_str()); } // NOLINT + +#endif // GTEST_HAS_GLOBAL_STRING + + RE(const char* regex) { Init(regex); } // NOLINT + ~RE(); + + // Returns the string representation of the regex. + const char* pattern() const { return pattern_; } + + // FullMatch(str, re) returns true iff regular expression re matches + // the entire str. + // PartialMatch(str, re) returns true iff regular expression re + // matches a substring of str (including str itself). + // + // TODO(wan@google.com): make FullMatch() and PartialMatch() work + // when str contains NUL characters. + static bool FullMatch(const ::std::string& str, const RE& re) { + return FullMatch(str.c_str(), re); + } + static bool PartialMatch(const ::std::string& str, const RE& re) { + return PartialMatch(str.c_str(), re); + } + +#if GTEST_HAS_GLOBAL_STRING + + static bool FullMatch(const ::string& str, const RE& re) { + return FullMatch(str.c_str(), re); + } + static bool PartialMatch(const ::string& str, const RE& re) { + return PartialMatch(str.c_str(), re); + } + +#endif // GTEST_HAS_GLOBAL_STRING + + static bool FullMatch(const char* str, const RE& re); + static bool PartialMatch(const char* str, const RE& re); + + private: + void Init(const char* regex); + + // We use a const char* instead of an std::string, as Google Test used to be + // used where std::string is not available. TODO(wan@google.com): change to + // std::string. + const char* pattern_; + bool is_valid_; + +#if GTEST_USES_POSIX_RE + + regex_t full_regex_; // For FullMatch(). + regex_t partial_regex_; // For PartialMatch(). + +#else // GTEST_USES_SIMPLE_RE + + const char* full_pattern_; // For FullMatch(); + +#endif + + GTEST_DISALLOW_ASSIGN_(RE); +}; + +// Formats a source file path and a line number as they would appear +// in an error message from the compiler used to compile this code. +GTEST_API_ ::std::string FormatFileLocation(const char* file, int line); + +// Formats a file location for compiler-independent XML output. +// Although this function is not platform dependent, we put it next to +// FormatFileLocation in order to contrast the two functions. +GTEST_API_ ::std::string FormatCompilerIndependentFileLocation(const char* file, + int line); + +// Defines logging utilities: +// GTEST_LOG_(severity) - logs messages at the specified severity level. The +// message itself is streamed into the macro. +// LogToStderr() - directs all log messages to stderr. +// FlushInfoLog() - flushes informational log messages. + +enum GTestLogSeverity { + GTEST_INFO, + GTEST_WARNING, + GTEST_ERROR, + GTEST_FATAL +}; + +// Formats log entry severity, provides a stream object for streaming the +// log message, and terminates the message with a newline when going out of +// scope. +class GTEST_API_ GTestLog { + public: + GTestLog(GTestLogSeverity severity, const char* file, int line); + + // Flushes the buffers and, if severity is GTEST_FATAL, aborts the program. + ~GTestLog(); + + ::std::ostream& GetStream() { return ::std::cerr; } + + private: + const GTestLogSeverity severity_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestLog); +}; + +#define GTEST_LOG_(severity) \ + ::testing::internal::GTestLog(::testing::internal::GTEST_##severity, \ + __FILE__, __LINE__).GetStream() + +inline void LogToStderr() {} +inline void FlushInfoLog() { fflush(NULL); } + +// INTERNAL IMPLEMENTATION - DO NOT USE. +// +// GTEST_CHECK_ is an all-mode assert. It aborts the program if the condition +// is not satisfied. +// Synopsys: +// GTEST_CHECK_(boolean_condition); +// or +// GTEST_CHECK_(boolean_condition) << "Additional message"; +// +// This checks the condition and if the condition is not satisfied +// it prints message about the condition violation, including the +// condition itself, plus additional message streamed into it, if any, +// and then it aborts the program. It aborts the program irrespective of +// whether it is built in the debug mode or not. +#define GTEST_CHECK_(condition) \ + GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ + if (::testing::internal::IsTrue(condition)) \ + ; \ + else \ + GTEST_LOG_(FATAL) << "Condition " #condition " failed. " + +// An all-mode assert to verify that the given POSIX-style function +// call returns 0 (indicating success). Known limitation: this +// doesn't expand to a balanced 'if' statement, so enclose the macro +// in {} if you need to use it as the only statement in an 'if' +// branch. +#define GTEST_CHECK_POSIX_SUCCESS_(posix_call) \ + if (const int gtest_error = (posix_call)) \ + GTEST_LOG_(FATAL) << #posix_call << "failed with error " \ + << gtest_error + +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. +// +// Use ImplicitCast_ as a safe version of static_cast for upcasting in +// the type hierarchy (e.g. casting a Foo* to a SuperclassOfFoo* or a +// const Foo*). When you use ImplicitCast_, the compiler checks that +// the cast is safe. Such explicit ImplicitCast_s are necessary in +// surprisingly many situations where C++ demands an exact type match +// instead of an argument type convertable to a target type. +// +// The syntax for using ImplicitCast_ is the same as for static_cast: +// +// ImplicitCast_(expr) +// +// ImplicitCast_ would have been part of the C++ standard library, +// but the proposal was submitted too late. It will probably make +// its way into the language in the future. +// +// This relatively ugly name is intentional. It prevents clashes with +// similar functions users may have (e.g., implicit_cast). The internal +// namespace alone is not enough because the function can be found by ADL. +template +inline To ImplicitCast_(To x) { return x; } + +// When you upcast (that is, cast a pointer from type Foo to type +// SuperclassOfFoo), it's fine to use ImplicitCast_<>, since upcasts +// always succeed. When you downcast (that is, cast a pointer from +// type Foo to type SubclassOfFoo), static_cast<> isn't safe, because +// how do you know the pointer is really of type SubclassOfFoo? It +// could be a bare Foo, or of type DifferentSubclassOfFoo. Thus, +// when you downcast, you should use this macro. In debug mode, we +// use dynamic_cast<> to double-check the downcast is legal (we die +// if it's not). In normal mode, we do the efficient static_cast<> +// instead. Thus, it's important to test in debug mode to make sure +// the cast is legal! +// This is the only place in the code we should use dynamic_cast<>. +// In particular, you SHOULDN'T be using dynamic_cast<> in order to +// do RTTI (eg code like this: +// if (dynamic_cast(foo)) HandleASubclass1Object(foo); +// if (dynamic_cast(foo)) HandleASubclass2Object(foo); +// You should design the code some other way not to need this. +// +// This relatively ugly name is intentional. It prevents clashes with +// similar functions users may have (e.g., down_cast). The internal +// namespace alone is not enough because the function can be found by ADL. +template // use like this: DownCast_(foo); +inline To DownCast_(From* f) { // so we only accept pointers + // Ensures that To is a sub-type of From *. This test is here only + // for compile-time type checking, and has no overhead in an + // optimized build at run-time, as it will be optimized away + // completely. + if (false) { + const To to = NULL; + ::testing::internal::ImplicitCast_(to); + } + +#if GTEST_HAS_RTTI + // RTTI: debug mode only! + GTEST_CHECK_(f == NULL || dynamic_cast(f) != NULL); +#endif + return static_cast(f); +} + +// Downcasts the pointer of type Base to Derived. +// Derived must be a subclass of Base. The parameter MUST +// point to a class of type Derived, not any subclass of it. +// When RTTI is available, the function performs a runtime +// check to enforce this. +template +Derived* CheckedDowncastToActualType(Base* base) { +#if GTEST_HAS_RTTI + GTEST_CHECK_(typeid(*base) == typeid(Derived)); + return dynamic_cast(base); // NOLINT +#else + return static_cast(base); // Poor man's downcast. +#endif +} + +#if GTEST_HAS_STREAM_REDIRECTION + +// Defines the stderr capturer: +// CaptureStdout - starts capturing stdout. +// GetCapturedStdout - stops capturing stdout and returns the captured string. +// CaptureStderr - starts capturing stderr. +// GetCapturedStderr - stops capturing stderr and returns the captured string. +// +GTEST_API_ void CaptureStdout(); +GTEST_API_ std::string GetCapturedStdout(); +GTEST_API_ void CaptureStderr(); +GTEST_API_ std::string GetCapturedStderr(); + +#endif // GTEST_HAS_STREAM_REDIRECTION + + +#if GTEST_HAS_DEATH_TEST + +const ::std::vector& GetInjectableArgvs(); +void SetInjectableArgvs(const ::std::vector* + new_argvs); + +// A copy of all command line arguments. Set by InitGoogleTest(). +extern ::std::vector g_argvs; + +#endif // GTEST_HAS_DEATH_TEST + +// Defines synchronization primitives. + +#if GTEST_HAS_PTHREAD + +// Sleeps for (roughly) n milli-seconds. This function is only for +// testing Google Test's own constructs. Don't use it in user tests, +// either directly or indirectly. +inline void SleepMilliseconds(int n) { + const timespec time = { + 0, // 0 seconds. + n * 1000L * 1000L, // And n ms. + }; + nanosleep(&time, NULL); +} + +// Allows a controller thread to pause execution of newly created +// threads until notified. Instances of this class must be created +// and destroyed in the controller thread. +// +// This class is only for testing Google Test's own constructs. Do not +// use it in user tests, either directly or indirectly. +class Notification { + public: + Notification() : notified_(false) { + GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, NULL)); + } + ~Notification() { + pthread_mutex_destroy(&mutex_); + } + + // Notifies all threads created with this notification to start. Must + // be called from the controller thread. + void Notify() { + pthread_mutex_lock(&mutex_); + notified_ = true; + pthread_mutex_unlock(&mutex_); + } + + // Blocks until the controller thread notifies. Must be called from a test + // thread. + void WaitForNotification() { + for (;;) { + pthread_mutex_lock(&mutex_); + const bool notified = notified_; + pthread_mutex_unlock(&mutex_); + if (notified) + break; + SleepMilliseconds(10); + } + } + + private: + pthread_mutex_t mutex_; + bool notified_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(Notification); +}; + +// As a C-function, ThreadFuncWithCLinkage cannot be templated itself. +// Consequently, it cannot select a correct instantiation of ThreadWithParam +// in order to call its Run(). Introducing ThreadWithParamBase as a +// non-templated base class for ThreadWithParam allows us to bypass this +// problem. +class ThreadWithParamBase { + public: + virtual ~ThreadWithParamBase() {} + virtual void Run() = 0; +}; + +// pthread_create() accepts a pointer to a function type with the C linkage. +// According to the Standard (7.5/1), function types with different linkages +// are different even if they are otherwise identical. Some compilers (for +// example, SunStudio) treat them as different types. Since class methods +// cannot be defined with C-linkage we need to define a free C-function to +// pass into pthread_create(). +extern "C" inline void* ThreadFuncWithCLinkage(void* thread) { + static_cast(thread)->Run(); + return NULL; +} + +// Helper class for testing Google Test's multi-threading constructs. +// To use it, write: +// +// void ThreadFunc(int param) { /* Do things with param */ } +// Notification thread_can_start; +// ... +// // The thread_can_start parameter is optional; you can supply NULL. +// ThreadWithParam thread(&ThreadFunc, 5, &thread_can_start); +// thread_can_start.Notify(); +// +// These classes are only for testing Google Test's own constructs. Do +// not use them in user tests, either directly or indirectly. +template +class ThreadWithParam : public ThreadWithParamBase { + public: + typedef void (*UserThreadFunc)(T); + + ThreadWithParam( + UserThreadFunc func, T param, Notification* thread_can_start) + : func_(func), + param_(param), + thread_can_start_(thread_can_start), + finished_(false) { + ThreadWithParamBase* const base = this; + // The thread can be created only after all fields except thread_ + // have been initialized. + GTEST_CHECK_POSIX_SUCCESS_( + pthread_create(&thread_, 0, &ThreadFuncWithCLinkage, base)); + } + ~ThreadWithParam() { Join(); } + + void Join() { + if (!finished_) { + GTEST_CHECK_POSIX_SUCCESS_(pthread_join(thread_, 0)); + finished_ = true; + } + } + + virtual void Run() { + if (thread_can_start_ != NULL) + thread_can_start_->WaitForNotification(); + func_(param_); + } + + private: + const UserThreadFunc func_; // User-supplied thread function. + const T param_; // User-supplied parameter to the thread function. + // When non-NULL, used to block execution until the controller thread + // notifies. + Notification* const thread_can_start_; + bool finished_; // true iff we know that the thread function has finished. + pthread_t thread_; // The native thread object. + + GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParam); +}; + +// MutexBase and Mutex implement mutex on pthreads-based platforms. They +// are used in conjunction with class MutexLock: +// +// Mutex mutex; +// ... +// MutexLock lock(&mutex); // Acquires the mutex and releases it at the end +// // of the current scope. +// +// MutexBase implements behavior for both statically and dynamically +// allocated mutexes. Do not use MutexBase directly. Instead, write +// the following to define a static mutex: +// +// GTEST_DEFINE_STATIC_MUTEX_(g_some_mutex); +// +// You can forward declare a static mutex like this: +// +// GTEST_DECLARE_STATIC_MUTEX_(g_some_mutex); +// +// To create a dynamic mutex, just define an object of type Mutex. +class MutexBase { + public: + // Acquires this mutex. + void Lock() { + GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_lock(&mutex_)); + owner_ = pthread_self(); + has_owner_ = true; + } + + // Releases this mutex. + void Unlock() { + // Since the lock is being released the owner_ field should no longer be + // considered valid. We don't protect writing to has_owner_ here, as it's + // the caller's responsibility to ensure that the current thread holds the + // mutex when this is called. + has_owner_ = false; + GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_unlock(&mutex_)); + } + + // Does nothing if the current thread holds the mutex. Otherwise, crashes + // with high probability. + void AssertHeld() const { + GTEST_CHECK_(has_owner_ && pthread_equal(owner_, pthread_self())) + << "The current thread is not holding the mutex @" << this; + } + + // A static mutex may be used before main() is entered. It may even + // be used before the dynamic initialization stage. Therefore we + // must be able to initialize a static mutex object at link time. + // This means MutexBase has to be a POD and its member variables + // have to be public. + public: + pthread_mutex_t mutex_; // The underlying pthread mutex. + // has_owner_ indicates whether the owner_ field below contains a valid thread + // ID and is therefore safe to inspect (e.g., to use in pthread_equal()). All + // accesses to the owner_ field should be protected by a check of this field. + // An alternative might be to memset() owner_ to all zeros, but there's no + // guarantee that a zero'd pthread_t is necessarily invalid or even different + // from pthread_self(). + bool has_owner_; + pthread_t owner_; // The thread holding the mutex. +}; + +// Forward-declares a static mutex. +# define GTEST_DECLARE_STATIC_MUTEX_(mutex) \ + extern ::testing::internal::MutexBase mutex + +// Defines and statically (i.e. at link time) initializes a static mutex. +// The initialization list here does not explicitly initialize each field, +// instead relying on default initialization for the unspecified fields. In +// particular, the owner_ field (a pthread_t) is not explicitly initialized. +// This allows initialization to work whether pthread_t is a scalar or struct. +// The flag -Wmissing-field-initializers must not be specified for this to work. +# define GTEST_DEFINE_STATIC_MUTEX_(mutex) \ + ::testing::internal::MutexBase mutex = { PTHREAD_MUTEX_INITIALIZER, false } + +// The Mutex class can only be used for mutexes created at runtime. It +// shares its API with MutexBase otherwise. +class Mutex : public MutexBase { + public: + Mutex() { + GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, NULL)); + has_owner_ = false; + } + ~Mutex() { + GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&mutex_)); + } + + private: + GTEST_DISALLOW_COPY_AND_ASSIGN_(Mutex); +}; + +// We cannot name this class MutexLock as the ctor declaration would +// conflict with a macro named MutexLock, which is defined on some +// platforms. Hence the typedef trick below. +class GTestMutexLock { + public: + explicit GTestMutexLock(MutexBase* mutex) + : mutex_(mutex) { mutex_->Lock(); } + + ~GTestMutexLock() { mutex_->Unlock(); } + + private: + MutexBase* const mutex_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestMutexLock); +}; + +typedef GTestMutexLock MutexLock; + +// Helpers for ThreadLocal. + +// pthread_key_create() requires DeleteThreadLocalValue() to have +// C-linkage. Therefore it cannot be templatized to access +// ThreadLocal. Hence the need for class +// ThreadLocalValueHolderBase. +class ThreadLocalValueHolderBase { + public: + virtual ~ThreadLocalValueHolderBase() {} +}; + +// Called by pthread to delete thread-local data stored by +// pthread_setspecific(). +extern "C" inline void DeleteThreadLocalValue(void* value_holder) { + delete static_cast(value_holder); +} + +// Implements thread-local storage on pthreads-based systems. +// +// // Thread 1 +// ThreadLocal tl(100); // 100 is the default value for each thread. +// +// // Thread 2 +// tl.set(150); // Changes the value for thread 2 only. +// EXPECT_EQ(150, tl.get()); +// +// // Thread 1 +// EXPECT_EQ(100, tl.get()); // In thread 1, tl has the original value. +// tl.set(200); +// EXPECT_EQ(200, tl.get()); +// +// The template type argument T must have a public copy constructor. +// In addition, the default ThreadLocal constructor requires T to have +// a public default constructor. +// +// An object managed for a thread by a ThreadLocal instance is deleted +// when the thread exits. Or, if the ThreadLocal instance dies in +// that thread, when the ThreadLocal dies. It's the user's +// responsibility to ensure that all other threads using a ThreadLocal +// have exited when it dies, or the per-thread objects for those +// threads will not be deleted. +// +// Google Test only uses global ThreadLocal objects. That means they +// will die after main() has returned. Therefore, no per-thread +// object managed by Google Test will be leaked as long as all threads +// using Google Test have exited when main() returns. +template +class ThreadLocal { + public: + ThreadLocal() : key_(CreateKey()), + default_() {} + explicit ThreadLocal(const T& value) : key_(CreateKey()), + default_(value) {} + + ~ThreadLocal() { + // Destroys the managed object for the current thread, if any. + DeleteThreadLocalValue(pthread_getspecific(key_)); + + // Releases resources associated with the key. This will *not* + // delete managed objects for other threads. + GTEST_CHECK_POSIX_SUCCESS_(pthread_key_delete(key_)); + } + + T* pointer() { return GetOrCreateValue(); } + const T* pointer() const { return GetOrCreateValue(); } + const T& get() const { return *pointer(); } + void set(const T& value) { *pointer() = value; } + + private: + // Holds a value of type T. + class ValueHolder : public ThreadLocalValueHolderBase { + public: + explicit ValueHolder(const T& value) : value_(value) {} + + T* pointer() { return &value_; } + + private: + T value_; + GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolder); + }; + + static pthread_key_t CreateKey() { + pthread_key_t key; + // When a thread exits, DeleteThreadLocalValue() will be called on + // the object managed for that thread. + GTEST_CHECK_POSIX_SUCCESS_( + pthread_key_create(&key, &DeleteThreadLocalValue)); + return key; + } + + T* GetOrCreateValue() const { + ThreadLocalValueHolderBase* const holder = + static_cast(pthread_getspecific(key_)); + if (holder != NULL) { + return CheckedDowncastToActualType(holder)->pointer(); + } + + ValueHolder* const new_holder = new ValueHolder(default_); + ThreadLocalValueHolderBase* const holder_base = new_holder; + GTEST_CHECK_POSIX_SUCCESS_(pthread_setspecific(key_, holder_base)); + return new_holder->pointer(); + } + + // A key pthreads uses for looking up per-thread values. + const pthread_key_t key_; + const T default_; // The default value for each thread. + + GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal); +}; + +# define GTEST_IS_THREADSAFE 1 + +#else // GTEST_HAS_PTHREAD + +// A dummy implementation of synchronization primitives (mutex, lock, +// and thread-local variable). Necessary for compiling Google Test where +// mutex is not supported - using Google Test in multiple threads is not +// supported on such platforms. + +class Mutex { + public: + Mutex() {} + void Lock() {} + void Unlock() {} + void AssertHeld() const {} +}; + +# define GTEST_DECLARE_STATIC_MUTEX_(mutex) \ + extern ::testing::internal::Mutex mutex + +# define GTEST_DEFINE_STATIC_MUTEX_(mutex) ::testing::internal::Mutex mutex + +class GTestMutexLock { + public: + explicit GTestMutexLock(Mutex*) {} // NOLINT +}; + +typedef GTestMutexLock MutexLock; + +template +class ThreadLocal { + public: + ThreadLocal() : value_() {} + explicit ThreadLocal(const T& value) : value_(value) {} + T* pointer() { return &value_; } + const T* pointer() const { return &value_; } + const T& get() const { return value_; } + void set(const T& value) { value_ = value; } + private: + T value_; +}; + +// The above synchronization primitives have dummy implementations. +// Therefore Google Test is not thread-safe. +# define GTEST_IS_THREADSAFE 0 + +#endif // GTEST_HAS_PTHREAD + +// Returns the number of threads running in the process, or 0 to indicate that +// we cannot detect it. +GTEST_API_ size_t GetThreadCount(); + +// Passing non-POD classes through ellipsis (...) crashes the ARM +// compiler and generates a warning in Sun Studio. The Nokia Symbian +// and the IBM XL C/C++ compiler try to instantiate a copy constructor +// for objects passed through ellipsis (...), failing for uncopyable +// objects. We define this to ensure that only POD is passed through +// ellipsis on these systems. +#if defined(__SYMBIAN32__) || defined(__IBMCPP__) || defined(__SUNPRO_CC) +// We lose support for NULL detection where the compiler doesn't like +// passing non-POD classes through ellipsis (...). +# define GTEST_ELLIPSIS_NEEDS_POD_ 1 +#else +# define GTEST_CAN_COMPARE_NULL 1 +#endif + +// The Nokia Symbian and IBM XL C/C++ compilers cannot decide between +// const T& and const T* in a function template. These compilers +// _can_ decide between class template specializations for T and T*, +// so a tr1::type_traits-like is_pointer works. +#if defined(__SYMBIAN32__) || defined(__IBMCPP__) +# define GTEST_NEEDS_IS_POINTER_ 1 +#endif + +template +struct bool_constant { + typedef bool_constant type; + static const bool value = bool_value; +}; +template const bool bool_constant::value; + +typedef bool_constant false_type; +typedef bool_constant true_type; + +template +struct is_pointer : public false_type {}; + +template +struct is_pointer : public true_type {}; + +template +struct IteratorTraits { + typedef typename Iterator::value_type value_type; +}; + +template +struct IteratorTraits { + typedef T value_type; +}; + +template +struct IteratorTraits { + typedef T value_type; +}; + +#if GTEST_OS_WINDOWS +# define GTEST_PATH_SEP_ "\\" +# define GTEST_HAS_ALT_PATH_SEP_ 1 +// The biggest signed integer type the compiler supports. +typedef __int64 BiggestInt; +#else +# define GTEST_PATH_SEP_ "/" +# define GTEST_HAS_ALT_PATH_SEP_ 0 +typedef long long BiggestInt; // NOLINT +#endif // GTEST_OS_WINDOWS + +// Utilities for char. + +// isspace(int ch) and friends accept an unsigned char or EOF. char +// may be signed, depending on the compiler (or compiler flags). +// Therefore we need to cast a char to unsigned char before calling +// isspace(), etc. + +inline bool IsAlpha(char ch) { + return isalpha(static_cast(ch)) != 0; +} +inline bool IsAlNum(char ch) { + return isalnum(static_cast(ch)) != 0; +} +inline bool IsDigit(char ch) { + return isdigit(static_cast(ch)) != 0; +} +inline bool IsLower(char ch) { + return islower(static_cast(ch)) != 0; +} +inline bool IsSpace(char ch) { + return isspace(static_cast(ch)) != 0; +} +inline bool IsUpper(char ch) { + return isupper(static_cast(ch)) != 0; +} +inline bool IsXDigit(char ch) { + return isxdigit(static_cast(ch)) != 0; +} +inline bool IsXDigit(wchar_t ch) { + const unsigned char low_byte = static_cast(ch); + return ch == low_byte && isxdigit(low_byte) != 0; +} + +inline char ToLower(char ch) { + return static_cast(tolower(static_cast(ch))); +} +inline char ToUpper(char ch) { + return static_cast(toupper(static_cast(ch))); +} + +// The testing::internal::posix namespace holds wrappers for common +// POSIX functions. These wrappers hide the differences between +// Windows/MSVC and POSIX systems. Since some compilers define these +// standard functions as macros, the wrapper cannot have the same name +// as the wrapped function. + +namespace posix { + +// Functions with a different name on Windows. + +#if GTEST_OS_WINDOWS + +typedef struct _stat StatStruct; + +# ifdef __BORLANDC__ +inline int IsATTY(int fd) { return isatty(fd); } +inline int StrCaseCmp(const char* s1, const char* s2) { + return stricmp(s1, s2); +} +inline char* StrDup(const char* src) { return strdup(src); } +# else // !__BORLANDC__ +# if GTEST_OS_WINDOWS_MOBILE +inline int IsATTY(int /* fd */) { return 0; } +# else +inline int IsATTY(int fd) { return _isatty(fd); } +# endif // GTEST_OS_WINDOWS_MOBILE +inline int StrCaseCmp(const char* s1, const char* s2) { + return _stricmp(s1, s2); +} +inline char* StrDup(const char* src) { return _strdup(src); } +# endif // __BORLANDC__ + +# if GTEST_OS_WINDOWS_MOBILE +inline int FileNo(FILE* file) { return reinterpret_cast(_fileno(file)); } +// Stat(), RmDir(), and IsDir() are not needed on Windows CE at this +// time and thus not defined there. +# else +inline int FileNo(FILE* file) { return _fileno(file); } +inline int Stat(const char* path, StatStruct* buf) { return _stat(path, buf); } +inline int RmDir(const char* dir) { return _rmdir(dir); } +inline bool IsDir(const StatStruct& st) { + return (_S_IFDIR & st.st_mode) != 0; +} +# endif // GTEST_OS_WINDOWS_MOBILE + +#else + +typedef struct stat StatStruct; + +inline int FileNo(FILE* file) { return fileno(file); } +inline int IsATTY(int fd) { return isatty(fd); } +inline int Stat(const char* path, StatStruct* buf) { return stat(path, buf); } +inline int StrCaseCmp(const char* s1, const char* s2) { + return strcasecmp(s1, s2); +} +inline char* StrDup(const char* src) { return strdup(src); } +inline int RmDir(const char* dir) { return rmdir(dir); } +inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); } + +#endif // GTEST_OS_WINDOWS + +// Functions deprecated by MSVC 8.0. + +#ifdef _MSC_VER +// Temporarily disable warning 4996 (deprecated function). +# pragma warning(push) +# pragma warning(disable:4996) +#endif + +inline const char* StrNCpy(char* dest, const char* src, size_t n) { + return strncpy(dest, src, n); +} + +// ChDir(), FReopen(), FDOpen(), Read(), Write(), Close(), and +// StrError() aren't needed on Windows CE at this time and thus not +// defined there. + +#if !GTEST_OS_WINDOWS_MOBILE +inline int ChDir(const char* dir) { return chdir(dir); } +#endif +inline FILE* FOpen(const char* path, const char* mode) { + return fopen(path, mode); +} +#if !GTEST_OS_WINDOWS_MOBILE +inline FILE *FReopen(const char* path, const char* mode, FILE* stream) { + return freopen(path, mode, stream); +} +inline FILE* FDOpen(int fd, const char* mode) { return fdopen(fd, mode); } +#endif +inline int FClose(FILE* fp) { return fclose(fp); } +#if !GTEST_OS_WINDOWS_MOBILE +inline int Read(int fd, void* buf, unsigned int count) { + return static_cast(read(fd, buf, count)); +} +inline int Write(int fd, const void* buf, unsigned int count) { + return static_cast(write(fd, buf, count)); +} +inline int Close(int fd) { return close(fd); } +inline const char* StrError(int errnum) { return strerror(errnum); } +#endif +inline const char* GetEnv(const char* name) { +#if GTEST_OS_WINDOWS_MOBILE + // We are on Windows CE, which has no environment variables. + return NULL; +#elif defined(__BORLANDC__) || defined(__SunOS_5_8) || defined(__SunOS_5_9) + // Environment variables which we programmatically clear will be set to the + // empty string rather than unset (NULL). Handle that case. + const char* const env = getenv(name); + return (env != NULL && env[0] != '\0') ? env : NULL; +#else + return getenv(name); +#endif +} + +#ifdef _MSC_VER +# pragma warning(pop) // Restores the warning state. +#endif + +#if GTEST_OS_WINDOWS_MOBILE +// Windows CE has no C library. The abort() function is used in +// several places in Google Test. This implementation provides a reasonable +// imitation of standard behaviour. +void Abort(); +#else +inline void Abort() { abort(); } +#endif // GTEST_OS_WINDOWS_MOBILE + +} // namespace posix + +// MSVC "deprecates" snprintf and issues warnings wherever it is used. In +// order to avoid these warnings, we need to use _snprintf or _snprintf_s on +// MSVC-based platforms. We map the GTEST_SNPRINTF_ macro to the appropriate +// function in order to achieve that. We use macro definition here because +// snprintf is a variadic function. +#if _MSC_VER >= 1400 && !GTEST_OS_WINDOWS_MOBILE +// MSVC 2005 and above support variadic macros. +# define GTEST_SNPRINTF_(buffer, size, format, ...) \ + _snprintf_s(buffer, size, size, format, __VA_ARGS__) +#elif defined(_MSC_VER) +// Windows CE does not define _snprintf_s and MSVC prior to 2005 doesn't +// complain about _snprintf. +# define GTEST_SNPRINTF_ _snprintf +#else +# define GTEST_SNPRINTF_ snprintf +#endif + +// The maximum number a BiggestInt can represent. This definition +// works no matter BiggestInt is represented in one's complement or +// two's complement. +// +// We cannot rely on numeric_limits in STL, as __int64 and long long +// are not part of standard C++ and numeric_limits doesn't need to be +// defined for them. +const BiggestInt kMaxBiggestInt = + ~(static_cast(1) << (8*sizeof(BiggestInt) - 1)); + +// This template class serves as a compile-time function from size to +// type. It maps a size in bytes to a primitive type with that +// size. e.g. +// +// TypeWithSize<4>::UInt +// +// is typedef-ed to be unsigned int (unsigned integer made up of 4 +// bytes). +// +// Such functionality should belong to STL, but I cannot find it +// there. +// +// Google Test uses this class in the implementation of floating-point +// comparison. +// +// For now it only handles UInt (unsigned int) as that's all Google Test +// needs. Other types can be easily added in the future if need +// arises. +template +class TypeWithSize { + public: + // This prevents the user from using TypeWithSize with incorrect + // values of N. + typedef void UInt; +}; + +// The specialization for size 4. +template <> +class TypeWithSize<4> { + public: + // unsigned int has size 4 in both gcc and MSVC. + // + // As base/basictypes.h doesn't compile on Windows, we cannot use + // uint32, uint64, and etc here. + typedef int Int; + typedef unsigned int UInt; +}; + +// The specialization for size 8. +template <> +class TypeWithSize<8> { + public: +#if GTEST_OS_WINDOWS + typedef __int64 Int; + typedef unsigned __int64 UInt; +#else + typedef long long Int; // NOLINT + typedef unsigned long long UInt; // NOLINT +#endif // GTEST_OS_WINDOWS +}; + +// Integer types of known sizes. +typedef TypeWithSize<4>::Int Int32; +typedef TypeWithSize<4>::UInt UInt32; +typedef TypeWithSize<8>::Int Int64; +typedef TypeWithSize<8>::UInt UInt64; +typedef TypeWithSize<8>::Int TimeInMillis; // Represents time in milliseconds. + +// Utilities for command line flags and environment variables. + +// Macro for referencing flags. +#define GTEST_FLAG(name) FLAGS_gtest_##name + +// Macros for declaring flags. +#define GTEST_DECLARE_bool_(name) GTEST_API_ extern bool GTEST_FLAG(name) +#define GTEST_DECLARE_int32_(name) \ + GTEST_API_ extern ::testing::internal::Int32 GTEST_FLAG(name) +#define GTEST_DECLARE_string_(name) \ + GTEST_API_ extern ::std::string GTEST_FLAG(name) + +// Macros for defining flags. +#define GTEST_DEFINE_bool_(name, default_val, doc) \ + GTEST_API_ bool GTEST_FLAG(name) = (default_val) +#define GTEST_DEFINE_int32_(name, default_val, doc) \ + GTEST_API_ ::testing::internal::Int32 GTEST_FLAG(name) = (default_val) +#define GTEST_DEFINE_string_(name, default_val, doc) \ + GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val) + +// Thread annotations +#define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks) +#define GTEST_LOCK_EXCLUDED_(locks) + +// Parses 'str' for a 32-bit signed integer. If successful, writes the result +// to *value and returns true; otherwise leaves *value unchanged and returns +// false. +// TODO(chandlerc): Find a better way to refactor flag and environment parsing +// out of both gtest-port.cc and gtest.cc to avoid exporting this utility +// function. +bool ParseInt32(const Message& src_text, const char* str, Int32* value); + +// Parses a bool/Int32/string from the environment variable +// corresponding to the given Google Test flag. +bool BoolFromGTestEnv(const char* flag, bool default_val); +GTEST_API_ Int32 Int32FromGTestEnv(const char* flag, Int32 default_val); +const char* StringFromGTestEnv(const char* flag, const char* default_val); + +} // namespace internal +} // namespace testing + +#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ diff --git a/gtest-1.7.0/include/gtest/internal/gtest-string.h b/gtest-1.7.0/include/gtest/internal/gtest-string.h new file mode 100644 index 0000000..97f1a7f --- /dev/null +++ b/gtest-1.7.0/include/gtest/internal/gtest-string.h @@ -0,0 +1,167 @@ +// Copyright 2005, Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee) +// +// The Google C++ Testing Framework (Google Test) +// +// This header file declares the String class and functions used internally by +// Google Test. They are subject to change without notice. They should not used +// by code external to Google Test. +// +// This header file is #included by . +// It should not be #included by other files. + +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ + +#ifdef __BORLANDC__ +// string.h is not guaranteed to provide strcpy on C++ Builder. +# include +#endif + +#include +#include + +#include "gtest/internal/gtest-port.h" + +namespace testing { +namespace internal { + +// String - an abstract class holding static string utilities. +class GTEST_API_ String { + public: + // Static utility methods + + // Clones a 0-terminated C string, allocating memory using new. The + // caller is responsible for deleting the return value using + // delete[]. Returns the cloned string, or NULL if the input is + // NULL. + // + // This is different from strdup() in string.h, which allocates + // memory using malloc(). + static const char* CloneCString(const char* c_str); + +#if GTEST_OS_WINDOWS_MOBILE + // Windows CE does not have the 'ANSI' versions of Win32 APIs. To be + // able to pass strings to Win32 APIs on CE we need to convert them + // to 'Unicode', UTF-16. + + // Creates a UTF-16 wide string from the given ANSI string, allocating + // memory using new. The caller is responsible for deleting the return + // value using delete[]. Returns the wide string, or NULL if the + // input is NULL. + // + // The wide string is created using the ANSI codepage (CP_ACP) to + // match the behaviour of the ANSI versions of Win32 calls and the + // C runtime. + static LPCWSTR AnsiToUtf16(const char* c_str); + + // Creates an ANSI string from the given wide string, allocating + // memory using new. The caller is responsible for deleting the return + // value using delete[]. Returns the ANSI string, or NULL if the + // input is NULL. + // + // The returned string is created using the ANSI codepage (CP_ACP) to + // match the behaviour of the ANSI versions of Win32 calls and the + // C runtime. + static const char* Utf16ToAnsi(LPCWSTR utf16_str); +#endif + + // Compares two C strings. Returns true iff they have the same content. + // + // Unlike strcmp(), this function can handle NULL argument(s). A + // NULL C string is considered different to any non-NULL C string, + // including the empty string. + static bool CStringEquals(const char* lhs, const char* rhs); + + // Converts a wide C string to a String using the UTF-8 encoding. + // NULL will be converted to "(null)". If an error occurred during + // the conversion, "(failed to convert from wide string)" is + // returned. + static std::string ShowWideCString(const wchar_t* wide_c_str); + + // Compares two wide C strings. Returns true iff they have the same + // content. + // + // Unlike wcscmp(), this function can handle NULL argument(s). A + // NULL C string is considered different to any non-NULL C string, + // including the empty string. + static bool WideCStringEquals(const wchar_t* lhs, const wchar_t* rhs); + + // Compares two C strings, ignoring case. Returns true iff they + // have the same content. + // + // Unlike strcasecmp(), this function can handle NULL argument(s). + // A NULL C string is considered different to any non-NULL C string, + // including the empty string. + static bool CaseInsensitiveCStringEquals(const char* lhs, + const char* rhs); + + // Compares two wide C strings, ignoring case. Returns true iff they + // have the same content. + // + // Unlike wcscasecmp(), this function can handle NULL argument(s). + // A NULL C string is considered different to any non-NULL wide C string, + // including the empty string. + // NB: The implementations on different platforms slightly differ. + // On windows, this method uses _wcsicmp which compares according to LC_CTYPE + // environment variable. On GNU platform this method uses wcscasecmp + // which compares according to LC_CTYPE category of the current locale. + // On MacOS X, it uses towlower, which also uses LC_CTYPE category of the + // current locale. + static bool CaseInsensitiveWideCStringEquals(const wchar_t* lhs, + const wchar_t* rhs); + + // Returns true iff the given string ends with the given suffix, ignoring + // case. Any string is considered to end with an empty suffix. + static bool EndsWithCaseInsensitive( + const std::string& str, const std::string& suffix); + + // Formats an int value as "%02d". + static std::string FormatIntWidth2(int value); // "%02d" for width == 2 + + // Formats an int value as "%X". + static std::string FormatHexInt(int value); + + // Formats a byte as "%02X". + static std::string FormatByte(unsigned char value); + + private: + String(); // Not meant to be instantiated. +}; // class String + +// Gets the content of the stringstream's buffer as an std::string. Each '\0' +// character in the buffer is replaced with "\\0". +GTEST_API_ std::string StringStreamToString(::std::stringstream* stream); + +} // namespace internal +} // namespace testing + +#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ diff --git a/gtest-1.7.0/include/gtest/internal/gtest-tuple.h b/gtest-1.7.0/include/gtest/internal/gtest-tuple.h new file mode 100644 index 0000000..7b3dfc3 --- /dev/null +++ b/gtest-1.7.0/include/gtest/internal/gtest-tuple.h @@ -0,0 +1,1012 @@ +// This file was GENERATED by command: +// pump.py gtest-tuple.h.pump +// DO NOT EDIT BY HAND!!! + +// Copyright 2009 Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: wan@google.com (Zhanyong Wan) + +// Implements a subset of TR1 tuple needed by Google Test and Google Mock. + +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_ + +#include // For ::std::pair. + +// The compiler used in Symbian has a bug that prevents us from declaring the +// tuple template as a friend (it complains that tuple is redefined). This +// hack bypasses the bug by declaring the members that should otherwise be +// private as public. +// Sun Studio versions < 12 also have the above bug. +#if defined(__SYMBIAN32__) || (defined(__SUNPRO_CC) && __SUNPRO_CC < 0x590) +# define GTEST_DECLARE_TUPLE_AS_FRIEND_ public: +#else +# define GTEST_DECLARE_TUPLE_AS_FRIEND_ \ + template friend class tuple; \ + private: +#endif + +// GTEST_n_TUPLE_(T) is the type of an n-tuple. +#define GTEST_0_TUPLE_(T) tuple<> +#define GTEST_1_TUPLE_(T) tuple +#define GTEST_2_TUPLE_(T) tuple +#define GTEST_3_TUPLE_(T) tuple +#define GTEST_4_TUPLE_(T) tuple +#define GTEST_5_TUPLE_(T) tuple +#define GTEST_6_TUPLE_(T) tuple +#define GTEST_7_TUPLE_(T) tuple +#define GTEST_8_TUPLE_(T) tuple +#define GTEST_9_TUPLE_(T) tuple +#define GTEST_10_TUPLE_(T) tuple + +// GTEST_n_TYPENAMES_(T) declares a list of n typenames. +#define GTEST_0_TYPENAMES_(T) +#define GTEST_1_TYPENAMES_(T) typename T##0 +#define GTEST_2_TYPENAMES_(T) typename T##0, typename T##1 +#define GTEST_3_TYPENAMES_(T) typename T##0, typename T##1, typename T##2 +#define GTEST_4_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ + typename T##3 +#define GTEST_5_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ + typename T##3, typename T##4 +#define GTEST_6_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ + typename T##3, typename T##4, typename T##5 +#define GTEST_7_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ + typename T##3, typename T##4, typename T##5, typename T##6 +#define GTEST_8_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ + typename T##3, typename T##4, typename T##5, typename T##6, typename T##7 +#define GTEST_9_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ + typename T##3, typename T##4, typename T##5, typename T##6, \ + typename T##7, typename T##8 +#define GTEST_10_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ + typename T##3, typename T##4, typename T##5, typename T##6, \ + typename T##7, typename T##8, typename T##9 + +// In theory, defining stuff in the ::std namespace is undefined +// behavior. We can do this as we are playing the role of a standard +// library vendor. +namespace std { +namespace tr1 { + +template +class tuple; + +// Anything in namespace gtest_internal is Google Test's INTERNAL +// IMPLEMENTATION DETAIL and MUST NOT BE USED DIRECTLY in user code. +namespace gtest_internal { + +// ByRef::type is T if T is a reference; otherwise it's const T&. +template +struct ByRef { typedef const T& type; }; // NOLINT +template +struct ByRef { typedef T& type; }; // NOLINT + +// A handy wrapper for ByRef. +#define GTEST_BY_REF_(T) typename ::std::tr1::gtest_internal::ByRef::type + +// AddRef::type is T if T is a reference; otherwise it's T&. This +// is the same as tr1::add_reference::type. +template +struct AddRef { typedef T& type; }; // NOLINT +template +struct AddRef { typedef T& type; }; // NOLINT + +// A handy wrapper for AddRef. +#define GTEST_ADD_REF_(T) typename ::std::tr1::gtest_internal::AddRef::type + +// A helper for implementing get(). +template class Get; + +// A helper for implementing tuple_element. kIndexValid is true +// iff k < the number of fields in tuple type T. +template +struct TupleElement; + +template +struct TupleElement { + typedef T0 type; +}; + +template +struct TupleElement { + typedef T1 type; +}; + +template +struct TupleElement { + typedef T2 type; +}; + +template +struct TupleElement { + typedef T3 type; +}; + +template +struct TupleElement { + typedef T4 type; +}; + +template +struct TupleElement { + typedef T5 type; +}; + +template +struct TupleElement { + typedef T6 type; +}; + +template +struct TupleElement { + typedef T7 type; +}; + +template +struct TupleElement { + typedef T8 type; +}; + +template +struct TupleElement { + typedef T9 type; +}; + +} // namespace gtest_internal + +template <> +class tuple<> { + public: + tuple() {} + tuple(const tuple& /* t */) {} + tuple& operator=(const tuple& /* t */) { return *this; } +}; + +template +class GTEST_1_TUPLE_(T) { + public: + template friend class gtest_internal::Get; + + tuple() : f0_() {} + + explicit tuple(GTEST_BY_REF_(T0) f0) : f0_(f0) {} + + tuple(const tuple& t) : f0_(t.f0_) {} + + template + tuple(const GTEST_1_TUPLE_(U)& t) : f0_(t.f0_) {} + + tuple& operator=(const tuple& t) { return CopyFrom(t); } + + template + tuple& operator=(const GTEST_1_TUPLE_(U)& t) { + return CopyFrom(t); + } + + GTEST_DECLARE_TUPLE_AS_FRIEND_ + + template + tuple& CopyFrom(const GTEST_1_TUPLE_(U)& t) { + f0_ = t.f0_; + return *this; + } + + T0 f0_; +}; + +template +class GTEST_2_TUPLE_(T) { + public: + template friend class gtest_internal::Get; + + tuple() : f0_(), f1_() {} + + explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1) : f0_(f0), + f1_(f1) {} + + tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_) {} + + template + tuple(const GTEST_2_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_) {} + template + tuple(const ::std::pair& p) : f0_(p.first), f1_(p.second) {} + + tuple& operator=(const tuple& t) { return CopyFrom(t); } + + template + tuple& operator=(const GTEST_2_TUPLE_(U)& t) { + return CopyFrom(t); + } + template + tuple& operator=(const ::std::pair& p) { + f0_ = p.first; + f1_ = p.second; + return *this; + } + + GTEST_DECLARE_TUPLE_AS_FRIEND_ + + template + tuple& CopyFrom(const GTEST_2_TUPLE_(U)& t) { + f0_ = t.f0_; + f1_ = t.f1_; + return *this; + } + + T0 f0_; + T1 f1_; +}; + +template +class GTEST_3_TUPLE_(T) { + public: + template friend class gtest_internal::Get; + + tuple() : f0_(), f1_(), f2_() {} + + explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, + GTEST_BY_REF_(T2) f2) : f0_(f0), f1_(f1), f2_(f2) {} + + tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_) {} + + template + tuple(const GTEST_3_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_) {} + + tuple& operator=(const tuple& t) { return CopyFrom(t); } + + template + tuple& operator=(const GTEST_3_TUPLE_(U)& t) { + return CopyFrom(t); + } + + GTEST_DECLARE_TUPLE_AS_FRIEND_ + + template + tuple& CopyFrom(const GTEST_3_TUPLE_(U)& t) { + f0_ = t.f0_; + f1_ = t.f1_; + f2_ = t.f2_; + return *this; + } + + T0 f0_; + T1 f1_; + T2 f2_; +}; + +template +class GTEST_4_TUPLE_(T) { + public: + template friend class gtest_internal::Get; + + tuple() : f0_(), f1_(), f2_(), f3_() {} + + explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, + GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3) : f0_(f0), f1_(f1), f2_(f2), + f3_(f3) {} + + tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_) {} + + template + tuple(const GTEST_4_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), + f3_(t.f3_) {} + + tuple& operator=(const tuple& t) { return CopyFrom(t); } + + template + tuple& operator=(const GTEST_4_TUPLE_(U)& t) { + return CopyFrom(t); + } + + GTEST_DECLARE_TUPLE_AS_FRIEND_ + + template + tuple& CopyFrom(const GTEST_4_TUPLE_(U)& t) { + f0_ = t.f0_; + f1_ = t.f1_; + f2_ = t.f2_; + f3_ = t.f3_; + return *this; + } + + T0 f0_; + T1 f1_; + T2 f2_; + T3 f3_; +}; + +template +class GTEST_5_TUPLE_(T) { + public: + template friend class gtest_internal::Get; + + tuple() : f0_(), f1_(), f2_(), f3_(), f4_() {} + + explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, + GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, + GTEST_BY_REF_(T4) f4) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4) {} + + tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_), + f4_(t.f4_) {} + + template + tuple(const GTEST_5_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), + f3_(t.f3_), f4_(t.f4_) {} + + tuple& operator=(const tuple& t) { return CopyFrom(t); } + + template + tuple& operator=(const GTEST_5_TUPLE_(U)& t) { + return CopyFrom(t); + } + + GTEST_DECLARE_TUPLE_AS_FRIEND_ + + template + tuple& CopyFrom(const GTEST_5_TUPLE_(U)& t) { + f0_ = t.f0_; + f1_ = t.f1_; + f2_ = t.f2_; + f3_ = t.f3_; + f4_ = t.f4_; + return *this; + } + + T0 f0_; + T1 f1_; + T2 f2_; + T3 f3_; + T4 f4_; +}; + +template +class GTEST_6_TUPLE_(T) { + public: + template friend class gtest_internal::Get; + + tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_() {} + + explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, + GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4, + GTEST_BY_REF_(T5) f5) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4), + f5_(f5) {} + + tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_), + f4_(t.f4_), f5_(t.f5_) {} + + template + tuple(const GTEST_6_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), + f3_(t.f3_), f4_(t.f4_), f5_(t.f5_) {} + + tuple& operator=(const tuple& t) { return CopyFrom(t); } + + template + tuple& operator=(const GTEST_6_TUPLE_(U)& t) { + return CopyFrom(t); + } + + GTEST_DECLARE_TUPLE_AS_FRIEND_ + + template + tuple& CopyFrom(const GTEST_6_TUPLE_(U)& t) { + f0_ = t.f0_; + f1_ = t.f1_; + f2_ = t.f2_; + f3_ = t.f3_; + f4_ = t.f4_; + f5_ = t.f5_; + return *this; + } + + T0 f0_; + T1 f1_; + T2 f2_; + T3 f3_; + T4 f4_; + T5 f5_; +}; + +template +class GTEST_7_TUPLE_(T) { + public: + template friend class gtest_internal::Get; + + tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_() {} + + explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, + GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4, + GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6) : f0_(f0), f1_(f1), f2_(f2), + f3_(f3), f4_(f4), f5_(f5), f6_(f6) {} + + tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_), + f4_(t.f4_), f5_(t.f5_), f6_(t.f6_) {} + + template + tuple(const GTEST_7_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), + f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_) {} + + tuple& operator=(const tuple& t) { return CopyFrom(t); } + + template + tuple& operator=(const GTEST_7_TUPLE_(U)& t) { + return CopyFrom(t); + } + + GTEST_DECLARE_TUPLE_AS_FRIEND_ + + template + tuple& CopyFrom(const GTEST_7_TUPLE_(U)& t) { + f0_ = t.f0_; + f1_ = t.f1_; + f2_ = t.f2_; + f3_ = t.f3_; + f4_ = t.f4_; + f5_ = t.f5_; + f6_ = t.f6_; + return *this; + } + + T0 f0_; + T1 f1_; + T2 f2_; + T3 f3_; + T4 f4_; + T5 f5_; + T6 f6_; +}; + +template +class GTEST_8_TUPLE_(T) { + public: + template friend class gtest_internal::Get; + + tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_() {} + + explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, + GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4, + GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6, + GTEST_BY_REF_(T7) f7) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4), + f5_(f5), f6_(f6), f7_(f7) {} + + tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_), + f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_) {} + + template + tuple(const GTEST_8_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), + f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_) {} + + tuple& operator=(const tuple& t) { return CopyFrom(t); } + + template + tuple& operator=(const GTEST_8_TUPLE_(U)& t) { + return CopyFrom(t); + } + + GTEST_DECLARE_TUPLE_AS_FRIEND_ + + template + tuple& CopyFrom(const GTEST_8_TUPLE_(U)& t) { + f0_ = t.f0_; + f1_ = t.f1_; + f2_ = t.f2_; + f3_ = t.f3_; + f4_ = t.f4_; + f5_ = t.f5_; + f6_ = t.f6_; + f7_ = t.f7_; + return *this; + } + + T0 f0_; + T1 f1_; + T2 f2_; + T3 f3_; + T4 f4_; + T5 f5_; + T6 f6_; + T7 f7_; +}; + +template +class GTEST_9_TUPLE_(T) { + public: + template friend class gtest_internal::Get; + + tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_(), f8_() {} + + explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, + GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4, + GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6, GTEST_BY_REF_(T7) f7, + GTEST_BY_REF_(T8) f8) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4), + f5_(f5), f6_(f6), f7_(f7), f8_(f8) {} + + tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_), + f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_) {} + + template + tuple(const GTEST_9_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), + f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_) {} + + tuple& operator=(const tuple& t) { return CopyFrom(t); } + + template + tuple& operator=(const GTEST_9_TUPLE_(U)& t) { + return CopyFrom(t); + } + + GTEST_DECLARE_TUPLE_AS_FRIEND_ + + template + tuple& CopyFrom(const GTEST_9_TUPLE_(U)& t) { + f0_ = t.f0_; + f1_ = t.f1_; + f2_ = t.f2_; + f3_ = t.f3_; + f4_ = t.f4_; + f5_ = t.f5_; + f6_ = t.f6_; + f7_ = t.f7_; + f8_ = t.f8_; + return *this; + } + + T0 f0_; + T1 f1_; + T2 f2_; + T3 f3_; + T4 f4_; + T5 f5_; + T6 f6_; + T7 f7_; + T8 f8_; +}; + +template +class tuple { + public: + template friend class gtest_internal::Get; + + tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_(), f8_(), + f9_() {} + + explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, + GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4, + GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6, GTEST_BY_REF_(T7) f7, + GTEST_BY_REF_(T8) f8, GTEST_BY_REF_(T9) f9) : f0_(f0), f1_(f1), f2_(f2), + f3_(f3), f4_(f4), f5_(f5), f6_(f6), f7_(f7), f8_(f8), f9_(f9) {} + + tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_), + f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_), f9_(t.f9_) {} + + template + tuple(const GTEST_10_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), + f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_), + f9_(t.f9_) {} + + tuple& operator=(const tuple& t) { return CopyFrom(t); } + + template + tuple& operator=(const GTEST_10_TUPLE_(U)& t) { + return CopyFrom(t); + } + + GTEST_DECLARE_TUPLE_AS_FRIEND_ + + template + tuple& CopyFrom(const GTEST_10_TUPLE_(U)& t) { + f0_ = t.f0_; + f1_ = t.f1_; + f2_ = t.f2_; + f3_ = t.f3_; + f4_ = t.f4_; + f5_ = t.f5_; + f6_ = t.f6_; + f7_ = t.f7_; + f8_ = t.f8_; + f9_ = t.f9_; + return *this; + } + + T0 f0_; + T1 f1_; + T2 f2_; + T3 f3_; + T4 f4_; + T5 f5_; + T6 f6_; + T7 f7_; + T8 f8_; + T9 f9_; +}; + +// 6.1.3.2 Tuple creation functions. + +// Known limitations: we don't support passing an +// std::tr1::reference_wrapper to make_tuple(). And we don't +// implement tie(). + +inline tuple<> make_tuple() { return tuple<>(); } + +template +inline GTEST_1_TUPLE_(T) make_tuple(const T0& f0) { + return GTEST_1_TUPLE_(T)(f0); +} + +template +inline GTEST_2_TUPLE_(T) make_tuple(const T0& f0, const T1& f1) { + return GTEST_2_TUPLE_(T)(f0, f1); +} + +template +inline GTEST_3_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2) { + return GTEST_3_TUPLE_(T)(f0, f1, f2); +} + +template +inline GTEST_4_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, + const T3& f3) { + return GTEST_4_TUPLE_(T)(f0, f1, f2, f3); +} + +template +inline GTEST_5_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, + const T3& f3, const T4& f4) { + return GTEST_5_TUPLE_(T)(f0, f1, f2, f3, f4); +} + +template +inline GTEST_6_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, + const T3& f3, const T4& f4, const T5& f5) { + return GTEST_6_TUPLE_(T)(f0, f1, f2, f3, f4, f5); +} + +template +inline GTEST_7_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, + const T3& f3, const T4& f4, const T5& f5, const T6& f6) { + return GTEST_7_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6); +} + +template +inline GTEST_8_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, + const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7) { + return GTEST_8_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6, f7); +} + +template +inline GTEST_9_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, + const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7, + const T8& f8) { + return GTEST_9_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6, f7, f8); +} + +template +inline GTEST_10_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, + const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7, + const T8& f8, const T9& f9) { + return GTEST_10_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9); +} + +// 6.1.3.3 Tuple helper classes. + +template struct tuple_size; + +template +struct tuple_size { + static const int value = 0; +}; + +template +struct tuple_size { + static const int value = 1; +}; + +template +struct tuple_size { + static const int value = 2; +}; + +template +struct tuple_size { + static const int value = 3; +}; + +template +struct tuple_size { + static const int value = 4; +}; + +template +struct tuple_size { + static const int value = 5; +}; + +template +struct tuple_size { + static const int value = 6; +}; + +template +struct tuple_size { + static const int value = 7; +}; + +template +struct tuple_size { + static const int value = 8; +}; + +template +struct tuple_size { + static const int value = 9; +}; + +template +struct tuple_size { + static const int value = 10; +}; + +template +struct tuple_element { + typedef typename gtest_internal::TupleElement< + k < (tuple_size::value), k, Tuple>::type type; +}; + +#define GTEST_TUPLE_ELEMENT_(k, Tuple) typename tuple_element::type + +// 6.1.3.4 Element access. + +namespace gtest_internal { + +template <> +class Get<0> { + public: + template + static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(0, Tuple)) + Field(Tuple& t) { return t.f0_; } // NOLINT + + template + static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(0, Tuple)) + ConstField(const Tuple& t) { return t.f0_; } +}; + +template <> +class Get<1> { + public: + template + static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(1, Tuple)) + Field(Tuple& t) { return t.f1_; } // NOLINT + + template + static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(1, Tuple)) + ConstField(const Tuple& t) { return t.f1_; } +}; + +template <> +class Get<2> { + public: + template + static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(2, Tuple)) + Field(Tuple& t) { return t.f2_; } // NOLINT + + template + static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(2, Tuple)) + ConstField(const Tuple& t) { return t.f2_; } +}; + +template <> +class Get<3> { + public: + template + static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(3, Tuple)) + Field(Tuple& t) { return t.f3_; } // NOLINT + + template + static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(3, Tuple)) + ConstField(const Tuple& t) { return t.f3_; } +}; + +template <> +class Get<4> { + public: + template + static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(4, Tuple)) + Field(Tuple& t) { return t.f4_; } // NOLINT + + template + static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(4, Tuple)) + ConstField(const Tuple& t) { return t.f4_; } +}; + +template <> +class Get<5> { + public: + template + static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(5, Tuple)) + Field(Tuple& t) { return t.f5_; } // NOLINT + + template + static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(5, Tuple)) + ConstField(const Tuple& t) { return t.f5_; } +}; + +template <> +class Get<6> { + public: + template + static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(6, Tuple)) + Field(Tuple& t) { return t.f6_; } // NOLINT + + template + static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(6, Tuple)) + ConstField(const Tuple& t) { return t.f6_; } +}; + +template <> +class Get<7> { + public: + template + static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(7, Tuple)) + Field(Tuple& t) { return t.f7_; } // NOLINT + + template + static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(7, Tuple)) + ConstField(const Tuple& t) { return t.f7_; } +}; + +template <> +class Get<8> { + public: + template + static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(8, Tuple)) + Field(Tuple& t) { return t.f8_; } // NOLINT + + template + static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(8, Tuple)) + ConstField(const Tuple& t) { return t.f8_; } +}; + +template <> +class Get<9> { + public: + template + static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(9, Tuple)) + Field(Tuple& t) { return t.f9_; } // NOLINT + + template + static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(9, Tuple)) + ConstField(const Tuple& t) { return t.f9_; } +}; + +} // namespace gtest_internal + +template +GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_10_TUPLE_(T))) +get(GTEST_10_TUPLE_(T)& t) { + return gtest_internal::Get::Field(t); +} + +template +GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_10_TUPLE_(T))) +get(const GTEST_10_TUPLE_(T)& t) { + return gtest_internal::Get::ConstField(t); +} + +// 6.1.3.5 Relational operators + +// We only implement == and !=, as we don't have a need for the rest yet. + +namespace gtest_internal { + +// SameSizeTuplePrefixComparator::Eq(t1, t2) returns true if the +// first k fields of t1 equals the first k fields of t2. +// SameSizeTuplePrefixComparator(k1, k2) would be a compiler error if +// k1 != k2. +template +struct SameSizeTuplePrefixComparator; + +template <> +struct SameSizeTuplePrefixComparator<0, 0> { + template + static bool Eq(const Tuple1& /* t1 */, const Tuple2& /* t2 */) { + return true; + } +}; + +template +struct SameSizeTuplePrefixComparator { + template + static bool Eq(const Tuple1& t1, const Tuple2& t2) { + return SameSizeTuplePrefixComparator::Eq(t1, t2) && + ::std::tr1::get(t1) == ::std::tr1::get(t2); + } +}; + +} // namespace gtest_internal + +template +inline bool operator==(const GTEST_10_TUPLE_(T)& t, + const GTEST_10_TUPLE_(U)& u) { + return gtest_internal::SameSizeTuplePrefixComparator< + tuple_size::value, + tuple_size::value>::Eq(t, u); +} + +template +inline bool operator!=(const GTEST_10_TUPLE_(T)& t, + const GTEST_10_TUPLE_(U)& u) { return !(t == u); } + +// 6.1.4 Pairs. +// Unimplemented. + +} // namespace tr1 +} // namespace std + +#undef GTEST_0_TUPLE_ +#undef GTEST_1_TUPLE_ +#undef GTEST_2_TUPLE_ +#undef GTEST_3_TUPLE_ +#undef GTEST_4_TUPLE_ +#undef GTEST_5_TUPLE_ +#undef GTEST_6_TUPLE_ +#undef GTEST_7_TUPLE_ +#undef GTEST_8_TUPLE_ +#undef GTEST_9_TUPLE_ +#undef GTEST_10_TUPLE_ + +#undef GTEST_0_TYPENAMES_ +#undef GTEST_1_TYPENAMES_ +#undef GTEST_2_TYPENAMES_ +#undef GTEST_3_TYPENAMES_ +#undef GTEST_4_TYPENAMES_ +#undef GTEST_5_TYPENAMES_ +#undef GTEST_6_TYPENAMES_ +#undef GTEST_7_TYPENAMES_ +#undef GTEST_8_TYPENAMES_ +#undef GTEST_9_TYPENAMES_ +#undef GTEST_10_TYPENAMES_ + +#undef GTEST_DECLARE_TUPLE_AS_FRIEND_ +#undef GTEST_BY_REF_ +#undef GTEST_ADD_REF_ +#undef GTEST_TUPLE_ELEMENT_ + +#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_ diff --git a/gtest-1.7.0/include/gtest/internal/gtest-tuple.h.pump b/gtest-1.7.0/include/gtest/internal/gtest-tuple.h.pump new file mode 100644 index 0000000..c7d9e03 --- /dev/null +++ b/gtest-1.7.0/include/gtest/internal/gtest-tuple.h.pump @@ -0,0 +1,339 @@ +$$ -*- mode: c++; -*- +$var n = 10 $$ Maximum number of tuple fields we want to support. +$$ This meta comment fixes auto-indentation in Emacs. }} +// Copyright 2009 Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: wan@google.com (Zhanyong Wan) + +// Implements a subset of TR1 tuple needed by Google Test and Google Mock. + +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_ + +#include // For ::std::pair. + +// The compiler used in Symbian has a bug that prevents us from declaring the +// tuple template as a friend (it complains that tuple is redefined). This +// hack bypasses the bug by declaring the members that should otherwise be +// private as public. +// Sun Studio versions < 12 also have the above bug. +#if defined(__SYMBIAN32__) || (defined(__SUNPRO_CC) && __SUNPRO_CC < 0x590) +# define GTEST_DECLARE_TUPLE_AS_FRIEND_ public: +#else +# define GTEST_DECLARE_TUPLE_AS_FRIEND_ \ + template friend class tuple; \ + private: +#endif + + +$range i 0..n-1 +$range j 0..n +$range k 1..n +// GTEST_n_TUPLE_(T) is the type of an n-tuple. +#define GTEST_0_TUPLE_(T) tuple<> + +$for k [[ +$range m 0..k-1 +$range m2 k..n-1 +#define GTEST_$(k)_TUPLE_(T) tuple<$for m, [[T##$m]]$for m2 [[, void]]> + +]] + +// GTEST_n_TYPENAMES_(T) declares a list of n typenames. + +$for j [[ +$range m 0..j-1 +#define GTEST_$(j)_TYPENAMES_(T) $for m, [[typename T##$m]] + + +]] + +// In theory, defining stuff in the ::std namespace is undefined +// behavior. We can do this as we are playing the role of a standard +// library vendor. +namespace std { +namespace tr1 { + +template <$for i, [[typename T$i = void]]> +class tuple; + +// Anything in namespace gtest_internal is Google Test's INTERNAL +// IMPLEMENTATION DETAIL and MUST NOT BE USED DIRECTLY in user code. +namespace gtest_internal { + +// ByRef::type is T if T is a reference; otherwise it's const T&. +template +struct ByRef { typedef const T& type; }; // NOLINT +template +struct ByRef { typedef T& type; }; // NOLINT + +// A handy wrapper for ByRef. +#define GTEST_BY_REF_(T) typename ::std::tr1::gtest_internal::ByRef::type + +// AddRef::type is T if T is a reference; otherwise it's T&. This +// is the same as tr1::add_reference::type. +template +struct AddRef { typedef T& type; }; // NOLINT +template +struct AddRef { typedef T& type; }; // NOLINT + +// A handy wrapper for AddRef. +#define GTEST_ADD_REF_(T) typename ::std::tr1::gtest_internal::AddRef::type + +// A helper for implementing get(). +template class Get; + +// A helper for implementing tuple_element. kIndexValid is true +// iff k < the number of fields in tuple type T. +template +struct TupleElement; + + +$for i [[ +template +struct TupleElement { + typedef T$i type; +}; + + +]] +} // namespace gtest_internal + +template <> +class tuple<> { + public: + tuple() {} + tuple(const tuple& /* t */) {} + tuple& operator=(const tuple& /* t */) { return *this; } +}; + + +$for k [[ +$range m 0..k-1 +template +class $if k < n [[GTEST_$(k)_TUPLE_(T)]] $else [[tuple]] { + public: + template friend class gtest_internal::Get; + + tuple() : $for m, [[f$(m)_()]] {} + + explicit tuple($for m, [[GTEST_BY_REF_(T$m) f$m]]) : [[]] +$for m, [[f$(m)_(f$m)]] {} + + tuple(const tuple& t) : $for m, [[f$(m)_(t.f$(m)_)]] {} + + template + tuple(const GTEST_$(k)_TUPLE_(U)& t) : $for m, [[f$(m)_(t.f$(m)_)]] {} + +$if k == 2 [[ + template + tuple(const ::std::pair& p) : f0_(p.first), f1_(p.second) {} + +]] + + tuple& operator=(const tuple& t) { return CopyFrom(t); } + + template + tuple& operator=(const GTEST_$(k)_TUPLE_(U)& t) { + return CopyFrom(t); + } + +$if k == 2 [[ + template + tuple& operator=(const ::std::pair& p) { + f0_ = p.first; + f1_ = p.second; + return *this; + } + +]] + + GTEST_DECLARE_TUPLE_AS_FRIEND_ + + template + tuple& CopyFrom(const GTEST_$(k)_TUPLE_(U)& t) { + +$for m [[ + f$(m)_ = t.f$(m)_; + +]] + return *this; + } + + +$for m [[ + T$m f$(m)_; + +]] +}; + + +]] +// 6.1.3.2 Tuple creation functions. + +// Known limitations: we don't support passing an +// std::tr1::reference_wrapper to make_tuple(). And we don't +// implement tie(). + +inline tuple<> make_tuple() { return tuple<>(); } + +$for k [[ +$range m 0..k-1 + +template +inline GTEST_$(k)_TUPLE_(T) make_tuple($for m, [[const T$m& f$m]]) { + return GTEST_$(k)_TUPLE_(T)($for m, [[f$m]]); +} + +]] + +// 6.1.3.3 Tuple helper classes. + +template struct tuple_size; + + +$for j [[ +template +struct tuple_size { + static const int value = $j; +}; + + +]] +template +struct tuple_element { + typedef typename gtest_internal::TupleElement< + k < (tuple_size::value), k, Tuple>::type type; +}; + +#define GTEST_TUPLE_ELEMENT_(k, Tuple) typename tuple_element::type + +// 6.1.3.4 Element access. + +namespace gtest_internal { + + +$for i [[ +template <> +class Get<$i> { + public: + template + static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_($i, Tuple)) + Field(Tuple& t) { return t.f$(i)_; } // NOLINT + + template + static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_($i, Tuple)) + ConstField(const Tuple& t) { return t.f$(i)_; } +}; + + +]] +} // namespace gtest_internal + +template +GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_$(n)_TUPLE_(T))) +get(GTEST_$(n)_TUPLE_(T)& t) { + return gtest_internal::Get::Field(t); +} + +template +GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_$(n)_TUPLE_(T))) +get(const GTEST_$(n)_TUPLE_(T)& t) { + return gtest_internal::Get::ConstField(t); +} + +// 6.1.3.5 Relational operators + +// We only implement == and !=, as we don't have a need for the rest yet. + +namespace gtest_internal { + +// SameSizeTuplePrefixComparator::Eq(t1, t2) returns true if the +// first k fields of t1 equals the first k fields of t2. +// SameSizeTuplePrefixComparator(k1, k2) would be a compiler error if +// k1 != k2. +template +struct SameSizeTuplePrefixComparator; + +template <> +struct SameSizeTuplePrefixComparator<0, 0> { + template + static bool Eq(const Tuple1& /* t1 */, const Tuple2& /* t2 */) { + return true; + } +}; + +template +struct SameSizeTuplePrefixComparator { + template + static bool Eq(const Tuple1& t1, const Tuple2& t2) { + return SameSizeTuplePrefixComparator::Eq(t1, t2) && + ::std::tr1::get(t1) == ::std::tr1::get(t2); + } +}; + +} // namespace gtest_internal + +template +inline bool operator==(const GTEST_$(n)_TUPLE_(T)& t, + const GTEST_$(n)_TUPLE_(U)& u) { + return gtest_internal::SameSizeTuplePrefixComparator< + tuple_size::value, + tuple_size::value>::Eq(t, u); +} + +template +inline bool operator!=(const GTEST_$(n)_TUPLE_(T)& t, + const GTEST_$(n)_TUPLE_(U)& u) { return !(t == u); } + +// 6.1.4 Pairs. +// Unimplemented. + +} // namespace tr1 +} // namespace std + + +$for j [[ +#undef GTEST_$(j)_TUPLE_ + +]] + + +$for j [[ +#undef GTEST_$(j)_TYPENAMES_ + +]] + +#undef GTEST_DECLARE_TUPLE_AS_FRIEND_ +#undef GTEST_BY_REF_ +#undef GTEST_ADD_REF_ +#undef GTEST_TUPLE_ELEMENT_ + +#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_ diff --git a/gtest-1.7.0/include/gtest/internal/gtest-type-util.h b/gtest-1.7.0/include/gtest/internal/gtest-type-util.h new file mode 100644 index 0000000..e46f7cf --- /dev/null +++ b/gtest-1.7.0/include/gtest/internal/gtest-type-util.h @@ -0,0 +1,3331 @@ +// This file was GENERATED by command: +// pump.py gtest-type-util.h.pump +// DO NOT EDIT BY HAND!!! + +// Copyright 2008 Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: wan@google.com (Zhanyong Wan) + +// Type utilities needed for implementing typed and type-parameterized +// tests. This file is generated by a SCRIPT. DO NOT EDIT BY HAND! +// +// Currently we support at most 50 types in a list, and at most 50 +// type-parameterized tests in one type-parameterized test case. +// Please contact googletestframework@googlegroups.com if you need +// more. + +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ + +#include "gtest/internal/gtest-port.h" + +// #ifdef __GNUC__ is too general here. It is possible to use gcc without using +// libstdc++ (which is where cxxabi.h comes from). +# if GTEST_HAS_CXXABI_H_ +# include +# elif defined(__HP_aCC) +# include +# endif // GTEST_HASH_CXXABI_H_ + +namespace testing { +namespace internal { + +// GetTypeName() returns a human-readable name of type T. +// NB: This function is also used in Google Mock, so don't move it inside of +// the typed-test-only section below. +template +std::string GetTypeName() { +# if GTEST_HAS_RTTI + + const char* const name = typeid(T).name(); +# if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC) + int status = 0; + // gcc's implementation of typeid(T).name() mangles the type name, + // so we have to demangle it. +# if GTEST_HAS_CXXABI_H_ + using abi::__cxa_demangle; +# endif // GTEST_HAS_CXXABI_H_ + char* const readable_name = __cxa_demangle(name, 0, 0, &status); + const std::string name_str(status == 0 ? readable_name : name); + free(readable_name); + return name_str; +# else + return name; +# endif // GTEST_HAS_CXXABI_H_ || __HP_aCC + +# else + + return ""; + +# endif // GTEST_HAS_RTTI +} + +#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P + +// AssertyTypeEq::type is defined iff T1 and T2 are the same +// type. This can be used as a compile-time assertion to ensure that +// two types are equal. + +template +struct AssertTypeEq; + +template +struct AssertTypeEq { + typedef bool type; +}; + +// A unique type used as the default value for the arguments of class +// template Types. This allows us to simulate variadic templates +// (e.g. Types, Type, and etc), which C++ doesn't +// support directly. +struct None {}; + +// The following family of struct and struct templates are used to +// represent type lists. In particular, TypesN +// represents a type list with N types (T1, T2, ..., and TN) in it. +// Except for Types0, every struct in the family has two member types: +// Head for the first type in the list, and Tail for the rest of the +// list. + +// The empty type list. +struct Types0 {}; + +// Type lists of length 1, 2, 3, and so on. + +template +struct Types1 { + typedef T1 Head; + typedef Types0 Tail; +}; +template +struct Types2 { + typedef T1 Head; + typedef Types1 Tail; +}; + +template +struct Types3 { + typedef T1 Head; + typedef Types2 Tail; +}; + +template +struct Types4 { + typedef T1 Head; + typedef Types3 Tail; +}; + +template +struct Types5 { + typedef T1 Head; + typedef Types4 Tail; +}; + +template +struct Types6 { + typedef T1 Head; + typedef Types5 Tail; +}; + +template +struct Types7 { + typedef T1 Head; + typedef Types6 Tail; +}; + +template +struct Types8 { + typedef T1 Head; + typedef Types7 Tail; +}; + +template +struct Types9 { + typedef T1 Head; + typedef Types8 Tail; +}; + +template +struct Types10 { + typedef T1 Head; + typedef Types9 Tail; +}; + +template +struct Types11 { + typedef T1 Head; + typedef Types10 Tail; +}; + +template +struct Types12 { + typedef T1 Head; + typedef Types11 Tail; +}; + +template +struct Types13 { + typedef T1 Head; + typedef Types12 Tail; +}; + +template +struct Types14 { + typedef T1 Head; + typedef Types13 Tail; +}; + +template +struct Types15 { + typedef T1 Head; + typedef Types14 Tail; +}; + +template +struct Types16 { + typedef T1 Head; + typedef Types15 Tail; +}; + +template +struct Types17 { + typedef T1 Head; + typedef Types16 Tail; +}; + +template +struct Types18 { + typedef T1 Head; + typedef Types17 Tail; +}; + +template +struct Types19 { + typedef T1 Head; + typedef Types18 Tail; +}; + +template +struct Types20 { + typedef T1 Head; + typedef Types19 Tail; +}; + +template +struct Types21 { + typedef T1 Head; + typedef Types20 Tail; +}; + +template +struct Types22 { + typedef T1 Head; + typedef Types21 Tail; +}; + +template +struct Types23 { + typedef T1 Head; + typedef Types22 Tail; +}; + +template +struct Types24 { + typedef T1 Head; + typedef Types23 Tail; +}; + +template +struct Types25 { + typedef T1 Head; + typedef Types24 Tail; +}; + +template +struct Types26 { + typedef T1 Head; + typedef Types25 Tail; +}; + +template +struct Types27 { + typedef T1 Head; + typedef Types26 Tail; +}; + +template +struct Types28 { + typedef T1 Head; + typedef Types27 Tail; +}; + +template +struct Types29 { + typedef T1 Head; + typedef Types28 Tail; +}; + +template +struct Types30 { + typedef T1 Head; + typedef Types29 Tail; +}; + +template +struct Types31 { + typedef T1 Head; + typedef Types30 Tail; +}; + +template +struct Types32 { + typedef T1 Head; + typedef Types31 Tail; +}; + +template +struct Types33 { + typedef T1 Head; + typedef Types32 Tail; +}; + +template +struct Types34 { + typedef T1 Head; + typedef Types33 Tail; +}; + +template +struct Types35 { + typedef T1 Head; + typedef Types34 Tail; +}; + +template +struct Types36 { + typedef T1 Head; + typedef Types35 Tail; +}; + +template +struct Types37 { + typedef T1 Head; + typedef Types36 Tail; +}; + +template +struct Types38 { + typedef T1 Head; + typedef Types37 Tail; +}; + +template +struct Types39 { + typedef T1 Head; + typedef Types38 Tail; +}; + +template +struct Types40 { + typedef T1 Head; + typedef Types39 Tail; +}; + +template +struct Types41 { + typedef T1 Head; + typedef Types40 Tail; +}; + +template +struct Types42 { + typedef T1 Head; + typedef Types41 Tail; +}; + +template +struct Types43 { + typedef T1 Head; + typedef Types42 Tail; +}; + +template +struct Types44 { + typedef T1 Head; + typedef Types43 Tail; +}; + +template +struct Types45 { + typedef T1 Head; + typedef Types44 Tail; +}; + +template +struct Types46 { + typedef T1 Head; + typedef Types45 Tail; +}; + +template +struct Types47 { + typedef T1 Head; + typedef Types46 Tail; +}; + +template +struct Types48 { + typedef T1 Head; + typedef Types47 Tail; +}; + +template +struct Types49 { + typedef T1 Head; + typedef Types48 Tail; +}; + +template +struct Types50 { + typedef T1 Head; + typedef Types49 Tail; +}; + + +} // namespace internal + +// We don't want to require the users to write TypesN<...> directly, +// as that would require them to count the length. Types<...> is much +// easier to write, but generates horrible messages when there is a +// compiler error, as gcc insists on printing out each template +// argument, even if it has the default value (this means Types +// will appear as Types in the compiler +// errors). +// +// Our solution is to combine the best part of the two approaches: a +// user would write Types, and Google Test will translate +// that to TypesN internally to make error messages +// readable. The translation is done by the 'type' member of the +// Types template. +template +struct Types { + typedef internal::Types50 type; +}; + +template <> +struct Types { + typedef internal::Types0 type; +}; +template +struct Types { + typedef internal::Types1 type; +}; +template +struct Types { + typedef internal::Types2 type; +}; +template +struct Types { + typedef internal::Types3 type; +}; +template +struct Types { + typedef internal::Types4 type; +}; +template +struct Types { + typedef internal::Types5 type; +}; +template +struct Types { + typedef internal::Types6 type; +}; +template +struct Types { + typedef internal::Types7 type; +}; +template +struct Types { + typedef internal::Types8 type; +}; +template +struct Types { + typedef internal::Types9 type; +}; +template +struct Types { + typedef internal::Types10 type; +}; +template +struct Types { + typedef internal::Types11 type; +}; +template +struct Types { + typedef internal::Types12 type; +}; +template +struct Types { + typedef internal::Types13 type; +}; +template +struct Types { + typedef internal::Types14 type; +}; +template +struct Types { + typedef internal::Types15 type; +}; +template +struct Types { + typedef internal::Types16 type; +}; +template +struct Types { + typedef internal::Types17 type; +}; +template +struct Types { + typedef internal::Types18 type; +}; +template +struct Types { + typedef internal::Types19 type; +}; +template +struct Types { + typedef internal::Types20 type; +}; +template +struct Types { + typedef internal::Types21 type; +}; +template +struct Types { + typedef internal::Types22 type; +}; +template +struct Types { + typedef internal::Types23 type; +}; +template +struct Types { + typedef internal::Types24 type; +}; +template +struct Types { + typedef internal::Types25 type; +}; +template +struct Types { + typedef internal::Types26 type; +}; +template +struct Types { + typedef internal::Types27 type; +}; +template +struct Types { + typedef internal::Types28 type; +}; +template +struct Types { + typedef internal::Types29 type; +}; +template +struct Types { + typedef internal::Types30 type; +}; +template +struct Types { + typedef internal::Types31 type; +}; +template +struct Types { + typedef internal::Types32 type; +}; +template +struct Types { + typedef internal::Types33 type; +}; +template +struct Types { + typedef internal::Types34 type; +}; +template +struct Types { + typedef internal::Types35 type; +}; +template +struct Types { + typedef internal::Types36 type; +}; +template +struct Types { + typedef internal::Types37 type; +}; +template +struct Types { + typedef internal::Types38 type; +}; +template +struct Types { + typedef internal::Types39 type; +}; +template +struct Types { + typedef internal::Types40 type; +}; +template +struct Types { + typedef internal::Types41 type; +}; +template +struct Types { + typedef internal::Types42 type; +}; +template +struct Types { + typedef internal::Types43 type; +}; +template +struct Types { + typedef internal::Types44 type; +}; +template +struct Types { + typedef internal::Types45 type; +}; +template +struct Types { + typedef internal::Types46 type; +}; +template +struct Types { + typedef internal::Types47 type; +}; +template +struct Types { + typedef internal::Types48 type; +}; +template +struct Types { + typedef internal::Types49 type; +}; + +namespace internal { + +# define GTEST_TEMPLATE_ template class + +// The template "selector" struct TemplateSel is used to +// represent Tmpl, which must be a class template with one type +// parameter, as a type. TemplateSel::Bind::type is defined +// as the type Tmpl. This allows us to actually instantiate the +// template "selected" by TemplateSel. +// +// This trick is necessary for simulating typedef for class templates, +// which C++ doesn't support directly. +template +struct TemplateSel { + template + struct Bind { + typedef Tmpl type; + }; +}; + +# define GTEST_BIND_(TmplSel, T) \ + TmplSel::template Bind::type + +// A unique struct template used as the default value for the +// arguments of class template Templates. This allows us to simulate +// variadic templates (e.g. Templates, Templates, +// and etc), which C++ doesn't support directly. +template +struct NoneT {}; + +// The following family of struct and struct templates are used to +// represent template lists. In particular, TemplatesN represents a list of N templates (T1, T2, ..., and TN). Except +// for Templates0, every struct in the family has two member types: +// Head for the selector of the first template in the list, and Tail +// for the rest of the list. + +// The empty template list. +struct Templates0 {}; + +// Template lists of length 1, 2, 3, and so on. + +template +struct Templates1 { + typedef TemplateSel Head; + typedef Templates0 Tail; +}; +template +struct Templates2 { + typedef TemplateSel Head; + typedef Templates1 Tail; +}; + +template +struct Templates3 { + typedef TemplateSel Head; + typedef Templates2 Tail; +}; + +template +struct Templates4 { + typedef TemplateSel Head; + typedef Templates3 Tail; +}; + +template +struct Templates5 { + typedef TemplateSel Head; + typedef Templates4 Tail; +}; + +template +struct Templates6 { + typedef TemplateSel Head; + typedef Templates5 Tail; +}; + +template +struct Templates7 { + typedef TemplateSel Head; + typedef Templates6 Tail; +}; + +template +struct Templates8 { + typedef TemplateSel Head; + typedef Templates7 Tail; +}; + +template +struct Templates9 { + typedef TemplateSel Head; + typedef Templates8 Tail; +}; + +template +struct Templates10 { + typedef TemplateSel Head; + typedef Templates9 Tail; +}; + +template +struct Templates11 { + typedef TemplateSel Head; + typedef Templates10 Tail; +}; + +template +struct Templates12 { + typedef TemplateSel Head; + typedef Templates11 Tail; +}; + +template +struct Templates13 { + typedef TemplateSel Head; + typedef Templates12 Tail; +}; + +template +struct Templates14 { + typedef TemplateSel Head; + typedef Templates13 Tail; +}; + +template +struct Templates15 { + typedef TemplateSel Head; + typedef Templates14 Tail; +}; + +template +struct Templates16 { + typedef TemplateSel Head; + typedef Templates15 Tail; +}; + +template +struct Templates17 { + typedef TemplateSel Head; + typedef Templates16 Tail; +}; + +template +struct Templates18 { + typedef TemplateSel Head; + typedef Templates17 Tail; +}; + +template +struct Templates19 { + typedef TemplateSel Head; + typedef Templates18 Tail; +}; + +template +struct Templates20 { + typedef TemplateSel Head; + typedef Templates19 Tail; +}; + +template +struct Templates21 { + typedef TemplateSel Head; + typedef Templates20 Tail; +}; + +template +struct Templates22 { + typedef TemplateSel Head; + typedef Templates21 Tail; +}; + +template +struct Templates23 { + typedef TemplateSel Head; + typedef Templates22 Tail; +}; + +template +struct Templates24 { + typedef TemplateSel Head; + typedef Templates23 Tail; +}; + +template +struct Templates25 { + typedef TemplateSel Head; + typedef Templates24 Tail; +}; + +template +struct Templates26 { + typedef TemplateSel Head; + typedef Templates25 Tail; +}; + +template +struct Templates27 { + typedef TemplateSel Head; + typedef Templates26 Tail; +}; + +template +struct Templates28 { + typedef TemplateSel Head; + typedef Templates27 Tail; +}; + +template +struct Templates29 { + typedef TemplateSel Head; + typedef Templates28 Tail; +}; + +template +struct Templates30 { + typedef TemplateSel Head; + typedef Templates29 Tail; +}; + +template +struct Templates31 { + typedef TemplateSel Head; + typedef Templates30 Tail; +}; + +template +struct Templates32 { + typedef TemplateSel Head; + typedef Templates31 Tail; +}; + +template +struct Templates33 { + typedef TemplateSel Head; + typedef Templates32 Tail; +}; + +template +struct Templates34 { + typedef TemplateSel Head; + typedef Templates33 Tail; +}; + +template +struct Templates35 { + typedef TemplateSel Head; + typedef Templates34 Tail; +}; + +template +struct Templates36 { + typedef TemplateSel Head; + typedef Templates35 Tail; +}; + +template +struct Templates37 { + typedef TemplateSel Head; + typedef Templates36 Tail; +}; + +template +struct Templates38 { + typedef TemplateSel Head; + typedef Templates37 Tail; +}; + +template +struct Templates39 { + typedef TemplateSel Head; + typedef Templates38 Tail; +}; + +template +struct Templates40 { + typedef TemplateSel Head; + typedef Templates39 Tail; +}; + +template +struct Templates41 { + typedef TemplateSel Head; + typedef Templates40 Tail; +}; + +template +struct Templates42 { + typedef TemplateSel Head; + typedef Templates41 Tail; +}; + +template +struct Templates43 { + typedef TemplateSel Head; + typedef Templates42 Tail; +}; + +template +struct Templates44 { + typedef TemplateSel Head; + typedef Templates43 Tail; +}; + +template +struct Templates45 { + typedef TemplateSel Head; + typedef Templates44 Tail; +}; + +template +struct Templates46 { + typedef TemplateSel Head; + typedef Templates45 Tail; +}; + +template +struct Templates47 { + typedef TemplateSel Head; + typedef Templates46 Tail; +}; + +template +struct Templates48 { + typedef TemplateSel Head; + typedef Templates47 Tail; +}; + +template +struct Templates49 { + typedef TemplateSel Head; + typedef Templates48 Tail; +}; + +template +struct Templates50 { + typedef TemplateSel Head; + typedef Templates49 Tail; +}; + + +// We don't want to require the users to write TemplatesN<...> directly, +// as that would require them to count the length. Templates<...> is much +// easier to write, but generates horrible messages when there is a +// compiler error, as gcc insists on printing out each template +// argument, even if it has the default value (this means Templates +// will appear as Templates in the compiler +// errors). +// +// Our solution is to combine the best part of the two approaches: a +// user would write Templates, and Google Test will translate +// that to TemplatesN internally to make error messages +// readable. The translation is done by the 'type' member of the +// Templates template. +template +struct Templates { + typedef Templates50 type; +}; + +template <> +struct Templates { + typedef Templates0 type; +}; +template +struct Templates { + typedef Templates1 type; +}; +template +struct Templates { + typedef Templates2 type; +}; +template +struct Templates { + typedef Templates3 type; +}; +template +struct Templates { + typedef Templates4 type; +}; +template +struct Templates { + typedef Templates5 type; +}; +template +struct Templates { + typedef Templates6 type; +}; +template +struct Templates { + typedef Templates7 type; +}; +template +struct Templates { + typedef Templates8 type; +}; +template +struct Templates { + typedef Templates9 type; +}; +template +struct Templates { + typedef Templates10 type; +}; +template +struct Templates { + typedef Templates11 type; +}; +template +struct Templates { + typedef Templates12 type; +}; +template +struct Templates { + typedef Templates13 type; +}; +template +struct Templates { + typedef Templates14 type; +}; +template +struct Templates { + typedef Templates15 type; +}; +template +struct Templates { + typedef Templates16 type; +}; +template +struct Templates { + typedef Templates17 type; +}; +template +struct Templates { + typedef Templates18 type; +}; +template +struct Templates { + typedef Templates19 type; +}; +template +struct Templates { + typedef Templates20 type; +}; +template +struct Templates { + typedef Templates21 type; +}; +template +struct Templates { + typedef Templates22 type; +}; +template +struct Templates { + typedef Templates23 type; +}; +template +struct Templates { + typedef Templates24 type; +}; +template +struct Templates { + typedef Templates25 type; +}; +template +struct Templates { + typedef Templates26 type; +}; +template +struct Templates { + typedef Templates27 type; +}; +template +struct Templates { + typedef Templates28 type; +}; +template +struct Templates { + typedef Templates29 type; +}; +template +struct Templates { + typedef Templates30 type; +}; +template +struct Templates { + typedef Templates31 type; +}; +template +struct Templates { + typedef Templates32 type; +}; +template +struct Templates { + typedef Templates33 type; +}; +template +struct Templates { + typedef Templates34 type; +}; +template +struct Templates { + typedef Templates35 type; +}; +template +struct Templates { + typedef Templates36 type; +}; +template +struct Templates { + typedef Templates37 type; +}; +template +struct Templates { + typedef Templates38 type; +}; +template +struct Templates { + typedef Templates39 type; +}; +template +struct Templates { + typedef Templates40 type; +}; +template +struct Templates { + typedef Templates41 type; +}; +template +struct Templates { + typedef Templates42 type; +}; +template +struct Templates { + typedef Templates43 type; +}; +template +struct Templates { + typedef Templates44 type; +}; +template +struct Templates { + typedef Templates45 type; +}; +template +struct Templates { + typedef Templates46 type; +}; +template +struct Templates { + typedef Templates47 type; +}; +template +struct Templates { + typedef Templates48 type; +}; +template +struct Templates { + typedef Templates49 type; +}; + +// The TypeList template makes it possible to use either a single type +// or a Types<...> list in TYPED_TEST_CASE() and +// INSTANTIATE_TYPED_TEST_CASE_P(). + +template +struct TypeList { + typedef Types1 type; +}; + +template +struct TypeList > { + typedef typename Types::type type; +}; + +#endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P + +} // namespace internal +} // namespace testing + +#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ diff --git a/gtest-1.7.0/include/gtest/internal/gtest-type-util.h.pump b/gtest-1.7.0/include/gtest/internal/gtest-type-util.h.pump new file mode 100644 index 0000000..251fdf0 --- /dev/null +++ b/gtest-1.7.0/include/gtest/internal/gtest-type-util.h.pump @@ -0,0 +1,297 @@ +$$ -*- mode: c++; -*- +$var n = 50 $$ Maximum length of type lists we want to support. +// Copyright 2008 Google Inc. +// 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 Google Inc. 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 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: wan@google.com (Zhanyong Wan) + +// Type utilities needed for implementing typed and type-parameterized +// tests. This file is generated by a SCRIPT. DO NOT EDIT BY HAND! +// +// Currently we support at most $n types in a list, and at most $n +// type-parameterized tests in one type-parameterized test case. +// Please contact googletestframework@googlegroups.com if you need +// more. + +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ + +#include "gtest/internal/gtest-port.h" + +// #ifdef __GNUC__ is too general here. It is possible to use gcc without using +// libstdc++ (which is where cxxabi.h comes from). +# if GTEST_HAS_CXXABI_H_ +# include +# elif defined(__HP_aCC) +# include +# endif // GTEST_HASH_CXXABI_H_ + +namespace testing { +namespace internal { + +// GetTypeName() returns a human-readable name of type T. +// NB: This function is also used in Google Mock, so don't move it inside of +// the typed-test-only section below. +template +std::string GetTypeName() { +# if GTEST_HAS_RTTI + + const char* const name = typeid(T).name(); +# if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC) + int status = 0; + // gcc's implementation of typeid(T).name() mangles the type name, + // so we have to demangle it. +# if GTEST_HAS_CXXABI_H_ + using abi::__cxa_demangle; +# endif // GTEST_HAS_CXXABI_H_ + char* const readable_name = __cxa_demangle(name, 0, 0, &status); + const std::string name_str(status == 0 ? readable_name : name); + free(readable_name); + return name_str; +# else + return name; +# endif // GTEST_HAS_CXXABI_H_ || __HP_aCC + +# else + + return ""; + +# endif // GTEST_HAS_RTTI +} + +#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P + +// AssertyTypeEq::type is defined iff T1 and T2 are the same +// type. This can be used as a compile-time assertion to ensure that +// two types are equal. + +template +struct AssertTypeEq; + +template +struct AssertTypeEq { + typedef bool type; +}; + +// A unique type used as the default value for the arguments of class +// template Types. This allows us to simulate variadic templates +// (e.g. Types, Type, and etc), which C++ doesn't +// support directly. +struct None {}; + +// The following family of struct and struct templates are used to +// represent type lists. In particular, TypesN +// represents a type list with N types (T1, T2, ..., and TN) in it. +// Except for Types0, every struct in the family has two member types: +// Head for the first type in the list, and Tail for the rest of the +// list. + +// The empty type list. +struct Types0 {}; + +// Type lists of length 1, 2, 3, and so on. + +template +struct Types1 { + typedef T1 Head; + typedef Types0 Tail; +}; + +$range i 2..n + +$for i [[ +$range j 1..i +$range k 2..i +template <$for j, [[typename T$j]]> +struct Types$i { + typedef T1 Head; + typedef Types$(i-1)<$for k, [[T$k]]> Tail; +}; + + +]] + +} // namespace internal + +// We don't want to require the users to write TypesN<...> directly, +// as that would require them to count the length. Types<...> is much +// easier to write, but generates horrible messages when there is a +// compiler error, as gcc insists on printing out each template +// argument, even if it has the default value (this means Types +// will appear as Types in the compiler +// errors). +// +// Our solution is to combine the best part of the two approaches: a +// user would write Types, and Google Test will translate +// that to TypesN internally to make error messages +// readable. The translation is done by the 'type' member of the +// Types template. + +$range i 1..n +template <$for i, [[typename T$i = internal::None]]> +struct Types { + typedef internal::Types$n<$for i, [[T$i]]> type; +}; + +template <> +struct Types<$for i, [[internal::None]]> { + typedef internal::Types0 type; +}; + +$range i 1..n-1 +$for i [[ +$range j 1..i +$range k i+1..n +template <$for j, [[typename T$j]]> +struct Types<$for j, [[T$j]]$for k[[, internal::None]]> { + typedef internal::Types$i<$for j, [[T$j]]> type; +}; + +]] + +namespace internal { + +# define GTEST_TEMPLATE_ template class + +// The template "selector" struct TemplateSel is used to +// represent Tmpl, which must be a class template with one type +// parameter, as a type. TemplateSel::Bind::type is defined +// as the type Tmpl. This allows us to actually instantiate the +// template "selected" by TemplateSel. +// +// This trick is necessary for simulating typedef for class templates, +// which C++ doesn't support directly. +template +struct TemplateSel { + template + struct Bind { + typedef Tmpl type; + }; +}; + +# define GTEST_BIND_(TmplSel, T) \ + TmplSel::template Bind::type + +// A unique struct template used as the default value for the +// arguments of class template Templates. This allows us to simulate +// variadic templates (e.g. Templates, Templates, +// and etc), which C++ doesn't support directly. +template +struct NoneT {}; + +// The following family of struct and struct templates are used to +// represent template lists. In particular, TemplatesN represents a list of N templates (T1, T2, ..., and TN). Except +// for Templates0, every struct in the family has two member types: +// Head for the selector of the first template in the list, and Tail +// for the rest of the list. + +// The empty template list. +struct Templates0 {}; + +// Template lists of length 1, 2, 3, and so on. + +template +struct Templates1 { + typedef TemplateSel Head; + typedef Templates0 Tail; +}; + +$range i 2..n + +$for i [[ +$range j 1..i +$range k 2..i +template <$for j, [[GTEST_TEMPLATE_ T$j]]> +struct Templates$i { + typedef TemplateSel Head; + typedef Templates$(i-1)<$for k, [[T$k]]> Tail; +}; + + +]] + +// We don't want to require the users to write TemplatesN<...> directly, +// as that would require them to count the length. Templates<...> is much +// easier to write, but generates horrible messages when there is a +// compiler error, as gcc insists on printing out each template +// argument, even if it has the default value (this means Templates +// will appear as Templates in the compiler +// errors). +// +// Our solution is to combine the best part of the two approaches: a +// user would write Templates, and Google Test will translate +// that to TemplatesN internally to make error messages +// readable. The translation is done by the 'type' member of the +// Templates template. + +$range i 1..n +template <$for i, [[GTEST_TEMPLATE_ T$i = NoneT]]> +struct Templates { + typedef Templates$n<$for i, [[T$i]]> type; +}; + +template <> +struct Templates<$for i, [[NoneT]]> { + typedef Templates0 type; +}; + +$range i 1..n-1 +$for i [[ +$range j 1..i +$range k i+1..n +template <$for j, [[GTEST_TEMPLATE_ T$j]]> +struct Templates<$for j, [[T$j]]$for k[[, NoneT]]> { + typedef Templates$i<$for j, [[T$j]]> type; +}; + +]] + +// The TypeList template makes it possible to use either a single type +// or a Types<...> list in TYPED_TEST_CASE() and +// INSTANTIATE_TYPED_TEST_CASE_P(). + +template +struct TypeList { + typedef Types1 type; +}; + + +$range i 1..n +template <$for i, [[typename T$i]]> +struct TypeList > { + typedef typename Types<$for i, [[T$i]]>::type type; +}; + +#endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P + +} // namespace internal +} // namespace testing + +#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ diff --git a/gtest-1.7.0/lib/.dirstamp b/gtest-1.7.0/lib/.dirstamp new file mode 100644 index 0000000..e69de29 diff --git a/gtest-1.7.0/lib/.libs/libgtest.a b/gtest-1.7.0/lib/.libs/libgtest.a new file mode 100644 index 0000000000000000000000000000000000000000..30250bc1ada538e4da7a47844aa31de5b49179f1 GIT binary patch literal 3301202 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�N)OLC-7asD}nC?z7P0*;8nm606z%)5b$c?KLG!c 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

i0OF(ElNE~WL*u!lH#(| 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 ^Dwbfnq$f%vGWP1we~;H-%ud+#Zo|n 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⪼^VT0+B#h8j^;g~_zEzVG3 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

?! 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 ~2Zm9x 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�ta?YK$`Y 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�?L?d$tH=XuV3p8Gt{ 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£ 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%0Dc8{ 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%0DuEzw#r7=Wpxferk9r<)0beSosfz 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
=-+HjAPrf`pwws4P=Zg7v2{&0_z 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
8X}b9lw@-uOOnucw3HgTi&T8E~(UbKyVV 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
#)Wufz9 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
Ka%(3BA@Gc|8=*q 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

-w57`I0V3tMg0cBzYiV)zZT_f2LB8E34@P< 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 TZ%5{^t3_k{)5@ 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%0D2etg%#D;MI?|WXhmLNv;!A7Xc_1%t%|kF`tUH~N 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%0DGdo4b(yLY=tNsmF|UEDuFeDV(nzDvo# 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 literal 0 HcmV?d00001 diff --git a/gtest-1.7.0/lib/.libs/libgtest_main.a b/gtest-1.7.0/lib/.libs/libgtest_main.a new file mode 100644 index 0000000000000000000000000000000000000000..a9752464233b2bd6509ef587788a58b122cca343 GIT binary patch literal 257316 zcmeEvcYGYxwg0YGvoV-vOfWT!ZOY1)Z8giXY>ZdZN?t6j#O}%kLIzn{*^AYpm0SWm zAcRMN&_Y6bgLKk+c?lssAqnZ_<)!yR%6loK^823iJu^Ea$w1yG@ALa7`q*=Bn>)9h zd)hts?()q;)5H6=9KFts{x!BVHf`M4+_=8cbsID*{B+&sR=@mZN5^8Z8vNfU|GkSF zoAZM?FWuYg6*Glm;XrJBs5}wdJ5#F6coJMYDc=g}N44Ra8ygxnY}nwsP3t!_u5XfW zTz2%;ncnW2cpTO9FCNRj@Vo#`x>?&6^OHcV1-hB?ez+@D&E{ zG59KjuQB*KgZCPIqro>De5=8?8+@n1cN=`K!S@^dfWi9=-f!?D20v!-69zwJ@BxFL zHTa;xFBtri!LJznn!#@v{HDQg8T^jH?-~4o!5yB!QUJF zqrpEJ{ENZA8GOW`OcMUZ5(XWEPcV3t!NmrTHF&(iB?gxoe4@c+22VA3y1_FIo@H>k z!IcKjF?gQAI)keXt}(dIV57ligX;}$Fu2j+CWGf2yue`EV5h;1!5)KIgWC=E8SFQB zk->t&L4!LD?lyRd!AlK#28Rp|8!Q>zYp`r^zrk^XlLnt^uwro5;6a0j4PIgJDuY)W zyw>1#2Cp}GgTWgO-fZv|gSQ#H!{D6;pKI`W247(CMFwAD@MQ*H0XVqr#vg6F?w2Rr zc-3FG-8lOjS(>q*%46HjgTL8!O9rW5-FD+AG)W(y`bg-N8)qNB?yA4WXV1I#s)ru| zTF*YITEY9ImJiCKn#PwuC`IqX$74Tz%Oj6Ga;dC;sg&Qfk7=sB&AwuPf9v zRp*XQPma4G`Z_#}Vk7w9WaUw>{9SF)*hpz;W}l}7xiWKjtmLQrFqA)ADS4xl)BF7_ zh2@Ev()7g8m^VE;;Z+Mq%1FdJm5d=4TO=Kf)ym_s{*;8*eq}4lB^EtFN+;rr6x1+Q zYl%rFIs)`1r*0O(+FA$g!@Hr3TdoYs+$uq<*jbcZ^je9=wJxpq>&YeYD^Z<(GI?TL zs;pUQ(Pi$HQ17;TE@WO!Cy!x>06 z$Dge6r(3)wem&|=th~Hg@c5k^3D)j(Y(D34UUccLP$6m-kLNDz*-v*SC&} zN!37{NUYXkFW0<9k=O~b6ObB9zKeAw|6|;*EBOHl`gJ8gSkV~YPJWneJt3A{)Qa@v zBI$8BtgV)5(N;^IG*VOV^;4H3^{t33ksh8{nHh;475fNKVCm5v=oG*$$0)dMrGncx zDY#>|f@fc=;LevSc+STaJog6*?utV=Tzd5L&QkFF4GLb6QSicX1uuGzf)~GA!ApLq z;H7cQ%F?4>eyW1IH!Ha3Vg;`}sNmHvQ}DX`6};i63f^=y#&qe?Z#hrF+qx9IeN@3a zp041XFIDia_bGVyR~5YHzZJaq)5pr|@B6-j_a}~%*nga@-~$;2ADmWj->nMnf2)Fz zd``hff1}`ICt?bh9{uqa1)msH@X2unpSn%Kr{AjJfiEfe%Cs)%1AcLoDv_K zi7ozXkp0JK_NlC%BD#DpekSPava98NeMrkfR%lI;mRf3qdLUq6~}Qu2Zy>q{JVRQa9s^u_d=4ZcTcU z7LbJaadVryLi2Q3*GZnd%olWek&d6V$EGw?qa|0OGA-b7U9I+N+hn3x8$)*AM&bS?#pPnmHQoQ5dytTl3Bzu zk50&2@%KxnKI}X9BVkFXl5I6wPUyP6A8BVlGlkkSQ)*i0fBz73g$XQ>`xCZKcmo^O zz%hA<>DJ6yW&QEJQcC#Nvh~teiDFEINm;qeSx%S=$7D`nD>kZ5B@~iQ!QbGj8 zxh1Rz_iGPCbPRn&()>2=ApsMqQkTA;-obPcGpl{)P+JGO*#VJ2k5Kn^mJs3e2qpSi zLgZGK(B&9z-wv*35oxs@0W-MTXh1bXOlDZXVv&r=B*sPZW#gq<6RH*^w3rqUnYh}! zm{stTpaKz==T~rCwE_{NLlsbLTePuS;K86kwP!6-|Ixn_(R=C9f2IVUFbTX?CGe$7 zSBbE=bm{7+0bp>@nUglO;e|R0pVUr?gpo~*tdN{p{0{=bizC5{TSH~H`eh{$l)XJD zyGb;;cwDP{tzT9GLD^3QW!vw2qLj4;F`_RD1_uF?t4`Wrz4&POB}TODu>X<-0!;m6 z+&Ky#5lw|d9$qWojek>?ny4?;%*a~#N&Nd#;<5!w=!876O_Z1QPuw^uGFa;(5zAW_ ziB^-eCsRaH*BQC&In5X;>d8Hfk%peUjWJTqle3JG zYMy){V-5VmcE;Km>t$>!V||QmV=O0=RI_q`v3|xbV(cQu@{AQ2D=;?5Sdp=vj14mO z6vlQi<}tRDu|16KVr+!5-HeSgb}?i77`ueANyeVc*c4-z8tpy#D(O>Pln|Xp71m;6 z1&7{w%`zm%lZ!-QsgaarOzio_wxyQ! zN$e4XwU*Sf+_w;BEd#Qwf?6&b)EHUmvOM!R)ys;^BP(6Di+P;*WfwC>R=VtxozjAp zr_gM)tTchBh*YswY|`WEv#LwVnnNL-XK z&W=_026;a&M1aXlq!&wMEw|%;?6f6`^fEvE#KdU`Z<6%3)7qTLlR?0>&@M-Mj6rAA zb3}oHK*8u`&Y3!V4Vx7qPTQn0{`Cy zVoSb%d& zmrzlh7W7B1ULw_Ql~QLkJ?#`}EdI92c<&rF?Rc3@-vOWyU&&_LO61y|AVa<(I5Sl57~^)nDrX&q{cK zzj&9Hs#$Tw0-r^F8F`asYVH`bSUo;mbH`<|ZpqYIBoO|KABB#x^tn=h@UF%7#d@Up z!tZXAtS8(nHqCfEE0LGue>@()PzL8HB=hgWbE44?Vo0jF$G#S&WIoi$c>-1m!WVu$ zQf7(RhA;eSBu(FwdD8cm#g^PH?>!tTbK$!%wAD{tcu6F>eKDA+{9S{;L%pY1OtxG4 zx-7D_Z^}YfZ+~&9xV&=B)w$PI-_dQF?OzDW{9FIG{miTT4&%f6*LN)%D1Y%-d`bMA zV-ILSVGnZ+ft*ve`>$5bQo;<1?4 zrBdj)<+1G2b@<}(!G{)0`U!qhfzaoo2y~#0@x&r&yksw36qDd72%e-tM}kk>X#E3M zSsTCL7(!b9KBfIHqawX0V{Ms;_T8W<&?Um4>w-Z+SEi#AqFQB)wl*g8;`m7CU>XA8|mc zHpZoM=eDr#m>K!XdF?VlIx4B^$U@|-&cg-ANWoS3!Xo*?YO6rzGP{(S^?n*FU1O7i zZ$OZ%w$&fQbyz2{1|2d%Giyp?P!O2FF=|4S7O^+d_U3Ad(Ac+N!WCPk$a?LMPI&7H zhMOCLFKNZ#7C!o+7I|r-7zEp`8pYpD)ya_pn}ZL_^!n3r{=8H$jqpUuxLpt)?=!%k zw}!{+46LejBmpSiu?R!$&q`;|cw*L)_=)kY$-6pGbyx6x^eaf0_GTPTGSX|Xin`Zg zgj$Y?6zN%uBB31TYR~K$GwF!yp@dei(ho`C;_9 z-wy)|=l#{h4*HZS$U_=5sOVo!?7#wP^WTlW1zPs6`XfWK88MX$DPskB*9Rd6fJOh5 zzgm6`XaH6ct4TcR3C`&nKEq|&M{AaAz;@<;RI`HVf38^>O0P{^pEx^FYe|Wt&S74y zy|sd{HgUG&z;6JbIwSmc;=1^`d?EP}l_c!7?MX-XFB0x~{OIvkkE6JjIEg+4mdGOO zQ>-cUOuQ;y7mj{0xvI7{;l>@6)Do?$o%6I!tB=uAiI*noSv>KI#2V);$qRp?HnCx? zqdOLf)H-LSzIxsgOQ~yc&e0bVs~R1lTd~BdqZ4b**&&rms$5!|Sk)A6QA@b~#9QOd zjtT+c)LJw-)#5DIDpTvNS+$9}#r$BRuGLXdK5_mA`*2+wzfqgmveB{cUeL}Vtxaq_ z$vTJJorCAL`m_uXjH&TsW~h=&iJPRoYs&s>2_R zV-xi!>l=wPt$&FpbrLHg{k7`ryAt&oLz=p7zIaZL6Z&T2{B6!@IxG>STA;Gp#OmYx z(aQRLy^wX@72nQ4U9SVF81r^&9}}Jwt|_tNM1I=3vpUBppNZ3$n>g3++Nyq5vSWZH zlEXTXR{V@*_N`^%-O_6lPl}Y_`?ZOcr`U8_g{$-acoz&IR~H>sd=d?V zevg;>fgLOiuNuYT+N3yE0ofC4cUqCNcR8*m)h3#D8=CycxtN%S`CWer3)UuDpKO&S zHeBkY?49Q(pJG*`Y`tfT<$cM^*f=Dv88VbUZ;wAS$0u4&)$Sx#%wOL?sV+?8FxoT1 zH){>;f3~<(n|Sj{qn28m_(o!{-}u_ZcWU?folUfrosH7K#08gImoC_E!-!=u#^}PVflXTb@qz$H^?<;*x!@Sh$q$2&ZpFgSJhk}=OU_g-lZHh z@u8Z3kK1^jc7xTxuJAKoNjx*0n)qVv35J~K+!!}3>$xfJbjUYB-S}=|&CPM6PiH+V zZj@+wWOmwb@!Pvyo7;bDJaOv$^_=)?{I*B~zEpF2+<{F6Jv_}P1kQi4GvBK5zyHIU zJM68*Pimg+zp(6C@!G^Gk&h&9PTc8_3HaZ0{Gz8mm+vRu8IPh7zmT{s9%?VvY|~wF zTh)oy=lP#*dw$#&b)x+Rai>jNz4?W4pI@B+A{#<*qZj+Z+QjCU#GQ3gwl;D8OXJQe z2DiK{&NWq=xZve+BVa9OIjgnSMzo>%74~6ggT4})M^t)u+&NE+)`>_Tue-OJb;7<(gQZ({7tjJ<{6!vvos_!hzU2!2HHGlGW{B!9)&uNnId zW4|T%Jrn=H*dGc0Lhv_&zbi;S!q_z`H96N2JcHoh3B<`8gY`_tZe;8x#%?BfF2M^3 zUP16Gg4Yqek>ITa?vFMs>Wzsan6virhY;TB-KGZ=6s%SeVO1Z1YaW%k3xG% z(Xi%h&l`v(&yhr@UZ1MyIl3|C=nj{&RnvFrbGJU9qEAnsd-SOqsiO$%D8f3|aLleH zcshY$)-xEpo6)W-%~87Mkgi>!HRz_hbCrgb z(rKqp)wtRSDY!eXrYzUz3Vp8B=h^z?VmVjC=jl@|71TATd{D=TEU2|wQneJPLBoyu zY|>}5KGl@ytk-a>K2oq0cUTvJc%F?$PHqeQK{9 zRg9fJP08uAU!Mc|Ea-DkpJ8Hlv8G(2&nN5iGI?r${_kdA=UPXc-%w1_czDixr6EpH zpKK?It4afoN&}8c1CB}q&V-g!X~0ow;Bl>mf77?f`yW5q{&!uqj-0`Pku@BXHRO;MTJ{!#?-G2E z;QIt`P?F<_dmKu>gWx>`4-kBY;Hv~bB=`}*j|qN4@Kb`HDNtn6rQ?um4(lh#FXs~~ zn*?Kpx3c565!fgieM0wLnw_TA>v;~+G-L5fwX}3Z%5qG~dKD-Ddj6mSE#_*% zN_|p3An_upN^3foCYKtQ*JYYMq|f>2sY0nQAH18r`YwSn>ZttlUe3-32#oK3Ok>GU zGx4hgQ7-%~Cf>}6FzyoJxS=lU$Rw3YYwD}{)*A^73GUNa&4&}?xUit+BZ={$Low&m zEb>``&l7x!!0_Z7jQtnEcL=^uV0iKi#(qWcTY}#a{E^_#1b-vAhI4ft!M_vSNboFz z+X$Xb@LYoD6TFDvr39}acqPGW2wqR{MuN8xyq(}(1n(vI4}$v$K1}d2f=?1WK=3(& zFA#j0;A;f`N$@R#?-Klg;FkoyCiriH-xEAc@E3x=6I@I7b_2mp1h*61NpKgz3kY6J z@G^qC30_6;T7r8C-bCkHBKR%A?+E@#@MnU*5j=yE;SB^g5!^{|mjb1eWNMU6F4bONrq6x)q=Z7Lgc3TL z9VPK=N%T!AG*1Yak3g(^YGy9w?g_$9$Z1ivEqAA;Wz{GQ+s z1b-xWSb=uwbZz=_eXi8!dGgde3bWp!e(h+oTi@)_=Qe$2^?9K_RW47m_C8I?=~G39q)O*W>J@oSS4lmoQg2cPisTMW z->FZP-IKdDtWtYY@h+)?6fQnk&bO4v!2u#*(-l0^O_4I@de0qj8P ztJf1mtX4^yEffoho2#U3Sk=@#Dzd9JuU?<)^vQ`j!jPMaLA8iV5Qo!R!nK*Cte>Q; zuU|VW^aVt!aH*H9mjBS$h6dA7PTUE|O+`K`DXRi(bXypxM?avA!^GIFhRC zB()n!HOnMbMNeuMk{hM5$##8i(&uJh% z(3q`C2gS_F^XGT|f+p2gy6k9A9HqRDQeH>ttaGLI!lVbIGiGCWIVbtG1l(V6%*gq1 zCPwU%Izq%4C6tcxCPztwlh^MQ^*N|dL%uUEd7R6-_-&Q|t6ef;)d?i5FZmB#g?FBUUo@QhTQLa+Py!Dq=5S zZ{(LA4}qS)QrUtdtXD^+0w+B3;n7wZz~Pv4v@h2F&mVKef9EpI9nvSqe?-G!TA-4E z_M8h_$Be6pU!qju==)qzD2bIQXLe5vMgO7>{DI_N5D5#_Z$5~t--O5#Z}7RnX+6)i=&yGaTqH|tZ8F}YR4 zS}v)rNpd>7G+h_M|4vZVuco9HW8svpNGNWOYev-688zA6&LR=ZU6STZpT1L2Ur?}c zUYd|EXd}+hZ*iEEhU+l>uc{&mA=ZW}bX@(!a(%AUC-L)K32P&W-L6E9ZD^j24M&BH zK^N5#H!eoBhVXJEY1}92`X%MF&Q^&!I$u9{4SI?xrb%j1n(KH@m7HdwN ze&-Y|Ri{to^VVj?D{h~dRN1Fx$OAjX%pjlAkK1mWZL`@@ z{j#D=Xt-6{vV9*?U|oD#;$&@t;)cdKVO%^RRFymmDiLnXPLe~A_HuYH(ONl}T*Ob2 zl+YJ-c{#egD9LHwkBRLM5m0M!xYw@vOmi zCgG40kgRfz4C!0!i4y9_E+kQq$XC&l2lPp_JEUPE-@j?t2(#gy5$2mX=(i9U^Nc!z zn0#-$hNdUq%@<6wGoe3+O@M40O5SSavM;YVhm{vh%t+Il% zT;C_|DrGeMA>#{i3K}sTY8J#LvPCjvjs(Xb#EYD?)=%upXqfAPay{`XtVI#KxI)6L zo0xW)*04vPBl;ZGC$WwzXG~MVSU0UHx{4g)9*slV&wRUV8NHN= zFDEdEFLTO!4HL~b?_S2tMeogw*-o{&hMB|OyP0SE*6(M`wy*DFEb2YR_3F@%&#^u2 z&#>g@2+XVRi;S6bpY3;lgNffHux)Sia4^>fn*N=iu*lB{enIdM0iD*I-!k?;1ivTv zBf*~t{zC9Kf=39hP3Q`{j^KKN8whSBu$}l@7`u(YJmJg*PVS+F^hMt{hgL5~?qxvY zO9);@@Ct%^2wp|-8iLmm+)H44_-|&+ygS~`*gFZ{P4HfV_Y-`8;6nr-Cip19#|b_~ z@Bo3i06fUp7YKN2$}vxXuQTyK3Ctnj+l+me!2AM!$e1~mn3urMnfOZra~AjwW9BUI z2gd$H@D~E}8F+-Tr`PIuUQb}UzPS$E%*0y>?jX36;DrP)A&9yT+{46I6GS}-?q%Ye z2+Wb-ZH&Ex!2Ai`!`S->qHYEEGw~w?=3Vd!#y&-0P6nT4jBYHB`5JtQiC-ZwmxFIG z_DzDQ=fU@x_(Osp6a19m=LF`J@GHiCLtxGczhmqV1m>ggXU6_Y5Or0!&f%;OnB&5Y zjNMEi7sg^C+(vK*fq64Lm$By&m{Y@x7<&mp)VJZ4ny5m;1BrqZ#t7X>dvq7JfcA6xtz15J((3EnvYdK2BJ2iZXK0SR7 z>vNwzDVIecA`i?Pg zW7j_+PyHEzG3ehi_7{S`6PRneu}>2?jZ+$nG~Q_Zk7pzu<9I(NWB4h7aT%lKFD4~2 zl1?(JqyAx*rlY#^2ga^pX=5D5Bi^Qo`jV@|N`*#+O-=nh-@1v5jqXpH@eot~Mqs`{ zwwi3=aP!YGH=tK@{h0sH`x*N*!50X=O7L9*^Uk>@sSPs^oM$m+-ZHmwdA*Y0Ed)P2 zT3>jG;F@DJb|1m734TMMcjU#K-*X*4OzY2f3Vp8B=l|LI<;L@4>`PILVK1r6 zY}QtBtX>HGXO=6-}q!LW(h8 zb0!U;CUb?Br#`cw?qXW>v$&LRB`{_B*^E7h;D4*FJP!TD%wT4uyN}66mw9N*7+*$+)Q zN9Tqdsa3;VQEeI~u7&X{t?6C*q#gDMIK{m&{lj0vdb1T`!acj@zDd4}3c zo=px-eoVUqTflMRxA|3mk6+?9Si9EiTqc#61&Et5a)LijiEdnJeU(RBTErHYJZB z-_UO(?5N<(!#kb@u?@2$(72>xUsC5XNs7i1rsSjZn(WtBDKDVcmhFsFF48$pUZQ25 ztj|m3>C793B zTL|tXxQoE#f)6sLw;jhEb42|m6Mv&X8>L9%ACxc?5p6Y^Z5VAaOw<~ZyahxVTK=65juMm8L;M)X0C-^17 zuL$HuZ#44134TZLXM(>GT%%%@Ls=^{Zd^Yj`u^qmB=094liw>I`{y3bp7;uO`W^xs ztk*DRgY{X)%uW|&oMx^wyV;G(9UOXyI?rd!jLIh5lYuy9dWss9OeFuFzNdYAFMIm| zg8K;WC-?}##|S=2@EL;75qzHDiv(XL_$I-32!25D6M|n5{F>nDC+I*vgW%r@EYPA*~)Z~JiL1Kx|X#Ym^fD6vu^M3@VY~7 ztzK)(nz8c4?4dP#CuXID|3>unc_sIhXDX2*k;ppx+`4(if}F>$F(@j(!m?0j)|C#; zESxb?+B3U1HfK=KGyY&)^qqMPsT_{>Z2mA|sG@ZQ-5na!1vA3=9h#Qe0S4$?dt>EstMPEfD@{+2 zl`GPJMT>D+cW5By4(%vUXr(f*Q?t>85RPG@l%FGxLWA9`YrAB8bhG$p-KN(aOeRFtf%9Ey4 z5eU^q6M#`t|I|=fCJ@=~ z;v9@%)Ucd_;lZ#6VT{{wuz)mx*D<@LiIMWq#GEh+?>P)yJvcOl9K<-V<(b2XqN{tc zN)ST*5?X_a9-18!6hMltAVdUr&}o^@P!P4vaIsqG5b_bMlx8j;x6iTF-tgE^rJ@L= z!y?$Bvm9F8$Uu+7>m5x12_On874ymym69${DXeQqeyej>8)oCJm;fX~Q;@Q!JTX$5 zmJtV!ogSLlTk?j6hf5Wk10WCx0p4@)I;`e3Oftb1lhrGY_Yt>v<2EC*I= zRg4Y|mjY_3XlE#lt_D>E_{3LrhS77-6+uIkj8-=9gO*^c(r?g#(lAhzZ5nf!&G#16eVZp2NUZ56V2j?6g8lKkiMKPicKZK3}z5MWyUlG2= zS3%-@mS{nLj4IU}3;H=23J^@z32Ih8|?Z@zR9OEZQj~cVbAn7-D-% zGb}4BN1G-+Mr69QwlvsZZ_MH$k&Gt69jPQZUTAi5yz7RIz4nX+k)OE;hf}-qiG@AYRZ} z6+F-ynX+mk`ZhARb$AtmNO^opdW@pD)1JBxLWy53iEsZ@O${Xb+M00s^7xNlwrJh% zwO@_Z)W(yewTWcnoZD+_5|=FcVMA}MtE1QJ%jUeyt^wEcLNU*ad0t_#km>Btbrrm#SKK|2L6Jglf39a|f4)l- zK;ZCO&-#GS6!Qw5UZI%Jr2FKXZZwMAVpngr!`tRI#=IVcI(O~zwxxGuyq%rf(s`y2 z^cS+bydAAx??6Yk$LsIz25{Fj#(IjGLecB&?;FVWX1sKvkjWRlRO!&vbp3c`Z=EYR z1D@!%x681DthBfLGGBXp=j8Yl@GPxUx;Z7(4BTXRs4}y8&*bFT7OkhQZi|bmE;&N3 zdx6{NwxcPRx@=3jSj=ZT28$VQFo%Ka!iaSgy1ap6zAM|^jUjVIoB~-sQ1WD%V?gtn zu53QjSxgDhsRzEyOxA;F4^`@1NpUp=qdZg@$Bd;s^s_IQ?#sBTl`K|=k>i-9i7 zq6{Sly|@j7j!);a{dn{j@d+LM1=52GP_!pg?9JvfK$Gr%sR>D=Gt-B`wf4)hOnIYI zbuOB{7pwt`kg|a{U3%(l8Dyk6lR*_Tg#>Qts(vT2Ahu&;ow&?BX%k;So_`19)DBRc}Xo_)ZZj0^j8#+`F`d6F= zqwa#Jw+|%?z?gKgzc1TqIN#LRvZ1A|xwU0O46kBTyj;HwR{u`Lfs(L-I-5?#FF)I> z=GR+(u0PkEE~b0E?sT?yFrV=-7lQBETn`Wuqu!Y*6m-<1NwIvU$IBN6T!Uz*th266 zu0M};g2m^#Ba^dxFy1X|H?}miu5WEw-`3LD)Y7`XrKNGhhSHkmrj}lOO_pIV zu5*VG^`}LUt2B}-*10J>QfnIP+|6!-yf8I1f@u}dM9@soLa-hHi?Y+pW;(s~>o@B1 z>dgqXXp9xSY+*3l<)R2fv2tYub2}q^lB%UH{MiY9-xUf_u2iNlA+}nDW`I!W!c7-2 zNcbA?)=L$!L_48n=798du2NT(#z*+e?^u{6Zwk^LD6HqMTp2EosE{UYfH#AdN*}Tp zXZpL1j1-a9BCYT4&24AvB^2{WT7Xr({hiz0riO;LhK;>gv*`lx1!M~o=@mOWWg%dp z4s>8nGu_!;x>mV9V}(p+yVnIQa50b(ob66`6uNCS?&=@Ns<)MrFwUCXsiN2YP`_$^ajZQxnh7h?jR<-x4QtQ2)xfK(ewHTirId!K%GyoGrxPF z=nZxg4|=o3A|@!4>&m8cZevq3R?fw_!c1dh$flAV&TN>Nobm7z$(j82vaF9`(oUhM z5(6m*DUJ1dyNWrCiC__`jCq{}VRbvRUBzv{7s0{KB34W$w*!>qQ8JaLGHIt)$Bc+E|zLqZ%<0?u_C4vmgB=wF??WsBPc4@+4RDP-$JPW3b@$cU+js=iO?MRC54yPu8JP%pi)!&rI%_966jC zt{<%*s)rQ>%n_Url5Yu=W^w|{J9UK+8`lFXs%&!0qi#wJE|Y+uj9V}SE(#!qfe?dO zd7?TLQ&L9rwSr;yd`Z~Ex)AZaVGz$XjZJOtl~-yE1GIiUn7`z-yQ!hNOAxwrlY5n0 z0{R6nj=Iv+dC5{fg~p-}!*zJe+I$s8M<$rK*xB8i?%|Aw6Jknwg|oX2Ee#E_wsvN7 zo!i`|w(8nc0jj&Vzdzrr>(LiK9!2Og%mSAANQU5?8Z+6hd><<0;=)&Z2fH#JV|;?+ zb$Q#A{>t1;PnhQGGKQW~6GmWY2HMmfuzHz0%nDQ<%k(@M2oK^DNo3RZwpeecmmBQM zU@d?S7Ph;oMnN{utES@>S%l570XH_NVG>fu(@NP~!CSAipa!i`Y`t;`}G zxDacHY}2vb8%XCfIeVKaJ37*NV&krk!g>happKBc@dSA(R#EeaxiQs-#ZXi!!?HFp z;$k{R%cZfA%32WzrzXe7)>;-OyE0oT2`#UHebZby5-=8W9tyJA+%_OVvC64U@-6Hx zc%5CD?tW+cpf{TUK4h%#- zo57G*-yO)Od-~ESiVupYjOkH%7sA?%Q56Y* zpHL)+f?(*lEe)-zDj$)Vl3U8s6_Lhm1-FSv8JSKXMW#2?C0&o?$eFot;vJZD0qF4*&+N`ekcXi1w;v9EQH2Z zQ!1L9HneWASp@6G%BJjy@&#|O*o}g2iZrsn0Op?S>feb4ccmMob?z2I9!VV^lSR8Yw!4=nw_b6&f1Be!+k}Pizt< z47M~kEwl(hUt#`Gi5~o2X=b)}0Q85Z418e@MO`S@=4U~+tM#j(tjsq;1&Zn1HW35R z@?AbP+7+Tkev87!6)z-x7>Tc1UMw?~r%v8ipgw|;nv()LK&3mI8yJM~AsoZF$=;V3 z496y69B_rj_hFKtMfYVeVRPAhC{NHRm{YJMo71Yv30(@=jE=y%9<>C%Fh^c)ZBZPa zBXm|JWM6!y5Z%x)J2s}m^7_`f(sHz_= z$?Me`{bCD$l`WHR`{fqu1xv9`zZ^yd#6e^z5fMNYa)X_sTjw(urN)OYuLp4#<-{^P zUCJ29)vl$$MADzfI^F_NU0zWAqESnvP3cTm8poL*YYz%V8 zfjOMBI}cS>RrknJDqNH=%2EQEG06=kJ`vI^MwC+H!JG<}6~oSy4nYM+1+Bow zwq<$;AiSm~r>L7u!uC2-!j=Fg)ZHxRZ8Z@WVbiHbnzqoU4ZS#Ds$dVs?Hr%lRvMcs zO~c$_Rf!p;GUEyxT?OrIY8q9{O@ft(NyWx4 zxIr@tv$|`Wf=+E3@)f|ZXqoPz@)#T`Qo52?WDZS1<|~arxn3b7r7e`eiaK|Ni%#HK z&1qszy^Gzk*`cv^WTI#{mdwx$o?_`Anl4u+C+s7A+=NQ8Pi(c+?H;K71Fwn^4IP(G zUB!7z4`jV+uODUb=M8l*wABeg^&RECdqE>89HmGZ=kpv z8w|0=z5l9% zQw$1@H!x5@=X2>^n9~{>MK~1AT?YYFI$IPSWFbNXVJ4HuYi3KKxHwqM_L?mPwO*X5 zlD|TAudR@k;fB%D4^+ol)Lv|S-^RR^0VCRs~*<3pAG?kX7+zwR|#AU4A>q)x^I z&Cv1C!Wfe)#gK|b4hd81U_EUB{Y2w|Owwl{GSFG3@@bP3=uK4q!aj0755Z56T6M9^ zu1qIXF*{D*4W5OWE#x*Y;x!=bi@m{KLkxbB)J(J*xn zRU9(+%MNPLEM31MlZvD&XdzZ8F-W*A4I2f$h1A;Kr{J|3!92*e8CSGx5Ht|WB9Id6 zSamL46{@k@?f^9Q$o9{i%^;|h1#F|G#wSOB8ag2bp>`0-B}JHp=*uWl7n5}E`=$I{ zzIw5Ta=UKuRNLwbpib3VW#KVb}lS=J}Og z0im~i0P<9O;4bherKRrf@*#2g+!U0bTd5l~dXo$9A`wYkp&Qz=4%x>LnPHPFZU(l| z3Bk<&s%&QBzuyaqLUe}%Q%U?mto!r)46tq&^l}KAQo{RK!6Q=d=3qdMV5=^gj9Dm+ zZT<%ae2cFyD9ckeR`7zEsoT=tp0}Q)+!ZUZedqTXLBGFZ-NVq%7joy0@)nNi<41@2 zli%JhU*(LbV}jZc1Lp#<_f)qjz+xayio4HkhU)hS(pO7xBg4ueA|?(i4AHdS z-6L#3__eTlNI&Ju*yO>|G#zHB?Nt}I+SZ`c&a4v5zHBu1n)Vb%NVL6l)W-Q~Y{I4Hw1;Ut>^^IVX5w6Es2Y^O{P4%Kp z&F6;roLHqmX;*nryrCq)#$Z*DEvn{JZH|;1nx1Zya`uTjpA*XF9(AaB<(sPIn?mIS zW{i!5Lt2ErsB_o3k|#Tw)wI<7(;GX1`@gCT!1Z0y;YTD$kUX4(6AccFgkA8cF zahET}>+BL^(6%(%q*19?hJ$Qdt#)cJ2hWx5IMW&mBDJf55L92brbPc$ITvbuAfXqE zy-?dbA*Cu7&<;!y4Yh@%f@^BM9~74}KLn|}3ka&buV0V`8Q44z$*o#8niQ+b@ao-2 z3sjiLF1(-LEPMH|6yY1#V^DvN(4K=ISAi{C@Wi|W4}n|{I6CB$h8Uy(Y={nx$%Yuh z;r%dp10oTkGqgN}@RSlUF`S2N1EcC=6J4@7jAdhNCx}Hcn;V4qfL-7~L&3Cr>YY<* zY*0_2CWzk>ScP4r=3XFFQ)6>$U2MQqA`we4N7!C#i0Q{Fv2Iw)v6|tB;8ug7-B`}K zZO!7-I*JF;cokH<$`pLQt1YI$f?cU>eo9!^gQHBXJW8!vpkv{OvSO- zFUC)`Jop4nbk`cPi0Ln1*2nQnOG!4L!l;qPn+*eg>jQ$a}|} z@F(Fxupk{!U9yLs`jgX}qi?sjYqsc2TdIl~KLkB2T38gb3|MtgnFrf-VAl@X0WnD( z)2P1SrAMi5WOjV~um|ZY)bv3d;t?&Sy&VojS=j7{aEdJj5-}xOv9Hz9N0xfxH1x~0 zuDKhDhBW{c1)|5c$uXR!n$zViDR)l4L~9p;Ds1e<=h7ppI!b+P1&$Vpnj>+hG$rb zJd6}W5tmR^i?F7}Y9!R7bK^#@8{Twa35~$#BPgs<Xy@aiZvG%H_~BCy z;X5H8*|7E=IMG79qK|FVgVua!=}60F&h-mss`x2k53fT!O+h2F1sMHO_^0aHUNSgN`|H8wQ0s3}#LW>GDizV#8a z0W}bpC)f{x2P}<*`a?&w+iD7s^QbPh%d+o9!{`{E}Z3KiwI7QzT>#R@uP`hfAL4d zg@~y~5Ye~kgnjsN+5p6=;@h?SB7(~pBy$O(iB|QGD;nw>u8L)03&;N=TKAtMTz#E)tF4@V;Hq@ib5>Z zfZ}o!K3au5%6@$pQS_@ygO(z1?}U|x{)6JWWB!BwS`p7E$f_tInlA+8bRTxSgYyc3 z>l+YIP%%OeLkF~kY>LRP?Lk*UyX&%}B5rp5@K{jiczmuW3yb?9oNee-42H$W+lG9s zYuLNWd-uWDbF2j1t#h$IIXpW(U78p^j0qUuGf&XS6n7On3Sw(A>wUx%3f6o-9veMa z9>H#aNEC7m49!(%9SxDyX6R2juV=6o~$bQZLRMPxlQS>Mc#+XgIK4JO*>3*}9={ zl>(~MUk7|Ncc$}QIK@?*s`m!*e+O)2BuJA}hvCS}Yb!M0l>)AmFjHaR!6(DZLu#pE z@~|MGN$gV~^6Zft>)27fyq-L$+sv zjT2AoDws_i6zYedZpZ0-C(?PTekVd|DNpCfd3P9*k90`KRM-~MUcd0;JhB6O!fd6a zhq~xlH#2kC6^#`h%5Xp00UcBI5ji#>`(?g#UiD$&Y7&XPnpVXSu7CfWiYyq^pn7Fs zZj&wY1yeDm!q{zFjp`KlyQpKXKOvhjkxJYNd-z)6Q!ly&&s7_kfVBbJs6S9evG$9!~;XWbS zIyfsWMKS_vZ4_rJg!OJBidyFP0p}^&v!ZHcH`K`ve-I!FObF*fhXo7g?5pFDkjSRl z{@xCC1|)7pnhC`uuv~?3uP#`NoZXzS%ZhGSo?bno@*f7Bl4R5k53?Hae!)2e z`n}lMj=sJ$PeMfJv8zLNu3-xhJB2MbA-L;(aW*&yS$|-?zuL4wShNivg*>p{-@lx< z*u)qY3)xP?hSZoUpoJ_I(L(m|bTa5O4@=4FEbP!>vrZC+^)$)=l_Nn}U-DD>qX)d` zr0QXzf@!&JjT=Fi&2`!K@aMUE_`AtfXL{h7>v;!68P_eRL)cb2@>w|)f;xxtx=l34 zO}bebyi{N(;q2J@3N7cJ)35?6;EMC7;l76&L?2v%B!p3?>?|GNwvq_LJgnQ$NC!^g zD@4+Q@)!%p)E*5wTs_YTYGCNFP27I4LlW$8h;m*<#=D3BJty;sIryd> zRaF(sqr@ID`d39n-N-tEt1w22ml3$lb5RI~M{-RhZQN`NpQvwu%tJK9My>7)@$8j! zhoqN0$mOnYKNjgmsI>Tn`9fp*LUz3)ikv@Cv$y zTz?ftlhHoe1`BDj5tTQvzGT`OLXyl?MweDW}o^7{`L;yKpz(J~2tHve!o7v><$K`J)%d-7vWO zXQq@|skcqYg&_65aa%vQkkvXUF(Ss!E8M+M#a)U!;5wafZ7%k2#}yDM8p+3o_LRm# z?$qc5_6g87W{=E>WF?}l)U{x9E0|-Lv~VDD^TGv!?)!TgBf#vL>EH|aWCaE>klP>$ zX8uYA=CnKx?b&p|HvSmZx3}ZKU>;;jWyE%lu-}a}TLy-3!_J5bWqJ@L^s${Vtl~5O z>+#xyY1+TZ9ezA*6g!;U%Om<$`;o>p7&7rxlk*7$%snJ^-%YP#(V!0)L(Z{ZeQ3q# zrl9&&R<*wR02A?Mb&S$`a2#>rjq6a8R8{N(L69>fUD*t(uo1Y*g|sbK|Fu_BAhu8j z`v;J)9jA-RV~^PoaeD}~3RRF`H|qw665%r{r33NB!(5q1z+pw94EvM2Yr4Rk^F26D z4K{5K`$*F$41Gej#J%f$-Q)&O8y+hSP0UWIV

aCc(L>zb6E2PmZ|D74O;TJ+Rq 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 K>EK?b?)ncRd0Vvr literal 0 HcmV?d00001 diff --git a/gtest-1.7.0/lib/.libs/libgtest_main.la b/gtest-1.7.0/lib/.libs/libgtest_main.la new file mode 120000 index 0000000..d3ded57 --- /dev/null +++ b/gtest-1.7.0/lib/.libs/libgtest_main.la @@ -0,0 +1 @@ +../libgtest_main.la \ No newline at end of file diff --git a/gtest-1.7.0/lib/.libs/libgtest_main.lai b/gtest-1.7.0/lib/.libs/libgtest_main.lai new file mode 100644 index 0000000..79ad50f --- /dev/null +++ b/gtest-1.7.0/lib/.libs/libgtest_main.lai @@ -0,0 +1,41 @@ +# libgtest_main.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu1 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libgtest_main.so.0' + +# Names of this library. +library_names='libgtest_main.so.0.0.0 libgtest_main.so.0 libgtest_main.so' + +# The name of the static archive. +old_library='libgtest_main.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags=' -pthread' + +# Libraries that this one depends upon. +dependency_libs=' /usr/local/lib/libgtest.la' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libgtest_main. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib' diff --git a/gtest-1.7.0/lib/.libs/libgtest_main.so b/gtest-1.7.0/lib/.libs/libgtest_main.so new file mode 120000 index 0000000..fb96c46 --- /dev/null +++ b/gtest-1.7.0/lib/.libs/libgtest_main.so @@ -0,0 +1 @@ +libgtest_main.so.0.0.0 \ No newline at end of file diff --git a/gtest-1.7.0/lib/.libs/libgtest_main.so.0 b/gtest-1.7.0/lib/.libs/libgtest_main.so.0 new file mode 120000 index 0000000..fb96c46 --- /dev/null +++ b/gtest-1.7.0/lib/.libs/libgtest_main.so.0 @@ -0,0 +1 @@ +libgtest_main.so.0.0.0 \ No newline at end of file diff --git a/gtest-1.7.0/lib/.libs/libgtest_main.so.0.0.0 b/gtest-1.7.0/lib/.libs/libgtest_main.so.0.0.0 new file mode 100644 index 0000000000000000000000000000000000000000..6bc5d5a2a0f21e4a9d48ff6a58d0de309c243aed GIT binary patch literal 140669 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 HwM_pH{v5Fw literal 0 HcmV?d00001 diff --git a/gtest-1.7.0/lib/libgtest.la b/gtest-1.7.0/lib/libgtest.la new file mode 100644 index 0000000..74a5799 --- /dev/null +++ b/gtest-1.7.0/lib/libgtest.la @@ -0,0 +1,41 @@ +# libgtest.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu1 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libgtest.so.0' + +# Names of this library. +library_names='libgtest.so.0.0.0 libgtest.so.0 libgtest.so' + +# The name of the static archive. +old_library='libgtest.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags=' -pthread' + +# Libraries that this one depends upon. +dependency_libs='' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libgtest. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=no + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib' diff --git a/gtest-1.7.0/lib/libgtest_main.la b/gtest-1.7.0/lib/libgtest_main.la new file mode 100644 index 0000000..4b09401 --- /dev/null +++ b/gtest-1.7.0/lib/libgtest_main.la @@ -0,0 +1,42 @@ +# libgtest_main.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu1 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libgtest_main.so.0' + +# Names of this library. +library_names='libgtest_main.so.0.0.0 libgtest_main.so.0 libgtest_main.so' + +# The name of the static archive. +old_library='libgtest_main.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags=' -pthread' + +# Libraries that this one depends upon. +dependency_libs=' /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/lib/libgtest.la' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libgtest_main. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=no + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib' +relink_command="(cd /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0; /bin/bash /host/Saad/Dropbox/Projects/C++/fastmotif/gtest-1.7.0/libtool --tag CXX --mode=relink /usr/bin/g++ -pthread -DGTEST_HAS_PTHREAD=1 -g3 -gdwarf-2 -o lib/libgtest_main.la -rpath /usr/local/lib src/gtest_main.lo lib/libgtest.la @inst_prefix_dir@)" diff --git a/gtest-1.7.0/libgtest.a b/gtest-1.7.0/libgtest.a new file mode 100644 index 0000000000000000000000000000000000000000..73dd715b254d48ff947e533bf30db28334807494 GIT binary patch literal 1294210 zcmeFa37A|*buTU_EDoFOusN(Ign(J+_Ux=4OD)etiwE_{Hfz(G>5&@sbdS4xwD2&t zkrkK-1ry?69uS-WVM#)q1c=#XV{8)$2%ZBbYywQMkQ2lf1PS<^Q}wIu-m1IwNPhqS z_lYm@Z`8NyRMn|dr%s(ZRrR=M*E+M?pL@S&obCQE8j4EeGiXfQgvaKH`Pe9-rCmN&WR{NYuCc` zPQtn7^v+6^{;2e7Eh0TwooaWh>lS+R&DypuzO*}`FSG5$7eTANd2`}}DrQsglU2?I zi}lt*d#)}rQJcpaRIRPGZhfd*@6DGJ#HrLAsVW1qspCtFi}lVdk)yh3(xT>r+v~ey zKW5cdHEY_=y)_l8uNqO^nS*`V>y?VFTXl)y7w0iYUtJW-SE{`tOdi;+vvv*S> z#n|~XlxIVG+xYqQUZvNm*A@aPqli+?5QFFHolYoCXbuWl z=51)t?g*sP6M*jU)eP6dq+3(UBt^nfE>lHTPqSaomi(->(i6Ta?^Tbj5t^BblRQNejB0rqTJfa97(Iy#MXAFC)6U%ktLce7d!RY zMz_&!aTO{(oZGV>ViPlDl8ezmcecG)pQ|qRI#Wb>jOOCTY_;3# z(DXgmdekRCl}s$ww@5*ew?bpk!9uB`02dSH@R8QHjg zQq7^JCb-z_mN!@0o7ZouR8=znC?4a%K3(f=r@rvdY$io$_A)6%e@6Z>Yf_2&W~LIf zx?aK4q{cV3I}5dD;}s!}>y(m78RTje=44jQ1}iiybh@PQ=rTv7tcHY4ryCYhotcd0 zhVsH98Abkn8n5hVEUsxUEYyMnHe$)2?$qZSySKD@ji!^j(p?ix(NHg!XR2h=Qv-P< zdHEkj6U|+7M+CMh_7b)o^8W~Q?gN;0y!)|zWCkmUKbp86i8e;?Ug@7C*cfkfkL z>m=Q50jC%eCXv6v=6ie)YL#InVUxf&YegfvF6(Nuy>@3$N|lm{{Z&h*3s%vSG*s2n z&=l4eo0nRq*0e&CI=kCwI2v8EAtj?2_I+dwnwR0S6bq7rGn{8=o-|=-5T;~nHd=jT z8*a4b>br{s0AP$ODWCYM0n32{dxOHk*e8SyT zCN;6EOp|S(D4GAF1}&_u;`*Reing>Gv@Gn_nltp@x@bbZBUIL~_(!=iSPj-=Naq%5 zrz+iYdFST!Gr=6;@^+Q`DKDkTSv47-u61e)w8ZGpOgG26jBVu2^=%EBVfLt*yV4uk zS!cB}HJ!AkN`4x=jORrb_abpm*iC-r6(FE15i$-k@~OdnLMlJJl~@8d$olbWbz5tx zI=g#!G+M2;grQKSvD2vu7WKm;&EU#Vl^Hff3@a;Z@181eaZwKa6T-2$_&krUyn_+1`Rk{J;&2WL*?D%ah>f|mdL2<2xnMYdNOgn^z|edFJOp0 zjIk*wo@Sh9#cGSRPe#Hh;)$@@T3Xmj{so~!f(4Iu(V~oG3v!v5L2YEdMsZIKrtXMQM$Lr8)kE&XoZ7;PTeLljakw$B_Q(vgJ zdR2ce-S#nVIva7(kfcnuoKIWpbVD9hu0KWtV$X?o_S6=UDM;-%ITA?HQO-T)IB{ao znX)4x166O~x|IXn?d_%JT(z^L%sj*)S*)$&t)avnI_5xmQTDZCO->c;r!3ahwv)ka(?a?;?~^5=tv{6cph! z&ncoj))J0^VQL{Vpu6*AC<*N@Egl|YYa3mLIkIYVlqND4%OWN$Q(nGu1}kC+2*#0& zq|_}MWtNtAlEU3U;#6daN7Ee`OA;(^Fxhhuj zP%G2wR9HpD8W|1CM)Jt9E2IZbo(e^gBoZf(7)K%gL?h@jy#kbNi7&AnDGCuAm$VE+ zxGnjsGH4j$l3*6)sz7Pf?H{F#Z1xnBMCv44d=x=bze42H0MUZ&p_5Cjb+^fp<{@KC zj~2|K#=>GVJ`t%FSReK5qYbK(T!l^6n`CuIBlf@6(t33byA7&wp|QLOa+k9>U3M4r zLAMmqCX(E_snE8|x=wpx9qkJQc9NrENY|_$P7^QTZ>bot<0g5A2 zU9qR+PSTo=jD_JERchodChj>?@8Iyd4HM^As@r-reyX&8)n;3=I)@od7$04CK#bWr zw$i@yj%vFlTnMx@Oi4Oh>&8QjJD!s*Mu!I4?o=sw3m8| zOT82-i@cv9S7LUfOM`Y%9kG#E72AMzDz_|J6i~gLvZ8UDOn3Xz{CteNB{xN{HoJr4 zAZP2eG+U(LM!Pt-)5teZF$%O4;dMr}=Neyb(%$w?dsj%RbcZ0E%E)%i!4OOs_fUir z1}O>)iHr~77+7E5Gu5S$#ohtC{f4e5xpWk8a%1}|p^}D?Lw>f2*;1H`>JziO(yLz* zj{MjEkcTgMNptH1m{S+1Ad1?iN zU7DV&zp`RBs%9b0xd|4gaL$+9&oEy~a&Lz`dnGl`PSG434R_f%7Ak}OqCm2I**sn! zkDxk51y;~ns@=r?^|U{6spPD#Yoy67r%_hDqTo_GGbc~(+DvxrCDZFAN>gqM|I`JY zsRjp((10_WVkW*tXb-G zXhp_hkB;$Ub)mygr_*U?iuch)*~5nepH8zt|No5 zHoKi78_ll0U3s;?OdTQjnMJSyO=y7`)Rm*rByVy_f}2mUBA@mQWy~7NrMl%o$kq4J zsI=Xs5k?w5c)lQttdMMr(IPfp%=)5tRpQeN|O;QDSs}<@y<;M$0U`@dS6KH-DIi#l9uY2 zd0(C9rCmq_>^906xGMp@Tw<@bWIp~vI zjY_sqQQ5q{q{)wFJl{ghQwNtqZjo}cMME2FJNoKHmkvVCWdm}t(9IvTDl;3t0zr&b zA!xQ{^9}EVhHg^EhAU#hjyS6l5( zkQXc0=3N>KVsnBXAZdB>ZD|-IQ5gx2e zLGP-llRQo6V}sPNp3l{h!6Y0Lbc~wA>)Ah2>2jbsw<}K#l(b~-WFw#EuCh$HA}Y{ zaG-HO@OF?gh4*`7t+OMv4HQM&s@rLAQZ5B;T7%A362;H#qU#FenwE}f@&4%3~UESqcVtg3q>-UKw8$g!P3?AMp>n|)x_whOMqC9gtpsBPALL@ zhdi)cU09+EFanJp-A22@^;zk_rhv!TE~4(B(vb1xmUV_r$yj`y!?=ORH`f>1J1H`Y z&SJ9%#pKdMMR(k=V#oz@qgw3QUm!MS<#Zle$Hp_3coUx-1nnlZo(~nzv_Zymv`!UT z8fbUuMg($%Rd>;5HBFhc8y|99n+8U-%qDjVmqKTq`P42}yGhA3nTF`L0;_tmU1=F2 zae07bVSo#odWrT$q$;DPU9wc?lhuOls&+wDoZ#aCHH#JLMt1ttX^)L930CF76@8pU zG>E)Z3!)^}Q@P8h-~^EiBv_})wYY2YW*#_*uh6nH#B|kQsUq$GSVs$Tu7w$>G8j?ir+C)oFq4g9 z#!ur%5%Rc|r!VqaCAnKagY0%ZzuDf(hd6!x>9R9Og<=g;sW6K(rOoN?Kv6?#Z!9T# zq#H3`$!&&QRUe9|>i(uD=oN27w#>w*`5ZY4kIA?jBD;*zfE>>*V@T()C=bPcwM|g( zxF3-gL5}RE(|OyJ%i+U$Q=!Ave0_pUFhvy;^`ZlybRCP|AyFFKVMtE3&TqH3$qj2q z@S^ykr+62cO4>_cI!vK#F*TznDaE?ZP#T=9buVbuIV6FD*m!24U3K1G!YHN z>7+L=Vv{H)z)o0&)eH}ZNxXbDQdU0gF{mzdL@*%<#7d&B$_i19OQQ62#SXE=6Q%c( zuO^}H@}&*;n=f?%4tkq06z|;N(Bf7P22&%5m&5CqW_eRMFgKJ2DrDF-)i_+Uy-u5I z9J4A8D|p9Cc!d%lhkCRJN+Cn!1dR5KQi96NU#YlC)6@rt*VgB26iAsi?K9(eAKJA! zVrF15l8&k_mQ`AMzS?LbtQf(*XGvX*%a~}~i4u{4s;;EkN7j7HDNRI*;cp)j5k)BGr?x2ybRG#xoO%vl~$3Z4)HM)jR)=te^!9Ltn9k?d0 zIpJG7rq@xNFx7)*!Uh`_IpeBIQLjxm2>5H0*`89549qGAs!=q!2(&2>(@BwPac-DX z#HMH-C>;EjGr9HwIh@aNw$q<+aDYZOU4y_IAnut8yW5hrEt=0?dNl4F<47+uS7LuT zrO0Zf?9=qF$d%k*Ry1NuTv{>NDFY>lQIsl?N~oex(!@X{vaAp=|_=+m{uSQih9;Q>HySOT<=2Q#c>V`>$ zK9Gt_x$TLmnIWJ%#aY}Hz3wt4x{eGj;Xb7Q($*y3?kt^&MX%JfnUJu(iQ&}fU~sC_ zwywT1Npm4VFL6DBv8dI8C&j_9csgFbM5UH1TsDy@9>)otGqN$ommkXI*0k8Jt@P+F zq~IN+bhD8ibCn3UvItK^d6u6ObW4)1L14dlaDdj6yuGfkZb1vp-Uly&;;S1m@`kGw zck{`vVQ?{{M`&qaZF`9n`zAVuPM1i|VQ)bD4(8_OQe}jfOr=6AEF!Hs#AQdKeN1~K z#5`~6;UcN$3REN9iQamQ7pccYRH)h$L3tWo*KF5%8`ya@OIs)N^LEea9*>4aGFqZe zb7b^}^3;4;tUtZtHB_aGLtOzIlMjyEFH$`re{EQdr?f0-o@KFW_PEUAJk+BooVvK0dbW@w|pvxrZPw1iODOXI)u4Nb~*q72zFvSF`j5;Ap z;iB@>FdZAM+1_5<(B5?(y_Hg)e!1iAHK~Tz&|aNTt8^znTf6@77iE@~q_Uc<@17#t z$WOC0Fx4ee(MW|3Mzyz5OwDwScG7n_W~#2i;OH7M2zwOhjC$}%{`}ch#YSygSq-bW z5a~iAXISZx%tA8cc1c1_&?U2JYQiC`hf&w&{$%Ij9w`5|=jf1J^SOMSrC)QQIJnlK|JUQYUdn!-d32ZwdRSnd1 zZhuq0=KQrwD@lDbixi7_!EGIXYAoXE*dzIWtVO)9rXjAB=;{J-I@Vu=xMzc$Kl-G+ z&=LN$&Qrdsf%S*A=A!eOH#*IL9tXkwy>C@||j7p$joWU$z<^?yxYR(2kZO}2tG=|s-Br)+2V#AkzaDbu%}sBMdNj1TKHKihsmcpI zBc1VXZ-qvGX@G81Y|N4VXXj2XGQNIu3sVEw+$x+uk9Bu5slIu-9=+O_pW0-uCH7q* zYz~vVw^EYARHtf5`Es>{tC!XkrD|H2inkBWt5(ia4q;O~-8qq`G;{X7oa5@_HDb;) zl{FgJ&sd*WXI*q1q-j`WRT`o4mGnC{XiQnB%@UrEXi&soO>{4m_mOXCjFF?=G?S)8 z>Jr|xpO~pu*V7u*5z|EOksP@_)YV*J-%X%O&Imh5EVF$y8nNpNN<+Rer9uEHBGpqz zZn*DvGlYC!oxws67qsRwM+(~^rpFZ<*rww5KFGWn;|L46#x+vUcY%j;X5Z|6o@3J4 z-lm~M7=_ZfcB*JBzKrrTLCw?VQ&8ez#n_XIe}WvQ@R)UcSF~~;I^JZhK|I?{z6b=R ze`wQ*WFWlhK`V|;FvKYCNfj^c`xd|&YvT;}4`igx$py_l}gUu5#mlQap~`bJ;jmM3wTs((#3 zh{!f{;Z$o&Ye$Rj@Z^{7#1UbS!1%+eWXaAy&L&2JULL3R zxl)ya_0rm=G-4tMl}1pP%hAXThGJO5H5V;sIOobCtW}R7JCua{4$@^8?l9E_xB(NT zsNKaOB6-orHgQ2$Anzb4?A9FJ+@|=^rRxUkz3uI}srd@MyvjH8(-f&H@=7AQ*Fc1LExrlU|L%5gLQT$uX!K>oK#$z)@|s77_rxO}4UvX-6Vp2EAP^1v#;0HB?OpdhXsMK20R2_+aqAl8z)Gba7 zWF@F+H&u&UB|ck{)iuy{xkMm;)NTRsE&qORb#lc~&iN#98f&j`TBZu1 zYrr_mx}~N#3&oFd(xrV<^AuY_`<3c;cW$&0UOx?bUXKi;JxX`WJLd#lefP1gr*zqA z`TYDSrDah%E5ZKMTxu_vnkc*^td`tOK+WcKIt4Gs&quY?$BpzkDff5vc|PL$GJ$;e zm*BCMpEj6AW2QuuFYCjgYf{`?^CTef$)@1|ywZKMx<|Yka}GHqxuv#~mW61p9s> zAz$005jkIo_p9VwDAxSie==XHN~l}7g@ zj>hKOon54d`Id!xOFr7;_icM}mr4|oz%L5KDTLHH3#r4qqKgWv5)PAs%Zs9%POLss zm{%xm%!92*xYZ)ngX*|4+tt=*-C#ESinhyHPSAwwH6E?PR9!|l*J;BYHz`}+S5z5g zn-^__wac|BYnL-)V40mSYde_UYuUWM*$;b%>Bb^rQr7M?d#_kjxd^X&-p65H4Y3li zR*QMml2WC#m0$FZxx_GCq4{F9O378B7n#xqOYT>hQi-g{K=CwhuEr0fJz=phg$6^&1IMbHA3wT2dGbg?s?$}LP~tlXWgE!K(1 zM2~`ww=PlOA#HU#*Fxl|&A28ba{JASaATyCmXxi}HVbD9xI2REm;O`lj2bRPspm{N zNZN7wf+^mg=1aYJi@@CHm6CzN-$jV8x&^FJ?^4*{wr{EW{G|53pMB6vMcu*vLQ>$QYK{ zQY3G0V^;D@bW{NmvOt|qZk*x+K-?(j=m;S`v?V&kc2ZG-qq=rH9mpL+Q8Ou#`p1HF zOY$l)85~O^W}<6XnMH~1bSoCvuRjLShkUk(#w)!GPw$1%&DP}E&9}uD?iVu-xs76} zuE(MNgVDP5pP@VI_?gY>n3?P(>6g$H@41lN>?N_gcK z$@}F*mE`n6*8x!fD$V8gt#0kmG=&$74Fr)>%7mwGZg#!4bV?PwacQM`vn5)s>oz#u zUbL#_=Wt|KAV&G{b!EAY|`iAp}KJx34P&tVX$}A<` z4UyP@b8k+G4;gQo*qHI9iPz4XCI_87z6+%Rd}ZYFH>44uKC9C!JmP8~$4Hj9EE9oVK-}&I zRg+*Im)Due6LX--5$jQLSD@RYzG}I-{B`N;ay6=_I1N&4W>Kv(VqkVYbikI@-72+G zuDXK?Jtjz0rh|J(b~LgGtV&3U*v||TDELTYxJd;Gg|&5_Cgsna_DrLqlCL+@Qb%4p zMCC~Kzr!q6ZP~YFC+-{8(vF8?GDj|5?13s5V)G;TyS?e$wueeyu1|* z?hQNC=+z~O7}%wu-i$*D_Q z**uu|GAH}sb*xv!sp~b>%9`YA~pZ`J3 zkf+d756<#68(i55s_X#s1mOdw$d&SBPMP2tBz>*&wh_U`KkF$^*Xs2L#oQr(NRQMXvdT_ zbeDuYszzg*>tsjM&EKF*nlE59I+RL-?4S~K#H%ZmO_I)64>v+znEF0mCFeR3X+n?1 zqrLevjdZrsnIn0akFKYosIV$EoZmB#MmqJK^$y)~OWV@)vRAv4c{ttlW~_!ro6zNj z)V+L6fd0piqVu0LLg@Iwx@x8D-#v;=h2EnCN-}K6!%(jCpHZ$8r@0ahCEO^!YDM{u z%O)-_P_)bpLk|p52TgIfwa_+Z!-IDArv2`Gx=3_;d#O1`t_7CU3tBRwyAksKyYfBE zv4d^znNBi4={57wq`#l)SMSgh;Puc5!ugWTwbr(J@{mcRk$ucW8BOA08tiP?6*13` zx$A#Fi=u(bj>aPGIn0w=i#ZuwHVugmVDpH=FKCWQjf)=?iTTz~@jkpvJM9mTh$Lmv zwRUQ!!nUlJg0gPJWmr@|-W+Qa4Muo~^wx1@YA3xnLNN!^jp^yY*6~;<)6@dLd(B6P zD6@MJsIFp3Hak?L{|dBHdXaSFn5Rg(ERHN$Q&38iqA@pVN<+L<{k8T|_19IiCmNY* zXYx0+aY2$?w{Y7f(Qzc8tJ!y2`9Rcix^#V;jBo zmMkFlJz0R8AYOnY(%BlYG$0#Hhs*S}>Li{{oo$lCc~0>!_^*jIy)dNvU}7tsN#`{{ zAV!McBic}-bzi5`YOk$#XFCn?IG<|{*flH-2WJOefpJ|v@!#(dw337tGbYK1j4u+Z zP8isw&2*#8V3o#cXmMjQM-ewr-CLYho6-Q(>bV9F`+ zMS9gh?r;}G#d@WE}V*XR|wg^h>qsT6oBK_v7 z^D(_1>P5*pl_g)x#&&gRipXC?iFv2p`u`(x(28bf@E77Jao^uUJ_40YZ#^Oi4*3=d`u4Jy#o2z$lMWO0$M=$3x?T3Q# zk(yVeTcZ-$NWDg_Db|RrkP==byXfH@rrijICGexGTG>T|+;6jNBUBd~bMBO=D-$L1 zKVKS93ov z7vuQ?OpGVX$HRE8Xn z+%NiyMC!4`7}ty%r@YiJtzK8zbB4n7EIUjF$V;NO%zWQmUzv;$@udse5mpsKaL|b`T~R_R}JJ)j%ENvC9Au-;ttfE#3wC5@-h^4W-u{b1Y;yp7Gka`Bs8KaPpcVM z4~RvnC)H4QS8b7=$cgVoX)@ssldhIc9E)3PZdzK{N+I!dEezj?*@aUlY2%usFLaL= zAMPmc?(tI&)agpp6Fky+O5~hx&G8zOABnHj7wLEtIimx;sN}S zb57V0*1Cd{3YVP{8C8yBDQ925I3}XiH?+6WR4W&1>W2z%cQktB+zegUrt=2dN)IFG z^#m=;7O0TGiYcBDjxyCM-RwBU+(id@9;YZS!MCc-TU~x#oX9!E>%4NSM`FtYT%I1Q zPF+x4H?<*PvBerKZUEzq6}smxGqbTdnX_dc$sfGqwmpaE6v1kt}9tf!Bj>{ zN5r-UUHKyqgS5m|oPqh-+z(_Y4vdpAY*)lc$981K)do8UTGG>RpGx8LQ7@XFq(<3dBP%U19 zrc-H%uL7^{vM(f;Pn==V=kr5{Gx^mqo#lL`R~l4IqUUB>H0*S22<6x7_N;Vjfv&0uq&(ZFfF)gnXW2b zAuknaTUzOmwk^?f6JpsTB(qD;Ay%Yhbe3j&GS&1fr6aj9=@i?w4vI$HIfWLLG&YCD z{K6gE4Nd}{j46-3StN(mbZks26TYM?MwffWuVUtSQa+_FuJ-0(!qI?G;WRdh1M;~P zI<7$pPY6xrBU=G6B^oEPf)qHlvAT_R8D;5k8xwuVgw9I;uY6WD>-LI%80IZ>h(%B?RE(7C z76nb1pfDH7s$@1hkLrp<_hx6!DS;`3XsTmDBlVOfXek8XvsR5rsy0WX(>4FB{r%A* zu9og<)5NkrW7i~GUo4^FSO?Zp`uvbHk*bbK%V5p=c2H>6MQQ83G`*rJVn5kIDq}y( z)yi5iBPN|)?x`$Gj(Klb+}j}T3{jf6EN+Uvpd+1DGAb|N&9Hk$xPnIY2?=$~yfiSe zmDCu80$19zJL)|VY}^t0o+HDv=kS7b^NCSGqI&*zD{L7(^ggoBRiO1XooXd>b!two zSIi3><&n9ig@rwC?2biuB1#xjSsk475Yy-)KV=>CN4i4O7tM^BAxqY+lLE@zH5A3= zLK%a_B9LPf%8i`1x`3YGPVd@5=W%d)8eB|O;w5oUUnNr0R!DP!jtG_Iqp@VHg|4ZL zWu21+iO1%%3!0;#iM$1k(?%}c7DE5!TYG99ei5AC0OzfL`kf3)=k6toSraLbF?%0~ z4#w(5p5*k3t-mvTiD?&M7tM&y4#O_i=tRS%VyQ$m`@~M6vu@;#)f^MMdwe~aQOzD^ zM)c=UiY#SP_h&3TrN_t=ozP?1W7D}c!I~C}b5E9!NO6gj-NtH%gV-tVrcQ5`%6DG# z_s@z6DCd)}$Y8C9sn+5m)M~9q2de0DcWewAeMJ?M7QWi+q9%v=Q7(@Q=YUuOk~$!N z;%1sGIf|a%CWH?oDM+CT8tbJ{vj(YI@_-i0^I5H@BV;XcQKRMV zFwKuikTG|x_c*2bFXmqw5ky+~O{%nLs&8v|_GBKe$x)y^WzgnUFB;axV2^U9T8>8b zkE(2L^aS?{JH4v^UwE{Y{5>NylIGeA)!Hn_;24JWYTMZC%34I_V3*ZD)=J6h_f)BO zyS-1DcZq04vQpV)LgGa+VfmV2qc@HCKqWueDttJj?3+Q%kjSXE4m}xzdR>#wsleIC zDwbYR`qE3&H6<(6p+C{QriU$Q?3fEiCkxliUf6g#o&CfVfm5k=>00esI{(xnAJ^g@ zQ)swMs@j6$E(vw1T3u>2=->$jfAZU2f=-o`sU>wjZ9^_FPiN2xI{KYneii5ECaRTj z$xE68g*(ouBK1&g&;rm*QYreYkkoU+0_<1Mg_>Gap^Zz0Mkjtx=)<}z*Gz#1S}MqN zbx@1JPNA!n0+V+k%f(vnXDZh9rcQ|&+X$ScTj$_{%95y}bk(w|P)m(5VX7lmV?|5P zu_luq4P}$-#q=P(HOa4BR_fbN*h80^xZ^`2Nt6Dj(2~sdfN)}^V-s~wkkvkg0Oy-Mw~<5ZrN7PoxI&EkQG6(J}}8G&PE9kSD7`;+dMBZ2$Q?g8{*}8=At@xi|nb2*4S8YpI4Pm zGkfjsaUP_XQZA3q$v_F(rjZj>9`BZTw8C038s?_Yl%D7@~uZRs^IZyOoUmLe%1CSl%?r!V8 z=!@dG3?Eou4?VBb7gaUK<{uz=tQ+shG8sK~jW>s>Tx>m(If#pffw@Yk@ER+Y9R|Cp zezL*ItLqGVf{jhfl&1(&p#nt|whOIV7PSVgtT7%YN2Tp3;^>pK+i;1u;R~~h5K zu1@5;t++@vd<0fje3paERUk$qFn6u#LmNLzVw22p?f}jv6jyCljs)#kMR;LMCS4$$ zs$e}7dkdDY_NM%c4Xl~}wmHdHAbP^!teH057PkhmDZsLsEepKg z4H={Vy@lDWDY{1^j?Nd_bS_Yt{Fl{c@9AXpM}c54j-40FnG<`JZPs>p2Hz}+u~rpX zL<=7%+yPM`Bo0Zt(pST7hq-x66<+tf9 z9Zb1C3QLuj~cx z@R2r<+-Av|(n5FYgy*k7p?%C&<9ts%i??Z~n5{x3WY10VYND(*2Le(SamRtFjc@j) zI|;m@NoqUW%I$HEa%7b)OY~2kOO4Z5l@S$qz$@(RnRKGT83ghG26fNx>kf)GC znyKa4dj6ZFgTRfxu`67FhH0`*fQDs`Gx~JZzK#N?z{^YMigwj}G9rzL#}2bo>*b`; zBbBFzfqDjkzDhfGXtCCylgjCYwt^JTjp9O-N|$P7os#D8bl*v7p^2*VwI)5mz>k*5 zGGp4w7`xixo%hVLp~M4R50zR!XO^u|Z^*9n0JNbbDyX%9`TfL}V3g&FE8%3&6f@jh z9Y?O|;v~||;;2bt?plF#z|Y1*ZY3wVg#jv$JzJK5*Lq7@^_i0FT~yF)Nn>1=nc#>n zBzXGS^nGktgtLaFKb%Kt$XIb9AumcOD0kU}R**F*nNdJ8v#a3~z;G@hXL1KHL(U2~ zt%ws^k`l|u(&!pKo}w8 z#JsI#HgH)lA-L4jO9D4V%$8uXyYg{@#^v}dRxvii{mvCapLk2 z7CATNER^MRDOxk-@wK)vQ%GR>MMG$#Jd0dy)?4KTT6M`)gmOG)ldyg8hS|Jxlakli zW!5>MK0IP{q)i^8>Bo+XsO{QDX8V{tEaZZ6&)@Myzw~@0o$syho~-j9kCXYijs3YA7x>Kw) z!O~J#IyO}iIt6>xppls%yRwv(F$D724JTmWC)%Yfg%u2Ymu6tlb2;MBo(QtB1TZEm zRw9{2`EOFQs6?hyw0B$F>E}BU9`uLXa^@jOXPw#grj9yS=Nk0FQ;(h&#ldqvd_-re znS7R$OIOlJf@2Z}s~AfkT3j3Yd^E=KtaSa36`jLpC{f?YlT~uAHI)$JtFxNlxiR*b zOw4vB&nQpmw9`p1ICbf^J$g7z-ZB!-LWHdo=+T%v|K$pl4{Y&}GIGwI7i=!>CNOMp z*`usrOQ3zzV4!YNIOBUVJShb-^fCMB{kp8#Cr~7&nM#j#`DUF9N|G;I6BlUh$#h1lYch$q@+J)lf^%mO{Up5ce1amez383R3Lo&6qAQoLnXE9gKv9c4%OHw7 zcH##Ptr#a+<9xR<79eX@4}AHG-Yyh!ZLCTW0_2=gHc1_|W}BiWQ+SnIpoowr%uhlM z&q59DD^qe+TM9T8(`xTi)V}mWbxT=JG)*0#)IA&Pu12_T{8>ZY;7uK59#Ut0Pw=tf zpW8sr$1rtdIJP{A*(P4LI;(s>jhl0w>?3Ab8`hvUqmMc+zIOMLA)RR1bKIyb_2ngF zR=ZYh)EdHCuX{6Nc}6NAeWjk3IlM;q=JM9JkNHnWS0)CEw^-HEzRhzlRmpN*;mWS0 ztyQ`;IM<5YN6#_K&3U{GBg99^FQha`N%Z3R6Q`fxXtLs%YOb$vmV57@f$Mj3jZS zaJyXMM|rF>aeSITrdECCu7@E~q|{qp#+Hbg9jRxBLo=EYY+v^9beEowSFAi@OV`Ksfai_>#jW=w|evg})59~+&*iwo*FUP!>1SlEEh zUw~37C!_L7Ph9Li-u%_feT9zIj+m~`=*N}YP5E1sI$NaIlf|NMTPlAIl~{PKDlZwM zYJ5|X=@$1aikH+qX*YQ*pxV;+Y?axEN;9Y1Qoe~PgS3}-(n%wXAz?yR7x;*Wd^jU( zwV%5@=ePl{%ZYoY7;>gWgX&<3JU1k51xiSpMPdg~>=D&UQyl+#QmQ5Hl!*8k6P2C3 zRHB%|&^85!g~cq2FeT@#qGNp$l|B}0!P6hsB$8L%ICWc@qH#%ig)&{mxCGRI^e^6m z%Ecw(twkSJZl2{>tXow5PlQ5o8Qb{_+^ASq9U!-6_hi{b8 zgc7!Tobc!L+R}nH$5oN(G!*M{s5_qxmQLI&7bikZB`l8O`aOsL!PVeqC)+p?;tmfd zhw5XKJg?6o2bnzX0xy}qGiG=MoWd+$KuXV;lj#9gsryP3+fw4KsXV@*%p$TqKv^Vm zFf>V`uT1^;c#=h@_oGSg^kE`;&#Tv*^iaM4$wrHp+JtYQj1VUpzyiS^bj&2X~)B%X8MK6-&w8MW{p zxSgbg+et()j$Qfmu@GDdI$o#DOD;}8ftFuoVZptk%X;99u5OU8!A;L#Lrkf46Jq9h zQbL>;PKuhoI3i|LsTqeXh1nFlAe2351q3pLr*EAhN0Q`xJ`mco(PX`|_pF$! zy)MV2D`r; zHTzln9%jIXx;!zo!yW~HseL#N!dva8zI_WEkr2D>)QR?B$R}@{$&xqPZzsA}1cfU5n8}&xi)Ka63rYAU41V2F zEC&0?AG;By4+`X>-&k$7ckvcqdx;;K^f!>7F@sj_r zY?DWFR}aE)r|{tj8X(?E)9l=z96G(S!q)obj2b&$otmq+dX3&5RzYa7tZ(3c6K-cv z_=;E4o_M&={g@i{7W-GG~gUO8nPB2 zxPV1m6eJ7?DjBnkbD3#w28b2Ps6Ql9d+3s56Xs;3>>Uw3K!W39GHdeso$6 zr4fo{Lf*Yp^7Bvl(yRva*816D=)z-%Q@SQ%>HcGyT+{ z(9JXb6d+e_xT7J#EmT#AAW?+*{+xINzzw_8N56qsf?~ zz|v6sl9-wHd5v1P&NuhHJYVT^{Z^YZ_EYV-a%#2r__ai|rPbJ3?{w+TB>Hb%Tpm;J zOzkcYi$AHoyQeE{&YLh$^muYlw(E-rbIeh(^Vmu+g=h6pna0IQ4>_wIj@7FSSE23c zjV-N%Syw(c#hPknCc#%b?9$jniRqubK{ZfS{S^U6v;W3x}0h*d`%zj9pY1tr3zXZ)NVd5CEpT2AKh`q9(S+Jk3Qt5_}5?}E$z+RzrOa7E2b6Fg(qEy z(^wv;PMzH2l)|RvopfFZ=m0ueA5_V}zb6iIZZgHB9prR;5jAm+GebH(GkcoJ;f4X8 zB++(*eRB)7o6RrIv?r?^)t1b8a}H_ON-m=%#+gFP@T z)2ay~L#c9IK*)D?P7YHZ2y$ z`XZHDF-@CFiu)jFEOVd&ECAnTvfT;tco-X6{kF+(g;>;lmP2~mbl(IdE!8OWY6#;W z3I+hg#-Cc9TMdbIb!edYSKu-7YDp?IcwTGGX_{Pl1{Tq#Zr0{4WH|>fOr}Bxv6anh z2HW2Y7{69FzpxcyqD9OybOi|dO2w|IW@PDk9dSjYBpB6NhgvcM=NZA^11fM zjFsh9?XZTMPjA=@0%tTBeV)`A#n&1+NatH+SkiX#{66LskMtGf@cYOtMJG3(Rw*{8 z`6#4LWhv8=kCx?oAhPh6L?{2Oj*$kd!tS%q?gZeM*Bl4q0&fpkFPa8D9~3HzQ!v&j zi%)9S;TU;TCR58qdR)bTUQ2 zvtS4fu3k2cy?!bVIt2KREs6d(WVOVM40VV|)+!K-PecDio<|TTQSgicm(P9`oN-kF z_<@SVL+>l{@_uGA#qbb&6AmQOZ~SW9QnOiIY>No(DLP0}-YQSv5+mth4Dm#q2-@c< zW0+@P9(&bZr$#Y{Og9>yYs}BrJ9TQ!*?0w&7<_uapiN}bLTurlt}oAucqKZwp@GTOn(<3JnN`KwB;<;PC+ za-bkC+u9Q{Lc{7>u_$RR9Lplyw#2r%rGM(h5cu@o& zhb=QL9PwyhugZx9=_w~pALKLDO{}PCwg^*{O)R-lHO?NQnGO;~&r`9*MAlr)YGRA!#-8bucmS_(;wM9kLwY9BNFH=#|CB`}BOA#xi*Y;I>Pye9 zC*i8mnQ$GpZ1k5!E&pt12+0s-?~6|Trq+}tNc2HYZw zN281|^cS2;2nJWg@_t1{JS+ge0%g$7DsxOq8^}Trh_z8>ttLW)ZV$ zd;^ZLY=SSdb-b5swz+E}Gl^OBk4)p$L}tcEv#$oRku21Ju*e*J?#r2P6kCE3*5p3& zq>+>t%yzxUbhtMsiGtYE>DQX|5si&pnArt|DBq~{6)(79VmPscc64K2 zQeJ+s_nUmBWJu8Socf9bMy7J}Y1M>ouH@#0ivv)N*`+V9iizOHXgLt%;E)(oB_=S~rVU+9aDw!{3!9 zwG_ZbD50x3{7vM&ZyCX5aVlmZ7y)r32>f<_JWY}L+mYNHho(%;tS}d^ZDD^eP$Mgw zWk>Ykf;CoNEc`FE$2Et;os*tFe?%CV61I{IEApuXZ{Ns?F2kJeXBm_hfn<0uT;{%t zu@mb=E`vmM`kw&|uXE}RZ<}~g=q`i8Vno3k_P7yux{33SsadQs;o1_jF&VLkMAUi)2S@hz=pTBgZCtN@*Na^pIb!fQoS`)(j`d)N_$I!TGafoZ3Wr^Aftx{j$4~5>v-2W61pRf6 zg(&M=yNWh|!`?&#L@)r%7OITih^J7P`nGmwPx>DHXd*qgPOYfvUVs&C^{20p(%ENe z&HRA?nbw1zkrP`b+965(wsIRnT#F^x$YZ=8dZX08i1+AHU`1_Py=)F}77pbmZ>!m5 zwq$lio4TX|X{5-5KBB=e4!rv}_DES#sqw93dmouaD!I!$;%=7u?`yJ{5}O`0#l)7W zw#)bijpXD9Pr*Qzr+}27o!j;oBsK(xX*W+A4&k8qzs? z(%Kf=$~loOi;+&Yiw0#tS*C6o`PHQodskhi5=zEKiM^*xg-P`uTWXoxXy%0A$UABH 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 z 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