diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7ee492135..bdb1bd874 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,13 +15,19 @@ jobs: linux-build-docker: strategy: matrix: - distro: [ubuntu, centos, debian, i386/ubuntu] + distro: [ubuntu, centos, rockylinux, debian, i386/ubuntu] exclude: - distro: ubuntu - distro: centos + - distro: rockylinux - distro: debian - distro: i386/ubuntu include: + - distro: ubuntu + ver: 24.04 + codecov: no + btype: release + buser: qfsbuild - distro: ubuntu ver: 22.04 codecov: no @@ -62,6 +68,16 @@ jobs: codecov: no btype: release buser: qfsbuild + - distro: debian + ver: 12 + codecov: no + btype: release + buser: qfsbuild + - distro: debian + ver: 11 + codecov: no + btype: release + buser: qfsbuild - distro: debian ver: 10 codecov: no @@ -82,6 +98,11 @@ jobs: codecov: no btype: release buser: qfsbuild + - distro: rockylinux + ver: 9 + codecov: no + btype: release + buser: qfsbuild - distro: i386/ubuntu ver: 18.04 codecov: no @@ -119,7 +140,7 @@ jobs: run: aws s3 cp build/qfs-*.tgz s3://quantcast-qfs osx-build: - runs-on: macos-latest + runs-on: macos-latest-large env: BUILD_OS_NAME: osx steps: @@ -128,6 +149,7 @@ jobs: brew install boost || true brew install macfuse || true brew install go || true + brew install python3 || true - name: Checkout code uses: actions/checkout@v2 @@ -146,7 +168,7 @@ jobs: run: aws s3 cp build/qfs-*.tgz s3://quantcast-qfs osx-build-arm64: - runs-on: macos-latest-xlarge + runs-on: macos-latest env: BUILD_OS_NAME: osx steps: @@ -174,7 +196,7 @@ jobs: run: aws s3 cp build/qfs-*.tgz s3://quantcast-qfs cygwin-build: - if: ${{ false }} # turn off for now + if: ${{ false }} # turn off for now runs-on: windows-latest env: CYG_MIRROR: http://cygwin.mirror.constant.com diff --git a/CHANGELOG.md b/CHANGELOG.md index 19e07d1d6..8bffb9598 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,3 @@ # Changes -https://github.com/quantcast/qfs/wiki/Release-Notes + diff --git a/CMakeLists.txt b/CMakeLists.txt index 248a5c3e1..4c5c3dc67 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,6 +61,12 @@ else() find_package(Boost COMPONENTS regex REQUIRED) endif() +if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") + set(CMAKE_INSTALL_RPATH $ORIGIN) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + set(CMAKE_INSTALL_RPATH @loader_path) +endif() + if (CYGWIN) set(CMAKE_FIND_LIBRARY_PREFIXES ${CMAKE_FIND_LIBRARY_PREFIXES} "") set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} ".dll.a" ".lib") @@ -81,6 +87,7 @@ find_package(Krb5 REQUIRED krb5) find_package(OpenSSL REQUIRED) find_package(FUSE) +add_definitions(-DBOOST_BIND_GLOBAL_PLACEHOLDERS) # Define various options based on the library configuration we use if(KRB5_FLAVOR) add_definitions(-DKFS_KRB_USE_${KRB5_FLAVOR}) @@ -186,8 +193,13 @@ if(FUSE_FOUND) message(STATUS "fuse libs: ${FUSE_LIBRARIES}") message(STATUS "fuse include dirs: ${FUSE_INCLUDE_DIRS}") message(STATUS "fuse definitions: ${FUSE_DEFINITIONS}") + message(STATUS "fuse version: ${FUSE_MAJOR_VERSION}.${FUSE_MINOR_VERSION}") add_definitions(${FUSE_DEFINITIONS}) - add_definitions(-D FUSE_USE_VERSION=26) + if(${FUSE_MAJOR_VERSION} LESS 3) + add_definitions(-D FUSE_USE_VERSION=26) + else() + add_definitions(-D FUSE_USE_VERSION=30) + endif() include_directories(${FUSE_INCLUDE_DIRS}) else() message(STATUS "Not building qfs_fuse") diff --git a/Makefile b/Makefile index 7b5bd624e..b13bb99ce 100644 --- a/Makefile +++ b/Makefile @@ -29,6 +29,11 @@ QFSTEST_OPTIONS= JAVA_BUILD_OPTIONS= QFSHADOOP_VERSIONS=0.23.11 1.0.4 1.1.2 2.5.1 2.7.2 2.7.7 2.8.5 2.9.2 2.10.1 3.1.4 3.2.2 3.3.1 +QFS_PYTHON_DIR=python-qfs +QFS_PYTHON_WHEEL_DIR=${QFS_PYTHON_DIR}/dist +QFS_PYTHON_TEST_OPTION=test -d ${QFS_PYTHON_WHEEL_DIR} && echo -python-wheel-dir ${QFS_PYTHON_WHEEL_DIR} +QFS_MSTRESS_ON=true + .PHONY: all all: build @@ -42,7 +47,10 @@ run-cmake: dir .PHONY: build build: run-cmake - cd build/${BUILD_TYPE} && $(MAKE) ${MAKE_OPTIONS} install + cd build/${BUILD_TYPE} && $(MAKE) ${MAKE_OPTIONS} install \ + `${QFS_MSTRESS_ON} && \ + echo ${QFSHADOOP_VERSIONS} | grep 2.10.1 >/dev/null 2>&1 && \ + mvn --version >/dev/null 2>&1 && echo mstress-tarball` .PHONY: java java: build @@ -62,7 +70,12 @@ hadoop-jars: java .PHONY: go go: build - if go version >/dev/null 2>&1 ; then \ + if go version 2>/dev/null | awk '/go version/ { \ + n = split($$3, v, "[^0-9]+"); \ + ret = 4 == n && (1 < v[2] || 16 < v[3]); \ + exit; \ + } \ + END { exit ret ? 0 : 1 }'; then \ QFS_BUILD_DIR=`pwd`/build/$(BUILD_TYPE) && \ cd src/go && \ CGO_CFLAGS="-I$${QFS_BUILD_DIR}/include" && \ @@ -73,35 +86,41 @@ go: build go get -t -v && \ go build -v || \ exit 1; \ + else \ + echo "go version 1.17 or greater is not available"; \ fi .PHONY: tarball -tarball: hadoop-jars +tarball: hadoop-jars python cd build && \ myuname=`uname -s`; \ myarch=`cc -dumpmachine 2>/dev/null | cut -d - -f 1` ; \ [ x"$$myarch" = x ] && \ myarch=`gcc -dumpmachine 2>/dev/null | cut -d - -f 1` ; \ [ x"$$myarch" = x ] && myarch=`uname -m` ; \ - if [ x"$$myuname" = x'Linux' -a \( -f /etc/issue -o -f /etc/system-release \) ]; then \ + if [ x"$$myuname" = x'Linux' -a \ + \( -f /etc/issue -o -f /etc/system-release \) ]; then \ if [ -f /etc/system-release ]; then \ myflavor=`head -n 1 /etc/system-release | cut -d' ' -f1` ; \ - myflavor="$$myflavor-`head -n 1 /etc/system-release | sed -e 's/^.* *release *//' | cut -d' ' -f1 | cut -d. -f1`" ; \ + myflavor="$$myflavor-`head -n 1 /etc/system-release | \ + sed -e 's/^.* *release *//' | cut -d' ' -f1 | cut -d. -f1`" ; \ else \ myflavor=`head -n 1 /etc/issue | cut -d' ' -f1` ; \ if [ x"$$myflavor" = x'Ubuntu' ]; then \ - myflavor="$$myflavor-`head -n 1 /etc/issue | cut -d' ' -f2 | cut -d. -f1,2`" ; \ + myflavor="$$myflavor-`head -n 1 /etc/issue | \ + cut -d' ' -f2 | cut -d. -f1,2`" ; \ elif [ x"$$myflavor" = x ]; then \ myflavor=$$myuname ; \ else \ - myflavor="$$myflavor-`head -n 1 /etc/issue | cut -d' ' -f3 | cut -d. -f1,2`" ; \ + myflavor="$$myflavor-`head -n 1 /etc/issue | \ + cut -d' ' -f3 | cut -d. -f1,2`" ; \ fi ; \ fi ; \ else \ if echo "$$myuname" | grep CYGWIN > /dev/null; then \ - myflavor=cygwin ; \ + myflavor=cygwin ; \ else \ - myflavor=$$myuname ; \ + myflavor=$$myuname ; \ fi ; \ fi ; \ qfsversion=`../src/cc/common/buildversgit.sh --release` ; \ @@ -110,27 +129,60 @@ tarball: hadoop-jars { test -d tmpreldir || mkdir tmpreldir; } && \ rm -rf "tmpreldir/$$tarname" && \ mkdir "tmpreldir/$$tarname" && \ - cp -r ${BUILD_TYPE}/bin ${BUILD_TYPE}/lib ${BUILD_TYPE}/include ../scripts ../webui \ + cp -r ${BUILD_TYPE}/bin ${BUILD_TYPE}/lib \ + ${BUILD_TYPE}/include ../scripts ../webui \ ../examples ../benchmarks "tmpreldir/$$tarname/" && \ - if ls -1 ./java/qfs-access/qfs-access-*.jar > /dev/null 2>&1; then \ + if ls -1 ./java/qfs-access/qfs-access-*.jar >/dev/null 2>&1; then \ cp ./java/qfs-access/qfs-access*.jar "tmpreldir/$$tarname/lib/"; fi && \ - if ls -1 ./java/hadoop-qfs/hadoop-*.jar > /dev/null 2>&1; then \ + if ls -1 ./java/hadoop-qfs/hadoop-*.jar >/dev/null 2>&1; then \ cp ./java/hadoop-qfs/hadoop-*.jar "tmpreldir/$$tarname/lib/"; fi && \ + if ls -1 ${BUILD_TYPE}/${QFS_PYTHON_WHEEL_DIR}/qfs*.whl >/dev/null 2>&1; \ + then \ + cp ${BUILD_TYPE}/${QFS_PYTHON_WHEEL_DIR}/qfs*.whl \ + "tmpreldir/$$tarname/lib/"; fi && \ + if ls -1 ${BUILD_TYPE}/benchmarks/mstress.tgz > /dev/null 2>&1; then \ + cp ${BUILD_TYPE}/benchmarks/mstress.tgz \ + "tmpreldir/$$tarname/benchmarks/"; fi && \ tar cvfz "$$tarname".tgz -C ./tmpreldir "$$tarname" && \ rm -rf tmpreldir .PHONY: python python: build - cd build/${BUILD_TYPE} && python ../../src/cc/access/kfs_setup.py build + if python3 -c 'import sys; exit(0 if sys.version_info >= (3, 6) else 1)' \ + >/dev/null 2>&1 && \ + python3 -c 'import venv' >/dev/null 2>&1 ; then \ + cd build/${BUILD_TYPE} && \ + rm -rf ${QFS_PYTHON_DIR} && \ + mkdir ${QFS_PYTHON_DIR} && \ + cd ${QFS_PYTHON_DIR} && \ + ln -s .. qfs && \ + ln -s ../../../src/cc/access/kfs_setup.py setup.py && \ + python3 -m venv .venv && \ + . .venv/bin/activate && python -m pip install build && \ + python -m build -w . ; \ + else \ + echo 'python3 module venv is not available'; \ + fi .PHONY: mintest -mintest: hadoop-jars +mintest: hadoop-jars python cd build/${BUILD_TYPE} && \ - ../../src/test-scripts/qfstest.sh -auth ${QFSTEST_OPTIONS} + ../../src/test-scripts/qfstest.sh \ + `${QFS_PYTHON_TEST_OPTION}` \ + -install-prefix . -auth ${QFSTEST_OPTIONS} .PHONY: test test: mintest cd build/${BUILD_TYPE} && \ + installbindir=`pwd`/bin && \ + metadir=$$installbindir && \ + export metadir && \ + chunkdir=$$installbindir && \ + export chunkdir && \ + toolsdir=$$installbindir/tools && \ + export toolsdir && \ + devtoolsdir=$$installbindir/devtools && \ + export devtoolsdir && \ echo '--------- QC RS recovery test ---------' && \ ../../src/test-scripts/recoverytest.sh && \ echo '--------- Jerasure recovery test ------' && \ @@ -138,7 +190,9 @@ test: mintest ../../src/test-scripts/recoverytest.sh && \ if [ -d qfstest/certs ]; then \ echo '--------- Test without authentication --------' && \ - ../../src/test-scripts/qfstest.sh -noauth ${QFSTEST_OPTIONS} ; \ + ../../src/test-scripts/qfstest.sh \ + `${QFS_PYTHON_TEST_OPTION}` \ + -install-prefix . -noauth ${QFSTEST_OPTIONS} ; \ fi .PHONY: rat diff --git a/README.md b/README.md index 23f4dfb00..ad20e8912 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ # QFS version 2 +QFS version 2.2.7 + +Release 2.2.7 + +- Release 2.2.7 contains updated python module, python3 support, and minor improvements. [Release notes](https://github.com/quantcast/qfs/wiki/Release-Notes). + QFS version 2.2.6 Release 2.2.6 @@ -60,7 +66,7 @@ configured QFS does not have single point of failure. Release notes are available [here](https://github.com/quantcast/qfs/wiki/Release-Notes). -# Quantcast File System +## Quantcast File System Quantcast File System (QFS) is a high-performance, fault-tolerant, distributed file system developed to support MapReduce processing, or other applications @@ -71,17 +77,21 @@ QFS used in Quantcast production cluster. QFS servers have been tested on 64-bit CentOS 6 extensively and run on Linux variants. The QFS client tools work on OS X and Cygwin as well. -| Platform | Build Status | -| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Mac OS X | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | -| Ubuntu 14.04 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | -| Ubuntu 18.04 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | -| Ubuntu 20.04 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | -| Ubuntu 22.04 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | -| CentOS 6 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | -| CentOS 7 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | -| CentOS 8 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | -| Debian 10 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | +| Platform | Build Status | +| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Mac OS X | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | +| Ubuntu 14.04 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | +| Ubuntu 18.04 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | +| Ubuntu 20.04 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | +| Ubuntu 22.04 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | +| Ubuntu 24.04 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | +| CentOS 6 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | +| CentOS 7 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | +| CentOS 8 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | +| Rocky Linux 9 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | +| Debian 10 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | +| Debian 11 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | +| Debian 12 | [![Build Status](https://github.com/quantcast/qfs/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/quantcast/qfs/actions/workflows/build.yml) | The implementation details and features of QFS are discussed in detail in the project [wiki](https://github.com/quantcast/qfs/wiki/Introduction-To-QFS). @@ -104,55 +114,56 @@ Once you have aquired QFS through one of the methods above, you can take QFS for a quick test drive. Setting up a single node configuration to familiarize yourself with QFS is very easy. -1. Extract the distribution tarball. +1. Extract the distribution tarball. $ tar -xzf qfs.tgz && cd qfs - -1. Set up a single node QFS instance. This will create a workspace in + +1. Set up a single node QFS instance. This will create a workspace in `~/qfsbase`, start two chunk servers and one metaserver. - $ ./examples/sampleservers/sample_setup.py -a install - Binaries presence checking - OK. - Setup directories - OK. - Setup config files - OK. - Started servers - OK. + $ ./examples/sampleservers/sample_setup.py -a install + Binaries presence checking - OK. + Setup directories - OK. + Setup config files - OK. + Started servers - OK. -1. Add tools binary path to`PATH` +1. Add tools binary path to`PATH` $ PATH=${PWD}/bin/tools:${PATH} - -1. Make a temporary directory on the file system + +1. Make a temporary directory on the file system $ qfsshell -s localhost -p 20000 -q -- mkdir /qfs/tmp - -1. Create a file containing "Hello World", Reed-Solomon encoded, with + +1. Create a file containing "Hello World", Reed-Solomon encoded, with replication 1. - $ echo 'Hello World' | cptoqfs -s localhost -p 20000 -S -k /qfs/tmp/helloworld -d - - -1. Cat the file content. + $ echo 'Hello World' | cptoqfs -s localhost -p 20000 -S -k /qfs/tmp/helloworld -d - + +1. Cat the file content. $ qfscat -s localhost -p 20000 /qfs/tmp/helloworld - -1. Stat the file to see encoding (RS or not), replication level, and mtime. + +1. Stat the file to see encoding (RS or not), replication level, and mtime. $ qfsshell -s localhost -p 20000 -q -- stat /qfs/tmp/helloworld - -1. Copy the file locally to the current directory. + +1. Copy the file locally to the current directory. $ cpfromqfs -s localhost -p 20000 -k /qfs/tmp/helloworld -d ./helloworld - -1. Remove the file from QFS. + +1. Remove the file from QFS. $ qfsshell -s localhost -p 20000 -q -- rm /qfs/tmp/helloworld - -1. Stop the servers. + +1. Stop the servers. $ ./examples/sampleservers/sample_setup.py -a stop - -1. Uninstall the single node instance. + +1. Uninstall the single node instance. $ ./examples/sampleservers/sample_setup.py -a uninstall + ## Benchmarking QFS @@ -173,7 +184,7 @@ when contributing code. Join the QFS Developer mailing list or search the archives at the [Google Group](http://groups.google.com/group/qfs-devel). -Post comments or questions to qfs-devel@googlegroups.com. +Post comments or questions to . ## License diff --git a/benchmarks/mstress/CMakeLists.txt b/benchmarks/mstress/CMakeLists.txt index e92a56fb5..2b5210a0c 100644 --- a/benchmarks/mstress/CMakeLists.txt +++ b/benchmarks/mstress/CMakeLists.txt @@ -19,27 +19,33 @@ # Build the C++ mstress benchmark # -add_executable (mstress_client EXCLUDE_FROM_ALL mstress_client.cc) +add_executable(mstress_client EXCLUDE_FROM_ALL mstress_client.cc) -IF (USE_STATIC_LIB_LINKAGE) - add_dependencies (mstress_client kfsClient) - target_link_libraries (mstress_client kfsClient) -ELSE (USE_STATIC_LIB_LINKAGE) - add_dependencies (mstress_client kfsClient-shared) - target_link_libraries (mstress_client kfsClient-shared) -ENDIF (USE_STATIC_LIB_LINKAGE) +IF(USE_STATIC_LIB_LINKAGE) + add_dependencies(mstress_client kfsClient) + target_link_libraries(mstress_client kfsClient) +ELSE(USE_STATIC_LIB_LINKAGE) + add_dependencies(mstress_client kfsClient-shared) + target_link_libraries(mstress_client kfsClient-shared) +ENDIF(USE_STATIC_LIB_LINKAGE) -add_custom_command ( +add_custom_command( OUTPUT mstress.jar - COMMAND ant -f ${CMAKE_CURRENT_SOURCE_DIR}/build.xml - DEPENDS MStress_Client.java - COMMENT The HDFS mstress client bundled as a jar. + COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/../../src/java/javabuild.sh + -d ${CMAKE_CURRENT_SOURCE_DIR} + -v ${CMAKE_CURRENT_SOURCE_DIR}/../../src/cc/common/buildversgit.sh + -- + -DbuildDirectory=${CMAKE_CURRENT_BINARY_DIR} + -Dhadoop.release.version=2.10.1 + package + DEPENDS src/main/java/com/quantcast/qfs/mstress/MStress_Client.java pom.xml + COMMENT "The HDFS mstress client bundled as a jar." VERBATIM ) -add_custom_target (mstress DEPENDS mstress_client mstress.jar) +add_custom_target(mstress DEPENDS mstress_client mstress.jar) -set (mstress_scripts +set(mstress_scripts mstress_plan.py mstress_run.py mstress.py @@ -47,66 +53,72 @@ set (mstress_scripts mstress_install.sh ) -foreach (script ${mstress_scripts}) - add_custom_command ( +foreach(script ${mstress_scripts}) + add_custom_command( OUTPUT ${script} - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${script} ${CMAKE_CURRENT_BINARY_DIR}/ + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${script} + ${CMAKE_CURRENT_BINARY_DIR}/ ) endforeach(script) -add_custom_target ( +add_custom_target( mstress-scripts DEPENDS ${mstress_scripts} - COMMENT Copy mstress scripts to build directory. + COMMENT "Copy mstress scripts to build directory." ) -add_custom_target ( +add_custom_target( mstress-tarball COMMAND cd .. && ${CMAKE_COMMAND} -E tar czvf mstress.tgz - mstress/mstress_client - mstress/mstress.jar - mstress/*.py - mstress/*.sh - DEPENDS mstress_client mstress.jar - COMMENT Bundle mstress files in a tar archive. + mstress/mstress_client + mstress/mstress.jar + mstress/*.py + mstress/*.sh + DEPENDS mstress + COMMENT "Bundle mstress files in a tar archive." ) add_dependencies(mstress-tarball mstress-scripts) -if (${CMAKE_MAJOR_VERSION} LESS 2) -elseif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} LESS 8) -elseif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND - ${CMAKE_MINOR_VERSION} EQUAL 8 AND ${CMAKE_PATCH_VERSION} LESS 12) - set (cmake_use_target_property ON) -endif (${CMAKE_MAJOR_VERSION} LESS 2) +if(${CMAKE_MAJOR_VERSION} LESS 2) +elseif(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} LESS 8) +elseif(${CMAKE_MAJOR_VERSION} EQUAL 2 AND + ${CMAKE_MINOR_VERSION} EQUAL 8 AND ${CMAKE_PATCH_VERSION} LESS 12) + set(cmake_use_target_property ON) +endif(${CMAKE_MAJOR_VERSION} LESS 2) -if (${cmake_use_target_property}) - get_target_property (metaserver_location metaserver LOCATION) - get_target_property (chunkserver_location chunkserver LOCATION) -else (${cmake_use_target_property}) - set (metaserver_location $") + set(chunkserver_location "$") +endif(${cmake_use_target_property}) -add_custom_target ( +add_custom_target( mstress-bootstrap COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/bin/ - COMMAND ${CMAKE_COMMAND} -E copy ${metaserver_location} ${CMAKE_CURRENT_BINARY_DIR}/bin/ - COMMAND ${CMAKE_COMMAND} -E copy ${chunkserver_location} ${CMAKE_CURRENT_BINARY_DIR}/bin/ - COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/webui ${CMAKE_CURRENT_BINARY_DIR}/webui - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/sampleservers/sample_setup.py ${CMAKE_CURRENT_BINARY_DIR}/setup.py + COMMAND ${CMAKE_COMMAND} -E copy ${metaserver_location} + ${CMAKE_CURRENT_BINARY_DIR}/bin/ + COMMAND ${CMAKE_COMMAND} -E copy ${chunkserver_location} + ${CMAKE_CURRENT_BINARY_DIR}/bin/ + COMMAND ${CMAKE_COMMAND} -E copy_directory ${KFS_DIR_PREFIX}/webui + ${CMAKE_CURRENT_BINARY_DIR}/webui + COMMAND ${CMAKE_COMMAND} -E copy + ${KFS_DIR_PREFIX}/examples/sampleservers/sample_setup.py + ${CMAKE_CURRENT_BINARY_DIR}/setup.py COMMAND cd .. && ${CMAKE_COMMAND} -E tar czvf mstress-bootstrap.tgz - mstress/mstress_client - mstress/mstress.jar - mstress/*.py - mstress/*.sh - mstress/bin/metaserver - mstress/bin/chunkserver - mstress/webui - DEPENDS mstress_client mstress.jar metaserver chunkserver - COMMENT Bundle mstress files along with QFS binaries. + mstress/mstress_client + mstress/mstress.jar + mstress/*.py + mstress/*.sh + mstress/bin/metaserver + mstress/bin/chunkserver + mstress/webui + DEPENDS mstress metaserver chunkserver + COMMENT "Bundle mstress files along with QFS binaries." ) add_dependencies(mstress-bootstrap mstress-scripts) -set_directory_properties (PROPERTIES +set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "../mstress.tgz;mstress.jar;${mstress_scripts}" ) diff --git a/benchmarks/mstress/build.xml b/benchmarks/mstress/build.xml deleted file mode 100644 index 3856a0365..000000000 --- a/benchmarks/mstress/build.xml +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/benchmarks/mstress/ivy.xml b/benchmarks/mstress/ivy.xml deleted file mode 100644 index 5a20aa207..000000000 --- a/benchmarks/mstress/ivy.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/benchmarks/mstress/ivysettings.xml b/benchmarks/mstress/ivysettings.xml deleted file mode 100644 index 4c8f95eb5..000000000 --- a/benchmarks/mstress/ivysettings.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - diff --git a/benchmarks/mstress/mstress.py b/benchmarks/mstress/mstress.py index 7bcee043e..8ec51484b 100755 --- a/benchmarks/mstress/mstress.py +++ b/benchmarks/mstress/mstress.py @@ -22,445 +22,588 @@ # remote clients (Java and C++) and makes use of the plan file to apply load # on the DFS server. +from __future__ import print_function + +import datetime import optparse -import sys -import subprocess -import time import os import signal -import datetime -import commands -import resource -import re +import subprocess +import sys +import time + class Globals: - MASTER_PATH = '' - CLIENT_PATH = '' - MSTRESS_LOCK = '/tmp/mstress_master.lock' - SIGNALLED = False - SERVER_CMD = "" - SERVER_KEYWORD = "" - KFS_SERVER_CMD = "metaserver" - KFS_SERVER_KEYWORD = "metaserver" - HDFS_SERVER_CMD = "java" - HDFS_SERVER_KEYWORD = "NameNode" + MASTER_PATH = "" + CLIENT_PATH = "" + MSTRESS_LOCK = "/tmp/mstress_master.lock" + SIGNALLED = False + SERVER_CMD = "" + SERVER_KEYWORD = "" + KFS_SERVER_CMD = "metaserver" + KFS_SERVER_KEYWORD = "metaserver" + HDFS_SERVER_CMD = "java" + HDFS_SERVER_KEYWORD = "NameNode" def ParseCommandline(): - parser = optparse.OptionParser() - parser.add_option('-m', '--mode', - action='store', - default='master', - type='string', - help='Run as master or slave') - parser.add_option('-f', '--filesystem', - action='store', - default=None, - type='string', - help='Filesystem whose metaserver to test. qfs or hdfs.') - parser.add_option('-s', '--server', - action='store', - default=None, - type='string', - help='Metaserver or Namenode hostname.') - parser.add_option('-p', '--port', - action='store', - default=None, - type='int', - help='Metaserver or Namenode port') - parser.add_option('-c', '--client-hostname', - action='store', - default=None, - type='string', - help='mstress slave\'s hostname (slave only option).') - parser.add_option('-k', '--client-lookup-key', - action='store', - default=None, - type='string', - help='mstress slave\'s lookup key to be used (slave only option).') - parser.add_option('-t', '--client-testname', - action='store', - default=None, - type='string', - help='Test to run on mstress slave (slave only option).') - parser.add_option('-a', '--plan', - action='store', - default=None, - type='string', - help='Plan file containing client instructions.') - parser.add_option('-l', '--leave-files', action='store_true', - default=False, help='Leave files. Does not perform delete test.') - - opts, args = parser.parse_args() - if args: - sys.exit('Unexpected arguments: %s.' % str(args)) - - if not opts.filesystem or not opts.server or not opts.port or not opts.plan: - sys.exit('Missing mandatory arguments.') - if opts.mode not in ('master', 'slave'): - sys.exit('Invalid mode.') - if opts.mode == 'master': - # master should not have -c option - if opts.client_hostname is not None: - sys.exit('Master: does not support -c option.') - if opts.client_testname is not None: - sys.exit('Master: does not support -t option.') - else: - # for slave, this is the slave host name. - hosts = opts.client_hostname.split(',') - if len(hosts) != 1: - sys.exit('Slave: Error in client host name.') - if opts.client_testname is None or opts.client_lookup_key is None: - sys.exit('Slave: Error in client test name or lookup key.') - - return opts + parser = optparse.OptionParser() + parser.add_option( + "-m", + "--mode", + action="store", + default="master", + type="string", + help="Run as master or slave", + ) + parser.add_option( + "-f", + "--filesystem", + action="store", + default=None, + type="string", + help="Filesystem whose metaserver to test. qfs or hdfs.", + ) + parser.add_option( + "-s", + "--server", + action="store", + default=None, + type="string", + help="Metaserver or Namenode hostname.", + ) + parser.add_option( + "-p", + "--port", + action="store", + default=None, + type="int", + help="Metaserver or Namenode port", + ) + parser.add_option( + "-c", + "--client-hostname", + action="store", + default=None, + type="string", + help="mstress slave's hostname (slave only option).", + ) + parser.add_option( + "-k", + "--client-lookup-key", + action="store", + default=None, + type="string", + help="mstress slave's lookup key to be used (slave only option).", + ) + parser.add_option( + "-t", + "--client-testname", + action="store", + default=None, + type="string", + help="Test to run on mstress slave (slave only option).", + ) + parser.add_option( + "-a", + "--plan", + action="store", + default=None, + type="string", + help="Plan file containing client instructions.", + ) + parser.add_option( + "-l", + "--leave-files", + action="store_true", + default=False, + help="Leave files. Does not perform delete test.", + ) + + opts, args = parser.parse_args() + if args: + sys.exit("Unexpected arguments: %s." % str(args)) + + if ( + not opts.filesystem + or not opts.server + or not opts.port + or not opts.plan + ): + sys.exit("Missing mandatory arguments.") + if opts.mode not in ("master", "slave"): + sys.exit("Invalid mode.") + if opts.mode == "master": + # master should not have -c option + if opts.client_hostname is not None: + sys.exit("Master: does not support -c option.") + if opts.client_testname is not None: + sys.exit("Master: does not support -t option.") + else: + # for slave, this is the slave host name. + hosts = opts.client_hostname.split(",") + if len(hosts) != 1: + sys.exit("Slave: Error in client host name.") + if opts.client_testname is None or opts.client_lookup_key is None: + sys.exit("Slave: Error in client test name or lookup key.") + return opts -def PrintMemoryUsage(opts): - if sys.platform in ('Darwin', 'darwin'): - psCmd = "ps -o rss,pid,command | grep %s | grep %s | grep -v grep | awk '{print $1}'" % (Globals.SERVER_CMD, Globals.SERVER_KEYWORD) - else: - psCmd = "ps -C %s -o rss,pid,cmd | grep %s | awk '{print $1}'" % (Globals.SERVER_CMD, Globals.SERVER_KEYWORD) - proc = subprocess.Popen(['ssh', opts.server, psCmd], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - result = proc.communicate() - if result and len(result[0].strip()) > 0: - print "Memory usage %sKB" % result[0].strip() - else: - print "Memory usage KB" +def PrintMemoryUsage(opts): + if sys.platform in ("Darwin", "darwin"): + psCmd = ( + "ps -o rss,pid,command | grep %s | grep %s |" + " grep -v grep | awk '{print $1}'" + ) % (Globals.SERVER_CMD, Globals.SERVER_KEYWORD) + else: + psCmd = "ps -C %s -o rss,pid,cmd | grep %s | awk '{print $1}'" % ( + Globals.SERVER_CMD, + Globals.SERVER_KEYWORD, + ) + + proc = subprocess.Popen( + ["ssh", opts.server, psCmd], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + result = proc.communicate() + if result and len(result[0].strip()) > 0: + print("Memory usage %sKB" % result[0].strip()) + else: + print("Memory usage KB") def RunMStressMaster(opts, hostsList): - """ Called when run in master mode. Calls master funcions for 'create', - 'stat', and 'readdir'. - - Args: - opts: options object, from parsed commandine options. - hostsList: list of hosts obtained from plan file. - - Returns: - True on success. False on failure. - """ - - # print 'Master: called with %r, %r' % (opts, hostsList) - - startTime = datetime.datetime.now() - if RunMStressMasterTest(opts, hostsList, 'create') == False: - return False - deltaTime = datetime.datetime.now() - startTime - print '\nMaster: Create test took %d.%d sec' % (deltaTime.seconds, deltaTime.microseconds/1000000) - PrintMemoryUsage(opts) - print '==========================================' - - startTime = datetime.datetime.now() - if RunMStressMasterTest(opts, hostsList, 'stat') == False: - return False - deltaTime = datetime.datetime.now() - startTime - print '\nMaster: Stat test took %d.%d sec' % (deltaTime.seconds, deltaTime.microseconds/1000000) - print '==========================================' - - startTime = datetime.datetime.now() - if RunMStressMasterTest(opts, hostsList, 'readdir') == False: - return False - deltaTime = datetime.datetime.now() - startTime - print '\nMaster: Readdir test took %d.%d sec' % (deltaTime.seconds, deltaTime.microseconds/1000000) - print '==========================================' - - if opts.leave_files: - print "\nNot deleting files because of -l option" - return False - - startTime = datetime.datetime.now() - if RunMStressMasterTest(opts, hostsList, 'delete') == False: - return False - deltaTime = datetime.datetime.now() - startTime - print '\nMaster: Delete test took %d.%d sec' % (deltaTime.seconds, deltaTime.microseconds/1000000) - print '==========================================' - return True + """Called when run in master mode. Calls master funcions for 'create', + 'stat', and 'readdir'. + + Args: + opts: options object, from parsed commandine options. + hostsList: list of hosts obtained from plan file. + + Returns: + True on success. False on failure. + """ + + # print 'Master: called with %r, %r' % (opts, hostsList) + + startTime = datetime.datetime.now() + if RunMStressMasterTest(opts, hostsList, "create"): + return False + deltaTime = datetime.datetime.now() - startTime + print( + "\nMaster: Create test took %d.%d sec" + % (deltaTime.seconds, deltaTime.microseconds / 1000000) + ) + PrintMemoryUsage(opts) + print("==========================================") + + startTime = datetime.datetime.now() + if RunMStressMasterTest(opts, hostsList, "stat"): + return False + deltaTime = datetime.datetime.now() - startTime + print( + "\nMaster: Stat test took %d.%d sec" + % (deltaTime.seconds, deltaTime.microseconds / 1000000) + ) + print("==========================================") + + startTime = datetime.datetime.now() + if RunMStressMasterTest(opts, hostsList, "readdir"): + return False + deltaTime = datetime.datetime.now() - startTime + print( + "\nMaster: Readdir test took %d.%d sec" + % (deltaTime.seconds, deltaTime.microseconds / 1000000) + ) + print("==========================================") + + if opts.leave_files: + print("\nNot deleting files because of -l option") + return False + + startTime = datetime.datetime.now() + if RunMStressMasterTest(opts, hostsList, "delete"): + return False + deltaTime = datetime.datetime.now() - startTime + print( + "\nMaster: Delete test took %d.%d sec" + % (deltaTime.seconds, deltaTime.microseconds / 1000000) + ) + print("==========================================") + return True def RunMStressMasterTest(opts, hostsList, test): - """ Called when run in master mode. Invokes the slave version of the same - program on the provided hosts list with the given test name. - - Args: - opts: parsed commandline options. - hostsList: list of hosts obtained from plan file. - test: string: test name to call. - - Returns: - False on error, True on success - """ - if Globals.SIGNALLED: - return False - - # invoke remote master client. - ssh_cmd = '%s -m slave -f %s -s %s -p %d -t %s -a %s'%( - Globals.MASTER_PATH, - opts.filesystem, - opts.server, - opts.port, - test, - opts.plan) - clientHostMapping = MapHostnameForTest(hostsList, test) - running_procs = {} - - for client in hostsList: - slaveLogfile = opts.plan + '_' + client + '_' + test + '_' + opts.filesystem + '.slave.log' - p = subprocess.Popen(['/usr/bin/ssh', client, - '%s -c %s -k %s >& %s' % (ssh_cmd, client, clientHostMapping[client], slaveLogfile)], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - running_procs[p] = client - - success = True - isLine1 = True - while running_procs: - tobedelkeys = [] - for proc in running_procs.iterkeys(): - client = running_procs[proc] - retcode = proc.poll() - if retcode is not None: - sout,serr = proc.communicate() - if sout: - print '\nMaster: output of slave (%s):%s' % (client, sout) - if serr: - print '\nMaster: err of slave (%s):%s' % (client, serr) - tobedelkeys.append(proc) - if retcode != 0: - print "\nMaster: '%s' test failed. Please make sure test directory is empty and has write permission, or check slave logs." % test - success = False - else: - if Globals.SIGNALLED: - proc.terminate() - - for k in tobedelkeys: - del running_procs[k] - - if running_procs: - if isLine1: - sys.stdout.write('Master: remote slave running \'%s\'' % test) - isLine1 = False - else: - sys.stdout.write('.') - sys.stdout.flush() - time.sleep(0.5) - return success + """Called when run in master mode. Invokes the slave version of the same + program on the provided hosts list with the given test name. + + Args: + opts: parsed commandline options. + hostsList: list of hosts obtained from plan file. + test: string: test name to call. + + Returns: + False on error, True on success + """ + if Globals.SIGNALLED: + return False + + # invoke remote master client. + ssh_cmd = "%s -m slave -f %s -s %s -p %d -t %s -a %s" % ( + Globals.MASTER_PATH, + opts.filesystem, + opts.server, + opts.port, + test, + opts.plan, + ) + clientHostMapping = MapHostnameForTest(hostsList, test) + running_procs = {} + + for client in hostsList: + slaveLogfile = ( + opts.plan + + "_" + + client + + "_" + + test + + "_" + + opts.filesystem + + ".slave.log" + ) + p = subprocess.Popen( + [ + "/usr/bin/ssh", + client, + "%s -c %s -k %s >& %s" + % (ssh_cmd, client, clientHostMapping[client], slaveLogfile), + ], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + running_procs[p] = client + + success = True + isLine1 = True + while running_procs: + tobedelkeys = [] + for proc in running_procs.keys(): + client = running_procs[proc] + retcode = proc.poll() + if retcode is not None: + sout, serr = proc.communicate() + if sout: + print("\nMaster: output of slave (%s):%s" % (client, sout)) + if serr: + print("\nMaster: err of slave (%s):%s" % (client, serr)) + tobedelkeys.append(proc) + if retcode != 0: + print( + ( + "\nMaster: '%s' test failed. Please make sure test" + " directory is empty and has write permission," + " or check slave logs." + ) + % test + ) + success = False + else: + if Globals.SIGNALLED: + proc.terminate() + + for k in tobedelkeys: + del running_procs[k] + + if running_procs: + if isLine1: + sys.stdout.write("Master: remote slave running '%s'" % test) + isLine1 = False + else: + sys.stdout.write(".") + sys.stdout.flush() + time.sleep(0.5) + return success + def MapHostnameForTest(clients, test): - """ Determines the '-c' argument to use for slave invocation. This argument - is passed to the C++/Java client so that the client can use it as a key - to read the plan file. - - For 'create', this name is the same as the client name. But for doing - a 'stat' or a 'readdir' we want to run the tests on a client different - from the one that created the path. - Args: - clients: list of strings, clients. - test: string, the name of the test. - - Returns: - map of strings, client name to '-c' argument. - """ - mapping = {} - length = len(clients) - for i in range(0, length): - if test == 'stat' or test == 'readdir': - mapping[clients[i]] = clients[(i+1)%length] - else: - mapping[clients[i]] = clients[i] + """Determines the '-c' argument to use for slave invocation. This argument + is passed to the C++/Java client so that the client can use it as a key + to read the plan file. + + For 'create', this name is the same as the client name. But for doing + a 'stat' or a 'readdir' we want to run the tests on a client different + from the one that created the path. + Args: + clients: list of strings, clients. + test: string, the name of the test. + + Returns: + map of strings, client name to '-c' argument. + """ + mapping = {} + length = len(clients) + for i in range(0, length): + if test == "stat" or test == "readdir": + mapping[clients[i]] = clients[(i + 1) % length] + else: + mapping[clients[i]] = clients[i] + + return mapping - return mapping def RunMStressSlave(opts, clientsPerHost): - """ Called when the code is run in slave mode, on each slave. - Invokes number of client processes equal to 'clientsPerHost'. - - Args: - opts: parsed commandline options. - clientsPerHost: integer, number of processes to run on each host. - - Returns: - True if client returns success. False otherwise. - """ - - print 'Slave: called with %r, %d' % (opts, clientsPerHost) - os.putenv('KFS_CLIENT_DEFAULT_FATTR_REVALIDATE_TIME',"-1") - - running_procs = [] - for i in range(0, clientsPerHost): - clientLogfile = '%s_%s_proc_%02d_%s_%s.client.log' % (opts.plan, opts.client_hostname, i, opts.client_testname, opts.filesystem) - args = ["%s -s %s -p %s -a %s -c %s -t %s -n proc_%02d >& %s" % ( - Globals.CLIENT_PATH, - opts.server, - str(opts.port), + """Called when the code is run in slave mode, on each slave. + Invokes number of client processes equal to 'clientsPerHost'. + + Args: + opts: parsed commandline options. + clientsPerHost: integer, number of processes to run on each host. + + Returns: + True if client returns success. False otherwise. + """ + + print("Slave: called with %r, %d" % (opts, clientsPerHost)) + os.putenv("KFS_CLIENT_DEFAULT_FATTR_REVALIDATE_TIME", "-1") + + running_procs = [] + for i in range(0, clientsPerHost): + clientLogfile = "%s_%s_proc_%02d_%s_%s.client.log" % ( opts.plan, - opts.client_lookup_key, - opts.client_testname, + opts.client_hostname, i, - clientLogfile)] - print 'Slave: args = %r' % args - p = subprocess.Popen(args, - shell=True, - executable='/bin/bash', - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - running_procs.append(p) - - success = True - isLine1 = True - while running_procs: - for proc in running_procs: - ret = proc.poll() - if ret is not None: - sout,serr = proc.communicate() - if sout: - print '\nSlave: output of (ClientHost %s, ClientNo %r):%s' % (opts.client_hostname, proc, sout) - if serr: - print '\nSlave: err of (ClientHost %s, ClientNo %r):%s' % (opts.client_hostname, proc, serr) - running_procs.remove(proc) - if ret != 0: - print '\nSlave: mstress client failed. Please check client logs.' - success = False - else: - if Globals.SIGNALLED: - proc.terminate() - - if running_procs: - if isLine1: - sys.stdout.write('Slave: load client \'%s\' running' % opts.client_testname) - isLine1 = False - else: - sys.stdout.write('.') - sys.stdout.flush() - time.sleep(0.5) - return success + opts.client_testname, + opts.filesystem, + ) + args = [ + "%s -s %s -p %s -a %s -c %s -t %s -n proc_%02d >& %s" + % ( + Globals.CLIENT_PATH, + opts.server, + str(opts.port), + opts.plan, + opts.client_lookup_key, + opts.client_testname, + i, + clientLogfile, + ) + ] + print("Slave: args = %r" % args) + p = subprocess.Popen( + args, + shell=True, + executable="/bin/bash", + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + running_procs.append(p) + + success = True + isLine1 = True + while running_procs: + for proc in running_procs: + ret = proc.poll() + if ret is not None: + sout, serr = proc.communicate() + if sout: + print( + "\nSlave: output of (ClientHost %s, ClientNo %r):%s" + % (opts.client_hostname, proc, sout) + ) + if serr: + print( + "\nSlave: err of (ClientHost %s, ClientNo %r):%s" + % (opts.client_hostname, proc, serr) + ) + running_procs.remove(proc) + if ret != 0: + print( + ( + "\nSlave: mstress client failed. Please check" + " client logs." + ) + ) + success = False + else: + if Globals.SIGNALLED: + proc.terminate() + + if running_procs: + if isLine1: + sys.stdout.write( + "Slave: load client '%s' running" % opts.client_testname + ) + isLine1 = False + else: + sys.stdout.write(".") + sys.stdout.flush() + time.sleep(0.5) + return success + def ReadPlanFile(opts): - """ Reads the given plan file to extract the list of client-hosts and - process-count per client-host. - - Args: - opts: parsed commandline options. - - Returns: - hostslist: list of client host names - clientsPerHost: integer: client processes per client host. - """ - - hostsList = None - clientsPerHost = None - leafType = None - numLevels = None - numToStat = None - nodesPerLevel = None - - planfile = open(opts.plan, 'r') - for line in planfile: - if line.startswith('#'): - continue - if line.startswith('hostslist='): - hostsList = line[len('hostslist='):].strip().split(',') - elif line.startswith('clientsperhost='): - clientsPerHost = int(line[len('clientsperhost='):].strip()) - elif line.startswith('type='): - leafType = line[len('type='):].strip() - elif line.startswith('levels='): - numLevels = int(line[len('levels='):].strip()) - elif line.startswith('nstat='): - numToStat = int(line[len('nstat='):].strip()) - elif line.startswith('inodes='): - nodesPerLevel = int(line[len('inodes='):].strip()) - planfile.close() - if None in (hostsList, clientsPerHost, leafType, numLevels, numToStat, nodesPerLevel): - sys.exit('Failed to read plan file') - - nodesPerProcess = 0 - leafNodesPerProcess = 0 - for l in range(1,numLevels+1): - nodesPerProcess += pow(nodesPerLevel,l) - if l == numLevels: - leafNodesPerProcess = pow(nodesPerLevel,l) - inters = nodesPerProcess - leafNodesPerProcess - overallNodes = nodesPerProcess * len(hostsList) * clientsPerHost - overallLeafs = leafNodesPerProcess * len(hostsList) * clientsPerHost - intermediateNodes = inters * len(hostsList) * clientsPerHost + len(hostsList) * clientsPerHost + 1 - totalNumToStat = numToStat * len(hostsList) * clientsPerHost - - print ('Plan:\n' + - ' o %d client processes on each of %d hosts will generate load.\n' % (clientsPerHost, len(hostsList)) + - ' o %d levels of %d nodes (%d leaf nodes, %d total nodes) will be created by each client process.\n' % (numLevels, nodesPerLevel, leafNodesPerProcess, nodesPerProcess) + - ' o Overall, %d leaf %ss will be created, %d intermediate directories will be created.\n' % (overallLeafs, leafType, intermediateNodes) + - ' o Stat will be done on a random subset of %d leaf %ss by each client process, totalling %d stats.\n' % (numToStat, leafType, totalNumToStat) + - ' o Readdir (non-overlapping) will be done on the full file tree by all client processes.\n') - return hostsList, clientsPerHost + """Reads the given plan file to extract the list of client-hosts and + process-count per client-host. + + Args: + opts: parsed commandline options. + + Returns: + hostslist: list of client host names + clientsPerHost: integer: client processes per client host. + """ + + hostsList = None + clientsPerHost = None + leafType = None + numLevels = None + numToStat = None + nodesPerLevel = None + + planfile = open(opts.plan, "r") + for line in planfile: + if line.startswith("#"): + continue + if line.startswith("hostslist="): + hostsList = line[len("hostslist=") :].strip().split(",") + elif line.startswith("clientsperhost="): + clientsPerHost = int(line[len("clientsperhost=") :].strip()) + elif line.startswith("type="): + leafType = line[len("type=") :].strip() + elif line.startswith("levels="): + numLevels = int(line[len("levels=") :].strip()) + elif line.startswith("nstat="): + numToStat = int(line[len("nstat=") :].strip()) + elif line.startswith("inodes="): + nodesPerLevel = int(line[len("inodes=") :].strip()) + planfile.close() + if None in ( + hostsList, + clientsPerHost, + leafType, + numLevels, + numToStat, + nodesPerLevel, + ): + sys.exit("Failed to read plan file") + + nodesPerProcess = 0 + leafNodesPerProcess = 0 + for lev in range(1, numLevels + 1): + nodesPerProcess += pow(nodesPerLevel, lev) + if lev == numLevels: + leafNodesPerProcess = pow(nodesPerLevel, lev) + inters = nodesPerProcess - leafNodesPerProcess + # overallNodes = nodesPerProcess * len(hostsList) * clientsPerHost + overallLeafs = leafNodesPerProcess * len(hostsList) * clientsPerHost + intermediateNodes = ( + inters * len(hostsList) * clientsPerHost + + len(hostsList) * clientsPerHost + + 1 + ) + totalNumToStat = numToStat * len(hostsList) * clientsPerHost + + print( + ( + ( + "Plan:\n" + " o %d client processes on each of %d" + " hosts will generate load.\n" + ) + % (clientsPerHost, len(hostsList)) + + ( + " o %d levels of %d nodes (%d leaf nodes, %d total nodes)" + " will be created by each client process.\n" + ) + % (numLevels, nodesPerLevel, leafNodesPerProcess, nodesPerProcess) + + ( + " o Overall, %d leaf %ss will be created, %d" + " intermediate directories will be created.\n" + ) + % (overallLeafs, leafType, intermediateNodes) + + ( + " o Stat will be done on a random subset of %d leaf" + " %ss by each client process, totalling %d stats.\n" + ) + % (numToStat, leafType, totalNumToStat) + + ( + " o Readdir (non-overlapping) will be done on the" + " full file tree by all client processes.\n" + ) + ) + ) + return hostsList, clientsPerHost def SetGlobalPaths(opts): - mydir = os.path.dirname(os.path.realpath(__file__)) - Globals.MASTER_PATH = os.path.join(mydir, 'mstress.py') - - if opts.filesystem == 'qfs': - Globals.CLIENT_PATH = os.path.join(mydir, 'mstress_client') - Globals.SERVER_CMD = Globals.KFS_SERVER_CMD - Globals.SERVER_KEYWORD = Globals.KFS_SERVER_KEYWORD - elif opts.filesystem == 'hdfs': - Globals.CLIENT_PATH = 'java -Xmx256m -jar %s/mstress.jar' % mydir - Globals.SERVER_CMD = Globals.HDFS_SERVER_CMD - Globals.SERVER_KEYWORD = Globals.HDFS_SERVER_KEYWORD - else: - sys.exit('Invalid filesystem option') + mydir = os.path.dirname(os.path.realpath(__file__)) + Globals.MASTER_PATH = os.path.join(mydir, "mstress.py") + + if opts.filesystem == "qfs": + Globals.CLIENT_PATH = os.path.join(mydir, "mstress_client") + Globals.SERVER_CMD = Globals.KFS_SERVER_CMD + Globals.SERVER_KEYWORD = Globals.KFS_SERVER_KEYWORD + elif opts.filesystem == "hdfs": + Globals.CLIENT_PATH = "java -Xmx256m -jar %s/mstress.jar" % mydir + Globals.SERVER_CMD = Globals.HDFS_SERVER_CMD + Globals.SERVER_KEYWORD = Globals.HDFS_SERVER_KEYWORD + else: + sys.exit("Invalid filesystem option") + def CreateLock(opts): - if opts.mode != 'master': - return - if os.path.exists(Globals.MSTRESS_LOCK): - sys.exit('Program already running. Please wait till it finishes') - f = open(Globals.MSTRESS_LOCK, 'w') - f.write(str(os.getpid())) - f.close() + if opts.mode != "master": + return + if os.path.exists(Globals.MSTRESS_LOCK): + sys.exit("Program already running. Please wait till it finishes") + f = open(Globals.MSTRESS_LOCK, "w") + f.write(str(os.getpid())) + f.close() + def RemoveLock(opts): - if opts.mode != 'master': - return - if os.path.exists(Globals.MSTRESS_LOCK): - f = open(Globals.MSTRESS_LOCK, 'r') - pid = f.read() - f.close() - if int(pid) == os.getpid(): - os.unlink(Globals.MSTRESS_LOCK) + if opts.mode != "master": + return + if os.path.exists(Globals.MSTRESS_LOCK): + f = open(Globals.MSTRESS_LOCK, "r") + pid = f.read() + f.close() + if int(pid) == os.getpid(): + os.unlink(Globals.MSTRESS_LOCK) + def HandleSignal(signum, frame): - print "Received signal, %d" % signum - Globals.SIGNALLED = True + print("Received signal, %d" % signum) + Globals.SIGNALLED = True + def main(): - signal.signal(signal.SIGTERM, HandleSignal) - signal.signal(signal.SIGINT, HandleSignal) - signal.signal(signal.SIGHUP, HandleSignal) + signal.signal(signal.SIGTERM, HandleSignal) + signal.signal(signal.SIGINT, HandleSignal) + signal.signal(signal.SIGHUP, HandleSignal) - opts = ParseCommandline() + opts = ParseCommandline() - SetGlobalPaths(opts) + SetGlobalPaths(opts) - CreateLock(opts) + CreateLock(opts) - try: - (hostsList,clientsPerHost) = ReadPlanFile(opts) + try: + (hostsList, clientsPerHost) = ReadPlanFile(opts) - if opts.mode == 'master': - return RunMStressMaster(opts, hostsList) - else: - return RunMStressSlave(opts, clientsPerHost) - finally: - RemoveLock(opts) + if opts.mode == "master": + return RunMStressMaster(opts, hostsList) + else: + return RunMStressSlave(opts, clientsPerHost) + finally: + RemoveLock(opts) -if __name__ == '__main__': - success = main() - if success: - sys.exit(0) - else: - sys.exit(1) +if __name__ == "__main__": + success = main() + if success: + sys.exit(0) + else: + sys.exit(1) diff --git a/benchmarks/mstress/mstress_cleanup.py b/benchmarks/mstress/mstress_cleanup.py index 4ef24adf5..73c4c2a8e 100755 --- a/benchmarks/mstress/mstress_cleanup.py +++ b/benchmarks/mstress/mstress_cleanup.py @@ -21,49 +21,55 @@ # participating hosts. # -import optparse +from __future__ import print_function + import sys -import subprocess -import time -import os -import signal -import datetime -import commands -if len(sys.argv) < 2 or sys.argv[1].startswith('-'): - print 'Usage: %s \nThis will cleanup the planfile and the logs from all participating hosts.' % sys.argv[0] - sys.exit(0) +if sys.version_info < (3, 0): + from commands import getoutput +else: + from subprocess import getoutput + +if len(sys.argv) < 2 or sys.argv[1].startswith("-"): + print( + ( + "Usage: %s \n" + "This will cleanup the planfile and the logs from all" + " participating hosts." + ) + % sys.argv[0] + ) + sys.exit(0) -if not sys.argv[1].startswith('/tmp'): - print 'Planfile is typically in the /tmp directory. Are you sure?' - sys.exit(1) +if not sys.argv[1].startswith("/tmp"): + print("Planfile is typically in the /tmp directory. Are you sure?") + sys.exit(1) planFile = sys.argv[1] hostsList = None f = None try: - f = open(planFile, 'r') -except IOError, e: - print 'Planfile not found' - sys.exit(1) + f = open(planFile, "r") +except IOError as e: + print("Planfile %s: %s" % (planFile, str(e))) + sys.exit(1) for line in f: - if line.startswith('#'): - continue - if line.startswith('hostslist='): - hostsList = line[len('hostslist='):].strip().split(',') - break + if line.startswith("#"): + continue + if line.startswith("hostslist="): + hostsList = line[len("hostslist=") :].strip().split(",") + break f.close() if len(hostsList) == 0: - print 'No hosts list found in plan file. Exiting.' - sys.exit(1) + print("No hosts list found in plan file. Exiting.") + sys.exit(1) for host in hostsList: - cmd = 'ssh %s "rm -f %s*"' % (host, planFile) - print 'Executing "%s"' % cmd - print commands.getoutput(cmd) - -print 'Done' + cmd = 'ssh %s "rm -f %s*"' % (host, planFile) + print('Executing "%s"' % cmd) + print(getoutput(cmd)) +print("Done") diff --git a/benchmarks/mstress/mstress_client.cc b/benchmarks/mstress/mstress_client.cc index b3290e226..15f416de4 100644 --- a/benchmarks/mstress/mstress_client.cc +++ b/benchmarks/mstress/mstress_client.cc @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -37,6 +38,10 @@ #include #include +#if __cplusplus >= 201103L +#include +#endif + using namespace std; #include "libclient/KfsClient.h" @@ -197,7 +202,13 @@ void unique_random(vector& result, size_t range) result[i] = i; } - random_shuffle(result.begin(), result.end() ) ; +#if __cplusplus < 201103L + random_shuffle(result.begin(), result.end()) ; +#else + random_device dev; + mt19937 gen(dev()); + shuffle(result.begin(), result.end(), gen); +#endif } void parse_options(int argc, char* argv[], Client* client) @@ -330,7 +341,7 @@ int CreateDFSPaths(Client* client, AutoCleanupKfsClient* kfs, int level, int* cr bool isLeaf = (level + 1 >= client->levels_); bool isDir =isLeaf ? (client->type_ == "dir") : true; char name[512]; - strncpy(name, client->prefix_.c_str(), 512); + strncpy(name, client->prefix_.c_str(), sizeof(name) / sizeof(name[0]) - 1); for (int i = 0; i < client->inodesPerLevel_; i++) { myitoa(i, name + client->prefixLen_); client->path_.Push(name); @@ -414,8 +425,11 @@ int StatDFSPaths(Client* client, AutoCleanupKfsClient* kfs) { for (int count = 0; count < client->pathsToStat_; count++) { client->path_.Reset(); client->path_.Push(os.str().c_str()); - char name[4096]; - strncpy(name, client->prefix_.c_str(), client->prefixLen_); + const size_t max_name_len=4096; + char name[max_name_len + 1]; + strncpy(name, client->prefix_.c_str(), + client->prefixLen_ < max_name_len ? + client->prefixLen_ : max_name_len); for (int d = 0; d < client->levels_; d++) { int randIdx = rand() % client->inodesPerLevel_; diff --git a/benchmarks/mstress/mstress_plan.py b/benchmarks/mstress/mstress_plan.py index e3d58b192..6388e531c 100755 --- a/benchmarks/mstress/mstress_plan.py +++ b/benchmarks/mstress/mstress_plan.py @@ -21,13 +21,16 @@ # This code is used to generate a plan file for metaserver vs namenode # benchmarking. # + +from __future__ import print_function + +import getpass +import math import optparse -import sys +import os import subprocess +import sys import time -import os -import math -import getpass """ This program is used to create the directory/file layout to be used @@ -44,126 +47,157 @@ Thereafter, you can execute the mstress.py with this plan file. """ + class Globals: - PATH_PREFIX = 'Dir_' - PLAN_OUTPUT = './planfile.txt' + PATH_PREFIX = "Dir_" + PLAN_OUTPUT = "./planfile.txt" + def ParseCommandline(): - epi = ('Example: "%s -c h1,h2 -n 3 -l 4 -i 3 -s 100" would create 4 levels of 3 inodes ' % sys.argv[0] + - '(3+9+27+81=120) per client process. Since there are 3 ' + - 'processes on 2 hosts, we create 120x6=720 inodes. We will attempt ' + - 'to stat 100 random leaf paths using all client processes. We will do a readdir ' + - 'all through the directory tree.') - - parser = optparse.OptionParser(epilog=epi) - - parser.add_option('-c', '--client-hosts', - action='store', - default='localhost', - type='string', - help='Comma-separated list of client host names.') - parser.add_option('-n', '--clients-per-host', - action='store', - default=1, - type='int', - help='Number of clients per client host.') - parser.add_option('-l', '--levels', - action='store', - default=1, - type='int', - help='File-tree depth on each client.') - parser.add_option('-i', '--inodes-per-level', - action='store', - default=100, - type='int', - help='Inodes per each level on each client.') - parser.add_option('-t', '--path-type', - action='store', - default='dir', - type='string', - help='Whether to create "dir" or "file" inodes.') - parser.add_option('-s', '--num-to-stat', - action='store', - default=100, - type='int', - help='Number of inodes to stat (<=total leaf inodes).') - parser.add_option('-o', '--output-file', - action='store', - default=None, - type='string', - help='Output plan file.') - - opts, args = parser.parse_args() - if args: - sys.exit('Unexpected arguments: %s.' % str(args)) - - if opts.output_file is None: - opts.output_file = '/tmp/mstress_%s_%s.plan' % (getpass.getuser(), time.strftime("%F-%H-%M-%S", time.gmtime())) - - return opts + epi = ( + 'Example: "%s -c h1,h2 -n 3 -l 4 -i 3 -s 100" would create' + " 4 levels of 3 inodes " + ) % sys.argv[0] + ( + "(3+9+27+81=120) per client process. Since there are 3 " + "processes on 2 hosts, we create 120x6=720 inodes. We will attempt " + "to stat 100 random leaf paths using all client processes." + " We will do a readdir " + "all through the directory tree." + ) + + parser = optparse.OptionParser(epilog=epi) + + parser.add_option( + "-c", + "--client-hosts", + action="store", + default="localhost", + type="string", + help="Comma-separated list of client host names.", + ) + parser.add_option( + "-n", + "--clients-per-host", + action="store", + default=1, + type="int", + help="Number of clients per client host.", + ) + parser.add_option( + "-l", + "--levels", + action="store", + default=1, + type="int", + help="File-tree depth on each client.", + ) + parser.add_option( + "-i", + "--inodes-per-level", + action="store", + default=100, + type="int", + help="Inodes per each level on each client.", + ) + parser.add_option( + "-t", + "--path-type", + action="store", + default="dir", + type="string", + help='Whether to create "dir" or "file" inodes.', + ) + parser.add_option( + "-s", + "--num-to-stat", + action="store", + default=100, + type="int", + help="Number of inodes to stat (<=total leaf inodes).", + ) + parser.add_option( + "-o", + "--output-file", + action="store", + default=None, + type="string", + help="Output plan file.", + ) + + opts, args = parser.parse_args() + if args: + sys.exit("Unexpected arguments: %s." % str(args)) + + if opts.output_file is None: + opts.output_file = "/tmp/mstress_%s_%s.plan" % ( + getpass.getuser(), + time.strftime("%F-%H-%M-%S", time.gmtime()), + ) + + return opts def main(): - opts = ParseCommandline() - hostlist = opts.client_hosts.split(',') - - numClientProcesses = float(len(hostlist) * opts.clients_per_host) - if numClientProcesses == 0.0: - sys.exit('Invalid client processes') - - #get the smallest number larger than 'opts.num_to_stat' that is a multiple of opts.num_to_stat - statPerClient = int(math.ceil(float(opts.num_to_stat) / numClientProcesses)) - - #print opts - outfile = open(opts.output_file, 'w') - outfile.write('# *** DO NOT EDIT THIS FILE BY HAND *** \n# USE mstress_plan.py TO MODIFY INSTEAD\n#\n') - outfile.write('#List of hosts taking part in the plan\nhostslist=%s\n' % opts.client_hosts) - outfile.write('#Number of mstress cliends per client host\nclientsperhost=%d\n' % opts.clients_per_host) - outfile.write('#File or directory\ntype=%s\n' % opts.path_type) - outfile.write('#Number of levels in created tree\nlevels=%d\n' % opts.levels) - outfile.write('#Number of inodes per level\ninodes=%d\n' % opts.inodes_per_level) - outfile.write('#Number of random paths to stat, per client\nnstat=%d\n' % statPerClient) - - """ old code - begin_tree_delta = 0 - for level in range(0,opts.levels): - begin_tree_delta = begin_tree_delta + pow(opts.inodes_per_level, level + 1) - #print "delta = ", begin_tree_delta - - outfile.write('#host\tclient\tlevel\tdistribution\n') - begin_tree_idx = 0 - for host_no in range(0,len(hostlist)): - host = hostlist[host_no] - for client_no in range(0,opts.clients_per_host): - # tree for this level - begin_idx = begin_tree_idx - for level in range(0,opts.levels): - prefix = '%s\tproc_%02d\t%d\t' % (host, client_no, level) - # print '-- h=%d, c=%d level=%d, begin idx = %d' % (host_no, client_no, level, begin_idx) - suffix = '' - for ranges in range(0, pow(opts.inodes_per_level, level)): - if len(suffix) != 0: - suffix = suffix + ',' - suffix = suffix + '%d-%d'%(begin_idx, begin_idx + opts.inodes_per_level - 1) - begin_idx = begin_idx + opts.inodes_per_level - outfile.write('%s\t%s\n' % (prefix, suffix)) - begin_tree_idx = begin_tree_idx + begin_tree_delta - #print "next begin tree idx = ", begin_tree_idx - """ - - outfile.close() - print '==> Created planfile: %s' % opts.output_file - print 'copying file %s to all client hosts' % opts.output_file - for client in hostlist: - p = subprocess.Popen(['/usr/bin/scp', os.path.abspath(opts.output_file), '%s:%s' % (client, opts.output_file)]) - while 1: - ret = p.poll() - if ret == None: - time.sleep(0.5) - else: - print 'transfered %s to %s' % (opts.output_file, client) - break - -if __name__ == '__main__': - main() - + opts = ParseCommandline() + hostlist = opts.client_hosts.split(",") + + numClientProcesses = float(len(hostlist) * opts.clients_per_host) + if numClientProcesses == 0.0: + sys.exit("Invalid client processes") + + # get the smallest number larger than 'opts.num_to_stat' that is a multiple + # of opts.num_to_stat + statPerClient = int( + math.ceil(float(opts.num_to_stat) / numClientProcesses) + ) + + # print opts + outfile = open(opts.output_file, "w") + outfile.write( + ( + "# *** DO NOT EDIT THIS FILE BY HAND *** \n# USE mstress_plan.py" + " TO MODIFY INSTEAD\n#\n" + ) + ) + outfile.write( + "#List of hosts taking part in the plan\nhostslist=%s\n" + % opts.client_hosts + ) + outfile.write( + "#Number of mstress cliends per client host\nclientsperhost=%d\n" + % opts.clients_per_host + ) + outfile.write("#File or directory\ntype=%s\n" % opts.path_type) + outfile.write( + "#Number of levels in created tree\nlevels=%d\n" % opts.levels + ) + outfile.write( + "#Number of inodes per level\ninodes=%d\n" % opts.inodes_per_level + ) + outfile.write( + "#Number of random paths to stat, per client\nnstat=%d\n" + % statPerClient + ) + + outfile.close() + print("==> Created planfile: %s" % opts.output_file) + print("copying file %s to all client hosts" % opts.output_file) + for client in hostlist: + p = subprocess.Popen( + [ + "/usr/bin/scp", + os.path.abspath(opts.output_file), + "%s:%s" % (client, opts.output_file), + ] + ) + while 1: + ret = p.poll() + if ret is None: + time.sleep(0.5) + else: + print("transfered %s to %s" % (opts.output_file, client)) + break + + +if __name__ == "__main__": + main() diff --git a/benchmarks/mstress/mstress_run.py b/benchmarks/mstress/mstress_run.py index c4c1b07a1..05dde0899 100755 --- a/benchmarks/mstress/mstress_run.py +++ b/benchmarks/mstress/mstress_run.py @@ -22,123 +22,173 @@ # This is essentially a wrapper around mstress_plan.py and mstress.py. # -import optparse -import sys -import subprocess -import time -import os -import datetime -import commands -import resource +from __future__ import print_function + import getpass +import os import re +import subprocess +import sys +import time + class Params: - TARGETS = [] - CLIENT_HOSTS = '' - CLIENTS_PER_HOST = 5 - PATH_TYPE = "dir" - PATH_LEVELS = 3 - INODES_PER_LEVEL = 16 - def NumFiles2Stat(): - return Params.INODES_PER_LEVEL**Params.PATH_LEVELS*Params.CLIENTS_PER_HOST*len(Params.CLIENT_HOSTS.split(","))/2 - NumFiles2Stat = staticmethod(NumFiles2Stat) + TARGETS = [] + CLIENT_HOSTS = "" + CLIENTS_PER_HOST = 5 + PATH_TYPE = "dir" + PATH_LEVELS = 3 + INODES_PER_LEVEL = 16 + + def NumFiles2Stat(): + return ( + Params.INODES_PER_LEVEL**Params.PATH_LEVELS + * Params.CLIENTS_PER_HOST + * len(Params.CLIENT_HOSTS.split(",")) + / 2 + ) + + NumFiles2Stat = staticmethod(NumFiles2Stat) + def Usage(): - print 'Usage: %s [clients] [fs_type,fs_host,fs_port] [fs_type,fs_host,fs_port]..' % sys.argv[0] - print ' clients: comma separated list of client host names' - print ' fs_type: qfs or hdfs' - print ' fs_host: metaserver or namenode hostname' - print ' fs_port: metaserver or namenode port' - print 'Eg: %s 10.15.20.25,10.20.25.30 qfs,10.10.10.10,10000 hdfs,20.20.20.20,20000' - sys.exit(0) + print( + ( + "Usage: %s [clients] [fs_type,fs_host,fs_port]" + " [fs_type,fs_host,fs_port].." + ) + % sys.argv[0] + ) + print(" clients: comma separated list of client host names") + print(" fs_type: qfs or hdfs") + print(" fs_host: metaserver or namenode hostname") + print(" fs_port: metaserver or namenode port") + print( + ( + "Eg: %s 10.15.20.25,10.20.25.30 qfs,10.10.10.10,10000" + " hdfs,20.20.20.20,20000" + ) + ) + sys.exit(0) def PrintMsg(m): - print '\033[34m' + m + '\033[0m' + print("\033[34m" + m + "\033[0m") def MakePlan(): - plan_file = '/tmp/mstress_%s_%s.plan' % (getpass.getuser(), time.strftime("%F-%H-%M-%S", time.gmtime())) - PrintMsg("Preparing benchmark plan [%s] ..." % plan_file) - subprocess.call(["./mstress_plan.py", - "--client-hosts", Params.CLIENT_HOSTS, - "--clients-per-host", str(Params.CLIENTS_PER_HOST), - "--path-type", Params.PATH_TYPE, - "--levels", str(Params.PATH_LEVELS), - "--inodes-per-level", str(Params.INODES_PER_LEVEL), - "--num-to-stat", str(Params.NumFiles2Stat()), - "-o", plan_file]) - return plan_file + plan_file = "/tmp/mstress_%s_%s.plan" % ( + getpass.getuser(), + time.strftime("%F-%H-%M-%S", time.gmtime()), + ) + PrintMsg("Preparing benchmark plan [%s] ..." % plan_file) + subprocess.call( + [ + "./mstress_plan.py", + "--client-hosts", + Params.CLIENT_HOSTS, + "--clients-per-host", + str(Params.CLIENTS_PER_HOST), + "--path-type", + Params.PATH_TYPE, + "--levels", + str(Params.PATH_LEVELS), + "--inodes-per-level", + str(Params.INODES_PER_LEVEL), + "--num-to-stat", + str(Params.NumFiles2Stat()), + "-o", + plan_file, + ] + ) + return plan_file def RunBenchmark(plan_file): - for t in Params.TARGETS: - type = t[0] - server = t[1] - port = t[2] - result = Execute(type, - ["./mstress.py", - "-f", type, - "-s", server, - "-p", port, - "-a", plan_file]) - PrintResult(type, result) + for t in Params.TARGETS: + type = t[0] + server = t[1] + port = t[2] + result = Execute( + type, + [ + "./mstress.py", + "-f", + type, + "-s", + server, + "-p", + port, + "-a", + plan_file, + ], + ) + PrintResult(type, result) def Execute(type, args): - os.putenv("PYTHONUNBUFFERED","TRUE"); - PrintMsg("\n==========================================\nStarting benchmark for '%s'..." % type) - - result = "" - proc = subprocess.Popen(args,stdout=subprocess.PIPE,stderr=subprocess.STDOUT) - while proc.poll() == None: - output = proc.stdout.read(1) + os.putenv("PYTHONUNBUFFERED", "TRUE") + PrintMsg( + ( + "\n==========================================\n" + "Starting benchmark for '%s'..." + ) + % type + ) + + result = "" + proc = subprocess.Popen( + args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT + ) + while proc.poll() is None: + output = proc.stdout.read(1) + result += output + sys.stdout.write(output) + sys.stdout.flush() + + output = proc.stdout.read() result += output sys.stdout.write(output) sys.stdout.flush() + proc.wait() - output = proc.stdout.read() - result += output - sys.stdout.write(output) - sys.stdout.flush() - proc.wait() - - return result + return result def PrintResult(type, result): - PrintMsg("\nBenchmark results for '%s':" % type) - for m in re.findall(r"(\w+) test took (\S+) sec",result): - PrintMsg("%-10s: %s sec"%(m[0],m[1])) - PrintMsg("\n%s\n==========================================" % - re.search(r"Memory usage .*$", result, re.MULTILINE).group(0)) + PrintMsg("\nBenchmark results for '%s':" % type) + for m in re.findall(r"(\w+) test took (\S+) sec", result): + PrintMsg("%-10s: %s sec" % (m[0], m[1])) + PrintMsg( + "\n%s\n==========================================" + % re.search(r"Memory usage .*$", result, re.MULTILINE).group(0) + ) def ParseArgs(): - argc = len(sys.argv) - if argc <= 1 or sys.argv[1].startswith('-') or argc < 3: - Usage() + argc = len(sys.argv) + if argc <= 1 or sys.argv[1].startswith("-") or argc < 3: + Usage() - Params.CLIENT_HOSTS = sys.argv[1].strip() + Params.CLIENT_HOSTS = sys.argv[1].strip() - triple = sys.argv[2].strip().split(',') - if len(triple) != 3 or triple[0] not in ('qfs', 'hdfs'): - Usage() - Params.TARGETS.append(triple) - - if argc > 3: - triple = sys.argv[3].strip().split(',') - if len(triple) != 3 or triple[0] not in ('qfs', 'hdfs'): - Usage() + triple = sys.argv[2].strip().split(",") + if len(triple) != 3 or triple[0] not in ("qfs", "hdfs"): + Usage() Params.TARGETS.append(triple) + if argc > 3: + triple = sys.argv[3].strip().split(",") + if len(triple) != 3 or triple[0] not in ("qfs", "hdfs"): + Usage() + Params.TARGETS.append(triple) + def main(): - ParseArgs() - plan_file = MakePlan() - RunBenchmark(plan_file) + ParseArgs() + plan_file = MakePlan() + RunBenchmark(plan_file) -if __name__ == '__main__': - main() +if __name__ == "__main__": + main() diff --git a/benchmarks/mstress/pom.xml b/benchmarks/mstress/pom.xml new file mode 100644 index 000000000..444f1fbb0 --- /dev/null +++ b/benchmarks/mstress/pom.xml @@ -0,0 +1,88 @@ + + + + + 4.0.0 + com.quantcast.qfs + mstress + jar + 1.0.0 + mstress + http://quantcast.github.com/qfs/benchmarks/mstress + + + UTF-8 + ${project.basedir}/../../build/java/mstress + 2.10.1 + 00000000 + 0 + + + + ${buildDirectory} + + mstress + + + org.apache.maven.plugins + maven-compiler-plugin + 2.4 + + + org.apache.maven.plugins + maven-jar-plugin + 2.2 + + + true + + QFS Mstress + ${qfs.release.version}-${qfs.source.revision} + Quantcast Corp. + + + + MStress_Client + + + + + + + + + + org.apache.hadoop + hadoop-common + ${hadoop.release.version} + compile + + + org.apache.hadoop + hadoop-hdfs + ${hadoop.release.version} + compile + + + + \ No newline at end of file diff --git a/benchmarks/mstress/MStress_Client.java b/benchmarks/mstress/src/main/java/com/quantcast/qfs/mstress/MStress_Client.java similarity index 100% rename from benchmarks/mstress/MStress_Client.java rename to benchmarks/mstress/src/main/java/com/quantcast/qfs/mstress/MStress_Client.java diff --git a/cmake/Modules/FindFUSE.cmake b/cmake/Modules/FindFUSE.cmake index 9686d0201..43ccf8af5 100644 --- a/cmake/Modules/FindFUSE.cmake +++ b/cmake/Modules/FindFUSE.cmake @@ -25,61 +25,73 @@ # - CMake >= 2.8.3 # # The following variables will be defined for your use: -# - FUSE_FOUND : was FUSE found? -# - FUSE_INCLUDE_DIRS : FUSE include directory -# - FUSE_LIBRARIES : FUSE library -# - FUSE_DEFINITIONS : FUSE cflags -# - FUSE_VERSION : complete version of FUSE (major.minor) -# - FUSE_MAJOR_VERSION : major version of FUSE -# - FUSE_MINOR_VERSION : minor version of FUSE +# - FUSE_FOUND : was FUSE found? +# - FUSE_INCLUDE_DIRS : FUSE include directory +# - FUSE_LIBRARIES : FUSE library +# - FUSE_DEFINITIONS : FUSE cflags +# - FUSE_VERSION : complete version of FUSE (major.minor) +# - FUSE_MAJOR_VERSION : major version of FUSE +# - FUSE_MINOR_VERSION : minor version of FUSE # # Example Usage: # -# 1. Copy this file in the root of your project source directory -# 2. Then, tell CMake to search this non-standard module in your project directory by adding to your CMakeLists.txt: -# set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) -# 3. Finally call find_package() once, here are some examples to pick from +# 1. Copy this file in the root of your project source directory +# 2. Then, tell CMake to search this non-standard module in your project +# directory by adding to your CMakeLists.txt: +# set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) +# 3. Finally call find_package() once, here are some examples to pick from # -# Require FUSE 2.6 or later -# find_package(FUSE 2.6 REQUIRED) +# Require FUSE 2.6 or later +# find_package(FUSE 2.6 REQUIRED) # -# if(FUSE_FOUND) -# add_definitions(${FUSE_DEFINITIONS}) -# include_directories(${FUSE_INCLUDE_DIRS}) -# add_executable(myapp myapp.c) -# target_link_libraries(myapp ${FUSE_LIBRARIES}) -# endif() - -#============================================================================= +# if(FUSE_FOUND) +# add_definitions(${FUSE_DEFINITIONS}) +# include_directories(${FUSE_INCLUDE_DIRS}) +# add_executable(myapp myapp.c) +# target_link_libraries(myapp ${FUSE_LIBRARIES}) +# endif() + +# ============================================================================= # Copyright (c) 2012, julp # # Distributed under the OSI-approved BSD License # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -#============================================================================= +# ============================================================================= cmake_minimum_required(VERSION 2.8.3...10.0) -########## Private ########## +# ######### Private ########## function(fusedebug _varname) if(FUSE_DEBUG) message("${_varname} = ${${_varname}}") endif(FUSE_DEBUG) endfunction(fusedebug) -########## Public ########## +# ######### Public ########## set(FUSE_FOUND TRUE) -set(FUSE_LIBRARIES ) -set(FUSE_DEFINITIONS ) -set(FUSE_INCLUDE_DIRS ) +set(FUSE_LIBRARIES) +set(FUSE_DEFINITIONS) +set(FUSE_INCLUDE_DIRS) find_package(PkgConfig) -set(PC_FUSE_INCLUDE_DIRS ) -set(PC_FUSE_LIBRARY_DIRS ) +set(PC_FUSE_INCLUDE_DIRS) +set(PC_FUSE_LIBRARY_DIRS) +set(SEARCH_FUSE_LIBRARY_NAMES "libosxfuse.dylib" "fuse") + if(PKG_CONFIG_FOUND) pkg_check_modules(PC_FUSE "fuse" QUIET) + + if(NOT PC_FUSE_FOUND) + pkg_check_modules(PC_FUSE "fuse3" QUIET) + + if(PC_FUSE_FOUND) + set(SEARCH_FUSE_LIBRARY_NAMES "fuse3") + endif() + endif() + if(PC_FUSE_FOUND) fusedebug(PC_FUSE_LIBRARIES) fusedebug(PC_FUSE_LIBRARY_DIRS) @@ -92,7 +104,7 @@ if(PKG_CONFIG_FOUND) endif(PC_FUSE_FOUND) endif(PKG_CONFIG_FOUND) -if ("${PC_FUSE_INCLUDE_DIRS}" STREQUAL "") +if("${PC_FUSE_INCLUDE_DIRS}" STREQUAL "") find_path( FUSE_INCLUDE_DIRS NAMES fuse.h @@ -115,7 +127,7 @@ endif(NOT FUSE_INCLUDE_DIRS) find_library( FUSE_LIBRARIES - NAMES "libosxfuse.dylib" "fuse" + NAMES ${SEARCH_FUSE_LIBRARY_NAMES} PATHS "${PC_FUSE_LIBRARY_DIRS}" DOC "Libraries for FUSE" ) @@ -126,27 +138,50 @@ if(NOT FUSE_LIBRARIES) endif(NOT FUSE_LIBRARIES) if(FUSE_FOUND) - FOREACH(FUSE_VERSION_INCLUDE - "${FUSE_INCLUDE_DIRS}/osxfuse/fuse/fuse_common.h" - "${FUSE_INCLUDE_DIRS}/fuse/fuse_common.h" - "${FUSE_INCLUDE_DIRS}/fuse_common.h") - if (EXISTS "${FUSE_VERSION_INCLUDE}") + foreach(FUSE_VERSION_INCLUDE + "${FUSE_INCLUDE_DIRS}/osxfuse/fuse/fuse_common.h" + "${FUSE_INCLUDE_DIRS}/fuse/fuse_common.h" + "${FUSE_INCLUDE_DIRS}/fuse_common.h") + if(EXISTS "${FUSE_VERSION_INCLUDE}") file(READ "${FUSE_VERSION_INCLUDE}" _contents) - string(REGEX REPLACE ".*# *define *FUSE_MAJOR_VERSION *([0-9]+).*" "\\1" FUSE_MAJOR_VERSION "${_contents}") - string(REGEX REPLACE ".*# *define *FUSE_MINOR_VERSION *([0-9]+).*" "\\1" FUSE_MINOR_VERSION "${_contents}") + string( + REGEX REPLACE + ".*# *define *FUSE_MAJOR_VERSION *([0-9]+).*" + "\\1" FUSE_MAJOR_VERSION "${_contents}" + ) + string( + REGEX REPLACE + ".*# *define *FUSE_MINOR_VERSION *([0-9]+).*" + "\\1" FUSE_MINOR_VERSION "${_contents}" + ) set(FUSE_VERSION "${FUSE_MAJOR_VERSION}.${FUSE_MINOR_VERSION}") endif() endforeach() include(CheckCSourceCompiles) + # Backup CMAKE_REQUIRED_* set(OLD_CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES}") set(OLD_CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}") set(OLD_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}") + # Add FUSE compilation flags - set(CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES}" "${FUSE_INCLUDE_DIRS}") - set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}" "${FUSE_LIBRARIES}") - set(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}" "${FUSE_DEFINITIONS}") + set( + CMAKE_REQUIRED_INCLUDES + "${CMAKE_REQUIRED_INCLUDES}" + "${FUSE_INCLUDE_DIRS}" + ) + set( + CMAKE_REQUIRED_LIBRARIES + "${CMAKE_REQUIRED_LIBRARIES}" + "${FUSE_LIBRARIES}" + ) + set( + CMAKE_REQUIRED_DEFINITIONS + "${CMAKE_REQUIRED_DEFINITIONS}" + "${FUSE_DEFINITIONS}" + -D FUSE_USE_VERSION="${FUSE_MAJOR_VERSION}${FUSE_MINOR_VERSION}" + ) check_c_source_compiles("#include #include #include @@ -157,10 +192,14 @@ if(FUSE_FOUND) int main(void) { return 0; }" FUSE_CFLAGS_CHECK) + if(NOT FUSE_CFLAGS_CHECK) set(FUSE_DEFINITIONS "-D_FILE_OFFSET_BITS=64") - # Should we run again previous test to assume the failure was due to missing definition -D_FILE_OFFSET_BITS=64? + + # Should we run again previous test to assume the failure was due to + # missing definition -D_FILE_OFFSET_BITS=64? endif(NOT FUSE_CFLAGS_CHECK) + # Restore CMAKE_REQUIRED_* set(CMAKE_REQUIRED_INCLUDES "${OLD_CMAKE_REQUIRED_INCLUDES}") set(CMAKE_REQUIRED_LIBRARIES "${OLD_CMAKE_REQUIRED_LIBRARIES}") @@ -169,10 +208,23 @@ endif(FUSE_FOUND) if(FUSE_INCLUDE_DIRS) include(FindPackageHandleStandardArgs) + if(FUSE_FIND_REQUIRED AND NOT FUSE_FIND_QUIETLY) - find_package_handle_standard_args(FUSE REQUIRED_VARS FUSE_LIBRARIES FUSE_INCLUDE_DIRS VERSION_VAR FUSE_VERSION) + find_package_handle_standard_args( + FUSE + REQUIRED_VARS + FUSE_LIBRARIES + FUSE_INCLUDE_DIRS + VERSION_VAR + FUSE_VERSION + ) else() - find_package_handle_standard_args(FUSE "FUSE not found" FUSE_LIBRARIES FUSE_INCLUDE_DIRS) + find_package_handle_standard_args( + FUSE + "FUSE not found" + FUSE_LIBRARIES + FUSE_INCLUDE_DIRS + ) endif() else(FUSE_INCLUDE_DIRS) if(FUSE_FIND_REQUIRED AND NOT FUSE_FIND_QUIETLY) @@ -190,14 +242,18 @@ fusedebug("FUSE_FIND_COMPONENTS") fusedebug("FUSE_FIND_REQUIRED") fusedebug("FUSE_FIND_QUIETLY") fusedebug("FUSE_FIND_VERSION") + # OUT # Found fusedebug("FUSE_FOUND") + # Definitions fusedebug("FUSE_DEFINITIONS") + # Linking fusedebug("FUSE_INCLUDE_DIRS") fusedebug("FUSE_LIBRARIES") + # Version fusedebug("FUSE_MAJOR_VERSION") fusedebug("FUSE_MINOR_VERSION") @@ -206,8 +262,14 @@ fusedebug("FUSE_VERSION") if(NOT FUSE_FOUND) if(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} LESS 6) INCLUDE(UsePkgConfig) - PKGCONFIG("fuse" - FUSE_INCLUDE_DIRS FUSE_LIBRARY_DIRS FUSE_LIBRARIES FUSE_DEFINITIONS) + PKGCONFIG( + "fuse" + FUSE_INCLUDE_DIRS + FUSE_LIBRARY_DIRS + FUSE_LIBRARIES + FUSE_DEFINITIONS + ) + if(DEFINED FUSE_LIBRARIES) set(FUSE_FOUND TRUE) STRING(REGEX REPLACE "-pthread" "" @@ -224,20 +286,25 @@ if(NOT FUSE_FOUND) pkg_search_module(FUSE "fuse") set(FUSE_DEFINITIONS ${FUSE_CFLAGS} CACHE STRING INTERNAL FORCE) endif() + if(FUSE_FOUND) set(FUSE_LIBS_LIST "") + foreach(name ${FUSE_LIBRARIES}) # Look for this library. find_library(FUSE_${name}_LIBRARY NAMES ${name} PATHS ${FUSE_LIBRARY_DIRS} ) + # If any library is not found then the whole package is not found. IF(NOT FUSE_${name}_LIBRARY) set(FUSE_FOUND FALSE CACHE BOOL INTERNAL FORCE) endif() + list(APPEND FUSE_LIBS_LIST "${FUSE_${name}_LIBRARY}") - ENDFOREACH(name) + endforeach(name) + if(FUSE_FOUND) set(FUSE_LIBRARIES ${FUSE_LIBS_LIST} CACHE LIST INTERNAL FORCE) else() diff --git a/cmake/Modules/FindJerasure.cmake b/cmake/Modules/FindJerasure.cmake index 53e0faa91..f008ec4b9 100644 --- a/cmake/Modules/FindJerasure.cmake +++ b/cmake/Modules/FindJerasure.cmake @@ -23,26 +23,26 @@ include(ExternalProject) set(KFS_EXTERNAL_PROJECT_DIR ${KFS_DIR_PREFIX}/ext/) -if (CMAKE_SYSTEM_NAME STREQUAL "Darwin") - set (Jfe_CONFIGURE_C_COMPILER cc) +if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + set(Jfe_CONFIGURE_C_COMPILER cc) else() - set (Jfe_CONFIGURE_C_COMPILER ${CMAKE_C_COMPILER}) + set(Jfe_CONFIGURE_C_COMPILER ${CMAKE_C_COMPILER}) endif() -set(Gf_complete "gf-complete") +set(Gf_complete "gf-complete") set(Gf_complete_CPPFLAGS "-I${KFS_EXTERNAL_PROJECT_DIR}${Gf_complete}/include") -set(Gf_complete_CC ${CMAKE_C_COMPILER}) -set(Gf_complete_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${Gf_complete}) +set(Gf_complete_CC ${CMAKE_C_COMPILER}) +set(Gf_complete_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${Gf_complete}) ExternalProject_Add(Gf_complete_proj - DOWNLOAD_COMMAND "" - SOURCE_DIR ${KFS_EXTERNAL_PROJECT_DIR}${Gf_complete} + DOWNLOAD_COMMAND "" + SOURCE_DIR ${KFS_EXTERNAL_PROJECT_DIR}${Gf_complete} CONFIGURE_COMMAND ${KFS_EXTERNAL_PROJECT_DIR}${Gf_complete}/configure - CC=${Jfe_CONFIGURE_C_COMPILER} - CPPFLAGS=${Gf_complete_CPPFLAGS} - --enable-static=yes - --enable-shared=yes - --prefix=${Gf_complete_PREFIX} + CC=${Jfe_CONFIGURE_C_COMPILER} + CPPFLAGS=${Gf_complete_CPPFLAGS} + --enable-static=yes + --enable-shared=yes + --prefix=${Gf_complete_PREFIX} BUILD_COMMAND ${MAKE} ) set(Gf_complete_INCLUDE ${Gf_complete_PREFIX}/include) @@ -50,26 +50,29 @@ set(Gf_complete_LIB_DIR ${Gf_complete_PREFIX}/lib/) set(Gf_complete_STATIC_LIB ${Gf_complete_LIB_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gf_complete${CMAKE_STATIC_LIBRARY_SUFFIX} ) +set(Gf_complete_SHARED_LIB_NAME + ${CMAKE_SHARED_LIBRARY_PREFIX}gf_complete${CMAKE_SHARED_LIBRARY_SUFFIX} +) set(Gf_complete_SHARED_LIB - ${Gf_complete_LIB_DIR}${CMAKE_SHARED_LIBRARY_PREFIX}gf_complete${CMAKE_SHARED_LIBRARY_SUFFIX} + ${Gf_complete_LIB_DIR}${Gf_complete_SHARED_LIB_NAME} ) -set(Jerasure "jerasure") +set(Jerasure "jerasure") set(Jerasure_CPPFLAGS "-I${KFS_EXTERNAL_PROJECT_DIR}${Jerasure}/include -I${Gf_complete_INCLUDE}") -set(Jerasure_LDFLAGS "-L${Gf_complete_LIB_DIR}") -set(Jerasure_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${Jerasure}) +set(Jerasure_LDFLAGS "-L${Gf_complete_LIB_DIR}") +set(Jerasure_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${Jerasure}) ExternalProject_Add(Jerasure_proj - DEPENDS Gf_complete_proj - DOWNLOAD_COMMAND "" - SOURCE_DIR ${KFS_EXTERNAL_PROJECT_DIR}${Jerasure} + DEPENDS Gf_complete_proj + DOWNLOAD_COMMAND "" + SOURCE_DIR ${KFS_EXTERNAL_PROJECT_DIR}${Jerasure} CONFIGURE_COMMAND ${KFS_EXTERNAL_PROJECT_DIR}${Jerasure}/configure - CC=${Jfe_CONFIGURE_C_COMPILER} - CPPFLAGS=${Jerasure_CPPFLAGS} - LDFLAGS=${Jerasure_LDFLAGS} - --enable-static=yes - --enable-shared=yes - --prefix=${Jerasure_PREFIX} + CC=${Jfe_CONFIGURE_C_COMPILER} + CPPFLAGS=${Jerasure_CPPFLAGS} + LDFLAGS=${Jerasure_LDFLAGS} + --enable-static=yes + --enable-shared=yes + --prefix=${Jerasure_PREFIX} BUILD_COMMAND ${MAKE} ) set(Jerasure_INCLUDE ${Jerasure_PREFIX}/include) @@ -77,29 +80,72 @@ set(Jerasure_LIB_DIR ${Jerasure_PREFIX}/lib/) set(Jerasure_STATIC_LIB ${Jerasure_LIB_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}Jerasure${CMAKE_STATIC_LIBRARY_SUFFIX} ) +set(Jerasure_SHARED_LIB_NAME + ${CMAKE_SHARED_LIBRARY_PREFIX}Jerasure${CMAKE_SHARED_LIBRARY_SUFFIX} +) set(Jerasure_SHARED_LIB - ${Jerasure_LIB_DIR}${CMAKE_SHARED_LIBRARY_PREFIX}Jerasure${CMAKE_SHARED_LIBRARY_SUFFIX} + ${Jerasure_LIB_DIR}${Jerasure_SHARED_LIB_NAME} ) -install (FILES ${Gf_complete_STATIC_LIB} ${Jerasure_STATIC_LIB} +# Change relevant run time paths and resolve symlinks. +if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + add_custom_command(TARGET Jerasure_proj POST_BUILD + COMMAND sh -c + "while [ $# -gt 0 ]; do \ + p=$(readlink \"$1\" || basename \"$1\") && \ + install_name_tool -id @rpath/\"$p\" \"$1\" || exit; \ + if [ x\"$0\" != x ]; then \ + install_name_tool -add_rpath \"$0\" \"$1\"; \ + fi ; \ + shift; \ + done" + "${CMAKE_INSTALL_RPATH}" + ${Gf_complete_SHARED_LIB} + ${Jerasure_SHARED_LIB} + COMMAND sh -c + "p=$(readlink \"$0\" || basename \"$0\") && \ + install_name_tool -change \"$1$p\" @rpath/\"$p\" \"$2\"" + ${Gf_complete_SHARED_LIB} + ${Gf_complete_LIB_DIR} + ${Jerasure_SHARED_LIB} + VERBATIM + ) +elseif(COMMAND chrpath) + if("${CMAKE_INSTALL_RPATH}" STREQUAL "") + add_custom_command(TARGET Jerasure_proj POST_BUILD + COMMAND chrpath -d ${Jerasure_SHARED_LIB} + VERBATIM + ) + else() + add_custom_command(TARGET Jerasure_proj POST_BUILD + COMMAND chrpath -r ${CMAKE_INSTALL_RPATH} ${Jerasure_SHARED_LIB} + VERBATIM + ) + endif() +endif() + +install(FILES ${Gf_complete_STATIC_LIB} ${Jerasure_STATIC_LIB} DESTINATION lib/static ) set(JERASURE_STATIC_LIBRARIES ${Jerasure_STATIC_LIB} ${Gf_complete_STATIC_LIB} ) + if(CYGWIN AND NOT QFS_JERASURE_CYGWIN_USE_SHARED_LIBS) - # It appears that on cygwin only static libs are built, and it is - # possible to link client library dll against them. + # Paper over for cygwin where only static libs are built. + # The libraries objects are build with -fPIC and -DPIC flags and the same + # object are used for both static and shared libs, threfore linking with + # other shared library (qfs_client) should work. set(JERASURE_SHARED_LIBRARIES ${JERASURE_STATIC_LIBRARIES}) else() # Shared library are sym linked, install both sym link and the targets # by using pattern. Allow version suffix that follows library suffix. - install (DIRECTORY ${Gf_complete_LIB_DIR} ${Jerasure_LIB_DIR} - DESTINATION lib + install(DIRECTORY ${Gf_complete_LIB_DIR} ${Jerasure_LIB_DIR} + LIBRARY DESTINATION lib USE_SOURCE_PERMISSIONS - FILES_MATCHING PATTERN - "${CMAKE_SHARED_LIBRARY_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}*" + FILES_MATCHING + PATTERN ${CMAKE_SHARED_LIBRARY_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}* ) set(JERASURE_SHARED_LIBRARIES ${Jerasure_SHARED_LIB} diff --git a/examples/README b/examples/README index bc66cca33..d118faa9f 100644 --- a/examples/README +++ b/examples/README @@ -24,33 +24,33 @@ This directory contains the following contents: -1. cc/kfssample_main.cc +1. cc/qfssample_main.cc cc/CMakeLists.txt The C++ client to access QFS. The binary gets compiled as part of QFS build (please refer to QFS Wiki Developer-Documentation), and the sample gets copied to the /bin/examples directory where is the selected build directory. -2. java/KfsSample.java +2. java/QfsSample.java The Java client to access QFS. To compile: $ cd examples/java/ - $ javac -classpath ../../build/qfs-*.jar KfsSample.java + $ javac -classpath ../../build/qfs-*.jar QfsSample.java To run, assuming that make install was performed in ../../build/release, or top level make was invoked with no or default target: $ libdir="`cd ../../build/release/lib && pwd`" $ export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${libdir}" $ qfsjar=`echo ../../build/qfs-*.jar` - $ java -Djava.library.path="$libdir" -classpath ".:$qfsjar" KfsSample 127.0.0.1 20000 + $ java -Djava.library.path="$libdir" -classpath ".:$qfsjar" QfsSample 127.0.0.1 20000 (Note: on OS X, use DYLD_LIBRARY_PATH instead of LD_LIBRARY_PATH) -3. python/kfssample.py - python/kfssample.cfg +3. python/qfssample.py + python/qfssample.cfg Python support is at experimental stage now. Nevertheless, one can run this example to access QFS via python. The QFS Wiki Developer-Documentation explains how to build and install the python QFS extension module. - To run the kfssample.py, please set your PYTHONPATH and LD_LIBRARY_PATH - accordingly and point it to a QFS metaserver via the kfssample.cfg. + To run the qfssample.py, please install qfs python module, and modify + qfssample.cfg to point to a QFS metaserver. 4. sampleservers Directory with a python script to bring up a simple QFS server locally. diff --git a/examples/python/qfssample.py b/examples/python/qfssample.py index 8a4cfd029..8a623afe3 100644 --- a/examples/python/qfssample.py +++ b/examples/python/qfssample.py @@ -19,80 +19,92 @@ # implied. See the License for the specific language governing # permissions and limitations under the License. -# -# NOTE: The python support for QFS is EXPERIMENTAL at this stage. The -# python extension module has not been tested on large scale -# deploymentsi yet. Please excercise caution while using the -# python module. - """ This simple test tries to create some files and directories, and write some data at specific offsets in the created files. Then it tries to ensure that the created paths are valid, and that the file contents are as expected. To run this script, - - Prepare qfs.so as described in the file 'doc/ClientDeveloperDoc' + - Build QFS python module by running the following at QFS repo top level dir: + make python + - Install qfs python module: + python -m pip install build/release/python-qfs/dist/qfs*.whl - Ensure that the QFS metaserver and chunkserver are running. - Ensure that the metaserver host/port matches the contents of argv[1]. - - Ensure that the PYTHONPATH and LD_LIBRARY_PATH are set accordingly. - eg: PYTHONPATH=${PYTHONPATH}:~/code/qfs/build/lib/lib64/python \ - LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:~/code/qfs/build/lib \ + - Run this script: python ./qfssample.py qfssample.cfg """ import os import sys import time -import errno import qfs + def ParseConfig(config): - host = '' + host = "" port = -1 - for line in open("qfssample.cfg"): + for line in open(config): if line.startswith("#") or len(line.strip()) == 0: continue s = line.strip() - if s.split('=')[0].strip() == 'metaServer.name': - host = s.split('=')[1].strip() - elif s.split('=')[0].strip() == 'metaServer.port': - port = int(s.split('=')[1].strip()) - if (host,port) == ('', -1): - sys.exit('Failed to parse config file') - return (host,port) + if s.split("=")[0].strip() == "metaServer.name": + host = s.split("=")[1].strip() + elif s.split("=")[0].strip() == "metaServer.port": + port = int(s.split("=")[1].strip()) + if (host, port) == ("", -1): + err_exit("Failed to parse config file") + return (host, port) + + +def err_exit(msg): + print(msg) + sys.exit(1) def main(): if len(sys.argv) < 2: - sys.exit('Usage: %s config_file' % sys.argv[0]) + err_exit("Usage: %s config_file" % sys.argv[0]) client = None server = ParseConfig(sys.argv[1]) + # f = open("ztest", "wt", encoding="utf-8", errors="ignore") + # print("encoding: " + f.encoding) + # print("mode: " + f.mode) + # print("file: " + str(f)) + # return 0 try: client = qfs.client(server) except: - print "Unable to start the QFS client." - print "Make sure that the meta- and chunkservers are running." - sys.exit(1) + err_exit( + "Unable to start the QFS client.\n" + + "Make sure that the meta- and chunkservers are running." + ) + + print("qfs client: " + str(client)) + client.log_level("DEBUG") + client.log_level("ERROR") testBaseDir = "qfssample_base" - testDirs = ("dir1", "dir2") + testDirs = ("dir1", "dir2") testFile1 = "dir1/file1" testFile2 = "file2" file1Content = "Cu populo nusquam alienum vim, graece latine prodesset ex qui, quo ea lucilius intellegat." - file2ContentA = { 0 : "are ", # at offset 0 - 40 : "you ", # at offset 40 - 1030 : "always ", - 1048580 : "wrong?" } - file2ContentB = { 500 : "really " } + file2ContentA = { + 0: "are ", # at offset 0 + 40: "you ", # at offset 40 + 1030: "always ", + 1048580: "wrong?", + } + file2ContentB = {500: "really "} client.cd("/") - try: # just in case we didn't cleanup last time + try: # just in case we didn't cleanup last time client.rmdirs(testBaseDir) - except IOError, err: + except IOError as err: pass client.mkdir(testBaseDir) @@ -100,30 +112,30 @@ def main(): for td in testDirs: client.mkdir(td) time.sleep(1) - print "Created directories." + print("Created directories.") client.cd("/" + testBaseDir) f1 = client.create(testFile1, 2) f2 = client.create(testFile2, 3) f1.write(file1Content) - for offset, content in file2ContentA.items(): + for offset, content in list(file2ContentA.items()): f2.seek(offset) f2.write(content) - print "Created files." + print("Created files.") f1.sync() f1.close() f2.sync() f2.close() time.sleep(1) - print "Closed files (first time)." + print("Closed files (first time).") - f1 = client.open(testFile1, 'r') - f2 = client.open(testFile2, 'w') - print "Opened files." + f1 = client.open(testFile1, "r", "utf-8", "ignore") + f2 = client.open(testFile2, "w") + print("Opened files.") - for offset, content in file2ContentB.items(): + for offset, content in list(file2ContentB.items()): f2.seek(offset) f2.write(content) @@ -132,61 +144,115 @@ def main(): f2.sync() f2.close() time.sleep(1) - print "Closed files (second time)." + print("Closed files (second time).") # Verify if everything is fine. client.cd("/") expected = ("dir1", "dir2", "file2") for node in client.readdir(testBaseDir): - print node + print(node) if node in (".", ".."): continue if node not in expected: - sys.exit("%s is not in expected list %r" % (node, expected)) + err_exit("%s is not in expected list %r" % (node, expected)) - expected = ("file1") + expected = "file1" for node in client.readdir(testBaseDir + "/dir1"): - print node + print(node) if node in (".", ".."): continue if node not in expected: - sys.exit("%s is not in expected list %r" % (node, expected)) - print "Created paths are in order." + err_exit("%s is not in expected list %r" % (node, expected)) + print("Created paths are in order.") + + print("readdirpus: " + str(client.readdirplus(testBaseDir + "/dir1"))) filePath1 = testBaseDir + "/" + testFile1 filePath2 = testBaseDir + "/" + testFile2 - print "Stat for %s is %r" % (filePath1, client.stat(filePath1)) - print "Stat for %s is %r" % (filePath2, client.stat(filePath2)) + print("Stat for %s is %r" % (filePath1, client.stat(filePath1))) + print("Stat for %s is %r" % (filePath2, client.stat(filePath2))) - f1 = client.open(filePath1, 'r') + f1 = client.open(filePath1, "r") out = f1.read(2) - if (out != "Cu"): - sys.exit("Error: Expected 'Cu', got '%s'.", out) + if out != "Cu": + err_exit("Error: Expected 'Cu', got %r." % out) f1.seek(31) out = f1.read(6) - if (out != "graece"): - sys.exit("Error: Expected 'graece', got '%s'.", out) + if out != "graece": + err_exit("Error: Expected 'graece', got '%s'." % out) pos = f1.tell() if pos != 37: - sys.exit("Error: Expected 'pos = 37', got 'pos = %d'.", pos) + err_exit("Error: Expected 'pos = 37', got 'pos = %d'." % pos) f1.close() - print "File1 contents are in order" + print("File1 contents are in order") - f2 = client.open(filePath2, 'r') + f2 = client.open(filePath2, "r") f2.seek(1032) out = f2.read(3) - if (out != "way"): - sys.exit("Error: Expected 'way', got '%s'.", out) + if out != "way": + err_exit("Error: Expected 'way', got %r." % out) f2.seek(1048578) out = f2.read(7) if out[2:] != "wrong": - sys.exit("Error: Expected '..wrong', got '%r'.", out) + err_exit("Error: Expected '..wrong', got %r." % out) f2.close() - print "File2 contents are in order" + print("File2 contents are in order") + + f2 = client.open(filePath2, "r", "utf-8", "ignore") + res = f2.data_verify() + print("data verify %s: %d" % (filePath2, res)) + locs = f2.chunk_locations(0) + print("chunk locations %s: %s" % (filePath2, str(locs))) + print("file: " + str(f2)) + locs = f2.chunk_locations(0) + print("chunk locations: " + str(locs)) + f2.close() + f2.open("wb+") + f2.seek(0, os.SEEK_END) + pos = f2.tell() + print("file end: %d" % pos) + if 1048586 != pos: + err_exit("Error: tell expected %d, got %d." % (1048586, out)) + f2.truncate(0) + print("file: " + str(f2)) + f2.close() + st = client.stat(filePath2) + if st[6] != 0: + err_exit("Error: truncate / stateexpected 0, got %d." % st[6]) + dst = filePath2 + "x" + client.rename(filePath2, dst) + client.remove(dst) + try: + client.remove(dst) + dst = None + except IOError as ex: + print("remove " + str(ex)) + if dst is None: + err_exit("Error: remove failed to raised exception.") + nc = client.getNumChunks(filePath1) + print("%s chunks: %s" % (filePath1, str(nc))) + if nc < 1: + err_exit("Error: chunks %d >= 1." % nc) + + sz = client.getChunkSize(filePath1) + exp_sz = 64 << 20 + if sz != exp_sz: + err_exit("Error: chunk size %d != %d." % (sz % exp_sz)) + + if not client.isfile(filePath1): + err_exit("Error: isfile: " + filePath1) + + if not client.isdir(testBaseDir): + err_exit("Error: isdir: " + testBaseDir) + + stat = client.stat(filePath1) + print("full stat %s: %s" % (filePath1, str(stat))) + fstat = client.fullstat(filePath1) + print("full full stat %s: %s" % (filePath1, str(fstat))) client.rmdirs(testBaseDir) -if __name__ == '__main__': - main() +if __name__ == "__main__": + main() diff --git a/examples/sampleservers/sample_setup.py b/examples/sampleservers/sample_setup.py index 00b3e4385..b9ad28693 100755 --- a/examples/sampleservers/sample_setup.py +++ b/examples/sampleservers/sample_setup.py @@ -55,19 +55,34 @@ /webui.log """ -import sys, os, os.path, shutil, errno, signal, posix, re, socket -import ConfigParser -import subprocess +from __future__ import print_function + +import errno +import os +import os.path +import posix +import shutil +import signal +import socket +import sys + +if sys.version_info < (3, 0): + import ConfigParser as configparser +else: + import configparser + import getpass +import subprocess +from optparse import IndentedHelpFormatter, OptionParser -from optparse import OptionParser, OptionGroup, IndentedHelpFormatter -class Globals(): - METASERVER = 'metaserver' - CHUNKSERVER = 'chunkserver' - WEBSERVER = 'qfsstatus.py' - QFSTOOL = None - MKCERTS = None +class Globals: + METASERVER = "metaserver" + CHUNKSERVER = "chunkserver" + WEBSERVER = "qfsstatus.py" + QFSTOOL = None + MKCERTS = None + def get_size_in_bytes(str): if not str: @@ -80,77 +95,81 @@ def get_size_in_bytes(str): val = int(str[0:pos]) unit = str[pos] mul = 1 - if unit in ('k', 'K'): + if unit in ("k", "K"): mul = 1000 - elif unit in ('m', 'M'): + elif unit in ("m", "M"): mul = 1000000 - elif unit in ('g', 'G'): + elif unit in ("g", "G"): mul = 1000000000 return val * mul + def shell_quote(s): return "'" + s.replace("'", "'\\''") + "'" + def check_binaries(releaseDir, sourceDir, authFlag): - if not os.path.isfile(releaseDir + '/bin/metaserver'): - sys.exit('Metaserver missing in build directory') - Globals.METASERVER = releaseDir + '/bin/metaserver' + if not os.path.isfile(releaseDir + "/bin/metaserver"): + sys.exit("Metaserver missing in build directory") + Globals.METASERVER = releaseDir + "/bin/metaserver" - if not os.path.isfile(releaseDir + '/bin/chunkserver'): - sys.exit('Chunkserver missing in build directory') - Globals.CHUNKSERVER = releaseDir + '/bin/chunkserver' + if not os.path.isfile(releaseDir + "/bin/chunkserver"): + sys.exit("Chunkserver missing in build directory") + Globals.CHUNKSERVER = releaseDir + "/bin/chunkserver" - if os.path.isfile(releaseDir + '/bin/tools/qfs'): - Globals.QFSTOOL = releaseDir + '/bin/tools/qfs' + if os.path.isfile(releaseDir + "/bin/tools/qfs"): + Globals.QFSTOOL = releaseDir + "/bin/tools/qfs" - if os.path.isfile(releaseDir + '/webui/qfsstatus.py'): - Globals.WEBSERVER = releaseDir + '/webui/qfsstatus.py' - elif os.path.isfile(sourceDir + '/webui/qfsstatus.py'): - Globals.WEBSERVER = sourceDir + '/webui/qfsstatus.py' + if os.path.isfile(releaseDir + "/webui/qfsstatus.py"): + Globals.WEBSERVER = releaseDir + "/webui/qfsstatus.py" + elif os.path.isfile(sourceDir + "/webui/qfsstatus.py"): + Globals.WEBSERVER = sourceDir + "/webui/qfsstatus.py" else: - sys.exit('Webserver missing in build and source directories') + sys.exit("Webserver missing in build and source directories") if authFlag: - mkcerts = sourceDir + '/src/test-scripts/qfsmkcerts.sh' + mkcerts = sourceDir + "/src/test-scripts/qfsmkcerts.sh" if os.path.isfile(mkcerts): Globals.MKCERTS = mkcerts else: - sys.exit('qfsmkcerts.sh missing in source directories') - print 'Binaries presence checking - OK.' + sys.exit("qfsmkcerts.sh missing in source directories") + print("Binaries presence checking - OK.") + def check_port(port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) try: - s.bind(('localhost', port)) + s.bind(("localhost", port)) del s - except socket.error, err: - sys.exit('aborting, port %d already in use (%s)' % (port, str(err))) + except socket.error as err: + sys.exit("aborting, port %d already in use (%s)" % (port, str(err))) + def check_ports(config): portsToCheck = [] - portsToCheck.append(config.getint('metaserver', 'clientport')) - portsToCheck.append(config.getint('metaserver', 'chunkport')) - portsToCheck.append(config.getint('webui', 'webport')) + portsToCheck.append(config.getint("metaserver", "clientport")) + portsToCheck.append(config.getint("metaserver", "chunkport")) + portsToCheck.append(config.getint("webui", "webport")) for section in config.sections(): - if section.startswith('chunkserver'): - portsToCheck.append(config.getint(section, 'chunkport')) + if section.startswith("chunkserver"): + portsToCheck.append(config.getint(section, "chunkport")) for p in portsToCheck: check_port(p) def kill_running_program_pid(binaryPath, runDir): if binaryPath == Globals.METASERVER: - name = 'metaserver' + name = "metaserver" elif binaryPath == Globals.CHUNKSERVER: - name = 'chunkserver' + name = "chunkserver" elif binaryPath == Globals.WEBSERVER: - name = 'webui' + name = "webui" else: - name = '' + name = "" if 0 < len(name) and 0 < len(runDir): try: - pidf = '%s/%s.pid' % (runDir, name) - f = open(pidf, 'r') + pidf = "%s/%s.pid" % (runDir, name) + f = open(pidf, "r") line = f.readline() f.close() os.unlink(pidf) @@ -161,33 +180,41 @@ def kill_running_program_pid(binaryPath, runDir): else: kill_running_program(binaryPath) + def kill_running_program(binaryPath): - if sys.platform in ('darwin', 'Darwin'): + if sys.platform in ("darwin", "Darwin"): checkPath = os.path.split(binaryPath)[1] if not checkPath: return - cmd = ('ps -ef | grep %s | grep %s | grep -v grep | awk \'{print $2}\'' - % (os.getlogin(), checkPath)) - res = subprocess.Popen(cmd, shell=True, - stdout=subprocess.PIPE).communicate() - pids = res[0].split('\n') + cmd = ( + "ps -ef | grep %s | grep %s | grep -v grep | awk '{print $2}'" + % (os.getlogin(), checkPath) + ) + res = subprocess.Popen( + cmd, shell=True, stdout=subprocess.PIPE + ).communicate() + pids = res[0].split("\n") for pid in pids: - if pid.strip() != '': + if pid.strip() != "": os.kill(int(pid.strip()), signal.SIGTERM) else: - if binaryPath.find('qfsstatus') >= 0: - cmd = ('ps -ef | grep %s | grep /qfsbase/ | grep %s | grep -v grep | awk \'{print $2}\'' - % (os.getlogin(), binaryPath)) - res = subprocess.Popen(cmd, shell=True, - stdout=subprocess.PIPE).communicate() - pids = res[0].split('\n') + if binaryPath.find("qfsstatus") >= 0: + cmd = ( + "ps -ef | grep %s | grep /qfsbase/ | grep %s | grep -v grep | awk '{print $2}'" + % (os.getlogin(), binaryPath) + ) + res = subprocess.Popen( + cmd, shell=True, stdout=subprocess.PIPE + ).communicate() + pids = res[0].split("\n") for pid in pids: - if pid.strip() != '': + if pid.strip() != "": os.kill(int(pid.strip()), signal.SIGTERM) return - pids = subprocess.Popen(['pidof', binaryPath], - stdout=subprocess.PIPE).communicate() + pids = subprocess.Popen( + ["pidof", binaryPath], stdout=subprocess.PIPE + ).communicate() for pid in pids[0].strip().split(): os.kill(int(pid), signal.SIGTERM) @@ -195,12 +222,14 @@ def kill_running_program(binaryPath): def run_command(cmd): return subprocess.check_call(cmd, shell=True) + def rm_tree(path): - if '/qfsbase/' in path: + if "/qfsbase/" in path: shutil.rmtree(path) else: - print >> sys.stderr, 'refusing to remove path %r' % path, - print >> sys.stderr, 'because it does not contain /qfsbase/' + print("refusing to remove path %r" % path, end=" ", file=sys.stderr) + print("because it does not contain /qfsbase/", file=sys.stderr) + def duplicate_tree(src, dst): """Copy files & directories from SRC directory to DST directory. @@ -209,7 +238,7 @@ def duplicate_tree(src, dst): children names exist then overwrite them. """ if os.path.exists(dst) and not os.path.isdir(dst): - sys.exit('Cannot duplicate directory to a non-directory') + sys.exit("Cannot duplicate directory to a non-directory") if not os.path.exists(dst): os.makedirs(dst) @@ -229,61 +258,101 @@ def duplicate_tree(src, dst): else: shutil.copyfile(srcPath, dstPath) + def mkdir_p(dirname): try: os.makedirs(dirname) - except OSError, err: + except OSError as err: if err.errno != errno.EEXIST: - sys.exit('Failed to create directory') + sys.exit("Failed to create directory") else: if not os.path.isdir(dirname): - sys.exit('% exists, but is not a directory!' % dirname) + sys.exit("% exists, but is not a directory!" % dirname) + def parse_command_line(): - action_keys = { 'install' : True, - 'start' : True, - 'stop' : True, - 'uninstall' : True } + action_keys = { + "install": True, + "start": True, + "stop": True, + "uninstall": True, + } argv0Dir = os.path.dirname(sys.argv[0]) - defaultConfig = os.path.join(argv0Dir, 'sample_setup.cfg') + defaultConfig = os.path.join(argv0Dir, "sample_setup.cfg") defaultConfig = os.path.abspath(defaultConfig) - defaultSrcDir = os.path.join(argv0Dir, '../..') + defaultSrcDir = os.path.join(argv0Dir, "../..") defaultSrcDir = os.path.abspath(defaultSrcDir) - defaultRelDir = os.path.join(argv0Dir, '../../build/release') + defaultRelDir = os.path.join(argv0Dir, "../../build/release") defaultRelDir = os.path.abspath(defaultRelDir) if not os.path.exists(defaultRelDir): - defaultRelDir = os.path.join(argv0Dir, '../..') + defaultRelDir = os.path.join(argv0Dir, "../..") defaultRelDir = os.path.abspath(defaultRelDir) formatter = IndentedHelpFormatter(max_help_position=50, width=120) usage = "usage: ./%prog [options] -a " parser = OptionParser(usage, formatter=formatter, add_help_option=False) - parser.add_option('-c', '--config-file', action='store', - default=defaultConfig, metavar='FILE', help='Setup config file.') + parser.add_option( + "-c", + "--config-file", + action="store", + default=defaultConfig, + metavar="FILE", + help="Setup config file.", + ) - parser.add_option('-a', '--action', action='store', default=None, - metavar='ACTION', help='One of install, uninstall, or stop.') + parser.add_option( + "-a", + "--action", + action="store", + default=None, + metavar="ACTION", + help="One of install, uninstall, or stop.", + ) - parser.add_option('-r', '--release-dir', action='store', - default=defaultRelDir, metavar='DIR', help='QFS release directory.') + parser.add_option( + "-r", + "--release-dir", + action="store", + default=defaultRelDir, + metavar="DIR", + help="QFS release directory.", + ) - parser.add_option('-s', '--source-dir', action='store', - default=defaultSrcDir, metavar='DIR', help='QFS source directory.') + parser.add_option( + "-s", + "--source-dir", + action="store", + default=defaultSrcDir, + metavar="DIR", + help="QFS source directory.", + ) - parser.add_option('-u', '--auth', action='store_true', - help="Configure QFS authentication.") + parser.add_option( + "-u", + "--auth", + action="store_true", + help="Configure QFS authentication.", + ) - parser.add_option('-o', '--object-store', action='store_true', - help="Enable object store (S3) mode.") + parser.add_option( + "-o", + "--object-store", + action="store_true", + help="Enable object store (S3) mode.", + ) - parser.add_option('-h', '--help', action='store_true', - help="Print this help message and exit.") + parser.add_option( + "-h", + "--help", + action="store_true", + help="Print this help message and exit.", + ) actions = """ Actions: @@ -339,433 +408,614 @@ def parse_command_line(): opts.source_dir, opts.source_dir, opts.release_dir, - opts.source_dir + opts.source_dir, ) if opts.help: parser.print_help() - print actions - print sampleSession - print + print(actions) + print(sampleSession) + print() posix._exit(0) e = [] if not os.path.isfile(opts.config_file): - e.append("specified 'config-file' does not exist: %s" - % opts.config_file) + e.append( + "specified 'config-file' does not exist: %s" % opts.config_file + ) if not opts.action: e.append("'action' must be specified") - elif not action_keys.has_key(opts.action): + elif opts.action not in action_keys: e.append("invalid 'action' specified: %s" % opts.action) if not os.path.isdir(opts.release_dir): - e.append("specified 'release-dir' does not exist: %s" - % opts.release_dir) + e.append( + "specified 'release-dir' does not exist: %s" % opts.release_dir + ) if not os.path.isdir(opts.source_dir): e.append("specified 'source-dir' does not exist: %s" % opts.source_dir) if len(e) > 0: parser.print_help() - print actions - print sampleSession - print + print(actions) + print(sampleSession) + print() for error in e: - print "*** %s" % error - print + print("*** %s" % error) + print() posix._exit(1) return opts + def do_cleanup(config, doUninstall): - if config.has_section('metaserver'): - metaRunDir = config.get('metaserver', 'rundir') + if config.has_section("metaserver"): + metaRunDir = config.get("metaserver", "rundir") if metaRunDir: kill_running_program_pid(Globals.METASERVER, metaRunDir) if doUninstall and os.path.isdir(metaRunDir): rm_tree(metaRunDir) for section in config.sections(): - if section.startswith('chunkserver'): - chunkRunDir = config.get(section, 'rundir') + if section.startswith("chunkserver"): + chunkRunDir = config.get(section, "rundir") if chunkRunDir: kill_running_program_pid(Globals.CHUNKSERVER, chunkRunDir) if doUninstall and os.path.isdir(chunkRunDir): rm_tree(chunkRunDir) - if config.has_section('webui'): - webDir = config.get('webui', 'rundir') + if config.has_section("webui"): + webDir = config.get("webui", "rundir") if webDir: kill_running_program_pid(Globals.WEBSERVER, webDir) if doUninstall and os.path.isdir(webDir): rm_tree(webDir) - if config.has_section('certs'): - certsDir = config.get('certs', 'rundir') + if config.has_section("certs"): + certsDir = config.get("certs", "rundir") if doUninstall and os.path.isdir(certsDir): rm_tree(certsDir) - if config.has_section('client'): - clientDir = config.get('client', 'rundir') + if config.has_section("client"): + clientDir = config.get("client", "rundir") if doUninstall and os.path.isdir(clientDir): rm_tree(clientDir) if doUninstall: - qfsbase = os.path.expanduser('~/qfsbase') + qfsbase = os.path.expanduser("~/qfsbase") if os.path.isdir(qfsbase) and not os.path.islink(qfsbase): os.rmdir(qfsbase) - print 'Uninstall - OK.' + print("Uninstall - OK.") else: - print 'Stop servers - OK.' + print("Stop servers - OK.") + def setup_directories(config, authFlag, objectStoreOnlyModeFlag): - if config.has_section('metaserver'): - metaRunDir = config.get('metaserver', 'rundir') + if config.has_section("metaserver"): + metaRunDir = config.get("metaserver", "rundir") if metaRunDir: - mkdir_p(metaRunDir); - mkdir_p(metaRunDir + '/conf') - mkdir_p(metaRunDir + '/checkpoints') - mkdir_p(metaRunDir + '/logs') + mkdir_p(metaRunDir) + mkdir_p(metaRunDir + "/conf") + mkdir_p(metaRunDir + "/checkpoints") + mkdir_p(metaRunDir + "/logs") for section in config.sections(): - if section.startswith('chunkserver'): - chunkRunDir = config.get(section, 'rundir') + if section.startswith("chunkserver"): + chunkRunDir = config.get(section, "rundir") # look for chunk directory fields, only if # object store mode is off. if not objectStoreOnlyModeFlag: - chunkDirs = config.get(section, 'chunkdirs') - chunkDirsList = chunkDirs.split(' ') + chunkDirs = config.get(section, "chunkdirs") + chunkDirsList = chunkDirs.split(" ") if chunkRunDir: - mkdir_p(chunkRunDir); - mkdir_p(chunkRunDir + '/conf') + mkdir_p(chunkRunDir) + mkdir_p(chunkRunDir + "/conf") if not objectStoreOnlyModeFlag: if len(chunkDirsList) > 0: for cd in chunkDirsList: mkdir_p(cd) else: - mkdir_p(chunkRunDir + '/chunkdir') + mkdir_p(chunkRunDir + "/chunkdir") - if config.has_section('client'): - clientDir = config.get('client', 'rundir') + if config.has_section("client"): + clientDir = config.get("client", "rundir") if clientDir: mkdir_p(clientDir) - if config.has_section('webui'): - webDir = config.get('webui', 'rundir') + if config.has_section("webui"): + webDir = config.get("webui", "rundir") if webDir: - mkdir_p(webDir); - mkdir_p(webDir + '/conf') - mkdir_p(webDir + '/docroot') - print 'Setup directories - OK.' + mkdir_p(webDir) + mkdir_p(webDir + "/conf") + mkdir_p(webDir + "/docroot") + print("Setup directories - OK.") def check_directories(config): metaRunDir = None webDir = None - if config.has_section('metaserver'): - metaRunDir = config.get('metaserver', 'rundir') - if config.has_section('webui'): - webDir = config.get('webui', 'rundir') + if config.has_section("metaserver"): + metaRunDir = config.get("metaserver", "rundir") + if config.has_section("webui"): + webDir = config.get("webui", "rundir") if not metaRunDir or not webDir: - sys.exit('Malformed config file.') - if not os.path.exists(metaRunDir) or not os.path.exists(webDir): - sys.exit('Cannot start without install. Please run with "-a install" first.') - print 'Check directories - OK.' + sys.exit("Malformed config file.") + if not os.path.exists(metaRunDir) or not os.path.exists(webDir): + sys.exit( + 'Cannot start without install. Please run with "-a install" first.' + ) + print("Check directories - OK.") def setup_config_files(config, authFlag, objectStoreOnlyModeFlag): - if config.has_section('client'): - clientDir = config.get('client', 'rundir') + if config.has_section("client"): + clientDir = config.get("client", "rundir") else: clientDir = None if authFlag: - if 'certs' not in config.sections(): - sys.exit('Required metaserver certs not found in config') - certsDir = config.get('certs', 'rundir') + if "certs" not in config.sections(): + sys.exit("Required metaserver certs not found in config") + certsDir = config.get("certs", "rundir") if not certsDir: - sys.exit('Required certs certsdir not found in config') + sys.exit("Required certs certsdir not found in config") defaultUser = getpass.getuser() - if run_command('%s %s meta root %s' % ( - shell_quote(Globals.MKCERTS), - shell_quote(certsDir), - shell_quote(defaultUser))) != 0: - sys.exit('Create X509 certs failure') + if ( + run_command( + "%s %s meta root %s" + % ( + shell_quote(Globals.MKCERTS), + shell_quote(certsDir), + shell_quote(defaultUser), + ) + ) + != 0 + ): + sys.exit("Create X509 certs failure") if clientDir: - clientFile = open(clientDir + '/client.prp', 'w') - print >> clientFile, 'client.auth.X509.X509PemFile = %s/%s.crt' % (certsDir, defaultUser) - print >> clientFile, 'client.auth.X509.PKeyPemFile = %s/%s.key' % (certsDir, defaultUser) - print >> clientFile, 'client.auth.X509.CAFile = %s/qfs_ca/cacert.pem' % certsDir + clientFile = open(clientDir + "/client.prp", "w") + print( + "client.auth.X509.X509PemFile = %s/%s.crt" + % (certsDir, defaultUser), + file=clientFile, + ) + print( + "client.auth.X509.PKeyPemFile = %s/%s.key" + % (certsDir, defaultUser), + file=clientFile, + ) + print( + "client.auth.X509.CAFile = %s/qfs_ca/cacert.pem" + % certsDir, + file=clientFile, + ) clientFile.close() if clientDir: - defaultConfig = clientDir + '/clidefault.prp' - clientFile = open(defaultConfig, 'w') - print >> clientFile, 'fs.default = qfs://localhost:20000' + defaultConfig = clientDir + "/clidefault.prp" + clientFile = open(defaultConfig, "w") + print("fs.default = qfs://localhost:20000", file=clientFile) if authFlag: - print >> clientFile, 'client.auth.X509.X509PemFile = %s/%s.crt' % (certsDir, defaultUser) - print >> clientFile, 'client.auth.X509.PKeyPemFile = %s/%s.key' % (certsDir, defaultUser) - print >> clientFile, 'client.auth.X509.CAFile = %s/qfs_ca/cacert.pem' % certsDir + print( + "client.auth.X509.X509PemFile = %s/%s.crt" + % (certsDir, defaultUser), + file=clientFile, + ) + print( + "client.auth.X509.PKeyPemFile = %s/%s.key" + % (certsDir, defaultUser), + file=clientFile, + ) + print( + "client.auth.X509.CAFile = %s/qfs_ca/cacert.pem" + % certsDir, + file=clientFile, + ) clientFile.close() - if 'metaserver' not in config.sections(): - sys.exit('Required metaserver section not found in config') - metaRunDir = config.get('metaserver', 'rundir') + if "metaserver" not in config.sections(): + sys.exit("Required metaserver section not found in config") + metaRunDir = config.get("metaserver", "rundir") if not metaRunDir: - sys.exit('Required metaserver rundir not found in config') + sys.exit("Required metaserver rundir not found in config") - metaserverHostname = config.get('metaserver', 'hostname') - metaserverClientPort = config.getint('metaserver', 'clientport') - metaserverChunkPort = config.getint('metaserver', 'chunkport') - clusterKey = config.get('metaserver', 'clusterkey') + metaserverHostname = config.get("metaserver", "hostname") + metaserverClientPort = config.getint("metaserver", "clientport") + metaserverChunkPort = config.getint("metaserver", "chunkport") + clusterKey = config.get("metaserver", "clusterkey") if objectStoreOnlyModeFlag: - bucketName = config.get('metaserver', 'bucketName') - accessKeyId = config.get('metaserver', 'accessKeyId') - secretAccessKey = config.get('metaserver', 'secretAccessKey') + bucketName = config.get("metaserver", "bucketName") + accessKeyId = config.get("metaserver", "accessKeyId") + secretAccessKey = config.get("metaserver", "secretAccessKey") if not bucketName or not accessKeyId or not secretAccessKey: - sys.exit('Configuration file must set bucket name,' - 'access key id, and secret access key.') + sys.exit( + "Configuration file must set bucket name," + "access key id, and secret access key." + ) # Metaserver. - metaFile = open(metaRunDir + '/conf/MetaServer.prp', 'w') - print >> metaFile, 'metaServer.clientPort = %d' % metaserverClientPort - print >> metaFile, 'metaServer.chunkServerPort = %d' % metaserverChunkPort - print >> metaFile, 'metaServer.clusterKey = %s' % clusterKey - print >> metaFile, 'metaServer.cpDir = %s/checkpoints' % metaRunDir - print >> metaFile, 'metaServer.logDir = %s/logs' % metaRunDir - print >> metaFile, 'metaServer.recoveryInterval = 1' - print >> metaFile, 'metaServer.msgLogWriter.logLevel = DEBUG' - print >> metaFile, 'metaServer.msgLogWriter.maxLogFileSize = 1e6' - print >> metaFile, 'metaServer.msgLogWriter.maxLogFiles = 10' - print >> metaFile, 'metaServer.minChunkservers = 1' - print >> metaFile, 'metaServer.clientThreadCount = 4' - print >> metaFile, 'metaServer.rootDirUser = %d' % os.getuid() - print >> metaFile, 'metaServer.rootDirGroup = %d' % os.getgid() - print >> metaFile, 'metaServer.rootDirMode = 0777' - print >> metaFile, 'metaServer.pidFile = %s/metaserver.pid' % metaRunDir + metaFile = open(metaRunDir + "/conf/MetaServer.prp", "w") + print("metaServer.clientPort = %d" % metaserverClientPort, file=metaFile) + print( + "metaServer.chunkServerPort = %d" % metaserverChunkPort, file=metaFile + ) + print("metaServer.clusterKey = %s" % clusterKey, file=metaFile) + print("metaServer.cpDir = %s/checkpoints" % metaRunDir, file=metaFile) + print("metaServer.logDir = %s/logs" % metaRunDir, file=metaFile) + print("metaServer.recoveryInterval = 1", file=metaFile) + print("metaServer.msgLogWriter.logLevel = DEBUG", file=metaFile) + print("metaServer.msgLogWriter.maxLogFileSize = 1e6", file=metaFile) + print("metaServer.msgLogWriter.maxLogFiles = 10", file=metaFile) + print("metaServer.minChunkservers = 1", file=metaFile) + print("metaServer.clientThreadCount = 4", file=metaFile) + print("metaServer.rootDirUser = %d" % os.getuid(), file=metaFile) + print("metaServer.rootDirGroup = %d" % os.getgid(), file=metaFile) + print("metaServer.rootDirMode = 0777", file=metaFile) + print("metaServer.pidFile = %s/metaserver.pid" % metaRunDir, file=metaFile) if authFlag: - print >> metaFile, 'metaServer.clientAuthentication.X509.X509PemFile = %s/meta.crt' % certsDir - print >> metaFile, 'metaServer.clientAuthentication.X509.PKeyPemFile = %s/meta.key' % certsDir - print >> metaFile, 'metaServer.clientAuthentication.X509.CAFile = %s/qfs_ca/cacert.pem' % certsDir - print >> metaFile, 'metaServer.clientAuthentication.whiteList = %s root' % defaultUser - print >> metaFile, 'metaServer.CSAuthentication.X509.X509PemFile = %s/meta.crt' % certsDir - print >> metaFile, 'metaServer.CSAuthentication.X509.PKeyPemFile = %s/meta.key' % certsDir - print >> metaFile, 'metaServer.CSAuthentication.X509.CAFile = %s/qfs_ca/cacert.pem' % certsDir - print >> metaFile, 'metaServer.CSAuthentication.blackList = none' + print( + "metaServer.clientAuthentication.X509.X509PemFile = %s/meta.crt" + % certsDir, + file=metaFile, + ) + print( + "metaServer.clientAuthentication.X509.PKeyPemFile = %s/meta.key" + % certsDir, + file=metaFile, + ) + print( + "metaServer.clientAuthentication.X509.CAFile = %s/qfs_ca/cacert.pem" + % certsDir, + file=metaFile, + ) + print( + "metaServer.clientAuthentication.whiteList = %s root" + % defaultUser, + file=metaFile, + ) + print( + "metaServer.CSAuthentication.X509.X509PemFile = %s/meta.crt" + % certsDir, + file=metaFile, + ) + print( + "metaServer.CSAuthentication.X509.PKeyPemFile = %s/meta.key" + % certsDir, + file=metaFile, + ) + print( + ( + "metaServer.CSAuthentication.X509.CAFile = %s" + "/qfs_ca/cacert.pem" + ) + % certsDir, + file=metaFile, + ) + print( + "metaServer.CSAuthentication.blackList = none", + file=metaFile, + ) if objectStoreOnlyModeFlag: - print >> metaFile, '# S3 parameters' - print >> metaFile, 'metaServer.objectStoreEnabled = 1' - print >> metaFile, 'metaServer.maxReplicasPerFile = 0' - print >> metaFile, 'metaServer.maxReplicasPerRSFile = 0' - print >> metaFile, 'chunkServer.diskQueue.aws.bucketName = %s' % bucketName - print >> metaFile, 'chunkServer.diskQueue.aws.accessKeyId = %s' % accessKeyId - print >> metaFile, 'chunkServer.diskQueue.aws.secretAccessKey = %s' % secretAccessKey + print("# S3 parameters", file=metaFile) + print("metaServer.objectStoreEnabled = 1", file=metaFile) + print("metaServer.maxReplicasPerFile = 0", file=metaFile) + print("metaServer.maxReplicasPerRSFile = 0", file=metaFile) + print( + "chunkServer.diskQueue.aws.bucketName = %s" % bucketName, + file=metaFile, + ) + print( + "chunkServer.diskQueue.aws.accessKeyId = %s" % accessKeyId, + file=metaFile, + ) + print( + "chunkServer.diskQueue.aws.secretAccessKey = %s" % secretAccessKey, + file=metaFile, + ) metaFile.close() # Chunkservers. for section in config.sections(): - if section.startswith('chunkserver'): - chunkClientPort = config.getint(section, 'chunkport') + if section.startswith("chunkserver"): + chunkClientPort = config.getint(section, "chunkport") if not objectStoreOnlyModeFlag: - chunkDirs = config.get(section, 'chunkdirs') - chunkRunDir = config.get(section, 'rundir') + chunkDirs = config.get(section, "chunkdirs") + chunkRunDir = config.get(section, "rundir") if chunkRunDir: if authFlag: - if run_command('%s %s chunk%d' % ( - shell_quote(Globals.MKCERTS), - shell_quote(certsDir), - chunkClientPort)) != 0: - sys.exit('Create X509 failure') - chunkFile = open(chunkRunDir + '/conf/ChunkServer.prp', 'w') - print >> chunkFile, 'chunkServer.metaServer.hostname = %s' % metaserverHostname - print >> chunkFile, 'chunkServer.metaServer.port = %d' % metaserverChunkPort - print >> chunkFile, 'chunkServer.clientPort = %d' % chunkClientPort - print >> chunkFile, 'chunkServer.clusterKey = %s' % clusterKey - print >> chunkFile, 'chunkServer.rackId = 0' + if ( + run_command( + "%s %s chunk%d" + % ( + shell_quote(Globals.MKCERTS), + shell_quote(certsDir), + chunkClientPort, + ) + ) + != 0 + ): + sys.exit("Create X509 failure") + chunkFile = open(chunkRunDir + "/conf/ChunkServer.prp", "w") + print( + "chunkServer.metaServer.hostname = %s" + % metaserverHostname, + file=chunkFile, + ) + print( + "chunkServer.metaServer.port = %d" % metaserverChunkPort, + file=chunkFile, + ) + print( + "chunkServer.clientPort = %d" % chunkClientPort, + file=chunkFile, + ) + print( + "chunkServer.clusterKey = %s" % clusterKey, file=chunkFile + ) + print("chunkServer.rackId = 0", file=chunkFile) if not objectStoreOnlyModeFlag: - print >> chunkFile, 'chunkServer.chunkDir = %s' % chunkDirs - print >> chunkFile, 'chunkServer.msgLogWriter.logLevel = DEBUG' - print >> chunkFile, 'chunkServer.msgLogWriter.maxLogFileSize = 1e6' - print >> chunkFile, 'chunkServer.msgLogWriter.maxLogFiles = 2' - print >> chunkFile, 'chunkServer.pidFile = %s/chunkserver.pid' % chunkRunDir + print( + "chunkServer.chunkDir = %s" % chunkDirs, file=chunkFile + ) + print( + "chunkServer.msgLogWriter.logLevel = DEBUG", file=chunkFile + ) + print( + "chunkServer.msgLogWriter.maxLogFileSize = 1e6", + file=chunkFile, + ) + print( + "chunkServer.msgLogWriter.maxLogFiles = 2", file=chunkFile + ) + print( + "chunkServer.pidFile = %s/chunkserver.pid" % chunkRunDir, + file=chunkFile, + ) clientThreadCount = 0 if objectStoreOnlyModeFlag else 3 - print >> chunkFile, 'chunkServer.clientThreadCount = %d' % clientThreadCount + print( + "chunkServer.clientThreadCount = %d" % clientThreadCount, + file=chunkFile, + ) if authFlag: - print >> chunkFile, 'chunkserver.meta.auth.X509.X509PemFile = %s/chunk%d.crt' % (certsDir, chunkClientPort) - print >> chunkFile, 'chunkserver.meta.auth.X509.PKeyPemFile = %s/chunk%d.key' % (certsDir, chunkClientPort) - print >> chunkFile, 'chunkserver.meta.auth.X509.CAFile = %s/qfs_ca/cacert.pem' % certsDir + print( + ( + "chunkserver.meta.auth.X509.X509PemFile = %s" + "/chunk%d.crt" + ) + % (certsDir, chunkClientPort), + file=chunkFile, + ) + print( + ( + "chunkserver.meta.auth.X509.PKeyPemFile = %s" + "/chunk%d.key" + ) + % (certsDir, chunkClientPort), + file=chunkFile, + ) + print( + ( + "chunkserver.meta.auth.X509.CAFile = %s" + "/qfs_ca/cacert.pem" + ) + % certsDir, + file=chunkFile, + ) if objectStoreOnlyModeFlag: - print >> chunkFile, '# S3 parameters' - print >> chunkFile, 'chunkServer.objectDir = s3://aws.' + print("# S3 parameters", file=chunkFile) + print("chunkServer.objectDir = s3://aws.", file=chunkFile) chunkFile.close() # Webserver. - if 'webui' not in config.sections(): + if "webui" not in config.sections(): return - webDir = config.get('webui', 'rundir') + webDir = config.get("webui", "rundir") if not webDir: return - webFile = open(webDir + '/conf/WebUI.cfg', 'w') - print >> webFile, '[webserver]' - print >> webFile, 'webServer.metaserverHost = %s' % metaserverHostname - print >> webFile, 'webServer.metaserverPort = %d' % metaserverClientPort - print >> webFile, 'webServer.host = 0.0.0.0' - print >> webFile, 'webServer.port = %d' % config.getint('webui', 'webport') - print >> webFile, 'webServer.docRoot = %s/docroot' % webDir - print >> webFile, 'webServer.allmachinesfn = /dev/null' - print >> webFile, 'webServer.displayPorts = True' - print >> webFile, 'webServer.pidFile = %s/webui.pid' % webDir - print >> webFile, '[chunk]' - print >> webFile, 'refreshInterval = 5' - print >> webFile, 'currentSize = 30' - print >> webFile, 'currentSpan = 10' - print >> webFile, 'hourlySize = 30' - print >> webFile, 'hourlySpan =120' - print >> webFile, 'daylySize = 24' - print >> webFile, 'daylySpan = 3600' - print >> webFile, 'monthlySize = 30' - print >> webFile, 'monthlySpan = 86400' - print >> webFile, 'displayPorts = True' - print >> webFile, 'predefinedHeaders = Buffer-usec-wait-avg&D-Timer-overrun-count&D-Timer-overrun-sec&XMeta-server-location&Client-active&D-Buffer-req-denied-bytes&D-CPU-sys&D-CPU-user&D-Disk-read-bytes&D-Disk-read-count&D-Disk-write-bytes&D-Disk-write-count&Write-appenders&D-Disk-read-errors&D-Disk-write-errors&XMeta-location' - print >> webFile, 'predefinedChunkDirHeaders = Chunks&Dev-id&Read-bytes&D-Read-bytes&Read-err&D-Read-err&Read-io&D-Read-io&D-Read-time-microsec&Read-timeout&Space-avail&Space-util-pct&Started-ago&Stopped-ago&Write-bytes&D-Write-bytes&Write-err&D-Write-err&Write-io&D-Write-io&D-Write-time-microsec&Write-timeout&Chunk-server&Chunk-dir' + webFile = open(webDir + "/conf/WebUI.cfg", "w") + print("[webserver]", file=webFile) + print("webServer.metaserverHost = %s" % metaserverHostname, file=webFile) + print("webServer.metaserverPort = %d" % metaserverClientPort, file=webFile) + print("webServer.host = 0.0.0.0", file=webFile) + print( + "webServer.port = %d" % config.getint("webui", "webport"), file=webFile + ) + print("webServer.docRoot = %s/docroot" % webDir, file=webFile) + print("webServer.allmachinesfn = /dev/null", file=webFile) + print("webServer.displayPorts = True", file=webFile) + print("webServer.pidFile = %s/webui.pid" % webDir, file=webFile) + print("[chunk]", file=webFile) + print("refreshInterval = 5", file=webFile) + print("currentSize = 30", file=webFile) + print("currentSpan = 10", file=webFile) + print("hourlySize = 30", file=webFile) + print("hourlySpan =120", file=webFile) + print("daylySize = 24", file=webFile) + print("daylySpan = 3600", file=webFile) + print("monthlySize = 30", file=webFile) + print("monthlySpan = 86400", file=webFile) + print("displayPorts = True", file=webFile) + print( + ( + "predefinedHeaders = Buffer-usec-wait-avg&D-Timer-overrun-count&" + "D-Timer-overrun-sec&XMeta-server-location&Client-active&" + "D-Buffer-req-denied-bytes&D-CPU-sys&D-CPU-user&D-Disk-read-bytes&" + "D-Disk-read-count&D-Disk-write-bytes&" + "D-Disk-write-count&Write-appenders&D-Disk-read-errors&" + "D-Disk-write-errors&XMeta-location" + ), + file=webFile, + ) + print( + ( + "predefinedChunkDirHeaders = Chunks&Dev-id&Read-bytes&" + "D-Read-bytes&Read-err&D-Read-err&Read-io&D-Read-io&" + "D-Read-time-microsec&Read-timeout&Space-avail&Space-util-pct&" + "Started-ago&Stopped-ago&Write-bytes&D-Write-bytes&Write-err&" + "D-Write-err&Write-io&D-Write-io&" + "D-Write-time-microsec&Write-timeout&Chunk-server&Chunk-dir" + ), + file=webFile, + ) webFile.close() - print 'Setup config files - OK.' + print("Setup config files - OK.") + def copy_files(config, sourceDir): # Currently, only the web CSS stuff need be copied. - if 'webui' in config.sections(): - webDir = config.get('webui', 'rundir') + if "webui" in config.sections(): + webDir = config.get("webui", "rundir") if webDir: - webDst = webDir + '/docroot' - webSrc = sourceDir + '/webui/files' + webDst = webDir + "/docroot" + webSrc = sourceDir + "/webui/files" duplicate_tree(webSrc, webDst) + def start_servers(config, whichServers, createNewFsFlag, authFlag): - startMeta = whichServers in ('meta', 'all') - startChunk = whichServers in ('chunk', 'all') - startWeb = whichServers in ('web', 'all') + startMeta = whichServers in ("meta", "all") + startChunk = whichServers in ("chunk", "all") + startWeb = whichServers in ("web", "all") errors = 0 if startMeta: startWeb = True - metaRunDir = config.get('metaserver', 'rundir') + metaRunDir = config.get("metaserver", "rundir") kill_running_program_pid(Globals.METASERVER, metaRunDir) if metaRunDir: - metaConf = metaRunDir + '/conf/MetaServer.prp' - metaLog = metaRunDir + '/MetaServer.log' - metaOut = metaRunDir + '/MetaServer.out' - if createNewFsFlag and \ - not os.listdir(metaRunDir + '/checkpoints') and \ - not os.listdir(metaRunDir + '/logs'): - command = '%s -c %s > %s 2>&1' % ( - shell_quote(Globals.METASERVER), - shell_quote(metaConf), - shell_quote(metaOut)) + metaConf = metaRunDir + "/conf/MetaServer.prp" + metaLog = metaRunDir + "/MetaServer.log" + metaOut = metaRunDir + "/MetaServer.out" + if ( + createNewFsFlag + and not os.listdir(metaRunDir + "/checkpoints") + and not os.listdir(metaRunDir + "/logs") + ): + command = "%s -c %s > %s 2>&1" % ( + shell_quote(Globals.METASERVER), + shell_quote(metaConf), + shell_quote(metaOut), + ) if run_command(command) > 0: - print '*** metaserver failed create empty file system' + print("*** metaserver failed create empty file system") errors = errors + 1 if errors == 0: - command = '%s %s %s > %s 2>&1 &' % ( - shell_quote(Globals.METASERVER), - shell_quote(metaConf), - shell_quote(metaLog), - shell_quote(metaOut)) + command = "%s %s %s > %s 2>&1 &" % ( + shell_quote(Globals.METASERVER), + shell_quote(metaConf), + shell_quote(metaLog), + shell_quote(metaOut), + ) if run_command(command) > 0: - print '*** metaserver failed to start' + print("*** metaserver failed to start") errors = errors + 1 else: - print 'Meta server started, listening on %s:%d' %( - config.get('metaserver', 'hostname'), - config.getint('metaserver', 'clientport')) + print( + "Meta server started, listening on %s:%d" + % ( + config.get("metaserver", "hostname"), + config.getint("metaserver", "clientport"), + ) + ) if startChunk: for section in config.sections(): - if section.startswith('chunkserver'): - chunkRunDir = config.get(section, 'rundir') + if section.startswith("chunkserver"): + chunkRunDir = config.get(section, "rundir") kill_running_program_pid(Globals.CHUNKSERVER, chunkRunDir) if chunkRunDir: - chunkConf = chunkRunDir + '/conf/ChunkServer.prp' - chunkLog = chunkRunDir + '/ChunkServer.log' - chunkOut = chunkRunDir + '/ChunkServer.out' - command = '%s %s %s > %s 2>&1 &' % ( - shell_quote(Globals.CHUNKSERVER), - shell_quote(chunkConf), - shell_quote(chunkLog), - shell_quote(chunkOut)) + chunkConf = chunkRunDir + "/conf/ChunkServer.prp" + chunkLog = chunkRunDir + "/ChunkServer.log" + chunkOut = chunkRunDir + "/ChunkServer.out" + command = "%s %s %s > %s 2>&1 &" % ( + shell_quote(Globals.CHUNKSERVER), + shell_quote(chunkConf), + shell_quote(chunkLog), + shell_quote(chunkOut), + ) if run_command(command) > 0: - print '*** chunkserver failed to start' + print("*** chunkserver failed to start") errors = errors + 1 if startWeb: - webDir = config.get('webui', 'rundir') + webDir = config.get("webui", "rundir") kill_running_program_pid(Globals.WEBSERVER, webDir) if webDir: - webConf = webDir + '/conf/WebUI.cfg' - webLog = webDir + '/webui.log' - command = '%s %s > %s 2>&1 &' % ( + webConf = webDir + "/conf/WebUI.cfg" + webLog = webDir + "/webui.log" + command = "%s %s > %s 2>&1 &" % ( shell_quote(Globals.WEBSERVER), shell_quote(webConf), - shell_quote(webLog)) + shell_quote(webLog), + ) if run_command(command) > 0: - print '*** web ui failed to start' + print("*** web ui failed to start") errors = errors + 1 else: - print 'Web ui started: http://localhost:%d' % ( - config.getint('webui', 'webport')) + print( + "Web ui started: http://localhost:%d" + % (config.getint("webui", "webport")) + ) if errors > 0: - print 'Started servers - FAILED.' + print("Started servers - FAILED.") else: - print 'Started servers - OK.' - defaultConfig=None - if config.has_section('client'): - clientDir = config.get('client', 'rundir') - if authFlag and os.path.isfile(clientDir + '/client.prp'): - print 'QFS authentication required.' - defaultConfig = clientDir + '/clidefault.prp' + print("Started servers - OK.") + defaultConfig = None + if config.has_section("client"): + clientDir = config.get("client", "rundir") + if authFlag and os.path.isfile(clientDir + "/client.prp"): + print("QFS authentication required.") + defaultConfig = clientDir + "/clidefault.prp" if os.path.isfile(defaultConfig): - print 'Default QFS client configuration file: %s' % defaultConfig + print( + "Default QFS client configuration file: %s" % defaultConfig + ) if createNewFsFlag and Globals.QFSTOOL: if defaultConfig: - cfgOpt = " -cfg %s" % shell_quote(defaultConfig) - command = '%s%s -mkdir %s' % ( + cfgOpt = " -cfg %s" % shell_quote(defaultConfig) + command = "%s%s -mkdir %s" % ( shell_quote(Globals.QFSTOOL), cfgOpt, - shell_quote('/user/' + getpass.getuser()), + shell_quote("/user/" + getpass.getuser()), + ) + print( + "Creating default user directory by executing:\n%s" % command ) - print 'Creating default user directory by executing:\n%s' % command if run_command(command) != 0: - print '*** failed to created user directory' + print("*** failed to created user directory") else: - print '- OK.' + print("- OK.") + # Need to massage the ~ in the config file paths. Otherwise a directory # with name "~" would get created at $CWD. def parse_config(configFile, objectStoreOnlyModeFlag): - config = ConfigParser.ConfigParser() - config.read(configFile); + config = configparser.ConfigParser() + config.read(configFile) for section in config.sections(): - dir = config.get(section, 'rundir') - config.set(section, 'rundir', os.path.expanduser(dir)) + dir = config.get(section, "rundir") + config.set(section, "rundir", os.path.expanduser(dir)) # attempt to edit chunkserver directory names # only if object store mode is off, otherwise ignore. - if not objectStoreOnlyModeFlag and section.startswith('chunkserver'): - dir = config.get(section, 'chunkdirs') + if not objectStoreOnlyModeFlag and section.startswith("chunkserver"): + dir = config.get(section, "chunkdirs") dirstowrite = [] - dirs = dir.split(' ') + dirs = dir.split(" ") for d in dirs: dirstowrite.append(os.path.expanduser(d)) - config.set(section, 'chunkdirs', ' '.join(dirstowrite)) + config.set(section, "chunkdirs", " ".join(dirstowrite)) return config -if __name__ == '__main__': + +if __name__ == "__main__": opts = parse_command_line() config = parse_config(opts.config_file, opts.object_store) - if opts.action in ('uninstall', 'stop'): - do_cleanup(config, opts.action == 'uninstall') + if opts.action in ("uninstall", "stop"): + do_cleanup(config, opts.action == "uninstall") posix._exit(0) check_binaries(opts.release_dir, opts.source_dir, opts.auth) check_ports(config) - if opts.action == 'install': + if opts.action == "install": setup_directories(config, opts.auth, opts.object_store) setup_config_files(config, opts.auth, opts.object_store) copy_files(config, opts.source_dir) - elif opts.action == 'start': + elif opts.action == "start": check_directories(config) - start_servers(config, 'all', opts.action == 'install', opts.auth) + start_servers(config, "all", opts.action == "install", opts.auth) diff --git a/ext/gf-complete/Makefile.in b/ext/gf-complete/Makefile.in index ac94929ad..ddb984e96 100644 --- a/ext/gf-complete/Makefile.in +++ b/ext/gf-complete/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.17 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2024 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -73,6 +73,8 @@ am__make_running_with_option = \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +am__rm_f = rm -f $(am__rm_f_notfound) +am__rm_rf = rm -rf $(am__rm_f_notfound) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -159,10 +161,9 @@ 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; }; \ + { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \ } am__installdirs = "$(DESTDIR)$(includedir)" HEADERS = $(include_HEADERS) @@ -191,9 +192,6 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/include/config.h.in AUTHORS COPYING ChangeLog \ @@ -204,8 +202,8 @@ 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)" \ + find "$(distdir)" -type d ! -perm -700 -exec chmod u+rwx {} ';' \ + ; rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) @@ -235,12 +233,16 @@ am__relativize = \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best +GZIP_ENV = -9 DIST_TARGETS = dist-gzip +# Exists only to be overridden by the user if desired. +AM_DISTCHECK_DVI_TARGET = dvi distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' -distcleancheck_listfiles = find . -type f -print +distcleancheck_listfiles = \ + find . \( -type f -a \! \ + \( -name .nfs* -o -name .smb* -o -name .__afs* \) \) -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -251,8 +253,9 @@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CFLAGS = @CFLAGS@ -CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DLLTOOL = @DLLTOOL@ @@ -262,6 +265,7 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ @@ -312,8 +316,10 @@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__leading_dot = @am__leading_dot@ +am__rm_f_notfound = @am__rm_f_notfound@ am__tar = @am__tar@ am__untar = @am__untar@ +am__xargs_n = @am__xargs_n@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -346,6 +352,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -399,12 +406,12 @@ include/config.h: include/stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) include/stamp-h1 include/stamp-h1: $(top_srcdir)/include/config.h.in $(top_builddir)/config.status - @rm -f include/stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status include/config.h + $(AM_V_at)rm -f include/stamp-h1 + $(AM_V_GEN)cd $(top_builddir) && $(SHELL) ./config.status include/config.h $(top_srcdir)/include/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f include/stamp-h1 - touch $@ + $(AM_V_GEN)($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + $(AM_V_at)rm -f include/stamp-h1 + $(AM_V_at)touch $@ distclean-hdr: -rm -f include/config.h include/stamp-h1 @@ -544,13 +551,12 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" + $(AM_V_at)$(MKDIR_P) "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -628,6 +634,10 @@ dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) +dist-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(am__post_remove_distdir) + dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @@ -657,7 +667,7 @@ dist dist-all: distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + eval GZIP= gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ @@ -667,9 +677,11 @@ distcheck: dist *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + eval GZIP= gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) @@ -685,7 +697,7 @@ distcheck: dist $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ @@ -768,8 +780,8 @@ mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -$(am__rm_f) $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -850,18 +862,19 @@ uninstall-am: uninstall-includeHEADERS am--refresh check check-am clean clean-cscope clean-generic \ clean-libtool cscope cscopelist-am ctags ctags-am dist \ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ - dist-xz dist-zip distcheck distclean distclean-generic \ - distclean-hdr distclean-libtool distclean-tags distcleancheck \ - distdir distuninstallcheck dvi dvi-am html html-am info \ - info-am install install-am install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-includeHEADERS \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am uninstall-includeHEADERS + dist-xz dist-zip dist-zstd distcheck distclean \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-includeHEADERS install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-includeHEADERS .PRECIOUS: Makefile @@ -872,3 +885,10 @@ uninstall-am: uninstall-includeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: + +# Tell GNU make to disable its built-in pattern rules. +%:: %,v +%:: RCS/%,v +%:: RCS/% +%:: s.% +%:: SCCS/s.% diff --git a/ext/gf-complete/aclocal.m4 b/ext/gf-complete/aclocal.m4 index a50bc2419..03a10d41f 100644 --- a/ext/gf-complete/aclocal.m4 +++ b/ext/gf-complete/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.1 -*- Autoconf -*- +# generated automatically by aclocal 1.17 -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2024 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -14,13 +14,13 @@ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.72],, +[m4_warning([this file was generated for autoconf 2.72. 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-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.]) # 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.16' +[am__api_version='1.17' 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.16.1], [], +m4_if([$1], [1.17], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_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.16.1])dnl +[AM_AUTOMAKE_VERSION([1.17])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-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -143,7 +143,7 @@ fi])]) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -171,6 +171,10 @@ m4_defn([AC_PROG_CC]) # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl +m4_ifdef([_$0_ALREADY_INIT], + [m4_fatal([$0 expanded multiple times +]m4_defn([_$0_ALREADY_INIT]))], + [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])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 @@ -207,7 +211,7 @@ m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl @@ -259,7 +263,21 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) -AC_REQUIRE([AM_SILENT_RULES])dnl +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi +AC_SUBST([CTAGS]) +if test -z "$ETAGS"; then + ETAGS=etags +fi +AC_SUBST([ETAGS]) +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi +AC_SUBST([CSCOPE]) + +AC_REQUIRE([_AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. @@ -267,47 +285,9 @@ AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +AC_REQUIRE([_AM_PROG_RM_F]) +AC_REQUIRE([_AM_PROG_XARGS_N]) -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. @@ -340,7 +320,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -361,7 +341,7 @@ if test x"${install_sh+set}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -383,7 +363,7 @@ AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -418,7 +398,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -439,12 +419,7 @@ 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 + MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then @@ -457,7 +432,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -486,7 +461,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -533,7 +508,23 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2022-2024 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_RM_F +# --------------- +# Check whether 'rm -f' without any arguments works. +# https://bugs.gnu.org/10828 +AC_DEFUN([_AM_PROG_RM_F], +[am__rm_f_notfound= +AS_IF([(rm -f && rm -fr && rm -rf) 2>/dev/null], [], [am__rm_f_notfound='""']) +AC_SUBST(am__rm_f_notfound) +]) + +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -552,16 +543,169 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# _AM_SLEEP_FRACTIONAL_SECONDS +# ---------------------------- +AC_DEFUN([_AM_SLEEP_FRACTIONAL_SECONDS], [dnl +AC_CACHE_CHECK([whether sleep supports fractional seconds], + am_cv_sleep_fractional_seconds, [dnl +AS_IF([sleep 0.001 2>/dev/null], [am_cv_sleep_fractional_seconds=yes], + [am_cv_sleep_fractional_seconds=no]) +])]) + +# _AM_FILESYSTEM_TIMESTAMP_RESOLUTION +# ----------------------------------- +# Determine the filesystem's resolution for file modification +# timestamps. The coarsest we know of is FAT, with a resolution +# of only two seconds, even with the most recent "exFAT" extensions. +# The finest (e.g. ext4 with large inodes, XFS, ZFS) is one +# nanosecond, matching clock_gettime. However, it is probably not +# possible to delay execution of a shell script for less than one +# millisecond, due to process creation overhead and scheduling +# granularity, so we don't check for anything finer than that. (See below.) +AC_DEFUN([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION], [dnl +AC_REQUIRE([_AM_SLEEP_FRACTIONAL_SECONDS]) +AC_CACHE_CHECK([filesystem timestamp resolution], + am_cv_filesystem_timestamp_resolution, [dnl +# Default to the worst case. +am_cv_filesystem_timestamp_resolution=2 + +# Only try to go finer than 1 sec if sleep can do it. +# Don't try 1 sec, because if 0.01 sec and 0.1 sec don't work, +# - 1 sec is not much of a win compared to 2 sec, and +# - it takes 2 seconds to perform the test whether 1 sec works. +# +# Instead, just use the default 2s on platforms that have 1s resolution, +# accept the extra 1s delay when using $sleep in the Automake tests, in +# exchange for not incurring the 2s delay for running the test for all +# packages. +# +am_try_resolutions= +if test "$am_cv_sleep_fractional_seconds" = yes; then + # Even a millisecond often causes a bunch of false positives, + # so just try a hundredth of a second. The time saved between .001 and + # .01 is not terribly consequential. + am_try_resolutions="0.01 0.1 $am_try_resolutions" +fi + +# In order to catch current-generation FAT out, we must *modify* files +# that already exist; the *creation* timestamp is finer. Use names +# that make ls -t sort them differently when they have equal +# timestamps than when they have distinct timestamps, keeping +# in mind that ls -t prints the *newest* file first. +rm -f conftest.ts? +: > conftest.ts1 +: > conftest.ts2 +: > conftest.ts3 + +# Make sure ls -t actually works. Do 'set' in a subshell so we don't +# clobber the current shell's arguments. (Outer-level square brackets +# are removed by m4; they're present so that m4 does not expand +# ; be careful, easy to get confused.) +if ( + set X `[ls -t conftest.ts[12]]` && + { + test "$[]*" != "X conftest.ts1 conftest.ts2" || + test "$[]*" != "X conftest.ts2 conftest.ts1"; + } +); then :; else + # 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_ECHO_UNQUOTED( + ["Bad output from ls -t: \"`[ls -t conftest.ts[12]]`\""], + [AS_MESSAGE_LOG_FD]) + AC_MSG_FAILURE([ls -t produces unexpected output. +Make sure there is not a broken ls alias in your environment.]) +fi + +for am_try_res in $am_try_resolutions; do + # Any one fine-grained sleep might happen to cross the boundary + # between two values of a coarser actual resolution, but if we do + # two fine-grained sleeps in a row, at least one of them will fall + # entirely within a coarse interval. + echo alpha > conftest.ts1 + sleep $am_try_res + echo beta > conftest.ts2 + sleep $am_try_res + echo gamma > conftest.ts3 + + # We assume that 'ls -t' will make use of high-resolution + # timestamps if the operating system supports them at all. + if (set X `ls -t conftest.ts?` && + test "$[]2" = conftest.ts3 && + test "$[]3" = conftest.ts2 && + test "$[]4" = conftest.ts1); then + # + # Ok, ls -t worked. If we're at a resolution of 1 second, we're done, + # because we don't need to test make. + make_ok=true + if test $am_try_res != 1; then + # But if we've succeeded so far with a subsecond resolution, we + # have one more thing to check: make. It can happen that + # everything else supports the subsecond mtimes, but make doesn't; + # notably on macOS, which ships make 3.81 from 2006 (the last one + # released under GPLv2). https://bugs.gnu.org/68808 + # + # We test $MAKE if it is defined in the environment, else "make". + # It might get overridden later, but our hope is that in practice + # it does not matter: it is the system "make" which is (by far) + # the most likely to be broken, whereas if the user overrides it, + # probably they did so with a better, or at least not worse, make. + # https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html + # + # Create a Makefile (real tab character here): + rm -f conftest.mk + echo 'conftest.ts1: conftest.ts2' >conftest.mk + echo ' touch conftest.ts2' >>conftest.mk + # + # Now, running + # touch conftest.ts1; touch conftest.ts2; make + # should touch ts1 because ts2 is newer. This could happen by luck, + # but most often, it will fail if make's support is insufficient. So + # test for several consecutive successes. + # + # (We reuse conftest.ts[12] because we still want to modify existing + # files, not create new ones, per above.) + n=0 + make=${MAKE-make} + until test $n -eq 3; do + echo one > conftest.ts1 + sleep $am_try_res + echo two > conftest.ts2 # ts2 should now be newer than ts1 + if $make -f conftest.mk | grep 'up to date' >/dev/null; then + make_ok=false + break # out of $n loop + fi + n=`expr $n + 1` + done + fi + # + if $make_ok; then + # Everything we know to check worked out, so call this resolution good. + am_cv_filesystem_timestamp_resolution=$am_try_res + break # out of $am_try_res loop + fi + # Otherwise, we'll go on to check the next resolution. + fi +done +rm -f conftest.ts? +# (end _am_filesystem_timestamp_resolution) +])]) + # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) +[AC_REQUIRE([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION]) +# This check should not be cached, as it may vary across builds of +# different projects. +AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -580,49 +724,40 @@ esac # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! +am_build_env_is_sane=no +am_has_slept=no +rm -f conftest.file +for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + 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 + test "$[]2" = conftest.file + ); then + am_build_env_is_sane=yes + break + fi + # Just in case. + sleep "$am_cv_filesystem_timestamp_resolution" + am_has_slept=yes +done + +AC_MSG_RESULT([$am_build_env_is_sane]) +if test "$am_build_env_is_sane" = no; then + AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi -AC_MSG_RESULT([yes]) + # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & +AS_IF([test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1],, [dnl + ( sleep "$am_cv_filesystem_timestamp_resolution" ) & am_sleep_pid=$! -fi +]) AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then @@ -633,18 +768,18 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl +# _AM_SILENT_RULES +# ---------------- +# Enable less verbose build rules support. +AC_DEFUN([_AM_SILENT_RULES], +[AM_DEFAULT_VERBOSITY=1 +AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) @@ -652,11 +787,6 @@ AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. @@ -675,14 +805,6 @@ am__doit: else am_cv_make_support_nested_variables=no fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl @@ -691,9 +813,33 @@ AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +dnl Delay evaluation of AM_DEFAULT_VERBOSITY to the end to allow multiple calls +dnl to AM_SILENT_RULES to change the default value. +AC_CONFIG_COMMANDS_PRE([dnl +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; +esac +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +])dnl ]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Set the default verbosity level to DEFAULT ("yes" being less verbose, "no" or +# empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_REQUIRE([_AM_SILENT_RULES]) +AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])]) + +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -721,7 +867,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -740,7 +886,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -786,15 +932,19 @@ m4_if([$1], [v7], am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) + if test x$am_uid = xunknown; then + AC_MSG_WARN([ancient id detected; assuming current UID is ok, but dist-ustar might not work]) + elif test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) else - AC_MSG_RESULT([no]) - _am_tools=none + AC_MSG_RESULT([no]) + _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) + if test x$gm_gid = xunknown; then + AC_MSG_WARN([ancient id detected; assuming current GID is ok, but dist-ustar might not work]) + elif test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none @@ -871,6 +1021,26 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR +# Copyright (C) 2022-2024 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_XARGS_N +# ---------------- +# Check whether 'xargs -n' works. It should work everywhere, so the fallback +# is not optimized at all as we never expect to use it. +AC_DEFUN([_AM_PROG_XARGS_N], +[AC_CACHE_CHECK([xargs -n works], am_cv_xargs_n_works, [dnl +AS_IF([test "`echo 1 2 3 | xargs -n2 echo`" = "1 2 +3"], [am_cv_xargs_n_works=yes], [am_cv_xargs_n_works=no])]) +AS_IF([test "$am_cv_xargs_n_works" = yes], [am__xargs_n='xargs -n'], [dnl + am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "$@" "$am__xargs_n_arg"; done; }' +])dnl +AC_SUBST(am__xargs_n) +]) + m4_include([m4/ax_check_compile_flag.m4]) m4_include([m4/ax_ext.m4]) m4_include([m4/libtool.m4]) diff --git a/ext/gf-complete/configure b/ext/gf-complete/configure index b87a40699..039fa940f 100755 --- a/ext/gf-complete/configure +++ b/ext/gf-complete/configure @@ -1,9 +1,10 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for gf-complete 1.0. +# Generated by GNU Autoconf 2.72 for gf-complete 1.0. # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation, +# Inc. # # # This configure script is free software; the Free Software Foundation @@ -14,63 +15,65 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +if test ${ZSH_VERSION+y} && (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 #( +else case e in #( + e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; +esac ;; esac fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. 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 +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; 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 || @@ -79,13 +82,6 @@ if test "${PATH_SEPARATOR+set}" != set; then 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 #(( @@ -94,43 +90,27 @@ case $0 in #(( 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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' +# 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 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. @@ -151,26 +131,28 @@ case $- in # (((( esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 +# out after a failed 'exec'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + as_bourne_compatible="if test \${ZSH_VERSION+y} && (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 #( +else case e in #( + e) case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; +esac ;; esac fi " @@ -185,12 +167,16 @@ 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 : +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : -else - exitcode=1; echo positional parameters were not saved. +else case e in #( + e) exitcode=1; echo positional parameters were not saved. ;; +esac fi test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO @@ -205,30 +191,39 @@ test -x / || exit 1" 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 : + if (eval "$as_required") 2>/dev/null +then : as_have_required=yes -else - as_have_required=no +else case e in #( + e) as_have_required=no ;; +esac fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac 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 + 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 : + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 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 : + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : break 2 fi fi @@ -236,14 +231,22 @@ fi 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 $as_found +then : + +else case e in #( + e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi ;; +esac +fi - if test "x$CONFIG_SHELL" != x; then : + if test "x$CONFIG_SHELL" != x +then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also @@ -260,25 +263,27 @@ case $- in # (((( esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +# out after a failed 'exec'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, + printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 -fi +fi ;; +esac fi fi SHELL=${CONFIG_SHELL-/bin/sh} @@ -299,6 +304,7 @@ as_fn_unset () } as_unset=as_fn_unset + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -330,7 +336,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -339,7 +345,7 @@ $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" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -378,16 +384,18 @@ as_fn_executable_p () # 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 : +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 () +else case e in #( + e) as_fn_append () { eval $1=\$$1\$2 - } + } ;; +esac fi # as_fn_append # as_fn_arith ARG... @@ -395,16 +403,18 @@ fi # as_fn_append # 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 : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else - as_fn_arith () +else case e in #( + e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` - } + } ;; +esac fi # as_fn_arith @@ -418,9 +428,9 @@ 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -447,7 +457,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -480,6 +490,8 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits /[$]LINENO/= ' <$as_myself | sed ' + t clear + :clear s/[$]LINENO.*/&-/ t lineno b @@ -491,7 +503,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits 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; } + { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall @@ -505,6 +517,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits exit } + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -518,6 +534,12 @@ case `echo -n x` in #((((( ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -529,9 +551,9 @@ if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable. + # In both cases, we have to default to 'cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then @@ -556,10 +578,12 @@ as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed '$as_sed_sh'" # deprecated SHELL=${CONFIG_SHELL-/bin/sh} @@ -594,40 +618,36 @@ PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include +#include +#ifdef HAVE_STDIO_H +# include #endif -#ifdef STDC_HEADERS +#ifdef HAVE_STDLIB_H # 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_STRINGS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif #ifdef HAVE_UNISTD_H # include #endif" +ac_header_c_list= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS @@ -640,7 +660,6 @@ SIMD_FLAGS MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE -CPP LT_SYS_LIBRARY_PATH OTOOL64 OTOOL @@ -678,10 +697,15 @@ build_vendor build_cpu build LIBTOOL +am__xargs_n +am__rm_f_notfound AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V +CSCOPE +ETAGS +CTAGS am__untar am__tar AMTAR @@ -724,6 +748,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -771,8 +796,7 @@ CFLAGS LDFLAGS LIBS CPPFLAGS -LT_SYS_LIBRARY_PATH -CPP' +LT_SYS_LIBRARY_PATH' # Initialize some variables set by options. @@ -811,6 +835,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -840,8 +865,6 @@ do *) ac_optarg=yes ;; esac - # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; @@ -882,9 +905,9 @@ do 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" + as_fn_error $? "invalid feature name: '$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -908,9 +931,9 @@ do 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" + as_fn_error $? "invalid feature name: '$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -1063,6 +1086,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1112,9 +1144,9 @@ do 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" + as_fn_error $? "invalid package name: '$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1128,9 +1160,9 @@ do 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" + as_fn_error $? "invalid package name: '$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1158,8 +1190,8 @@ do | --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" + -*) as_fn_error $? "unrecognized option: '$ac_option' +Try '$0 --help' for more information" ;; *=*) @@ -1167,16 +1199,16 @@ Try \`$0 --help' for more information" # 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'" ;; + 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 + printf "%s\n" "$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 + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; @@ -1192,7 +1224,7 @@ 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 ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1200,7 +1232,7 @@ fi 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 + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1217,7 +1249,7 @@ do 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' +# 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 @@ -1256,7 +1288,7 @@ $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" | +printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1285,7 +1317,7 @@ 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_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)` @@ -1313,7 +1345,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures gf-complete 1.0 to adapt to many kinds of systems. +'configure' configures gf-complete 1.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1327,11 +1359,11 @@ Configuration: --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 + -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' + -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 \`..'] + --srcdir=DIR find the sources in DIR [configure dir or '..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX @@ -1339,10 +1371,10 @@ Installation directories: --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'. +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. @@ -1353,6 +1385,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1430,9 +1463,8 @@ Some influential environment variables: you have headers in a nonstandard directory LT_SYS_LIBRARY_PATH User-defined run-time library search path. - CPP C preprocessor -Use these variables to override the choices made by `configure' or to help +Use these variables to override the choices made by 'configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. @@ -1451,9 +1483,9 @@ if test "$ac_init_help" = "recursive"; then case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$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|/||'` + ac_top_builddir_sub=`printf "%s\n" "$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/ ;; @@ -1481,7 +1513,8 @@ esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive @@ -1489,7 +1522,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix echo && $SHELL "$ac_srcdir/configure" --help=recursive else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1499,9 +1532,9 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF gf-complete configure 1.0 -generated by GNU Autoconf 2.69 +generated by GNU Autoconf 2.72 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2023 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1518,14 +1551,14 @@ fi ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext + rm -f conftest.$ac_objext conftest.beam 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1533,17 +1566,19 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$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 : + } && test -s conftest.$ac_objext +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval @@ -1556,14 +1591,14 @@ fi 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 + rm -f conftest.$ac_objext conftest.beam 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1571,20 +1606,22 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext - }; then : + } +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would @@ -1603,108 +1640,33 @@ fi 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +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;; +else case e in #( + e) eval "$3=no" ;; 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;; +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; 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 ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval -} # ac_fn_c_try_run +} # ac_fn_c_check_header_compile # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- @@ -1712,28 +1674,22 @@ fi 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 + which can conflict with char $2 (void); below. */ +#include #undef $2 /* Override any GCC internal prototype to avoid an error. @@ -1742,7 +1698,7 @@ else #ifdef __cplusplus extern "C" #endif -char $2 (); +char $2 (void); /* 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. */ @@ -1751,28 +1707,75 @@ choke me #endif int -main () +main (void) { return $2 (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : eval "$3=yes" -else - eval "$3=no" +else case e in #( + e) eval "$3=no" ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext ;; +esac fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to run 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\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$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\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : + ac_retval=0 +else case e in #( + e) printf "%s\n" "$as_me: program exited with status $ac_status" >&5 + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status ;; +esac +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_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes @@ -1787,7 +1790,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; @@ -1797,14 +1800,15 @@ return test_array [0]; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; @@ -1814,24 +1818,26 @@ return test_array [0]; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_hi=$ac_mid; break -else - as_fn_arith $ac_mid + 1 && ac_lo=$as_val +else case e in #( + e) as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; @@ -1841,14 +1847,15 @@ return test_array [0]; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; @@ -1858,24 +1865,28 @@ return test_array [0]; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_lo=$ac_mid; break -else - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val +else case e in #( + e) as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done -else - ac_lo= ac_hi= +else case e in #( + e) ac_lo= ac_hi= ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val @@ -1883,7 +1894,7 @@ while test "x$ac_lo" != "x$ac_hi"; do /* end confdefs.h. */ $4 int -main () +main (void) { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; @@ -1893,12 +1904,14 @@ return test_array [0]; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_hi=$ac_mid -else - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val +else case e in #( + e) as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; @@ -1908,12 +1921,12 @@ esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 -static long int longval () { return $2; } -static unsigned long int ulongval () { return $2; } +static long int longval (void) { return $2; } +static unsigned long int ulongval (void) { return $2; } #include #include int -main () +main (void) { FILE *f = fopen ("conftest.val", "w"); @@ -1941,10 +1954,12 @@ main () return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : echo >>conftest.val; read $3 &5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno -} # ac_fn_c_check_header_mongrel cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by gf-complete $as_me 1.0, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.72. Invocation command line was - $ $0 $@ + $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log @@ -2082,8 +2030,12 @@ 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" + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS @@ -2118,7 +2070,7 @@ do | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; @@ -2153,11 +2105,13 @@ done # 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=$? + # Sanitize IFS. + IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo - $as_echo "## ---------------- ## + printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo @@ -2168,8 +2122,8 @@ trap 'exit_status=$? 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;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -2193,7 +2147,7 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ) echo - $as_echo "## ----------------- ## + printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo @@ -2201,14 +2155,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## + printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo @@ -2216,15 +2170,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then - $as_echo "## ----------- ## + printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo @@ -2232,8 +2186,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; echo fi test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && @@ -2247,65 +2201,50 @@ 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 +printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # 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 + ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" + +for ac_site_file in $ac_site_files 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;} + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$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;} + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } +See 'config.log' for more details" "$LINENO" 5; } fi done @@ -2313,61 +2252,494 @@ 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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$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=: ;; - ,);; - *) +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif + +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (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; +} + +/* C89 style stringification. */ +#define noexpand_stringify(a) #a +const char *stringified = noexpand_stringify(arbitrary+token=sequence); + +/* C89 style token pasting. Exercises some of the corner cases that + e.g. old MSVC gets wrong, but not very hard. */ +#define noexpand_concat(a,b) a##b +#define expand_concat(a,b) noexpand_concat(a,b) +extern int vA; +extern int vbee; +#define aye A +#define bee B +int *pvA = &expand_concat(v,aye); +int *pvbee = &noexpand_concat(v,bee); + +/* 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 do not provoke an error unfortunately, instead are silently treated + as an "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 is necessary to write \x00 == 0 to get something + that is 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 **, int *(*)(struct buf *, struct stat *, int), + int, int);' + +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' + +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +/* Does the compiler advertise C99 conformance? */ +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif + +// See if C++-style comments work. + +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); +extern void free (void *); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + // Work around memory leak warnings. + free (ia); + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +/* Does the compiler advertise C11 conformance? */ +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" +as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" + +# Auxiliary files required by this configure script. +ac_aux_files="compile config.guess config.sub ltmain.sh missing install-sh" + +# Locations in which to look for auxiliary files. +ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.." + +# Search for a directory containing all of the required auxiliary files, +# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. +# If we don't find one directory that contains all the files we need, +# we report the set of missing files from the *first* directory in +# $ac_aux_dir_candidates and give up. +ac_missing_aux_files="" +ac_first_candidate=: +printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in $ac_aux_dir_candidates +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + + printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + ac_aux_dir_found=yes + ac_install_sh= + for ac_aux in $ac_aux_files + do + # As a special case, if "install-sh" is required, that requirement + # can be satisfied by any of "install-sh", "install.sh", or "shtool", + # and $ac_install_sh is set appropriately for whichever one is found. + if test x"$ac_aux" = x"install-sh" + then + if test -f "${as_dir}install-sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + ac_install_sh="${as_dir}install-sh -c" + elif test -f "${as_dir}install.sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + ac_install_sh="${as_dir}install.sh -c" + elif test -f "${as_dir}shtool"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + ac_install_sh="${as_dir}shtool install -c" + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} install-sh" + else + break + fi + fi + else + if test -f "${as_dir}${ac_aux}"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" + else + break + fi + fi + fi + done + if test "$ac_aux_dir_found" = yes; then + ac_aux_dir="$as_dir" + break + fi + ac_first_candidate=false + + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else case e in #( + e) as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 ;; +esac +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. +if test -f "${ac_aux_dir}config.guess"; then + ac_config_guess="$SHELL ${ac_aux_dir}config.guess" +fi +if test -f "${ac_aux_dir}config.sub"; then + ac_config_sub="$SHELL ${ac_aux_dir}config.sub" +fi +if test -f "$ac_aux_dir/configure"; then + ac_configure="$SHELL ${ac_aux_dir}configure" +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,) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5 +printf "%s\n" "$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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: '$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5 +printf "%s\n" "$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=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in @@ -2377,11 +2749,12 @@ $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file' + and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -2400,38 +2773,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -am__api_version='1.16' - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi +am__api_version='1.17' -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. -# Find a good install program. We prefer a C program (faster), + # 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 @@ -2445,20 +2791,25 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +printf %s "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 +if test ${ac_cv_path_install+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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]/* | \ + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + # Account for fact that we put trailing slashes in our PATH walk. +case $as_dir in #(( + ./ | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; @@ -2468,13 +2819,13 @@ case $as_dir/ in #(( # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + 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 + 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 @@ -2482,12 +2833,12 @@ case $as_dir/ in #(( 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" && + 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" + ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" break 3 fi fi @@ -2501,9 +2852,10 @@ esac IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir - + ;; +esac fi - if test "${ac_cv_path_install+set}" = set; then + if test ${ac_cv_path_install+y}; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a @@ -2513,8 +2865,8 @@ fi INSTALL=$ac_install_sh fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +printf "%s\n" "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -2524,8 +2876,167 @@ 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sleep supports fractional seconds" >&5 +printf %s "checking whether sleep supports fractional seconds... " >&6; } +if test ${am_cv_sleep_fractional_seconds+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if sleep 0.001 2>/dev/null +then : + am_cv_sleep_fractional_seconds=yes +else case e in #( + e) am_cv_sleep_fractional_seconds=no ;; +esac +fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_sleep_fractional_seconds" >&5 +printf "%s\n" "$am_cv_sleep_fractional_seconds" >&6; } + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking filesystem timestamp resolution" >&5 +printf %s "checking filesystem timestamp resolution... " >&6; } +if test ${am_cv_filesystem_timestamp_resolution+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) # Default to the worst case. +am_cv_filesystem_timestamp_resolution=2 + +# Only try to go finer than 1 sec if sleep can do it. +# Don't try 1 sec, because if 0.01 sec and 0.1 sec don't work, +# - 1 sec is not much of a win compared to 2 sec, and +# - it takes 2 seconds to perform the test whether 1 sec works. +# +# Instead, just use the default 2s on platforms that have 1s resolution, +# accept the extra 1s delay when using $sleep in the Automake tests, in +# exchange for not incurring the 2s delay for running the test for all +# packages. +# +am_try_resolutions= +if test "$am_cv_sleep_fractional_seconds" = yes; then + # Even a millisecond often causes a bunch of false positives, + # so just try a hundredth of a second. The time saved between .001 and + # .01 is not terribly consequential. + am_try_resolutions="0.01 0.1 $am_try_resolutions" +fi + +# In order to catch current-generation FAT out, we must *modify* files +# that already exist; the *creation* timestamp is finer. Use names +# that make ls -t sort them differently when they have equal +# timestamps than when they have distinct timestamps, keeping +# in mind that ls -t prints the *newest* file first. +rm -f conftest.ts? +: > conftest.ts1 +: > conftest.ts2 +: > conftest.ts3 + +# Make sure ls -t actually works. Do 'set' in a subshell so we don't +# clobber the current shell's arguments. (Outer-level square brackets +# are removed by m4; they're present so that m4 does not expand +# ; be careful, easy to get confused.) +if ( + set X `ls -t conftest.ts[12]` && + { + test "$*" != "X conftest.ts1 conftest.ts2" || + test "$*" != "X conftest.ts2 conftest.ts1"; + } +); then :; else + # 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". + printf "%s\n" ""Bad output from ls -t: \"`ls -t conftest.ts[12]`\""" >&5 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "ls -t produces unexpected output. +Make sure there is not a broken ls alias in your environment. +See 'config.log' for more details" "$LINENO" 5; } +fi + +for am_try_res in $am_try_resolutions; do + # Any one fine-grained sleep might happen to cross the boundary + # between two values of a coarser actual resolution, but if we do + # two fine-grained sleeps in a row, at least one of them will fall + # entirely within a coarse interval. + echo alpha > conftest.ts1 + sleep $am_try_res + echo beta > conftest.ts2 + sleep $am_try_res + echo gamma > conftest.ts3 + + # We assume that 'ls -t' will make use of high-resolution + # timestamps if the operating system supports them at all. + if (set X `ls -t conftest.ts?` && + test "$2" = conftest.ts3 && + test "$3" = conftest.ts2 && + test "$4" = conftest.ts1); then + # + # Ok, ls -t worked. If we're at a resolution of 1 second, we're done, + # because we don't need to test make. + make_ok=true + if test $am_try_res != 1; then + # But if we've succeeded so far with a subsecond resolution, we + # have one more thing to check: make. It can happen that + # everything else supports the subsecond mtimes, but make doesn't; + # notably on macOS, which ships make 3.81 from 2006 (the last one + # released under GPLv2). https://bugs.gnu.org/68808 + # + # We test $MAKE if it is defined in the environment, else "make". + # It might get overridden later, but our hope is that in practice + # it does not matter: it is the system "make" which is (by far) + # the most likely to be broken, whereas if the user overrides it, + # probably they did so with a better, or at least not worse, make. + # https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html + # + # Create a Makefile (real tab character here): + rm -f conftest.mk + echo 'conftest.ts1: conftest.ts2' >conftest.mk + echo ' touch conftest.ts2' >>conftest.mk + # + # Now, running + # touch conftest.ts1; touch conftest.ts2; make + # should touch ts1 because ts2 is newer. This could happen by luck, + # but most often, it will fail if make's support is insufficient. So + # test for several consecutive successes. + # + # (We reuse conftest.ts[12] because we still want to modify existing + # files, not create new ones, per above.) + n=0 + make=${MAKE-make} + until test $n -eq 3; do + echo one > conftest.ts1 + sleep $am_try_res + echo two > conftest.ts2 # ts2 should now be newer than ts1 + if $make -f conftest.mk | grep 'up to date' >/dev/null; then + make_ok=false + break # out of $n loop + fi + n=`expr $n + 1` + done + fi + # + if $make_ok; then + # Everything we know to check worked out, so call this resolution good. + am_cv_filesystem_timestamp_resolution=$am_try_res + break # out of $am_try_res loop + fi + # Otherwise, we'll go on to check the next resolution. + fi +done +rm -f conftest.ts? +# (end _am_filesystem_timestamp_resolution) + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_filesystem_timestamp_resolution" >&5 +printf "%s\n" "$am_cv_filesystem_timestamp_resolution" >&6; } + +# This check should not be cached, as it may vary across builds of +# different projects. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +printf %s "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -2544,49 +3055,45 @@ esac # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! +am_build_env_is_sane=no +am_has_slept=no +rm -f conftest.file +for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + 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 + test "$2" = conftest.file + ); then + am_build_env_is_sane=yes + break + fi + # Just in case. + sleep "$am_cv_filesystem_timestamp_resolution" + am_has_slept=yes +done + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_build_env_is_sane" >&5 +printf "%s\n" "$am_build_env_is_sane" >&6; } +if test "$am_build_env_is_sane" = no; then + as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & +if test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1 +then : + +else case e in #( + e) ( sleep "$am_cv_filesystem_timestamp_resolution" ) & am_sleep_pid=$! + ;; +esac fi rm -f conftest.file @@ -2597,28 +3104,25 @@ test "$program_prefix" != NONE && 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. +# 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"` +program_transform_name=`printf "%s\n" "$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 + + if test x"${MISSING+set}" != xset; then + MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then @@ -2638,38 +3142,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_STRIP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf "%s\n" "$STRIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2678,38 +3188,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_STRIP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf "%s\n" "$ac_ct_STRIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then @@ -2717,8 +3233,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP @@ -2730,98 +3246,110 @@ 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; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 +printf %s "checking for a race-free 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 + if test ${ac_cv_path_mkdir+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ + as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue + case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir ('*'coreutils) '* | \ + *'BusyBox '* | \ 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS - + ;; +esac fi test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then + if test ${ac_cv_path_mkdir+y}; 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" + # As a last resort, use plain mkdir -p, + # in the hope it doesn't have the bugs of ancient mkdir. + MKDIR_P='mkdir -p' fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +printf "%s\n" "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AWK+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +printf "%s\n" "$AWK" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +printf %s "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 +ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval test \${ac_cv_prog_make_${ac_make}_set+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' @@ -2833,15 +3361,16 @@ case `${MAKE-make} -f conftest.make 2>/dev/null` in *) eval ac_cv_prog_make_${ac_make}_set=no;; esac -rm -f conftest.make +rm -f conftest.make ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } SET_MAKE= else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -2854,23 +3383,21 @@ else fi rmdir .tst 2>/dev/null +AM_DEFAULT_VERBOSITY=1 # Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : +if test ${enable_silent_rules+y} +then : enableval=$enable_silent_rules; fi -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=1;; -esac am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +printf %s "checking whether $am_make supports nested variables... " >&6; } +if test ${am_cv_make_support_nested_variables+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if printf "%s\n" 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 @@ -2880,18 +3407,49 @@ am__doit: am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no +fi ;; +esac fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } +AM_BACKSLASH='\' + +am__rm_f_notfound= +if (rm -f && rm -fr && rm -rf) 2>/dev/null +then : + +else case e in #( + e) am__rm_f_notfound='""' ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking xargs -n works" >&5 +printf %s "checking xargs -n works... " >&6; } +if test ${am_cv_xargs_n_works+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test "`echo 1 2 3 | xargs -n2 echo`" = "1 2 +3" +then : + am_cv_xargs_n_works=yes +else case e in #( + e) am_cv_xargs_n_works=no ;; +esac +fi ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_xargs_n_works" >&5 +printf "%s\n" "$am_cv_xargs_n_works" >&6; } +if test "$am_cv_xargs_n_works" = yes +then : + am__xargs_n='xargs -n' +else case e in #( + e) am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "" "$am__xargs_n_arg"; done; }' + ;; +esac fi -AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output @@ -2918,14 +3476,10 @@ fi VERSION='1.0' -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF +printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF +printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h # Some tools Automake needs. @@ -2965,53 +3519,29 @@ am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! +if test -z "$ETAGS"; then + ETAGS=etags +fi + +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. -END - as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 - fi -fi case `pwd` in *\ * | *\ *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac @@ -3031,28 +3561,33 @@ macro_revision='2.4.6' + 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 + + # 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 + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +printf %s "checking build system type... " >&6; } +if test ${ac_cv_build+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_build_alias=$build_alias test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` + 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 - +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 + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +printf "%s\n" "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; @@ -3071,21 +3606,23 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +printf %s "checking host system type... " >&6; } +if test ${ac_cv_host+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 + 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 - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +printf "%s\n" "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; @@ -3125,8 +3662,8 @@ 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +printf %s "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 @@ -3152,12 +3689,12 @@ func_echo_all () } 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; } ;; + printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +printf "%s\n" "printf" >&6; } ;; + print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +printf "%s\n" "print -r" >&6; } ;; + *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +printf "%s\n" "cat" >&6; } ;; esac @@ -3170,6 +3707,15 @@ esac + + + + + + + + + @@ -3181,38 +3727,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3221,38 +3773,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -3260,8 +3818,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -3274,38 +3832,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3314,12 +3878,13 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no @@ -3327,15 +3892,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3351,18 +3920,19 @@ if test $ac_prog_rejected = yes; then # 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+' '}$@" + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi -fi +fi ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3373,38 +3943,44 @@ if test -z "$CC"; then 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3417,38 +3993,44 @@ if test -z "$CC"; then 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3460,34 +4042,140 @@ done 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 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;} +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } +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 +printf "%s\n" "$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 +for ac_option in --version -v -V -qversion -version; 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -3497,7 +4185,7 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -3505,7 +4193,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -3517,9 +4205,9 @@ 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[^ ]*//'` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$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.*" @@ -3540,13 +4228,14 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$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' + printf "%s\n" "$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. @@ -3561,12 +4250,12 @@ do # certainly right. break;; *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + if test ${ac_cv_exeext+y} && 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' + # 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. @@ -3577,48 +4266,52 @@ do done test "$ac_cv_exeext" = no && ac_cv_exeext= -else - ac_file='' +else case e in #( + e) ac_file='' ;; +esac 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 +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$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;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } +See 'config.log' for more details" "$LINENO" 5; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "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 +printf "%s\n" "$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'. + printf "%s\n" "$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 @@ -3628,15 +4321,16 @@ for ac_file in conftest.exe conftest conftest.*; do * ) 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;} +else case e in #( + e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext @@ -3645,9 +4339,11 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { FILE *f = fopen ("conftest.out", "w"); + if (!f) + return 1; return ferror (f) || fclose (f) != 0; ; @@ -3657,8 +4353,8 @@ _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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in @@ -3666,10 +4362,10 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in @@ -3677,39 +4373,41 @@ $as_echo "$ac_try_echo"; } >&5 *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$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; } + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error 77 "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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +rm -f conftest.$ac_ext conftest$ac_cv_exeext \ + conftest.o conftest.obj 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -3723,11 +4421,12 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$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 : + printf "%s\n" "$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 @@ -3736,31 +4435,34 @@ $as_echo "$ac_try_echo"; } >&5 break;; esac done -else - $as_echo "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$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;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext +rm -f conftest.$ac_cv_objext conftest.$ac_ext ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -3770,30 +4472,36 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else - ac_compiler_gnu=no +else case e in #( + e) ac_compiler_gnu=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi -ac_test_CFLAGS=${CFLAGS+set} +ac_test_CFLAGS=${CFLAGS+y} 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" @@ -3801,57 +4509,63 @@ else /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes -else - CFLAGS="" +else case e in #( + e) CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else - ac_c_werror_flag=$ac_save_c_werror_flag +else case e in #( + e) ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +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 +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag ;; +esac 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -3866,94 +4580,153 @@ 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_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC ;; +esac +fi -/* 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]; +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" ;; +esac +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 ;; +esac +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC ;; +esac +fi -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; -} +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" ;; +esac +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 ;; +esac +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +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 : + if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_c89=$ac_arg fi -rm -f core conftest.err conftest.$ac_objext +rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac +fi +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" ;; +esac 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; } ;; + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 ;; esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - +fi fi ac_ext=c @@ -3962,21 +4735,23 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_ext=c + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +printf %s "checking whether $CC understands -c and -o together... " >&6; } +if test ${am_cv_prog_cc_c_o+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -4002,10 +4777,11 @@ _ACEOF fi done rm -f core conftest* - unset am_i + unset am_i ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. @@ -4021,12 +4797,13 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if ${ac_cv_path_SED+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +printf %s "checking for a sed that does not truncate output... " >&6; } +if test ${ac_cv_path_SED+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 @@ -4039,25 +4816,31 @@ else for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + ac_path_SED="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in +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" + printf %s 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" + printf "%s\n" '' >> "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 @@ -4083,10 +4866,11 @@ IFS=$as_save_IFS else ac_cv_path_SED=$SED fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +printf "%s\n" "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed @@ -4103,37 +4887,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +printf %s "checking for grep that handles long lines and -e... " >&6; } +if test ${ac_cv_path_GREP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + ac_path_GREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in +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" + printf %s 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" + printf "%s\n" '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 @@ -4159,19 +4950,21 @@ IFS=$as_save_IFS else ac_cv_path_GREP=$GREP fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +printf %s "checking for egrep... " >&6; } +if test ${ac_cv_path_EGREP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then @@ -4181,25 +4974,31 @@ else 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in +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" + printf %s 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" + printf "%s\n" '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 @@ -4226,19 +5025,23 @@ else ac_cv_path_EGREP=$EGREP fi - fi + fi ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +printf "%s\n" "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" + EGREP_TRADITIONAL=$EGREP + ac_cv_path_EGREP_TRADITIONAL=$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +printf %s "checking for fgrep... " >&6; } +if test ${ac_cv_path_FGREP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 @@ -4248,25 +5051,31 @@ else 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in +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" + printf %s 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" + printf "%s\n" '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 @@ -4293,10 +5102,11 @@ else ac_cv_path_FGREP=$FGREP fi - fi + fi ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -$as_echo "$ac_cv_path_FGREP" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +printf "%s\n" "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" @@ -4321,17 +5131,19 @@ test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : +if test ${with_gnu_ld+y} +then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes -else - with_gnu_ld=no +else case e in #( + e) with_gnu_ld=no ;; +esac fi ac_prog=ld if test yes = "$GCC"; 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +printf %s "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw @@ -4360,16 +5172,17 @@ $as_echo_n "checking for ld used by $CC... " >&6; } ;; esac elif test yes = "$with_gnu_ld"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +printf %s "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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +printf %s "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 +if test ${lt_cv_path_LD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs @@ -4392,24 +5205,26 @@ else IFS=$lt_save_ifs else lt_cv_path_LD=$LD # Let the user override the test with a path. -fi +fi ;; +esac fi LD=$lt_cv_path_LD if test -n "$LD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -$as_echo "$LD" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +printf "%s\n" "$LD" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +printf %s "checking if the linker ($LD) is GNU ld... " >&6; } +if test ${lt_cv_prog_gnu_ld+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &1 &5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 +printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld @@ -4431,12 +5247,13 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if test ${lt_cv_path_NM+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else @@ -4483,10 +5300,11 @@ else IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} +fi ;; +esac fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -$as_echo "$lt_cv_path_NM" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +printf "%s\n" "$lt_cv_path_NM" >&6; } if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else @@ -4499,38 +5317,44 @@ else 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DUMPBIN+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +printf "%s\n" "$DUMPBIN" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4543,38 +5367,44 @@ if test -z "$DUMPBIN"; then 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DUMPBIN+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +printf "%s\n" "$ac_ct_DUMPBIN" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4586,8 +5416,8 @@ done 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN @@ -4615,12 +5445,13 @@ 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" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +printf %s "checking the name lister ($NM) interface... " >&6; } +if test ${lt_cv_nm_interface+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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) @@ -4633,29 +5464,31 @@ else if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi - rm -f conftest* + rm -f conftest* ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 -$as_echo "$lt_cv_nm_interface" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +printf "%s\n" "$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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +printf %s "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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +printf "%s\n" "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +printf %s "checking the maximum length of command line arguments... " >&6; } +if test ${lt_cv_sys_max_cmd_len+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) i=0 teststring=ABCD case $build_os in @@ -4777,15 +5610,16 @@ else fi ;; esac - + ;; +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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len @@ -4829,12 +5663,13 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +printf %s "checking how to convert $build file names to $host format... " >&6; } +if test ${lt_cv_to_host_file_cmd+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys @@ -4865,23 +5700,25 @@ else lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac - + ;; +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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +printf "%s\n" "$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. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +printf %s "checking how to convert $build file names to toolchain format... " >&6; } +if test ${lt_cv_to_tool_file_cmd+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) @@ -4892,26 +5729,29 @@ case $host in esac ;; 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +printf "%s\n" "$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' +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +printf %s "checking for $LD option to reload object files... " >&6; } +if test ${lt_cv_ld_reload_flag+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_ld_reload_flag='-r' ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 -$as_echo "$lt_cv_ld_reload_flag" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +printf "%s\n" "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; @@ -4944,38 +5784,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +printf "%s\n" "$OBJDUMP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4984,38 +5830,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +printf "%s\n" "$ac_ct_OBJDUMP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then @@ -5023,8 +5875,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP @@ -5043,12 +5895,13 @@ 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' +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +printf %s "checking how to recognize dependent libraries... " >&6; } +if test ${lt_cv_deplibs_check_method+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 @@ -5241,10 +6094,11 @@ os2*) lt_cv_deplibs_check_method=pass_all ;; esac - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +printf "%s\n" "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no @@ -5288,38 +6142,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +printf "%s\n" "$DLLTOOL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5328,38 +6188,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +printf "%s\n" "$ac_ct_DLLTOOL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then @@ -5367,8 +6233,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL @@ -5388,12 +6254,13 @@ 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' +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +printf %s "checking how to associate runtime and link libraries... " >&6; } +if test ${lt_cv_sharedlib_from_linklib_cmd+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) @@ -5413,10 +6280,11 @@ cygwin* | mingw* | pw32* | cegcc*) lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac - + ;; +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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +printf "%s\n" "$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 @@ -5432,38 +6300,44 @@ if test -n "$ac_tool_prefix"; then 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5476,38 +6350,44 @@ if test -z "$AR"; then 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf "%s\n" "$ac_ct_AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5519,8 +6399,8 @@ done 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR @@ -5540,30 +6420,32 @@ fi -{ $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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +printf %s "checking for archiver @FILE support... " >&6; } +if test ${lt_cv_ar_at_file+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. @@ -5571,7 +6453,7 @@ if ac_fn_c_try_compile "$LINENO"; then : { { 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ @@ -5580,11 +6462,12 @@ if ac_fn_c_try_compile "$LINENO"; then : rm -f conftest.* libconftest.a fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -$as_echo "$lt_cv_ar_at_file" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +printf "%s\n" "$lt_cv_ar_at_file" >&6; } if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= @@ -5601,38 +6484,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_STRIP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf "%s\n" "$STRIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5641,38 +6530,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_STRIP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf "%s\n" "$ac_ct_STRIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then @@ -5680,8 +6575,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP @@ -5700,38 +6595,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5740,38 +6641,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then @@ -5779,8 +6686,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB @@ -5869,12 +6776,13 @@ 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 - +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +printf %s "checking command to parse $NM output from $compiler object... " >&6; } +if test ${lt_cv_sys_global_symbol_pipe+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] @@ -6025,14 +6933,14 @@ _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 + printf "%s\n" "$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 + printf "%s\n" "$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 @@ -6101,7 +7009,7 @@ _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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then pipe_works=yes fi @@ -6129,18 +7037,19 @@ _LT_EOF lt_cv_sys_global_symbol_pipe= fi done - + ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +printf "%s\n" "failed" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +printf "%s\n" "ok" >&6; } fi # Response file support. @@ -6186,14 +7095,16 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -$as_echo_n "checking for sysroot... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +printf %s "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. -if test "${with_sysroot+set}" = set; then : +if test ${with_sysroot+y} +then : withval=$with_sysroot; -else - with_sysroot=no +else case e in #( + e) with_sysroot=no ;; +esac fi @@ -6210,25 +7121,26 @@ case $with_sysroot in #( no|'') ;; #( *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 -$as_echo "$with_sysroot" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +printf "%s\n" "$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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +printf "%s\n" "${lt_sysroot:-no}" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 -$as_echo_n "checking for a working dd... " >&6; } -if ${ac_cv_path_lt_DD+:} false; then : - $as_echo_n "(cached) " >&6 -else - printf 0123456789abcdef0123456789abcdef >conftest.i +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +printf %s "checking for a working dd... " >&6; } +if test ${ac_cv_path_lt_DD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then @@ -6238,10 +7150,15 @@ if test -z "$lt_DD"; then for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in dd; do + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in dd + do for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" + ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_lt_DD" || continue if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ @@ -6259,18 +7176,20 @@ else ac_cv_path_lt_DD=$lt_DD fi -rm -f conftest.i conftest2.i conftest.out +rm -f conftest.i conftest2.i conftest.out ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 -$as_echo "$ac_cv_path_lt_DD" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +printf "%s\n" "$ac_cv_path_lt_DD" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 -$as_echo_n "checking how to truncate binary pipes... " >&6; } -if ${lt_cv_truncate_bin+:} false; then : - $as_echo_n "(cached) " >&6 -else - printf 0123456789abcdef0123456789abcdef >conftest.i +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +printf %s "checking how to truncate binary pipes... " >&6; } +if test ${lt_cv_truncate_bin+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then @@ -6278,10 +7197,11 @@ if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; the && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out -test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 -$as_echo "$lt_cv_truncate_bin" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +printf "%s\n" "$lt_cv_truncate_bin" >&6; } @@ -6304,7 +7224,8 @@ func_cc_basename () } # Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then : +if test ${enable_libtool_lock+y} +then : enableval=$enable_libtool_lock; fi @@ -6320,7 +7241,7 @@ ia64-*-hpux*) 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) @@ -6340,7 +7261,7 @@ ia64-*-hpux*) 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in @@ -6378,7 +7299,7 @@ mips64*-*linux*) 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then emul=elf case `/usr/bin/file conftest.$ac_objext` in @@ -6419,7 +7340,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) @@ -6482,12 +7403,13 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +printf %s "checking whether the C compiler needs -belf... " >&6; } +if test ${lt_cv_cc_needs_belf+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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' @@ -6497,29 +7419,32 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : lt_cv_cc_needs_belf=yes -else - lt_cv_cc_needs_belf=no +else case e in #( + e) lt_cv_cc_needs_belf=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ 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 - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 -$as_echo "$lt_cv_cc_needs_belf" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +printf "%s\n" "$lt_cv_cc_needs_belf" >&6; } if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS @@ -6532,7 +7457,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; } 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) @@ -6569,38 +7494,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_MANIFEST_TOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +printf "%s\n" "$MANIFEST_TOOL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6609,38 +7540,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then @@ -6648,8 +7585,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL @@ -6659,22 +7596,24 @@ else 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if test ${lt_cv_path_mainfest_tool+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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* + rm -f conftest* ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -$as_echo "$lt_cv_path_mainfest_tool" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; } if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi @@ -6689,38 +7628,44 @@ fi 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DSYMUTIL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +printf "%s\n" "$DSYMUTIL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6729,38 +7674,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DSYMUTIL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +printf "%s\n" "$ac_ct_DSYMUTIL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then @@ -6768,8 +7719,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL @@ -6781,38 +7732,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_NMEDIT+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +printf "%s\n" "$NMEDIT" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6821,38 +7778,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_NMEDIT+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +printf "%s\n" "$ac_ct_NMEDIT" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then @@ -6860,8 +7823,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT @@ -6873,38 +7836,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_LIPO+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +printf "%s\n" "$LIPO" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6913,38 +7882,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_LIPO+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +printf "%s\n" "$ac_ct_LIPO" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then @@ -6952,8 +7927,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO @@ -6965,38 +7940,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OTOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +printf "%s\n" "$OTOOL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -7005,38 +7986,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OTOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +printf "%s\n" "$ac_ct_OTOOL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then @@ -7044,8 +8031,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL @@ -7057,38 +8044,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OTOOL64+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +printf "%s\n" "$OTOOL64" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -7097,38 +8090,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OTOOL64+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +printf "%s\n" "$ac_ct_OTOOL64" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then @@ -7136,8 +8135,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 @@ -7172,12 +8171,13 @@ 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +printf %s "checking for -single_module linker flag... " >&6; } +if test ${lt_cv_apple_cc_single_mod+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 @@ -7203,17 +8203,19 @@ else fi rm -rf libconftest.dylib* rm -f conftest.* - fi + fi ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +printf %s "checking for -exported_symbols_list linker flag... " >&6; } +if test ${lt_cv_ld_exported_symbols_list+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" @@ -7221,32 +8223,36 @@ else /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : lt_cv_ld_exported_symbols_list=yes -else - lt_cv_ld_exported_symbols_list=no +else case e in #( + e) lt_cv_ld_exported_symbols_list=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +printf %s "checking for -force_load linker flag... " >&6; } +if test ${lt_cv_ld_force_load+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF @@ -7271,10 +8277,11 @@ _LT_EOF fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 -$as_echo "$lt_cv_ld_force_load" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +printf "%s\n" "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; @@ -7345,285 +8352,42 @@ func_munge_path_list () 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 +ac_header= ac_cache= +for ac_item in $ac_header_c_list 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 - + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h + fi + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item + fi 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 +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : + +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h fi +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 : + printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h -done +fi @@ -7640,7 +8404,8 @@ done # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : +if test ${enable_shared+y} +then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; @@ -7658,8 +8423,9 @@ if test "${enable_shared+set}" = set; then : IFS=$lt_save_ifs ;; esac -else - enable_shared=yes +else case e in #( + e) enable_shared=yes ;; +esac fi @@ -7671,7 +8437,8 @@ fi # Check whether --enable-static was given. -if test "${enable_static+set}" = set; then : +if test ${enable_static+y} +then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; @@ -7689,8 +8456,9 @@ if test "${enable_static+set}" = set; then : IFS=$lt_save_ifs ;; esac -else - enable_static=yes +else case e in #( + e) enable_static=yes ;; +esac fi @@ -7703,7 +8471,8 @@ fi # Check whether --with-pic was given. -if test "${with_pic+set}" = set; then : +if test ${with_pic+y} +then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; @@ -7720,8 +8489,9 @@ if test "${with_pic+set}" = set; then : IFS=$lt_save_ifs ;; esac -else - pic_mode=default +else case e in #( + e) pic_mode=default ;; +esac fi @@ -7732,7 +8502,8 @@ fi # Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then : +if test ${enable_fast_install+y} +then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; @@ -7750,8 +8521,9 @@ if test "${enable_fast_install+set}" = set; then : IFS=$lt_save_ifs ;; esac -else - enable_fast_install=yes +else case e in #( + e) enable_fast_install=yes ;; +esac fi @@ -7764,11 +8536,12 @@ fi shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[5-9]*,yes) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 -$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +printf %s "checking which variant of shared library versioning to provide... " >&6; } # Check whether --with-aix-soname was given. -if test "${with_aix_soname+set}" = set; then : +if test ${with_aix_soname+y} +then : withval=$with_aix_soname; case $withval in aix|svr4|both) ;; @@ -7777,18 +8550,21 @@ if test "${with_aix_soname+set}" = set; then : ;; esac lt_cv_with_aix_soname=$with_aix_soname -else - if ${lt_cv_with_aix_soname+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_with_aix_soname=aix +else case e in #( + e) if test ${lt_cv_with_aix_soname+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_with_aix_soname=aix ;; +esac fi - with_aix_soname=$lt_cv_with_aix_soname + with_aix_soname=$lt_cv_with_aix_soname ;; +esac fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 -$as_echo "$with_aix_soname" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +printf "%s\n" "$with_aix_soname" >&6; } if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', @@ -7870,12 +8646,13 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +printf %s "checking for objdir... " >&6; } +if test ${lt_cv_objdir+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs @@ -7883,19 +8660,18 @@ else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi -rmdir .libs 2>/dev/null +rmdir .libs 2>/dev/null ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 -$as_echo "$lt_cv_objdir" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +printf "%s\n" "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir -cat >>confdefs.h <<_ACEOF -#define LT_OBJDIR "$lt_cv_objdir/" -_ACEOF +printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h @@ -7941,12 +8717,13 @@ 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +printf %s "checking for ${ac_tool_prefix}file... " >&6; } +if test ${lt_cv_path_MAGIC_CMD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; @@ -7989,16 +8766,17 @@ _LT_EOF IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; +esac ;; 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +printf "%s\n" "$MAGIC_CMD" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -8007,12 +8785,13 @@ 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +printf %s "checking for file... " >&6; } +if test ${lt_cv_path_MAGIC_CMD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; @@ -8055,16 +8834,17 @@ _LT_EOF IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; +esac ;; 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +printf "%s\n" "$MAGIC_CMD" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -8149,12 +8929,13 @@ if test yes = "$GCC"; then 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if test ${lt_cv_prog_compiler_rtti_exceptions+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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" ## exclude from sc_useless_quotes_in_assignment @@ -8182,10 +8963,11 @@ else fi fi $RM conftest* - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" @@ -8542,27 +9324,30 @@ case $host_os in ;; 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +printf %s "checking for $compiler option to produce PIC... " >&6; } +if test ${lt_cv_prog_compiler_pic+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -$as_echo "$lt_cv_prog_compiler_pic" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if test ${lt_cv_prog_compiler_pic_works+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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" ## exclude from sc_useless_quotes_in_assignment @@ -8590,10 +9375,11 @@ else fi fi $RM conftest* - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works"; then case $lt_prog_compiler_pic in @@ -8621,12 +9407,13 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test ${lt_cv_prog_compiler_static_works+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 @@ -8647,10 +9434,11 @@ else fi $RM -r conftest* LDFLAGS=$save_LDFLAGS - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; } if test yes = "$lt_cv_prog_compiler_static_works"; then : @@ -8664,12 +9452,13 @@ 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test ${lt_cv_prog_compiler_c_o+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest @@ -8709,22 +9498,24 @@ else cd .. $RM -r conftest $RM conftest* - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test ${lt_cv_prog_compiler_c_o+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest @@ -8764,10 +9555,11 @@ else cd .. $RM -r conftest $RM conftest* - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } @@ -8775,19 +9567,19 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links=nottested if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +printf %s "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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +printf "%s\n" "$hard_links" >&6; } if test no = "$hard_links"; 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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else @@ -8799,8 +9591,8 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= @@ -9355,21 +10147,23 @@ _LT_EOF if test set = "${lt_cv_aix_libpath+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 + if test ${lt_cv_aix_libpath_+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -9384,12 +10178,13 @@ if ac_fn_c_try_link "$LINENO"; 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 \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi - + ;; +esac fi aix_libpath=$lt_cv_aix_libpath_ @@ -9408,21 +10203,23 @@ fi if test set = "${lt_cv_aix_libpath+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 + if test ${lt_cv_aix_libpath_+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -9437,12 +10234,13 @@ if ac_fn_c_try_link "$LINENO"; 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 \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi - + ;; +esac fi aix_libpath=$lt_cv_aix_libpath_ @@ -9688,12 +10486,13 @@ fi # 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +printf %s "checking if $CC understands -b... " >&6; } +if test ${lt_cv_prog_compiler__b+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext @@ -9714,10 +10513,11 @@ else fi $RM -r conftest* LDFLAGS=$save_LDFLAGS - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 -$as_echo "$lt_cv_prog_compiler__b" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +printf "%s\n" "$lt_cv_prog_compiler__b" >&6; } if test yes = "$lt_cv_prog_compiler__b"; then archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' @@ -9757,28 +10557,32 @@ fi # 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if test ${lt_cv_irix_exported_symbol+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 : +if ac_fn_c_try_link "$LINENO" +then : lt_cv_irix_exported_symbol=yes -else - lt_cv_irix_exported_symbol=no +else case e in #( + e) lt_cv_irix_exported_symbol=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS + LDFLAGS=$save_LDFLAGS ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -$as_echo "$lt_cv_irix_exported_symbol" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; 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 @@ -10058,8 +10862,8 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -$as_echo "$ld_shlibs" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +printf "%s\n" "$ld_shlibs" >&6; } test no = "$ld_shlibs" && can_build_shared=no with_gnu_ld=$with_gnu_ld @@ -10095,18 +10899,19 @@ x|xyes) # 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* + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +printf %s "checking whether -lc should be explicitly linked in... " >&6; } +if test ${lt_cv_archive_cmds_need_lc+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) $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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest @@ -10124,7 +10929,7 @@ else 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no @@ -10136,10 +10941,11 @@ else cat conftest.err 1>&5 fi $RM conftest* - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac @@ -10298,8 +11104,8 @@ esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +printf %s "checking dynamic linker characteristics... " >&6; } if test yes = "$GCC"; then case $host_os in @@ -10860,10 +11666,11 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) 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 + if test ${lt_cv_shlibpath_overrides_runpath+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ @@ -10872,23 +11679,26 @@ else /* end confdefs.h. */ int -main () +main (void) { ; 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 : +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 \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir - + ;; +esac fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath @@ -11116,8 +11926,8 @@ uts4*) dynamic_linker=no ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +printf "%s\n" "$dynamic_linker" >&6; } test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" @@ -11238,8 +12048,8 @@ configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH - { $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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +printf %s "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || @@ -11263,8 +12073,8 @@ else # directories. hardcode_action=unsupported fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 -$as_echo "$hardcode_action" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +printf "%s\n" "$hardcode_action" >&6; } if test relink = "$hardcode_action" || test yes = "$inherit_rpath"; then @@ -11308,50 +12118,59 @@ else 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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. */ + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char dlopen (void); int -main () +main (void) { return dlopen (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no +else case e in #( + e) ac_cv_lib_dl_dlopen=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac 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 : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$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 - +else case e in #( + e) lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes - + ;; +esac fi ;; @@ -11366,183 +12185,222 @@ fi *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" -if test "x$ac_cv_func_shl_load" = xyes; then : +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 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +printf %s "checking for shl_load in -ldld... " >&6; } +if test ${ac_cv_lib_dld_shl_load+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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. */ + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif -char shl_load (); +char shl_load (void); int -main () +main (void) { return shl_load (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_dld_shl_load=yes -else - ac_cv_lib_dld_shl_load=no +else case e in #( + e) ac_cv_lib_dld_shl_load=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac 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 : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +printf "%s\n" "$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 : +else case e in #( + e) 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 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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. */ + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char dlopen (void); int -main () +main (void) { return dlopen (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no +else case e in #( + e) ac_cv_lib_dl_dlopen=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac 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 : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$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 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +printf %s "checking for dlopen in -lsvld... " >&6; } +if test ${ac_cv_lib_svld_dlopen+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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. */ + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char dlopen (void); int -main () +main (void) { return dlopen (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_svld_dlopen=yes -else - ac_cv_lib_svld_dlopen=no +else case e in #( + e) ac_cv_lib_svld_dlopen=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac 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 : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +printf "%s\n" "$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 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +printf %s "checking for dld_link in -ldld... " >&6; } +if test ${ac_cv_lib_dld_dld_link+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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. */ + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif -char dld_link (); +char dld_link (void); int -main () +main (void) { return dld_link (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_dld_dld_link=yes -else - ac_cv_lib_dld_dld_link=no +else case e in #( + e) ac_cv_lib_dld_dld_link=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac 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 : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +printf "%s\n" "$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 - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi ;; @@ -11565,12 +12423,13 @@ fi 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 yes = "$cross_compiling"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +printf %s "checking whether a program can dlopen itself... " >&6; } +if test ${lt_cv_dlopen_self+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test yes = "$cross_compiling"; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -11648,7 +12507,7 @@ _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 + printf "%s\n" "$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=$? @@ -11664,19 +12523,21 @@ _LT_EOF fi rm -fr conftest* - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 -$as_echo "$lt_cv_dlopen_self" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +printf "%s\n" "$lt_cv_dlopen_self" >&6; } if test yes = "$lt_cv_dlopen_self"; 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 yes = "$cross_compiling"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +printf %s "checking whether a statically linked program can dlopen itself... " >&6; } +if test ${lt_cv_dlopen_self_static+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test yes = "$cross_compiling"; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -11754,7 +12615,7 @@ _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 + printf "%s\n" "$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=$? @@ -11770,10 +12631,11 @@ _LT_EOF fi rm -fr conftest* - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 -$as_echo "$lt_cv_dlopen_self_static" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +printf "%s\n" "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS=$save_CPPFLAGS @@ -11811,13 +12673,13 @@ 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +printf %s "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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in @@ -11825,16 +12687,16 @@ else 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi ;; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ;; esac fi @@ -11851,13 +12713,13 @@ fi # Report what 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +printf %s "checking if libtool supports shared libraries... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +printf "%s\n" "$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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +printf %s "checking whether to build shared libraries... " >&6; } test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and @@ -11881,15 +12743,15 @@ $as_echo_n "checking whether to build shared libraries... " >&6; } fi ;; esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +printf "%s\n" "$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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +printf %s "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 -$as_echo "$enable_static" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +printf "%s\n" "$enable_static" >&6; } @@ -11933,17 +12795,19 @@ ac_config_headers="$ac_config_headers include/config.h" # This prevents './configure; make' from trying to run autotools. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +printf %s "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : +if test ${enable_maintainer_mode+y} +then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no +else case e in #( + e) USE_MAINTAINER_MODE=no ;; +esac fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +printf "%s\n" "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' @@ -11964,38 +12828,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -12004,38 +12874,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -12043,8 +12919,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -12057,38 +12933,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -12097,12 +12979,13 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no @@ -12110,15 +12993,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -12134,18 +13021,19 @@ if test $ac_prog_rejected = yes; then # 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+' '}$@" + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi -fi +fi ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -12156,38 +13044,44 @@ if test -z "$CC"; then 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -12200,38 +13094,44 @@ if test -z "$CC"; then 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -12243,34 +13143,140 @@ done 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 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;} +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } +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 +printf "%s\n" "$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 +for ac_option in --version -v -V -qversion -version; 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -12280,20 +13286,21 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -12303,30 +13310,36 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else - ac_compiler_gnu=no +else case e in #( + e) ac_compiler_gnu=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi -ac_test_CFLAGS=${CFLAGS+set} +ac_test_CFLAGS=${CFLAGS+y} 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" @@ -12334,57 +13347,63 @@ else /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes -else - CFLAGS="" +else case e in #( + e) CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else - ac_c_werror_flag=$ac_save_c_werror_flag +else case e in #( + e) ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +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 +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag ;; +esac 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -12399,94 +13418,153 @@ 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_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c11=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC ;; +esac +fi + +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" ;; +esac +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 ;; +esac +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC ;; +esac +fi + +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" ;; +esac +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 ;; +esac +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} +$ac_c_conftest_c89_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +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 : + if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_c89=$ac_arg fi -rm -f core conftest.err conftest.$ac_objext +rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac +fi +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" ;; +esac 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; } ;; + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 ;; esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - +fi fi ac_ext=c @@ -12495,21 +13573,23 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_ext=c + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +printf %s "checking whether $CC understands -c and -o together... " >&6; } +if test ${am_cv_prog_cc_c_o+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -12535,10 +13615,11 @@ _ACEOF fi done rm -f core conftest* - unset am_i + unset am_i ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. @@ -12557,71 +13638,78 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if ${ac_cv_sizeof_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 +printf %s "checking size of long... " >&6; } +if test ${ac_cv_sizeof_long+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default" +then : + +else case e in #( + e) if test "$ac_cv_type_long" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 - fi + fi ;; +esac fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 +printf "%s\n" "$ac_cv_sizeof_long" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF +printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h # Check for functions to provide aligned memory # -for ac_func in posix_memalign + + for ac_func in posix_memalign do : ac_fn_c_check_func "$LINENO" "posix_memalign" "ac_cv_func_posix_memalign" -if test "x$ac_cv_func_posix_memalign" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_POSIX_MEMALIGN 1 -_ACEOF +if test "x$ac_cv_func_posix_memalign" = xyes +then : + printf "%s\n" "#define HAVE_POSIX_MEMALIGN 1" >>confdefs.h found_memalign=yes; break fi -done +done -if test "x$found_memalign" != "xyes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No function for aligned memory allocation found" >&5 -$as_echo "$as_me: WARNING: No function for aligned memory allocation found" >&2;} +if test "x$found_memalign" != "xyes" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: No function for aligned memory allocation found" >&5 +printf "%s\n" "$as_me: WARNING: No function for aligned memory allocation found" >&2;} fi # Check whether --enable-debug-functions was given. -if test "${enable_debug_functions+set}" = set; then : +if test ${enable_debug_functions+y} +then : enableval=$enable_debug_functions; fi -if test "x$enable_debug_func" = "xyes"; then : +if test "x$enable_debug_func" = "xyes" +then : CPPFLAGS="$CPPFLAGS -DDEBUG_FUNCTIONS" fi # Check whether --enable-debug-cpu was given. -if test "${enable_debug_cpu+set}" = set; then : +if test ${enable_debug_cpu+y} +then : enableval=$enable_debug_cpu; fi -if test "x$enable_debug_cpu" = "xyes"; then : +if test "x$enable_debug_cpu" = "xyes" +then : CPPFLAGS="$CPPFLAGS -DDEBUG_CPU_DETECTION" fi @@ -12631,151 +13719,231 @@ fi case $host_cpu in aarch64*) -$as_echo "#define HAVE_ARCH_AARCH64 /**/" >>confdefs.h +printf "%s\n" "#define HAVE_ARCH_AARCH64 /**/" >>confdefs.h SIMD_FLAGS="$SIMD_FLAGS -DARCH_AARCH64" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NEON is enabled" >&5 -$as_echo_n "checking whether NEON is enabled... " >&6; } -if ${ax_cv_have_neon_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ax_cv_have_neon_ext=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NEON is enabled" >&5 +printf %s "checking whether NEON is enabled... " >&6; } +if test ${ax_cv_have_neon_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_neon_ext=yes ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_neon_ext" >&5 -$as_echo "$ax_cv_have_neon_ext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_neon_ext" >&5 +printf "%s\n" "$ax_cv_have_neon_ext" >&6; } if test "$ax_cv_have_neon_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -march=armv8-a+simd" >&5 -$as_echo_n "checking whether C compiler accepts -march=armv8-a+simd... " >&6; } -if ${ax_cv_check_cflags___march_armv8_apsimd+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -march=armv8-a+simd" >&5 +printf %s "checking whether C compiler accepts -march=armv8-a+simd... " >&6; } +if test ${ax_cv_check_cflags___march_armv8_apsimd+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -march=armv8-a+simd" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___march_armv8_apsimd=yes -else - ax_cv_check_cflags___march_armv8_apsimd=no +else case e in #( + e) ax_cv_check_cflags___march_armv8_apsimd=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___march_armv8_apsimd" >&5 -$as_echo "$ax_cv_check_cflags___march_armv8_apsimd" >&6; } -if test x"$ax_cv_check_cflags___march_armv8_apsimd" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___march_armv8_apsimd" >&5 +printf "%s\n" "$ax_cv_check_cflags___march_armv8_apsimd" >&6; } +if test x"$ax_cv_check_cflags___march_armv8_apsimd" = xyes +then : SIMD_FLAGS="$SIMD_FLAGS -march=armv8-a+simd -DARM_NEON" -else - ax_cv_have_neon_ext=no +else case e in #( + e) ax_cv_have_neon_ext=no ;; +esac fi fi ;; arm*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NEON is enabled" >&5 -$as_echo_n "checking whether NEON is enabled... " >&6; } -if ${ax_cv_have_neon_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ax_cv_have_neon_ext=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NEON is enabled" >&5 +printf %s "checking whether NEON is enabled... " >&6; } +if test ${ax_cv_have_neon_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_neon_ext=yes ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_neon_ext" >&5 -$as_echo "$ax_cv_have_neon_ext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_neon_ext" >&5 +printf "%s\n" "$ax_cv_have_neon_ext" >&6; } if test "$ax_cv_have_neon_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mfpu=neon" >&5 -$as_echo_n "checking whether C compiler accepts -mfpu=neon... " >&6; } -if ${ax_cv_check_cflags___mfpu_neon+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether compiler supports -mfpu=neon" >&5 +printf %s "checking whether compiler supports -mfpu=neon... " >&6; } +if test ${ax_cv_have_mfpu_neon+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_mfpu_neon=yes ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_mfpu_neon" >&5 +printf "%s\n" "$ax_cv_have_mfpu_neon" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mfpu=neon" >&5 +printf %s "checking whether C compiler accepts -mfpu=neon... " >&6; } +if test ${ax_cv_check_cflags___mfpu_neon+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mfpu=neon" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___mfpu_neon=yes -else - ax_cv_check_cflags___mfpu_neon=no +else case e in #( + e) ax_cv_check_cflags___mfpu_neon=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mfpu_neon" >&5 -$as_echo "$ax_cv_check_cflags___mfpu_neon" >&6; } -if test x"$ax_cv_check_cflags___mfpu_neon" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mfpu_neon" >&5 +printf "%s\n" "$ax_cv_check_cflags___mfpu_neon" >&6; } +if test x"$ax_cv_check_cflags___mfpu_neon" = xyes +then : SIMD_FLAGS="$SIMD_FLAGS -mfpu=neon -DARM_NEON" -else - ax_cv_have_neon_ext=no +else case e in #( + e) ax_cv_have_mfpu_neon=no ;; +esac +fi + + if test "$ax_cv_have_mfpu_neon" = yes; then + ax_cv_have_neon_ext=yes + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -DARM_NEON" >&5 +printf %s "checking whether C compiler accepts -DARM_NEON... " >&6; } +if test ${ax_cv_check_cflags___DARM_NEON+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -DARM_NEON" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ax_cv_check_cflags___DARM_NEON=yes +else case e in #( + e) ax_cv_check_cflags___DARM_NEON=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___DARM_NEON" >&5 +printf "%s\n" "$ax_cv_check_cflags___DARM_NEON" >&6; } +if test x"$ax_cv_check_cflags___DARM_NEON" = xyes +then : + SIMD_FLAGS="$SIMD_FLAGS -DARM_NEON" +else case e in #( + e) ax_cv_have_neon_ext=no ;; +esac fi + fi fi ;; powerpc*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether altivec is enabled" >&5 -$as_echo_n "checking whether altivec is enabled... " >&6; } -if ${ax_cv_have_altivec_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ax_cv_have_altivec_ext=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether altivec is enabled" >&5 +printf %s "checking whether altivec is enabled... " >&6; } +if test ${ax_cv_have_altivec_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_altivec_ext=yes ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_altivec_ext" >&5 -$as_echo "$ax_cv_have_altivec_ext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_altivec_ext" >&5 +printf "%s\n" "$ax_cv_have_altivec_ext" >&6; } if test "$ax_cv_have_altivec_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -faltivec" >&5 -$as_echo_n "checking whether C compiler accepts -faltivec... " >&6; } -if ${ax_cv_check_cflags___faltivec+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -faltivec" >&5 +printf %s "checking whether C compiler accepts -faltivec... " >&6; } +if test ${ax_cv_check_cflags___faltivec+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -faltivec" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___faltivec=yes -else - ax_cv_check_cflags___faltivec=no +else case e in #( + e) ax_cv_check_cflags___faltivec=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___faltivec" >&5 -$as_echo "$ax_cv_check_cflags___faltivec" >&6; } -if test x"$ax_cv_check_cflags___faltivec" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___faltivec" >&5 +printf "%s\n" "$ax_cv_check_cflags___faltivec" >&6; } +if test x"$ax_cv_check_cflags___faltivec" = xyes +then : SIMD_FLAGS="$SIMD_FLAGS -faltivec" -else - ax_cv_have_altivec_ext=no +else case e in #( + e) ax_cv_have_altivec_ext=no ;; +esac fi fi @@ -12783,331 +13951,387 @@ fi i[3456]86*|x86_64*|amd64*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse is enabled" >&5 -$as_echo_n "checking whether sse is enabled... " >&6; } -if ${ax_cv_have_sse_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ax_cv_have_sse_ext=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sse is enabled" >&5 +printf %s "checking whether sse is enabled... " >&6; } +if test ${ax_cv_have_sse_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_sse_ext=yes ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse_ext" >&5 -$as_echo "$ax_cv_have_sse_ext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse_ext" >&5 +printf "%s\n" "$ax_cv_have_sse_ext" >&6; } if test "$ax_cv_have_sse_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse" >&5 -$as_echo_n "checking whether C compiler accepts -msse... " >&6; } -if ${ax_cv_check_cflags___msse+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse" >&5 +printf %s "checking whether C compiler accepts -msse... " >&6; } +if test ${ax_cv_check_cflags___msse+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -msse" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___msse=yes -else - ax_cv_check_cflags___msse=no +else case e in #( + e) ax_cv_check_cflags___msse=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse" >&5 -$as_echo "$ax_cv_check_cflags___msse" >&6; } -if test x"$ax_cv_check_cflags___msse" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse" >&5 +printf "%s\n" "$ax_cv_check_cflags___msse" >&6; } +if test x"$ax_cv_check_cflags___msse" = xyes +then : SIMD_FLAGS="$SIMD_FLAGS -msse -DINTEL_SSE" -else - ax_cv_have_sse_ext=no +else case e in #( + e) ax_cv_have_sse_ext=no ;; +esac fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse2 is enabled" >&5 -$as_echo_n "checking whether sse2 is enabled... " >&6; } -if ${ax_cv_have_sse2_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ax_cv_have_sse2_ext=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sse2 is enabled" >&5 +printf %s "checking whether sse2 is enabled... " >&6; } +if test ${ax_cv_have_sse2_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_sse2_ext=yes ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse2_ext" >&5 -$as_echo "$ax_cv_have_sse2_ext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse2_ext" >&5 +printf "%s\n" "$ax_cv_have_sse2_ext" >&6; } if test "$ax_cv_have_sse2_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse2" >&5 -$as_echo_n "checking whether C compiler accepts -msse2... " >&6; } -if ${ax_cv_check_cflags___msse2+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse2" >&5 +printf %s "checking whether C compiler accepts -msse2... " >&6; } +if test ${ax_cv_check_cflags___msse2+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -msse2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___msse2=yes -else - ax_cv_check_cflags___msse2=no +else case e in #( + e) ax_cv_check_cflags___msse2=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse2" >&5 -$as_echo "$ax_cv_check_cflags___msse2" >&6; } -if test x"$ax_cv_check_cflags___msse2" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse2" >&5 +printf "%s\n" "$ax_cv_check_cflags___msse2" >&6; } +if test x"$ax_cv_check_cflags___msse2" = xyes +then : SIMD_FLAGS="$SIMD_FLAGS -msse2 -DINTEL_SSE2" -else - ax_cv_have_sse2_ext=no +else case e in #( + e) ax_cv_have_sse2_ext=no ;; +esac fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse3 is enabled" >&5 -$as_echo_n "checking whether sse3 is enabled... " >&6; } -if ${ax_cv_have_sse3_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ax_cv_have_sse3_ext=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sse3 is enabled" >&5 +printf %s "checking whether sse3 is enabled... " >&6; } +if test ${ax_cv_have_sse3_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_sse3_ext=yes ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse3_ext" >&5 -$as_echo "$ax_cv_have_sse3_ext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse3_ext" >&5 +printf "%s\n" "$ax_cv_have_sse3_ext" >&6; } if test "$ax_cv_have_sse3_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse3" >&5 -$as_echo_n "checking whether C compiler accepts -msse3... " >&6; } -if ${ax_cv_check_cflags___msse3+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse3" >&5 +printf %s "checking whether C compiler accepts -msse3... " >&6; } +if test ${ax_cv_check_cflags___msse3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -msse3" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___msse3=yes -else - ax_cv_check_cflags___msse3=no +else case e in #( + e) ax_cv_check_cflags___msse3=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse3" >&5 -$as_echo "$ax_cv_check_cflags___msse3" >&6; } -if test x"$ax_cv_check_cflags___msse3" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse3" >&5 +printf "%s\n" "$ax_cv_check_cflags___msse3" >&6; } +if test x"$ax_cv_check_cflags___msse3" = xyes +then : SIMD_FLAGS="$SIMD_FLAGS -msse3 -DINTEL_SSE3" -else - ax_cv_have_sse3_ext=no +else case e in #( + e) ax_cv_have_sse3_ext=no ;; +esac fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ssse3 is enabled" >&5 -$as_echo_n "checking whether ssse3 is enabled... " >&6; } -if ${ax_cv_have_ssse3_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ax_cv_have_ssse3_ext=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ssse3 is enabled" >&5 +printf %s "checking whether ssse3 is enabled... " >&6; } +if test ${ax_cv_have_ssse3_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_ssse3_ext=yes ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_ssse3_ext" >&5 -$as_echo "$ax_cv_have_ssse3_ext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_ssse3_ext" >&5 +printf "%s\n" "$ax_cv_have_ssse3_ext" >&6; } if test "$ax_cv_have_ssse3_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mssse3" >&5 -$as_echo_n "checking whether C compiler accepts -mssse3... " >&6; } -if ${ax_cv_check_cflags___mssse3+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mssse3" >&5 +printf %s "checking whether C compiler accepts -mssse3... " >&6; } +if test ${ax_cv_check_cflags___mssse3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mssse3" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___mssse3=yes -else - ax_cv_check_cflags___mssse3=no +else case e in #( + e) ax_cv_check_cflags___mssse3=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mssse3" >&5 -$as_echo "$ax_cv_check_cflags___mssse3" >&6; } -if test x"$ax_cv_check_cflags___mssse3" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mssse3" >&5 +printf "%s\n" "$ax_cv_check_cflags___mssse3" >&6; } +if test x"$ax_cv_check_cflags___mssse3" = xyes +then : SIMD_FLAGS="$SIMD_FLAGS -mssse3 -DINTEL_SSSE3" -else - ax_cv_have_ssse3_ext=no +else case e in #( + e) ax_cv_have_ssse3_ext=no ;; +esac fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pclmuldq is enabled" >&5 -$as_echo_n "checking whether pclmuldq is enabled... " >&6; } -if ${ax_cv_have_pclmuldq_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ax_cv_have_pclmuldq_ext=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pclmuldq is enabled" >&5 +printf %s "checking whether pclmuldq is enabled... " >&6; } +if test ${ax_cv_have_pclmuldq_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_pclmuldq_ext=yes ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_pclmuldq_ext" >&5 -$as_echo "$ax_cv_have_pclmuldq_ext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_pclmuldq_ext" >&5 +printf "%s\n" "$ax_cv_have_pclmuldq_ext" >&6; } if test "$ax_cv_have_pclmuldq_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mpclmul" >&5 -$as_echo_n "checking whether C compiler accepts -mpclmul... " >&6; } -if ${ax_cv_check_cflags___mpclmul+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mpclmul" >&5 +printf %s "checking whether C compiler accepts -mpclmul... " >&6; } +if test ${ax_cv_check_cflags___mpclmul+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mpclmul" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___mpclmul=yes -else - ax_cv_check_cflags___mpclmul=no +else case e in #( + e) ax_cv_check_cflags___mpclmul=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mpclmul" >&5 -$as_echo "$ax_cv_check_cflags___mpclmul" >&6; } -if test x"$ax_cv_check_cflags___mpclmul" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mpclmul" >&5 +printf "%s\n" "$ax_cv_check_cflags___mpclmul" >&6; } +if test x"$ax_cv_check_cflags___mpclmul" = xyes +then : SIMD_FLAGS="$SIMD_FLAGS -mpclmul -DINTEL_SSE4_PCLMUL" -else - ax_cv_have_pclmuldq_ext=no +else case e in #( + e) ax_cv_have_pclmuldq_ext=no ;; +esac fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse4.1 is enabled" >&5 -$as_echo_n "checking whether sse4.1 is enabled... " >&6; } -if ${ax_cv_have_sse41_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ax_cv_have_sse41_ext=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sse4.1 is enabled" >&5 +printf %s "checking whether sse4.1 is enabled... " >&6; } +if test ${ax_cv_have_sse41_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_sse41_ext=yes ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse41_ext" >&5 -$as_echo "$ax_cv_have_sse41_ext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse41_ext" >&5 +printf "%s\n" "$ax_cv_have_sse41_ext" >&6; } if test "$ax_cv_have_sse41_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse4.1" >&5 -$as_echo_n "checking whether C compiler accepts -msse4.1... " >&6; } -if ${ax_cv_check_cflags___msse4_1+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse4.1" >&5 +printf %s "checking whether C compiler accepts -msse4.1... " >&6; } +if test ${ax_cv_check_cflags___msse4_1+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -msse4.1" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___msse4_1=yes -else - ax_cv_check_cflags___msse4_1=no +else case e in #( + e) ax_cv_check_cflags___msse4_1=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse4_1" >&5 -$as_echo "$ax_cv_check_cflags___msse4_1" >&6; } -if test x"$ax_cv_check_cflags___msse4_1" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse4_1" >&5 +printf "%s\n" "$ax_cv_check_cflags___msse4_1" >&6; } +if test x"$ax_cv_check_cflags___msse4_1" = xyes +then : SIMD_FLAGS="$SIMD_FLAGS -msse4.1 -DINTEL_SSE4" -else - ax_cv_have_sse41_ext=no +else case e in #( + e) ax_cv_have_sse41_ext=no ;; +esac fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse4.2 is enabled" >&5 -$as_echo_n "checking whether sse4.2 is enabled... " >&6; } -if ${ax_cv_have_sse42_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ax_cv_have_sse42_ext=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sse4.2 is enabled" >&5 +printf %s "checking whether sse4.2 is enabled... " >&6; } +if test ${ax_cv_have_sse42_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_sse42_ext=yes ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse42_ext" >&5 -$as_echo "$ax_cv_have_sse42_ext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse42_ext" >&5 +printf "%s\n" "$ax_cv_have_sse42_ext" >&6; } if test "$ax_cv_have_sse42_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse4.2" >&5 -$as_echo_n "checking whether C compiler accepts -msse4.2... " >&6; } -if ${ax_cv_check_cflags___msse4_2+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse4.2" >&5 +printf %s "checking whether C compiler accepts -msse4.2... " >&6; } +if test ${ax_cv_check_cflags___msse4_2+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -msse4.2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___msse4_2=yes -else - ax_cv_check_cflags___msse4_2=no +else case e in #( + e) ax_cv_check_cflags___msse4_2=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse4_2" >&5 -$as_echo "$ax_cv_check_cflags___msse4_2" >&6; } -if test x"$ax_cv_check_cflags___msse4_2" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse4_2" >&5 +printf "%s\n" "$ax_cv_check_cflags___msse4_2" >&6; } +if test x"$ax_cv_check_cflags___msse4_2" = xyes +then : SIMD_FLAGS="$SIMD_FLAGS -msse4.2 -DINTEL_SSE4" -else - ax_cv_have_sse42_ext=no +else case e in #( + e) ax_cv_have_sse42_ext=no ;; +esac fi fi @@ -13118,49 +14342,52 @@ fi # Check whether --enable-neon was given. -if test "${enable_neon+set}" = set; then : +if test ${enable_neon+y} +then : enableval=$enable_neon; fi -if test "x$enable_neon" != "xno"; then : +if test "x$enable_neon" != "xno" +then : noneon_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $SIMD_FLAGS" - ac_fn_c_check_header_mongrel "$LINENO" "arm_neon.h" "ac_cv_header_arm_neon_h" "$ac_includes_default" -if test "x$ac_cv_header_arm_neon_h" = xyes; then : + ac_fn_c_check_header_compile "$LINENO" "arm_neon.h" "ac_cv_header_arm_neon_h" "$ac_includes_default" +if test "x$ac_cv_header_arm_neon_h" = xyes +then : have_neon=yes -else - have_neon=no - CPPFLAGS=$noneon_CPPFLAGS +else case e in #( + e) have_neon=no + CPPFLAGS=$noneon_CPPFLAGS ;; +esac fi - -else - have_neon=no - if test "x$ax_cv_have_neon_ext" = "xyes"; then : +else case e in #( + e) have_neon=no + if test "x$ax_cv_have_neon_ext" = "xyes" +then : SIMD_FLAGS="" fi - + ;; +esac fi -if test "x$have_neon" = "xno"; then : - for ac_header in cpuid.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "$ac_includes_default" -if test "x$ac_cv_header_cpuid_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_CPUID_H 1 -_ACEOF +if test "x$have_neon" = "xno" +then : + ac_fn_c_check_header_compile "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "$ac_includes_default" +if test "x$ac_cv_header_cpuid_h" = xyes +then : + printf "%s\n" "#define HAVE_CPUID_H 1" >>confdefs.h fi -done - -else - if test "x$enable_neon" = "xyes"; then : +else case e in #( + e) if test "x$enable_neon" = "xyes" +then : as_fn_error $? "neon requested but arm_neon.h not found" "$LINENO" 5 fi - + ;; +esac fi if test "x$have_neon" = "xyes"; then HAVE_NEON_TRUE= @@ -13172,7 +14399,8 @@ fi # Check whether --enable-sse was given. -if test "${enable_sse+set}" = set; then : +if test ${enable_sse+y} +then : enableval=$enable_sse; if test "x$enableval" = "xno" ; then SIMD_FLAGS="" echo "DISABLED SSE!!!" @@ -13182,10 +14410,12 @@ fi # Check whether --enable-valgrind was given. -if test "${enable_valgrind+set}" = set; then : +if test ${enable_valgrind+y} +then : enableval=$enable_valgrind; -else - enable_valgrind=no +else case e in #( + e) enable_valgrind=no ;; +esac fi if test "x$enable_valgrind" != xno; then @@ -13198,51 +14428,61 @@ fi # Check whether --enable-avx was given. -if test "${enable_avx+set}" = set; then : +if test ${enable_avx+y} +then : enableval=$enable_avx; fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx" >&5 -$as_echo_n "checking whether C compiler accepts -mavx... " >&6; } -if ${ax_cv_check_cflags___mavx+:} false; then : - $as_echo_n "(cached) " >&6 -else - +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx" >&5 +printf %s "checking whether C compiler accepts -mavx... " >&6; } +if test ${ax_cv_check_cflags___mavx+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mavx" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___mavx=yes -else - ax_cv_check_cflags___mavx=no +else case e in #( + e) ax_cv_check_cflags___mavx=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx" >&5 -$as_echo "$ax_cv_check_cflags___mavx" >&6; } -if test x"$ax_cv_check_cflags___mavx" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx" >&5 +printf "%s\n" "$ax_cv_check_cflags___mavx" >&6; } +if test x"$ax_cv_check_cflags___mavx" = xyes +then : ax_cv_support_avx=yes -else - : +else case e in #( + e) : ;; +esac fi -if test "x$enable_avx" = "xyes"; then : - if test "x$ax_cv_support_avx" = "xno"; then : +if test "x$enable_avx" = "xyes" +then : + if test "x$ax_cv_support_avx" = "xno" +then : as_fn_error $? "AVX requested but compiler does not support -mavx" "$LINENO" 5 -else - SIMD_FLAGS="$SIMD_FLAGS -mavx" +else case e in #( + e) SIMD_FLAGS="$SIMD_FLAGS -mavx" ;; +esac fi fi @@ -13259,8 +14499,8 @@ cat >confcache <<\_ACEOF # 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 +# '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 @@ -13276,8 +14516,8 @@ _ACEOF 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;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -13290,14 +14530,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; (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 + # '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. + # 'set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | @@ -13307,15 +14547,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; /^ac_cv_env_/b end t clear :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ 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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else @@ -13329,8 +14569,8 @@ $as_echo "$as_me: updating cache $cache_file" >&6;} 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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -13347,7 +14587,7 @@ 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"` + ac_i=`printf "%s\n" "$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" @@ -13358,14 +14598,26 @@ LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +printf %s "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 +printf "%s\n" "done" >&6; } +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; +esac +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi + if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' @@ -13391,8 +14643,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL @@ -13415,63 +14667,65 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +if test ${ZSH_VERSION+y} && (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 #( +else case e in #( + e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; +esac ;; esac fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. 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 +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; 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 || @@ -13480,13 +14734,6 @@ if test "${PATH_SEPARATOR+set}" != set; then 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 #(( @@ -13495,43 +14742,27 @@ case $0 in #(( 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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' +# 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 + printf "%s\n" "$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] @@ -13544,9 +14775,9 @@ 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -13577,22 +14808,25 @@ 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 : +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 () +else case e in #( + e) as_fn_append () { eval $1=\$$1\$2 - } + } ;; +esac fi # as_fn_append # as_fn_arith ARG... @@ -13600,16 +14834,18 @@ fi # as_fn_append # 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 : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else - as_fn_arith () +else case e in #( + e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` - } + } ;; +esac fi # as_fn_arith @@ -13636,7 +14872,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -13658,6 +14894,10 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -13671,6 +14911,12 @@ case `echo -n x` in #((((( ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -13682,9 +14928,9 @@ if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable. + # In both cases, we have to default to 'cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then @@ -13712,7 +14958,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -13721,7 +14967,7 @@ $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" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -13765,10 +15011,12 @@ as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed '$as_sed_sh'" # deprecated exec 6>&1 @@ -13784,7 +15032,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # values after options handling. ac_log=" This file was extended by gf-complete $as_me 1.0, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.72. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -13816,7 +15064,7 @@ _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions +'$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. @@ -13846,14 +15094,16 @@ $config_commands Report bugs to the package provider." _ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ gf-complete config.status 1.0 -configured by $0, generated by GNU Autoconf 2.69, +configured by $0, generated by GNU Autoconf 2.72, with options \\"\$ac_cs_config\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2023 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -13893,15 +15143,15 @@ do -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 ;; + printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; + printf "%s\n" "$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"` ;; + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" @@ -13909,23 +15159,23 @@ do --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`printf "%s\n" "$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.";; + as_fn_error $? "ambiguous option: '$1' +Try '$0 --help' for more information.";; --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; + printf "%s\n" "$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_error $? "unrecognized option: '$1' +Try '$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; @@ -13946,7 +15196,7 @@ 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 + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" @@ -13960,7 +15210,7 @@ exec 5>>config.log sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - $as_echo "$ac_log" + printf "%s\n" "$ac_log" } >&5 _ACEOF @@ -14268,7 +15518,7 @@ do "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + *) as_fn_error $? "invalid argument: '$ac_config_target'" "$LINENO" 5;; esac done @@ -14278,9 +15528,9 @@ done # 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 + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files + test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers + test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree @@ -14288,7 +15538,7 @@ fi # 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'. +# after its creation but before its name has been assigned to '$tmp'. $debug || { tmp= ac_tmp= @@ -14312,7 +15562,7 @@ 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'. +# This happens for instance with './config.status config.h'. if test -n "$CONFIG_FILES"; then @@ -14470,13 +15720,13 @@ 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'. +# 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 +# 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. @@ -14586,7 +15836,7 @@ do esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :L* | :C*:*) as_fn_error $? "invalid tag '$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -14608,33 +15858,33 @@ do -) 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 `:'. + # 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;; + 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 + case $ac_f in *\'*) ac_f=`printf "%s\n" "$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 + # 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' + printf "%s\n" "$*" | 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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$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" | + ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac @@ -14651,7 +15901,7 @@ $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" | +printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -14675,9 +15925,9 @@ $as_echo X"$ac_file" | case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$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|/||'` + ac_top_builddir_sub=`printf "%s\n" "$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/ ;; @@ -14739,8 +15989,8 @@ ac_sed_dataroot=' 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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$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=' @@ -14753,7 +16003,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 esac _ACEOF -# Neutralize VPATH when `$srcdir' = `.'. +# 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 @@ -14784,9 +16034,9 @@ 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' + { printf "%s\n" "$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' +printf "%s\n" "$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" @@ -14802,20 +16052,20 @@ which seems to be undefined. Please make sure it is defined" >&2;} # if test x"$ac_file" != x-; then { - $as_echo "/* $configure_input */" \ + printf "%s\n" "/* $configure_input */" >&1 \ && 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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +printf "%s\n" "$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 */" \ + printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi @@ -14835,7 +16085,7 @@ $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" | +printf "%s\n" X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -14855,8 +16105,8 @@ $as_echo X"$_am_arg" | 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;} + :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +printf "%s\n" "$as_me: executing $ac_file commands" >&6;} ;; esac @@ -15390,6 +16640,7 @@ _LT_EOF esac + ltmain=$ac_aux_dir/ltmain.sh @@ -15439,7 +16690,8 @@ if test "$no_create" != yes; then $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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi + diff --git a/ext/gf-complete/configure.ac b/ext/gf-complete/configure.ac index 730e3b0fd..f732e58fc 100644 --- a/ext/gf-complete/configure.ac +++ b/ext/gf-complete/configure.ac @@ -1,17 +1,17 @@ # gf-complete autoconf template # FIXME - add project url as the last argument -AC_INIT(gf-complete, 1.0) +AC_INIT([gf-complete],[1.0]) # Override default CFLAGS : ${CFLAGS="-Wall -Wpointer-arith -O3 -g"} -AC_PREREQ([2.61]) +AC_PREREQ([2.71]) AM_INIT_AUTOMAKE([no-dependencies foreign parallel-tests]) LT_INIT # libtool -AC_CONFIG_HEADER(include/config.h) +AC_CONFIG_HEADERS([include/config.h]) dnl Needed when reconfiguring with 'autoreconf -i -s' AC_CONFIG_MACRO_DIR([m4]) diff --git a/ext/gf-complete/examples/Makefile.in b/ext/gf-complete/examples/Makefile.in index 030cd2cc1..c2e948cd4 100644 --- a/ext/gf-complete/examples/Makefile.in +++ b/ext/gf-complete/examples/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.17 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2024 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -72,6 +72,8 @@ am__make_running_with_option = \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +am__rm_f = rm -f $(am__rm_f_notfound) +am__rm_rf = rm -rf $(am__rm_f_notfound) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -198,8 +200,6 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ @@ -212,8 +212,9 @@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CFLAGS = @CFLAGS@ -CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DLLTOOL = @DLLTOOL@ @@ -223,6 +224,7 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ @@ -273,8 +275,10 @@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__leading_dot = @am__leading_dot@ +am__rm_f_notfound = @am__rm_f_notfound@ am__tar = @am__tar@ am__untar = @am__untar@ +am__xargs_n = @am__xargs_n@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -307,6 +311,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -408,16 +413,11 @@ uninstall-binPROGRAMS: `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files + cd "$(DESTDIR)$(bindir)" && $(am__rm_f) $$files clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list + $(am__rm_f) $(bin_PROGRAMS) + test -z "$(EXEEXT)" || $(am__rm_f) $(bin_PROGRAMS:$(EXEEXT)=) gf_example_1$(EXEEXT): $(gf_example_1_OBJECTS) $(gf_example_1_DEPENDENCIES) $(EXTRA_gf_example_1_DEPENDENCIES) @rm -f gf_example_1$(EXEEXT) @@ -519,7 +519,6 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am @@ -584,8 +583,8 @@ mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -$(am__rm_f) $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -680,3 +679,10 @@ uninstall-am: uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: + +# Tell GNU make to disable its built-in pattern rules. +%:: %,v +%:: RCS/%,v +%:: RCS/% +%:: s.% +%:: SCCS/s.% diff --git a/ext/gf-complete/include/config.h.in b/ext/gf-complete/include/config.h.in index 1f1953f04..4178c340b 100644 --- a/ext/gf-complete/include/config.h.in +++ b/ext/gf-complete/include/config.h.in @@ -12,15 +12,15 @@ /* 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 to 1 if you have the `posix_memalign' function. */ +/* Define to 1 if you have the 'posix_memalign' function. */ #undef HAVE_POSIX_MEMALIGN /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H +/* Define to 1 if you have the header file. */ +#undef HAVE_STDIO_H + /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H @@ -63,10 +63,12 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION -/* The size of `long', as computed by sizeof. */ +/* The size of 'long', as computed by sizeof. */ #undef SIZEOF_LONG -/* Define to 1 if you have the ANSI C header files. */ +/* Define to 1 if all of the C89 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* Version number of package */ diff --git a/ext/gf-complete/m4/ax_ext.m4 b/ext/gf-complete/m4/ax_ext.m4 index 95c4dbe23..09d77daf1 100644 --- a/ext/gf-complete/m4/ax_ext.m4 +++ b/ext/gf-complete/m4/ax_ext.m4 @@ -21,7 +21,13 @@ AC_DEFUN([AX_EXT], arm*) AC_CACHE_CHECK([whether NEON is enabled], [ax_cv_have_neon_ext], [ax_cv_have_neon_ext=yes]) if test "$ax_cv_have_neon_ext" = yes; then - AX_CHECK_COMPILE_FLAG(-mfpu=neon, [SIMD_FLAGS="$SIMD_FLAGS -mfpu=neon -DARM_NEON"], [ax_cv_have_neon_ext=no]) + AC_CACHE_CHECK([whether compiler supports -mfpu=neon], [ax_cv_have_mfpu_neon], [ax_cv_have_mfpu_neon=yes]) + AX_CHECK_COMPILE_FLAG(-mfpu=neon, [SIMD_FLAGS="$SIMD_FLAGS -mfpu=neon -DARM_NEON"], [ax_cv_have_mfpu_neon=no]) + if test "$ax_cv_have_mfpu_neon" = yes; then + ax_cv_have_neon_ext=yes + else + AX_CHECK_COMPILE_FLAG(-DARM_NEON, [SIMD_FLAGS="$SIMD_FLAGS -DARM_NEON"], [ax_cv_have_neon_ext=no]) + fi fi ;; diff --git a/ext/gf-complete/src/Makefile.in b/ext/gf-complete/src/Makefile.in index 809cca86d..63df0cf5f 100644 --- a/ext/gf-complete/src/Makefile.in +++ b/ext/gf-complete/src/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.17 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2024 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -73,6 +73,8 @@ am__make_running_with_option = \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +am__rm_f = rm -f $(am__rm_f_notfound) +am__rm_rf = rm -rf $(am__rm_f_notfound) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -133,10 +135,9 @@ 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; }; \ + { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) @@ -231,8 +232,6 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ @@ -245,8 +244,9 @@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CFLAGS = @CFLAGS@ -CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DLLTOOL = @DLLTOOL@ @@ -256,6 +256,7 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ @@ -306,8 +307,10 @@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__leading_dot = @am__leading_dot@ +am__rm_f_notfound = @am__rm_f_notfound@ am__tar = @am__tar@ am__untar = @am__untar@ +am__xargs_n = @am__xargs_n@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -340,6 +343,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -426,29 +430,25 @@ uninstall-libLTLIBRARIES: done clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + -$(am__rm_f) $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } + echo rm -f $${locs}; \ + $(am__rm_f) $${locs} clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + -$(am__rm_f) $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } + echo rm -f $${locs}; \ + $(am__rm_f) $${locs} neon/$(am__dirstamp): @$(MKDIR_P) neon - @: > neon/$(am__dirstamp) + @: >>neon/$(am__dirstamp) neon/libgf_complete_la-gf_w4_neon.lo: neon/$(am__dirstamp) neon/libgf_complete_la-gf_w8_neon.lo: neon/$(am__dirstamp) neon/libgf_complete_la-gf_w16_neon.lo: neon/$(am__dirstamp) @@ -587,7 +587,6 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am @@ -652,9 +651,9 @@ mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f neon/$(am__dirstamp) + -$(am__rm_f) $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES) + -$(am__rm_f) neon/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -751,3 +750,10 @@ uninstall-am: uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: + +# Tell GNU make to disable its built-in pattern rules. +%:: %,v +%:: RCS/%,v +%:: RCS/% +%:: s.% +%:: SCCS/s.% diff --git a/ext/gf-complete/test/Makefile.in b/ext/gf-complete/test/Makefile.in index e2b3693cd..7e0cba6e8 100644 --- a/ext/gf-complete/test/Makefile.in +++ b/ext/gf-complete/test/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.17 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2024 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -72,6 +72,8 @@ am__make_running_with_option = \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +am__rm_f = rm -f $(am__rm_f_notfound) +am__rm_rf = rm -rf $(am__rm_f_notfound) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -171,8 +173,6 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ @@ -185,8 +185,9 @@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CFLAGS = @CFLAGS@ -CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DLLTOOL = @DLLTOOL@ @@ -196,6 +197,7 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ @@ -246,8 +248,10 @@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__leading_dot = @am__leading_dot@ +am__rm_f_notfound = @am__rm_f_notfound@ am__tar = @am__tar@ am__untar = @am__untar@ +am__xargs_n = @am__xargs_n@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -280,6 +284,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -365,16 +370,11 @@ uninstall-binPROGRAMS: `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files + cd "$(DESTDIR)$(bindir)" && $(am__rm_f) $$files clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list + $(am__rm_f) $(bin_PROGRAMS) + test -z "$(EXEEXT)" || $(am__rm_f) $(bin_PROGRAMS:$(EXEEXT)=) gf_unit$(EXEEXT): $(gf_unit_OBJECTS) $(gf_unit_DEPENDENCIES) $(EXTRA_gf_unit_DEPENDENCIES) @rm -f gf_unit$(EXEEXT) @@ -452,7 +452,6 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am @@ -517,8 +516,8 @@ mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -$(am__rm_f) $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -613,3 +612,10 @@ uninstall-am: uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: + +# Tell GNU make to disable its built-in pattern rules. +%:: %,v +%:: RCS/%,v +%:: RCS/% +%:: s.% +%:: SCCS/s.% diff --git a/ext/gf-complete/tools/Makefile.in b/ext/gf-complete/tools/Makefile.in index 42e281e02..f166c8540 100644 --- a/ext/gf-complete/tools/Makefile.in +++ b/ext/gf-complete/tools/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.17 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2024 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -72,6 +72,8 @@ am__make_running_with_option = \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +am__rm_f = rm -f $(am__rm_f_notfound) +am__rm_rf = rm -rf $(am__rm_f_notfound) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -195,8 +197,6 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no @@ -241,10 +241,9 @@ 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; }; \ + { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* @@ -332,6 +331,7 @@ am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ + $$am__collect_skipped_logs \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the @@ -356,6 +356,11 @@ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ +if test -n '$(IGNORE_SKIPPED_LOGS)'; then \ + am__collect_skipped_logs='--collect-skipped-logs no'; \ +else \ + am__collect_skipped_logs=''; \ +fi; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ @@ -379,6 +384,7 @@ am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` +AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log @@ -409,8 +415,9 @@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CFLAGS = @CFLAGS@ -CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DLLTOOL = @DLLTOOL@ @@ -420,6 +427,7 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ @@ -470,8 +478,10 @@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__leading_dot = @am__leading_dot@ +am__rm_f_notfound = @am__rm_f_notfound@ am__tar = @am__tar@ am__untar = @am__untar@ +am__xargs_n = @am__xargs_n@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -504,6 +514,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -621,16 +632,11 @@ uninstall-binPROGRAMS: `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files + cd "$(DESTDIR)$(bindir)" && $(am__rm_f) $$files clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list + $(am__rm_f) $(bin_PROGRAMS) + test -z "$(EXEEXT)" || $(am__rm_f) $(bin_PROGRAMS:$(EXEEXT)=) gf_add$(EXEEXT): $(gf_add_OBJECTS) $(gf_add_DEPENDENCIES) $(EXTRA_gf_add_DEPENDENCIES) @rm -f gf_add$(EXEEXT) @@ -746,7 +752,6 @@ distclean-tags: am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: - $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ @@ -822,10 +827,37 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ + output_system_information () \ + { \ + echo; \ + { uname -a | $(AWK) '{ \ + printf "System information (uname -a):"; \ + for (i = 1; i < NF; ++i) \ + { \ + if (i != 2) \ + printf " %s", $$i; \ + } \ + printf "\n"; \ +}'; } 2>&1; \ + if test -r /etc/os-release; then \ + echo "Distribution information (/etc/os-release):"; \ + sed 8q /etc/os-release; \ + elif test -r /etc/issue; then \ + echo "Distribution information (/etc/issue):"; \ + cat /etc/issue; \ + fi; \ + }; \ + please_report () \ + { \ +echo "Some test(s) failed. Please report this to $(PACKAGE_BUGREPORT),"; \ +echo "together with the test-suite.log file (gzipped) and your system"; \ +echo "information. Thanks."; \ + }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ + output_system_information; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ @@ -840,31 +872,30 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG) for debugging.$${std}";\ if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + please_report | sed -e "s/^/$${col}/" -e s/'$$'/"$${std}"/; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @$(am__rm_f) $(RECHECK_LOGS) + @$(am__rm_f) $(RECHECK_LOGS:.log=.trs) + @$(am__rm_f) $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @$(am__rm_f) $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ @@ -888,7 +919,6 @@ recheck: all @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_SH_LOG_DRIVER_FLAGS) $(SH_LOG_DRIVER_FLAGS) -- $(SH_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am @@ -950,16 +980,16 @@ install-strip: "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + -$(am__rm_f) $(TEST_LOGS) + -$(am__rm_f) $(TEST_LOGS:.log=.trs) + -$(am__rm_f) $(TEST_SUITE_LOG) clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + -$(am__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) + -$(am__rm_f) $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -1059,3 +1089,10 @@ gf_unit_w%.sh: gf_methods # 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: + +# Tell GNU make to disable its built-in pattern rules. +%:: %,v +%:: RCS/%,v +%:: RCS/% +%:: s.% +%:: SCCS/s.% diff --git a/ext/jerasure/Examples/Makefile.in b/ext/jerasure/Examples/Makefile.in index 22a844622..461258862 100644 --- a/ext/jerasure/Examples/Makefile.in +++ b/ext/jerasure/Examples/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.17 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2024 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -73,6 +73,8 @@ am__make_running_with_option = \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +am__rm_f = rm -f $(am__rm_f_notfound) +am__rm_rf = rm -rf $(am__rm_f_notfound) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -293,8 +295,6 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no @@ -339,10 +339,9 @@ 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; }; \ + { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* @@ -430,6 +429,7 @@ am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ + $$am__collect_skipped_logs \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the @@ -454,6 +454,11 @@ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ +if test -n '$(IGNORE_SKIPPED_LOGS)'; then \ + am__collect_skipped_logs='--collect-skipped-logs no'; \ +else \ + am__collect_skipped_logs=''; \ +fi; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ @@ -477,6 +482,7 @@ am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` +AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log @@ -514,8 +520,9 @@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -526,6 +533,7 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ @@ -577,8 +585,10 @@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__rm_f_notfound = @am__rm_f_notfound@ am__tar = @am__tar@ am__untar = @am__untar@ +am__xargs_n = @am__xargs_n@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -611,6 +621,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -720,16 +731,11 @@ uninstall-binPROGRAMS: `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files + cd "$(DESTDIR)$(bindir)" && $(am__rm_f) $$files clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list + $(am__rm_f) $(bin_PROGRAMS) + test -z "$(EXEEXT)" || $(am__rm_f) $(bin_PROGRAMS:$(EXEEXT)=) cauchy_01$(EXEEXT): $(cauchy_01_OBJECTS) $(cauchy_01_DEPENDENCIES) $(EXTRA_cauchy_01_DEPENDENCIES) @rm -f cauchy_01$(EXEEXT) @@ -845,7 +851,7 @@ distclean-compile: $(am__depfiles_remade): @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + @: >>$@ am--depfiles: $(am__depfiles_remade) @@ -941,7 +947,6 @@ distclean-tags: am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: - $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ @@ -1017,10 +1022,37 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ + output_system_information () \ + { \ + echo; \ + { uname -a | $(AWK) '{ \ + printf "System information (uname -a):"; \ + for (i = 1; i < NF; ++i) \ + { \ + if (i != 2) \ + printf " %s", $$i; \ + } \ + printf "\n"; \ +}'; } 2>&1; \ + if test -r /etc/os-release; then \ + echo "Distribution information (/etc/os-release):"; \ + sed 8q /etc/os-release; \ + elif test -r /etc/issue; then \ + echo "Distribution information (/etc/issue):"; \ + cat /etc/issue; \ + fi; \ + }; \ + please_report () \ + { \ +echo "Some test(s) failed. Please report this to $(PACKAGE_BUGREPORT),"; \ +echo "together with the test-suite.log file (gzipped) and your system"; \ +echo "information. Thanks."; \ + }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ + output_system_information; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ @@ -1035,31 +1067,30 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG) for debugging.$${std}";\ if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + please_report | sed -e "s/^/$${col}/" -e s/'$$'/"$${std}"/; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @$(am__rm_f) $(RECHECK_LOGS) + @$(am__rm_f) $(RECHECK_LOGS:.log=.trs) + @$(am__rm_f) $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @$(am__rm_f) $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ @@ -1090,7 +1121,6 @@ test_all_gfs.sh.log: test_all_gfs.sh @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am @@ -1152,15 +1182,15 @@ install-strip: "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + -$(am__rm_f) $(TEST_LOGS) + -$(am__rm_f) $(TEST_LOGS:.log=.trs) + -$(am__rm_f) $(TEST_SUITE_LOG) clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -$(am__rm_f) $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -1170,7 +1200,7 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am - -rm -f ./$(DEPDIR)/cauchy_01.Po + -rm -f ./$(DEPDIR)/cauchy_01.Po -rm -f ./$(DEPDIR)/cauchy_02.Po -rm -f ./$(DEPDIR)/cauchy_03.Po -rm -f ./$(DEPDIR)/cauchy_04.Po @@ -1236,7 +1266,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/cauchy_01.Po + -rm -f ./$(DEPDIR)/cauchy_01.Po -rm -f ./$(DEPDIR)/cauchy_02.Po -rm -f ./$(DEPDIR)/cauchy_03.Po -rm -f ./$(DEPDIR)/cauchy_04.Po @@ -1298,3 +1328,10 @@ uninstall-am: uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: + +# Tell GNU make to disable its built-in pattern rules. +%:: %,v +%:: RCS/%,v +%:: RCS/% +%:: s.% +%:: SCCS/s.% diff --git a/ext/jerasure/Makefile.in b/ext/jerasure/Makefile.in index eb41142df..9cd093407 100644 --- a/ext/jerasure/Makefile.in +++ b/ext/jerasure/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.17 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2024 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -71,6 +71,8 @@ am__make_running_with_option = \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +am__rm_f = rm -f $(am__rm_f_notfound) +am__rm_rf = rm -rf $(am__rm_f_notfound) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -161,9 +163,6 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/compile \ @@ -181,8 +180,8 @@ 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)" \ + find "$(distdir)" -type d ! -perm -700 -exec chmod u+rwx {} ';' \ + ; rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) @@ -212,12 +211,16 @@ am__relativize = \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best +GZIP_ENV = -9 DIST_TARGETS = dist-gzip +# Exists only to be overridden by the user if desired. +AM_DISTCHECK_DVI_TARGET = dvi distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' -distcleancheck_listfiles = find . -type f -print +distcleancheck_listfiles = \ + find . \( -type f -a \! \ + \( -name .nfs* -o -name .smb* -o -name .__afs* \) \) -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -229,8 +232,9 @@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -241,6 +245,7 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ @@ -292,8 +297,10 @@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__rm_f_notfound = @am__rm_f_notfound@ am__tar = @am__tar@ am__untar = @am__untar@ +am__xargs_n = @am__xargs_n@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -326,6 +333,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -379,12 +387,12 @@ include/config.h: include/stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) include/stamp-h1 include/stamp-h1: $(top_srcdir)/include/config.h.in $(top_builddir)/config.status - @rm -f include/stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status include/config.h + $(AM_V_at)rm -f include/stamp-h1 + $(AM_V_GEN)cd $(top_builddir) && $(SHELL) ./config.status include/config.h $(top_srcdir)/include/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f include/stamp-h1 - touch $@ + $(AM_V_GEN)($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + $(AM_V_at)rm -f include/stamp-h1 + $(AM_V_at)touch $@ distclean-hdr: -rm -f include/config.h include/stamp-h1 @@ -503,13 +511,12 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" + $(AM_V_at)$(MKDIR_P) "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -587,6 +594,10 @@ dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) +dist-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(am__post_remove_distdir) + dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @@ -616,7 +627,7 @@ dist dist-all: distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + eval GZIP= gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ @@ -626,9 +637,11 @@ distcheck: dist *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + eval GZIP= gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) @@ -644,7 +657,7 @@ distcheck: dist $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ @@ -724,8 +737,8 @@ mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -$(am__rm_f) $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -806,18 +819,18 @@ uninstall-am: am--refresh check check-am clean clean-cscope clean-generic \ clean-libtool cscope cscopelist-am ctags ctags-am dist \ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ - dist-xz dist-zip distcheck distclean distclean-generic \ - distclean-hdr distclean-libtool distclean-tags distcleancheck \ - distdir distuninstallcheck dvi dvi-am html html-am info \ - info-am install install-am install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am + dist-xz dist-zip dist-zstd distcheck distclean \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am .PRECIOUS: Makefile @@ -825,3 +838,10 @@ uninstall-am: # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: + +# Tell GNU make to disable its built-in pattern rules. +%:: %,v +%:: RCS/%,v +%:: RCS/% +%:: s.% +%:: SCCS/s.% diff --git a/ext/jerasure/aclocal.m4 b/ext/jerasure/aclocal.m4 index 5aa3f5898..d1a641922 100644 --- a/ext/jerasure/aclocal.m4 +++ b/ext/jerasure/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.1 -*- Autoconf -*- +# generated automatically by aclocal 1.17 -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2024 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -14,13 +14,13 @@ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.72],, +[m4_warning([this file was generated for autoconf 2.72. 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-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.]) # 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.16' +[am__api_version='1.17' 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.16.1], [], +m4_if([$1], [1.17], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_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.16.1])dnl +[AM_AUTOMAKE_VERSION([1.17])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-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -141,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -273,7 +273,7 @@ AC_CACHE_CHECK([dependency style of $depcc], # 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: + # When given -MP, icc 7.0 and 7.1 complain thus: # 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 @@ -332,7 +332,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -371,7 +371,9 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], done if test $am_rc -ne 0; then AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE="gmake" (or whatever is + necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking).]) fi @@ -398,7 +400,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -426,6 +428,10 @@ m4_defn([AC_PROG_CC]) # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl +m4_ifdef([_$0_ALREADY_INIT], + [m4_fatal([$0 expanded multiple times +]m4_defn([_$0_ALREADY_INIT]))], + [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])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 @@ -462,7 +468,7 @@ m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl @@ -514,7 +520,21 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) -AC_REQUIRE([AM_SILENT_RULES])dnl +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi +AC_SUBST([CTAGS]) +if test -z "$ETAGS"; then + ETAGS=etags +fi +AC_SUBST([ETAGS]) +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi +AC_SUBST([CSCOPE]) + +AC_REQUIRE([_AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. @@ -522,47 +542,9 @@ AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. +AC_REQUIRE([_AM_PROG_RM_F]) +AC_REQUIRE([_AM_PROG_XARGS_N]) -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. @@ -595,7 +577,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -616,7 +598,7 @@ if test x"${install_sh+set}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -638,7 +620,7 @@ AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -673,7 +655,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -716,7 +698,7 @@ AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -737,12 +719,7 @@ 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 + MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then @@ -755,7 +732,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -784,7 +761,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -831,7 +808,23 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2022-2024 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_RM_F +# --------------- +# Check whether 'rm -f' without any arguments works. +# https://bugs.gnu.org/10828 +AC_DEFUN([_AM_PROG_RM_F], +[am__rm_f_notfound= +AS_IF([(rm -f && rm -fr && rm -rf) 2>/dev/null], [], [am__rm_f_notfound='""']) +AC_SUBST(am__rm_f_notfound) +]) + +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -850,16 +843,169 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# _AM_SLEEP_FRACTIONAL_SECONDS +# ---------------------------- +AC_DEFUN([_AM_SLEEP_FRACTIONAL_SECONDS], [dnl +AC_CACHE_CHECK([whether sleep supports fractional seconds], + am_cv_sleep_fractional_seconds, [dnl +AS_IF([sleep 0.001 2>/dev/null], [am_cv_sleep_fractional_seconds=yes], + [am_cv_sleep_fractional_seconds=no]) +])]) + +# _AM_FILESYSTEM_TIMESTAMP_RESOLUTION +# ----------------------------------- +# Determine the filesystem's resolution for file modification +# timestamps. The coarsest we know of is FAT, with a resolution +# of only two seconds, even with the most recent "exFAT" extensions. +# The finest (e.g. ext4 with large inodes, XFS, ZFS) is one +# nanosecond, matching clock_gettime. However, it is probably not +# possible to delay execution of a shell script for less than one +# millisecond, due to process creation overhead and scheduling +# granularity, so we don't check for anything finer than that. (See below.) +AC_DEFUN([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION], [dnl +AC_REQUIRE([_AM_SLEEP_FRACTIONAL_SECONDS]) +AC_CACHE_CHECK([filesystem timestamp resolution], + am_cv_filesystem_timestamp_resolution, [dnl +# Default to the worst case. +am_cv_filesystem_timestamp_resolution=2 + +# Only try to go finer than 1 sec if sleep can do it. +# Don't try 1 sec, because if 0.01 sec and 0.1 sec don't work, +# - 1 sec is not much of a win compared to 2 sec, and +# - it takes 2 seconds to perform the test whether 1 sec works. +# +# Instead, just use the default 2s on platforms that have 1s resolution, +# accept the extra 1s delay when using $sleep in the Automake tests, in +# exchange for not incurring the 2s delay for running the test for all +# packages. +# +am_try_resolutions= +if test "$am_cv_sleep_fractional_seconds" = yes; then + # Even a millisecond often causes a bunch of false positives, + # so just try a hundredth of a second. The time saved between .001 and + # .01 is not terribly consequential. + am_try_resolutions="0.01 0.1 $am_try_resolutions" +fi + +# In order to catch current-generation FAT out, we must *modify* files +# that already exist; the *creation* timestamp is finer. Use names +# that make ls -t sort them differently when they have equal +# timestamps than when they have distinct timestamps, keeping +# in mind that ls -t prints the *newest* file first. +rm -f conftest.ts? +: > conftest.ts1 +: > conftest.ts2 +: > conftest.ts3 + +# Make sure ls -t actually works. Do 'set' in a subshell so we don't +# clobber the current shell's arguments. (Outer-level square brackets +# are removed by m4; they're present so that m4 does not expand +# ; be careful, easy to get confused.) +if ( + set X `[ls -t conftest.ts[12]]` && + { + test "$[]*" != "X conftest.ts1 conftest.ts2" || + test "$[]*" != "X conftest.ts2 conftest.ts1"; + } +); then :; else + # 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_ECHO_UNQUOTED( + ["Bad output from ls -t: \"`[ls -t conftest.ts[12]]`\""], + [AS_MESSAGE_LOG_FD]) + AC_MSG_FAILURE([ls -t produces unexpected output. +Make sure there is not a broken ls alias in your environment.]) +fi + +for am_try_res in $am_try_resolutions; do + # Any one fine-grained sleep might happen to cross the boundary + # between two values of a coarser actual resolution, but if we do + # two fine-grained sleeps in a row, at least one of them will fall + # entirely within a coarse interval. + echo alpha > conftest.ts1 + sleep $am_try_res + echo beta > conftest.ts2 + sleep $am_try_res + echo gamma > conftest.ts3 + + # We assume that 'ls -t' will make use of high-resolution + # timestamps if the operating system supports them at all. + if (set X `ls -t conftest.ts?` && + test "$[]2" = conftest.ts3 && + test "$[]3" = conftest.ts2 && + test "$[]4" = conftest.ts1); then + # + # Ok, ls -t worked. If we're at a resolution of 1 second, we're done, + # because we don't need to test make. + make_ok=true + if test $am_try_res != 1; then + # But if we've succeeded so far with a subsecond resolution, we + # have one more thing to check: make. It can happen that + # everything else supports the subsecond mtimes, but make doesn't; + # notably on macOS, which ships make 3.81 from 2006 (the last one + # released under GPLv2). https://bugs.gnu.org/68808 + # + # We test $MAKE if it is defined in the environment, else "make". + # It might get overridden later, but our hope is that in practice + # it does not matter: it is the system "make" which is (by far) + # the most likely to be broken, whereas if the user overrides it, + # probably they did so with a better, or at least not worse, make. + # https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html + # + # Create a Makefile (real tab character here): + rm -f conftest.mk + echo 'conftest.ts1: conftest.ts2' >conftest.mk + echo ' touch conftest.ts2' >>conftest.mk + # + # Now, running + # touch conftest.ts1; touch conftest.ts2; make + # should touch ts1 because ts2 is newer. This could happen by luck, + # but most often, it will fail if make's support is insufficient. So + # test for several consecutive successes. + # + # (We reuse conftest.ts[12] because we still want to modify existing + # files, not create new ones, per above.) + n=0 + make=${MAKE-make} + until test $n -eq 3; do + echo one > conftest.ts1 + sleep $am_try_res + echo two > conftest.ts2 # ts2 should now be newer than ts1 + if $make -f conftest.mk | grep 'up to date' >/dev/null; then + make_ok=false + break # out of $n loop + fi + n=`expr $n + 1` + done + fi + # + if $make_ok; then + # Everything we know to check worked out, so call this resolution good. + am_cv_filesystem_timestamp_resolution=$am_try_res + break # out of $am_try_res loop + fi + # Otherwise, we'll go on to check the next resolution. + fi +done +rm -f conftest.ts? +# (end _am_filesystem_timestamp_resolution) +])]) + # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) +[AC_REQUIRE([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION]) +# This check should not be cached, as it may vary across builds of +# different projects. +AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -878,49 +1024,40 @@ esac # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! +am_build_env_is_sane=no +am_has_slept=no +rm -f conftest.file +for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + 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 + test "$[]2" = conftest.file + ); then + am_build_env_is_sane=yes + break + fi + # Just in case. + sleep "$am_cv_filesystem_timestamp_resolution" + am_has_slept=yes +done + +AC_MSG_RESULT([$am_build_env_is_sane]) +if test "$am_build_env_is_sane" = no; then + AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi -AC_MSG_RESULT([yes]) + # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & +AS_IF([test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1],, [dnl + ( sleep "$am_cv_filesystem_timestamp_resolution" ) & am_sleep_pid=$! -fi +]) AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then @@ -931,18 +1068,18 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl +# _AM_SILENT_RULES +# ---------------- +# Enable less verbose build rules support. +AC_DEFUN([_AM_SILENT_RULES], +[AM_DEFAULT_VERBOSITY=1 +AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) @@ -950,11 +1087,6 @@ AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. @@ -973,14 +1105,6 @@ am__doit: else am_cv_make_support_nested_variables=no fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl @@ -989,9 +1113,33 @@ AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +dnl Delay evaluation of AM_DEFAULT_VERBOSITY to the end to allow multiple calls +dnl to AM_SILENT_RULES to change the default value. +AC_CONFIG_COMMANDS_PRE([dnl +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; +esac +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +])dnl ]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Set the default verbosity level to DEFAULT ("yes" being less verbose, "no" or +# empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_REQUIRE([_AM_SILENT_RULES]) +AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])]) + +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1019,7 +1167,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1038,7 +1186,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1084,15 +1232,19 @@ m4_if([$1], [v7], am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) + if test x$am_uid = xunknown; then + AC_MSG_WARN([ancient id detected; assuming current UID is ok, but dist-ustar might not work]) + elif test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) else - AC_MSG_RESULT([no]) - _am_tools=none + AC_MSG_RESULT([no]) + _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) + if test x$gm_gid = xunknown; then + AC_MSG_WARN([ancient id detected; assuming current GID is ok, but dist-ustar might not work]) + elif test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none @@ -1169,6 +1321,26 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR +# Copyright (C) 2022-2024 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_XARGS_N +# ---------------- +# Check whether 'xargs -n' works. It should work everywhere, so the fallback +# is not optimized at all as we never expect to use it. +AC_DEFUN([_AM_PROG_XARGS_N], +[AC_CACHE_CHECK([xargs -n works], am_cv_xargs_n_works, [dnl +AS_IF([test "`echo 1 2 3 | xargs -n2 echo`" = "1 2 +3"], [am_cv_xargs_n_works=yes], [am_cv_xargs_n_works=no])]) +AS_IF([test "$am_cv_xargs_n_works" = yes], [am__xargs_n='xargs -n'], [dnl + am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "$@" "$am__xargs_n_arg"; done; }' +])dnl +AC_SUBST(am__xargs_n) +]) + m4_include([m4/ax_check_compile_flag.m4]) m4_include([m4/ax_ext.m4]) m4_include([m4/ax_gcc_x86_avx_xgetbv.m4]) diff --git a/ext/jerasure/configure b/ext/jerasure/configure index 864522a31..4484d52c7 100755 --- a/ext/jerasure/configure +++ b/ext/jerasure/configure @@ -1,9 +1,10 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Jerasure 2.0. +# Generated by GNU Autoconf 2.72 for Jerasure 2.0. # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation, +# Inc. # # # This configure script is free software; the Free Software Foundation @@ -14,63 +15,65 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +if test ${ZSH_VERSION+y} && (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 #( +else case e in #( + e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; +esac ;; esac fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. 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 +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; 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 || @@ -79,13 +82,6 @@ if test "${PATH_SEPARATOR+set}" != set; then 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 #(( @@ -94,43 +90,27 @@ case $0 in #(( 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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' +# 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 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. @@ -151,26 +131,28 @@ case $- in # (((( esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 +# out after a failed 'exec'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + as_bourne_compatible="if test \${ZSH_VERSION+y} && (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 #( +else case e in #( + e) case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; +esac ;; esac fi " @@ -185,12 +167,16 @@ 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 : +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : -else - exitcode=1; echo positional parameters were not saved. +else case e in #( + e) exitcode=1; echo positional parameters were not saved. ;; +esac fi test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO @@ -205,30 +191,39 @@ test -x / || exit 1" 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 : + if (eval "$as_required") 2>/dev/null +then : as_have_required=yes -else - as_have_required=no +else case e in #( + e) as_have_required=no ;; +esac fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac 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 + 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 : + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 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 : + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : break 2 fi fi @@ -236,14 +231,22 @@ fi 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 $as_found +then : + +else case e in #( + e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi ;; +esac +fi - if test "x$CONFIG_SHELL" != x; then : + if test "x$CONFIG_SHELL" != x +then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also @@ -260,25 +263,27 @@ case $- in # (((( esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +# out after a failed 'exec'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, + printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 -fi +fi ;; +esac fi fi SHELL=${CONFIG_SHELL-/bin/sh} @@ -299,6 +304,7 @@ as_fn_unset () } as_unset=as_fn_unset + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -330,7 +336,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -339,7 +345,7 @@ $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" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -378,16 +384,18 @@ as_fn_executable_p () # 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 : +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 () +else case e in #( + e) as_fn_append () { eval $1=\$$1\$2 - } + } ;; +esac fi # as_fn_append # as_fn_arith ARG... @@ -395,16 +403,18 @@ fi # as_fn_append # 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 : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else - as_fn_arith () +else case e in #( + e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` - } + } ;; +esac fi # as_fn_arith @@ -418,9 +428,9 @@ 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -447,7 +457,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -480,6 +490,8 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits /[$]LINENO/= ' <$as_myself | sed ' + t clear + :clear s/[$]LINENO.*/&-/ t lineno b @@ -491,7 +503,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits 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; } + { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall @@ -505,6 +517,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits exit } + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -518,6 +534,12 @@ case `echo -n x` in #((((( ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -529,9 +551,9 @@ if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable. + # In both cases, we have to default to 'cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then @@ -556,10 +578,12 @@ as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed '$as_sed_sh'" # deprecated SHELL=${CONFIG_SHELL-/bin/sh} @@ -595,46 +619,41 @@ PACKAGE_URL='https://bitbucket.org/jimplank/jerasure' ac_unique_file="src/jerasure.c" # Factoring default headers for most tests. ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include +#include +#ifdef HAVE_STDIO_H +# include #endif -#ifdef STDC_HEADERS +#ifdef HAVE_STDLIB_H # 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_STRINGS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif #ifdef HAVE_UNISTD_H # include #endif" +ac_header_c_list= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS SIMD_FLAGS -CPP OTOOL64 OTOOL LIPO @@ -680,10 +699,15 @@ build_vendor build_cpu build LIBTOOL +am__xargs_n +am__rm_f_notfound AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V +CSCOPE +ETAGS +CTAGS am__untar am__tar AMTAR @@ -729,6 +753,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -770,8 +795,7 @@ CC CFLAGS LDFLAGS LIBS -CPPFLAGS -CPP' +CPPFLAGS' # Initialize some variables set by options. @@ -810,6 +834,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -839,8 +864,6 @@ do *) ac_optarg=yes ;; esac - # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; @@ -881,9 +904,9 @@ do 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" + as_fn_error $? "invalid feature name: '$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -907,9 +930,9 @@ do 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" + as_fn_error $? "invalid feature name: '$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -1062,6 +1085,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1111,9 +1143,9 @@ do 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" + as_fn_error $? "invalid package name: '$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1127,9 +1159,9 @@ do 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" + as_fn_error $? "invalid package name: '$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1157,8 +1189,8 @@ do | --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" + -*) as_fn_error $? "unrecognized option: '$ac_option' +Try '$0 --help' for more information" ;; *=*) @@ -1166,16 +1198,16 @@ Try \`$0 --help' for more information" # 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'" ;; + 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 + printf "%s\n" "$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 + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; @@ -1191,7 +1223,7 @@ 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 ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1199,7 +1231,7 @@ fi 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 + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1216,7 +1248,7 @@ do 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' +# 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 @@ -1255,7 +1287,7 @@ $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" | +printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1284,7 +1316,7 @@ 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_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)` @@ -1312,7 +1344,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Jerasure 2.0 to adapt to many kinds of systems. +'configure' configures Jerasure 2.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1326,11 +1358,11 @@ Configuration: --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 + -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' + -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 \`..'] + --srcdir=DIR find the sources in DIR [configure dir or '..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX @@ -1338,10 +1370,10 @@ Installation directories: --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'. +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. @@ -1352,6 +1384,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1422,9 +1455,8 @@ Some influential environment variables: 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 - CPP C preprocessor -Use these variables to override the choices made by `configure' or to help +Use these variables to override the choices made by 'configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. @@ -1444,9 +1476,9 @@ if test "$ac_init_help" = "recursive"; then case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$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|/||'` + ac_top_builddir_sub=`printf "%s\n" "$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/ ;; @@ -1474,7 +1506,8 @@ esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive @@ -1482,7 +1515,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix echo && $SHELL "$ac_srcdir/configure" --help=recursive else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1492,9 +1525,9 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF Jerasure configure 2.0 -generated by GNU Autoconf 2.69 +generated by GNU Autoconf 2.72 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2023 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1511,14 +1544,14 @@ fi ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext + rm -f conftest.$ac_objext conftest.beam 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1526,17 +1559,19 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$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 : + } && test -s conftest.$ac_objext +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval @@ -1549,14 +1584,14 @@ fi 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 + rm -f conftest.$ac_objext conftest.beam 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1564,20 +1599,22 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext - }; then : + } +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would @@ -1596,108 +1633,33 @@ fi 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +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;; +else case e in #( + e) eval "$3=no" ;; 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;; +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; 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 ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval -} # ac_fn_c_try_run +} # ac_fn_c_check_header_compile # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- @@ -1705,28 +1667,22 @@ fi 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 + which can conflict with char $2 (void); below. */ +#include #undef $2 /* Override any GCC internal prototype to avoid an error. @@ -1735,7 +1691,7 @@ else #ifdef __cplusplus extern "C" #endif -char $2 (); +char $2 (void); /* 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. */ @@ -1744,114 +1700,30 @@ choke me #endif int -main () +main (void) { return $2 (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_func - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no +else case e in #( + e) eval "$3=no" ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext ;; esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno -} # ac_fn_c_check_header_mongrel +} # ac_fn_c_check_func # ac_fn_c_find_uintX_t LINENO BITS VAR # ------------------------------------ @@ -1860,12 +1732,13 @@ fi ac_fn_c_find_uintX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 -$as_echo_n "checking for uint$2_t... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 +printf %s "checking for uint$2_t... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ @@ -1874,7 +1747,7 @@ else /* end confdefs.h. */ $ac_includes_default int -main () +main (void) { static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; test_array [0] = 0; @@ -1884,7 +1757,8 @@ return test_array [0]; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : case $ac_type in #( uint$2_t) : eval "$3=yes" ;; #( @@ -1892,28 +1766,95 @@ if ac_fn_c_try_compile "$LINENO"; then : eval "$3=\$ac_type" ;; esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if eval test \"x\$"$3"\" = x"no"; then : +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if eval test \"x\$"$3"\" = x"no" +then : -else - break +else case e in #( + e) break ;; +esac fi - done + done ;; +esac fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_uintX_t + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to run 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\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$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\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : + ac_retval=0 +else case e in #( + e) printf "%s\n" "$as_me: program exited with status $ac_status" >&5 + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status ;; +esac +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_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac + cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Jerasure $as_me 2.0, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.72. Invocation command line was - $ $0 $@ + $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log @@ -1946,8 +1887,12 @@ 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" + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS @@ -1982,7 +1927,7 @@ do | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; @@ -2017,11 +1962,13 @@ done # 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=$? + # Sanitize IFS. + IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo - $as_echo "## ---------------- ## + printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo @@ -2032,8 +1979,8 @@ trap 'exit_status=$? 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;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -2057,7 +2004,7 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ) echo - $as_echo "## ----------------- ## + printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo @@ -2065,14 +2012,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## + printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo @@ -2080,15 +2027,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then - $as_echo "## ----------- ## + printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo @@ -2096,8 +2043,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; echo fi test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && @@ -2111,65 +2058,50 @@ 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 +printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # 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 + ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" + +for ac_site_file in $ac_site_files 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;} + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$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;} + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } +See 'config.log' for more details" "$LINENO" 5; } fi done @@ -2177,61 +2109,494 @@ 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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$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 +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif + +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (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; +} + +/* C89 style stringification. */ +#define noexpand_stringify(a) #a +const char *stringified = noexpand_stringify(arbitrary+token=sequence); + +/* C89 style token pasting. Exercises some of the corner cases that + e.g. old MSVC gets wrong, but not very hard. */ +#define noexpand_concat(a,b) a##b +#define expand_concat(a,b) noexpand_concat(a,b) +extern int vA; +extern int vbee; +#define aye A +#define bee B +int *pvA = &expand_concat(v,aye); +int *pvbee = &noexpand_concat(v,bee); + +/* 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 do not provoke an error unfortunately, instead are silently treated + as an "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 is necessary to write \x00 == 0 to get something + that is 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 **, int *(*)(struct buf *, struct stat *, int), + int, int);' + +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' + +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +/* Does the compiler advertise C99 conformance? */ +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif + +// See if C++-style comments work. + +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); +extern void free (void *); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + // Work around memory leak warnings. + free (ia); + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +/* Does the compiler advertise C11 conformance? */ +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" +as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" + +# Auxiliary files required by this configure script. +ac_aux_files="compile config.guess config.sub ltmain.sh missing install-sh" + +# Locations in which to look for auxiliary files. +ac_aux_dir_candidates="${srcdir}/build-aux" + +# Search for a directory containing all of the required auxiliary files, +# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. +# If we don't find one directory that contains all the files we need, +# we report the set of missing files from the *first* directory in +# $ac_aux_dir_candidates and give up. +ac_missing_aux_files="" +ac_first_candidate=: +printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in $ac_aux_dir_candidates +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + + printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + ac_aux_dir_found=yes + ac_install_sh= + for ac_aux in $ac_aux_files + do + # As a special case, if "install-sh" is required, that requirement + # can be satisfied by any of "install-sh", "install.sh", or "shtool", + # and $ac_install_sh is set appropriately for whichever one is found. + if test x"$ac_aux" = x"install-sh" + then + if test -f "${as_dir}install-sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + ac_install_sh="${as_dir}install-sh -c" + elif test -f "${as_dir}install.sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + ac_install_sh="${as_dir}install.sh -c" + elif test -f "${as_dir}shtool"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + ac_install_sh="${as_dir}shtool install -c" + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} install-sh" + else + break + fi + fi + else + if test -f "${as_dir}${ac_aux}"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" + else + break + fi + fi + fi + done + if test "$ac_aux_dir_found" = yes; then + ac_aux_dir="$as_dir" + break + fi + ac_first_candidate=false + + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else case e in #( + e) as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 ;; +esac +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. +if test -f "${ac_aux_dir}config.guess"; then + ac_config_guess="$SHELL ${ac_aux_dir}config.guess" +fi +if test -f "${ac_aux_dir}config.sub"; then + ac_config_sub="$SHELL ${ac_aux_dir}config.sub" +fi +if test -f "$ac_aux_dir/configure"; then + ac_configure="$SHELL ${ac_aux_dir}configure" +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,) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5 +printf "%s\n" "$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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: '$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5 +printf "%s\n" "$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=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in @@ -2241,11 +2606,12 @@ $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file' + and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -2262,50 +2628,24 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers include/config.h" -ac_aux_dir= -for ac_dir in build-aux "$srcdir"/build-aux; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - # This prevents './configure; make' from trying to run autotools. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +printf %s "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : +if test ${enable_maintainer_mode+y} +then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no +else case e in #( + e) USE_MAINTAINER_MODE=no ;; +esac fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +printf "%s\n" "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' @@ -2318,9 +2658,11 @@ fi -am__api_version='1.16' +am__api_version='1.17' + -# Find a good install program. We prefer a C program (faster), + + # 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 @@ -2334,20 +2676,25 @@ am__api_version='1.16' # 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +printf %s "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 +if test ${ac_cv_path_install+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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]/* | \ + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + # Account for fact that we put trailing slashes in our PATH walk. +case $as_dir in #(( + ./ | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; @@ -2357,13 +2704,13 @@ case $as_dir/ in #(( # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + 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 + 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 @@ -2371,12 +2718,12 @@ case $as_dir/ in #(( 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" && + 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" + ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" break 3 fi fi @@ -2390,9 +2737,10 @@ esac IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir - + ;; +esac fi - if test "${ac_cv_path_install+set}" = set; then + if test ${ac_cv_path_install+y}; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a @@ -2402,8 +2750,8 @@ fi INSTALL=$ac_install_sh fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +printf "%s\n" "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -2413,8 +2761,167 @@ 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sleep supports fractional seconds" >&5 +printf %s "checking whether sleep supports fractional seconds... " >&6; } +if test ${am_cv_sleep_fractional_seconds+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if sleep 0.001 2>/dev/null +then : + am_cv_sleep_fractional_seconds=yes +else case e in #( + e) am_cv_sleep_fractional_seconds=no ;; +esac +fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_sleep_fractional_seconds" >&5 +printf "%s\n" "$am_cv_sleep_fractional_seconds" >&6; } + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking filesystem timestamp resolution" >&5 +printf %s "checking filesystem timestamp resolution... " >&6; } +if test ${am_cv_filesystem_timestamp_resolution+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) # Default to the worst case. +am_cv_filesystem_timestamp_resolution=2 + +# Only try to go finer than 1 sec if sleep can do it. +# Don't try 1 sec, because if 0.01 sec and 0.1 sec don't work, +# - 1 sec is not much of a win compared to 2 sec, and +# - it takes 2 seconds to perform the test whether 1 sec works. +# +# Instead, just use the default 2s on platforms that have 1s resolution, +# accept the extra 1s delay when using $sleep in the Automake tests, in +# exchange for not incurring the 2s delay for running the test for all +# packages. +# +am_try_resolutions= +if test "$am_cv_sleep_fractional_seconds" = yes; then + # Even a millisecond often causes a bunch of false positives, + # so just try a hundredth of a second. The time saved between .001 and + # .01 is not terribly consequential. + am_try_resolutions="0.01 0.1 $am_try_resolutions" +fi + +# In order to catch current-generation FAT out, we must *modify* files +# that already exist; the *creation* timestamp is finer. Use names +# that make ls -t sort them differently when they have equal +# timestamps than when they have distinct timestamps, keeping +# in mind that ls -t prints the *newest* file first. +rm -f conftest.ts? +: > conftest.ts1 +: > conftest.ts2 +: > conftest.ts3 + +# Make sure ls -t actually works. Do 'set' in a subshell so we don't +# clobber the current shell's arguments. (Outer-level square brackets +# are removed by m4; they're present so that m4 does not expand +# ; be careful, easy to get confused.) +if ( + set X `ls -t conftest.ts[12]` && + { + test "$*" != "X conftest.ts1 conftest.ts2" || + test "$*" != "X conftest.ts2 conftest.ts1"; + } +); then :; else + # 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". + printf "%s\n" ""Bad output from ls -t: \"`ls -t conftest.ts[12]`\""" >&5 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "ls -t produces unexpected output. +Make sure there is not a broken ls alias in your environment. +See 'config.log' for more details" "$LINENO" 5; } +fi + +for am_try_res in $am_try_resolutions; do + # Any one fine-grained sleep might happen to cross the boundary + # between two values of a coarser actual resolution, but if we do + # two fine-grained sleeps in a row, at least one of them will fall + # entirely within a coarse interval. + echo alpha > conftest.ts1 + sleep $am_try_res + echo beta > conftest.ts2 + sleep $am_try_res + echo gamma > conftest.ts3 + + # We assume that 'ls -t' will make use of high-resolution + # timestamps if the operating system supports them at all. + if (set X `ls -t conftest.ts?` && + test "$2" = conftest.ts3 && + test "$3" = conftest.ts2 && + test "$4" = conftest.ts1); then + # + # Ok, ls -t worked. If we're at a resolution of 1 second, we're done, + # because we don't need to test make. + make_ok=true + if test $am_try_res != 1; then + # But if we've succeeded so far with a subsecond resolution, we + # have one more thing to check: make. It can happen that + # everything else supports the subsecond mtimes, but make doesn't; + # notably on macOS, which ships make 3.81 from 2006 (the last one + # released under GPLv2). https://bugs.gnu.org/68808 + # + # We test $MAKE if it is defined in the environment, else "make". + # It might get overridden later, but our hope is that in practice + # it does not matter: it is the system "make" which is (by far) + # the most likely to be broken, whereas if the user overrides it, + # probably they did so with a better, or at least not worse, make. + # https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html + # + # Create a Makefile (real tab character here): + rm -f conftest.mk + echo 'conftest.ts1: conftest.ts2' >conftest.mk + echo ' touch conftest.ts2' >>conftest.mk + # + # Now, running + # touch conftest.ts1; touch conftest.ts2; make + # should touch ts1 because ts2 is newer. This could happen by luck, + # but most often, it will fail if make's support is insufficient. So + # test for several consecutive successes. + # + # (We reuse conftest.ts[12] because we still want to modify existing + # files, not create new ones, per above.) + n=0 + make=${MAKE-make} + until test $n -eq 3; do + echo one > conftest.ts1 + sleep $am_try_res + echo two > conftest.ts2 # ts2 should now be newer than ts1 + if $make -f conftest.mk | grep 'up to date' >/dev/null; then + make_ok=false + break # out of $n loop + fi + n=`expr $n + 1` + done + fi + # + if $make_ok; then + # Everything we know to check worked out, so call this resolution good. + am_cv_filesystem_timestamp_resolution=$am_try_res + break # out of $am_try_res loop + fi + # Otherwise, we'll go on to check the next resolution. + fi +done +rm -f conftest.ts? +# (end _am_filesystem_timestamp_resolution) + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_filesystem_timestamp_resolution" >&5 +printf "%s\n" "$am_cv_filesystem_timestamp_resolution" >&6; } + +# This check should not be cached, as it may vary across builds of +# different projects. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +printf %s "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -2433,49 +2940,45 @@ esac # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! +am_build_env_is_sane=no +am_has_slept=no +rm -f conftest.file +for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + 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 + test "$2" = conftest.file + ); then + am_build_env_is_sane=yes + break + fi + # Just in case. + sleep "$am_cv_filesystem_timestamp_resolution" + am_has_slept=yes +done + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_build_env_is_sane" >&5 +printf "%s\n" "$am_build_env_is_sane" >&6; } +if test "$am_build_env_is_sane" = no; then + as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & +if test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1 +then : + +else case e in #( + e) ( sleep "$am_cv_filesystem_timestamp_resolution" ) & am_sleep_pid=$! + ;; +esac fi rm -f conftest.file @@ -2486,28 +2989,25 @@ test "$program_prefix" != NONE && 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. +# 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"` +program_transform_name=`printf "%s\n" "$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 + + if test x"${MISSING+set}" != xset; then + MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then @@ -2527,38 +3027,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_STRIP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf "%s\n" "$STRIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2567,38 +3073,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_STRIP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf "%s\n" "$ac_ct_STRIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then @@ -2606,8 +3118,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP @@ -2619,98 +3131,110 @@ 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; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 +printf %s "checking for a race-free 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 + if test ${ac_cv_path_mkdir+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ + as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue + case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir ('*'coreutils) '* | \ + *'BusyBox '* | \ 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS - + ;; +esac fi test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then + if test ${ac_cv_path_mkdir+y}; 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" + # As a last resort, use plain mkdir -p, + # in the hope it doesn't have the bugs of ancient mkdir. + MKDIR_P='mkdir -p' fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +printf "%s\n" "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AWK+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +printf "%s\n" "$AWK" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +printf %s "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 +ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval test \${ac_cv_prog_make_${ac_make}_set+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' @@ -2722,15 +3246,16 @@ case `${MAKE-make} -f conftest.make 2>/dev/null` in *) eval ac_cv_prog_make_${ac_make}_set=no;; esac -rm -f conftest.make +rm -f conftest.make ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } SET_MAKE= else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -2743,23 +3268,21 @@ else fi rmdir .tst 2>/dev/null +AM_DEFAULT_VERBOSITY=1 # Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : +if test ${enable_silent_rules+y} +then : enableval=$enable_silent_rules; fi -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=1;; -esac am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +printf %s "checking whether $am_make supports nested variables... " >&6; } +if test ${am_cv_make_support_nested_variables+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if printf "%s\n" 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 @@ -2769,18 +3292,49 @@ am__doit: am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no +fi ;; +esac fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } +AM_BACKSLASH='\' + +am__rm_f_notfound= +if (rm -f && rm -fr && rm -rf) 2>/dev/null +then : + +else case e in #( + e) am__rm_f_notfound='""' ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking xargs -n works" >&5 +printf %s "checking xargs -n works... " >&6; } +if test ${am_cv_xargs_n_works+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test "`echo 1 2 3 | xargs -n2 echo`" = "1 2 +3" +then : + am_cv_xargs_n_works=yes +else case e in #( + e) am_cv_xargs_n_works=no ;; +esac +fi ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_xargs_n_works" >&5 +printf "%s\n" "$am_cv_xargs_n_works" >&6; } +if test "$am_cv_xargs_n_works" = yes +then : + am__xargs_n='xargs -n' +else case e in #( + e) am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "" "$am__xargs_n_arg"; done; }' + ;; +esac fi -AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output @@ -2807,14 +3361,10 @@ fi VERSION='2.0' -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF +printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF +printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h # Some tools Automake needs. @@ -2854,48 +3404,24 @@ am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! +if test -z "$ETAGS"; then + ETAGS=etags +fi + +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. -END - as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 - fi -fi # Package default C compiler flags. @@ -2903,8 +3429,8 @@ fi case `pwd` in *\ * | *\ *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac @@ -2924,28 +3450,33 @@ 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 + + # 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 + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +printf %s "checking build system type... " >&6; } +if test ${ac_cv_build+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_build_alias=$build_alias test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` + 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 - +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 + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +printf "%s\n" "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; @@ -2964,21 +3495,23 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +printf %s "checking host system type... " >&6; } +if test ${ac_cv_host+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 + 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 - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +printf "%s\n" "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; @@ -3018,8 +3551,8 @@ 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +printf %s "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 @@ -3045,12 +3578,12 @@ func_echo_all () } 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; } ;; + printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +printf "%s\n" "printf" >&6; } ;; + print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +printf "%s\n" "print -r" >&6; } ;; + *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +printf "%s\n" "cat" >&6; } ;; esac @@ -3063,6 +3596,15 @@ esac + + + + + + + + + @@ -3070,8 +3612,8 @@ DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 -$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; } cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out @@ -3107,11 +3649,12 @@ esac fi done rm -f confinc.* confmf.* -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 -$as_echo "${_am_result}" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +printf "%s\n" "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : +if test ${enable_dependency_tracking+y} +then : enableval=$enable_dependency_tracking; fi @@ -3137,38 +3680,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3177,38 +3726,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -3216,8 +3771,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -3230,38 +3785,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3270,12 +3831,13 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no @@ -3283,15 +3845,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3307,18 +3873,19 @@ if test $ac_prog_rejected = yes; then # 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+' '}$@" + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi -fi +fi ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3329,38 +3896,44 @@ if test -z "$CC"; then 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3373,38 +3946,44 @@ if test -z "$CC"; then 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3416,34 +3995,140 @@ done 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 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;} +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } +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 +printf "%s\n" "$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 +for ac_option in --version -v -V -qversion -version; 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -3453,7 +4138,7 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -3461,7 +4146,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -3473,9 +4158,9 @@ 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[^ ]*//'` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$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.*" @@ -3496,13 +4181,14 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$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' + printf "%s\n" "$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. @@ -3517,12 +4203,12 @@ do # certainly right. break;; *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + if test ${ac_cv_exeext+y} && 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' + # 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. @@ -3533,48 +4219,52 @@ do done test "$ac_cv_exeext" = no && ac_cv_exeext= -else - ac_file='' +else case e in #( + e) ac_file='' ;; +esac 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 +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$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;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } +See 'config.log' for more details" "$LINENO" 5; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "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 +printf "%s\n" "$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'. + printf "%s\n" "$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 @@ -3584,15 +4274,16 @@ for ac_file in conftest.exe conftest conftest.*; do * ) 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;} +else case e in #( + e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext @@ -3601,9 +4292,11 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { FILE *f = fopen ("conftest.out", "w"); + if (!f) + return 1; return ferror (f) || fclose (f) != 0; ; @@ -3613,8 +4306,8 @@ _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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in @@ -3622,10 +4315,10 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in @@ -3633,39 +4326,41 @@ $as_echo "$ac_try_echo"; } >&5 *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$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; } + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error 77 "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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +rm -f conftest.$ac_ext conftest$ac_cv_exeext \ + conftest.o conftest.obj 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -3679,11 +4374,12 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$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 : + printf "%s\n" "$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 @@ -3692,31 +4388,34 @@ $as_echo "$ac_try_echo"; } >&5 break;; esac done -else - $as_echo "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$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;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext +rm -f conftest.$ac_cv_objext conftest.$ac_ext ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -3726,30 +4425,36 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else - ac_compiler_gnu=no +else case e in #( + e) ac_compiler_gnu=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi -ac_test_CFLAGS=${CFLAGS+set} +ac_test_CFLAGS=${CFLAGS+y} 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" @@ -3757,57 +4462,63 @@ else /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes -else - CFLAGS="" +else case e in #( + e) CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else - ac_c_werror_flag=$ac_save_c_werror_flag +else case e in #( + e) ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +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 +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag ;; +esac 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -3822,94 +4533,153 @@ 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_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC ;; +esac +fi -/* 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]; +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" ;; +esac +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 ;; +esac +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC ;; +esac +fi -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; -} +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" ;; +esac +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 ;; +esac +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +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 : + if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_c89=$ac_arg fi -rm -f core conftest.err conftest.$ac_objext +rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac +fi +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" ;; +esac 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; } ;; + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 ;; esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - +fi fi ac_ext=c @@ -3918,21 +4688,23 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_ext=c + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +printf %s "checking whether $CC understands -c and -o together... " >&6; } +if test ${am_cv_prog_cc_c_o+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -3958,10 +4730,11 @@ _ACEOF fi done rm -f core conftest* - unset am_i + unset am_i ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. @@ -3979,12 +4752,13 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +printf %s "checking dependency style of $depcc... " >&6; } +if test ${am_cv_CC_dependencies_compiler_type+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 @@ -4071,7 +4845,7 @@ else # 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: + # When given -MP, icc 7.0 and 7.1 complain thus: # 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 @@ -4088,10 +4862,11 @@ else else am_cv_CC_dependencies_compiler_type=none fi - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if @@ -4105,12 +4880,13 @@ else fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if ${ac_cv_path_SED+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +printf %s "checking for a sed that does not truncate output... " >&6; } +if test ${ac_cv_path_SED+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 @@ -4123,25 +4899,31 @@ else for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + ac_path_SED="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in +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" + printf %s 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" + printf "%s\n" '' >> "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 @@ -4167,10 +4949,11 @@ IFS=$as_save_IFS else ac_cv_path_SED=$SED fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +printf "%s\n" "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed @@ -4187,37 +4970,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +printf %s "checking for grep that handles long lines and -e... " >&6; } +if test ${ac_cv_path_GREP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + ac_path_GREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in +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" + printf %s 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" + printf "%s\n" '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 @@ -4243,19 +5033,21 @@ IFS=$as_save_IFS else ac_cv_path_GREP=$GREP fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +printf %s "checking for egrep... " >&6; } +if test ${ac_cv_path_EGREP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then @@ -4265,25 +5057,31 @@ else 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in +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" + printf %s 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" + printf "%s\n" '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 @@ -4310,19 +5108,23 @@ else ac_cv_path_EGREP=$EGREP fi - fi + fi ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +printf "%s\n" "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" + EGREP_TRADITIONAL=$EGREP + ac_cv_path_EGREP_TRADITIONAL=$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +printf %s "checking for fgrep... " >&6; } +if test ${ac_cv_path_FGREP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 @@ -4332,25 +5134,31 @@ else 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in +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" + printf %s 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" + printf "%s\n" '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 @@ -4377,10 +5185,11 @@ else ac_cv_path_FGREP=$FGREP fi - fi + fi ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -$as_echo "$ac_cv_path_FGREP" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +printf "%s\n" "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" @@ -4405,17 +5214,19 @@ test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : +if test ${with_gnu_ld+y} +then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no +else case e in #( + e) with_gnu_ld=no ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +printf %s "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -4444,16 +5255,17 @@ $as_echo_n "checking for ld used by $CC... " >&6; } ;; 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +printf %s "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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +printf %s "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 +if test ${lt_cv_path_LD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" @@ -4476,24 +5288,26 @@ else IFS="$lt_save_ifs" else lt_cv_path_LD="$LD" # Let the user override the test with a path. -fi +fi ;; +esac fi LD="$lt_cv_path_LD" if test -n "$LD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -$as_echo "$LD" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +printf "%s\n" "$LD" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +printf %s "checking if the linker ($LD) is GNU ld... " >&6; } +if test ${lt_cv_prog_gnu_ld+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &1 &5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 +printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld @@ -4515,12 +5330,13 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if test ${lt_cv_path_NM+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else @@ -4562,10 +5378,11 @@ else IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} +fi ;; +esac fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -$as_echo "$lt_cv_path_NM" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +printf "%s\n" "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else @@ -4578,38 +5395,44 @@ else 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DUMPBIN+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +printf "%s\n" "$DUMPBIN" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4622,38 +5445,44 @@ if test -z "$DUMPBIN"; then 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DUMPBIN+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +printf "%s\n" "$ac_ct_DUMPBIN" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4665,8 +5494,8 @@ done 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN @@ -4694,12 +5523,13 @@ 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" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +printf %s "checking the name lister ($NM) interface... " >&6; } +if test ${lt_cv_nm_interface+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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) @@ -4712,29 +5542,31 @@ else if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi - rm -f conftest* + rm -f conftest* ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 -$as_echo "$lt_cv_nm_interface" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +printf "%s\n" "$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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +printf %s "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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +printf "%s\n" "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +printf %s "checking the maximum length of command line arguments... " >&6; } +if test ${lt_cv_sys_max_cmd_len+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) i=0 teststring="ABCD" case $build_os in @@ -4855,15 +5687,16 @@ else fi ;; esac - + ;; +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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len @@ -4876,8 +5709,8 @@ max_cmd_len=$lt_cv_sys_max_cmd_len : ${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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +printf %s "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" @@ -4886,18 +5719,18 @@ xsi_shell=no && 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +printf "%s\n" "$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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +printf %s "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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +printf "%s\n" "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then @@ -4931,12 +5764,13 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +printf %s "checking how to convert $build file names to $host format... " >&6; } +if test ${lt_cv_to_host_file_cmd+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys @@ -4967,23 +5801,25 @@ else lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac - + ;; +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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +printf "%s\n" "$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. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +printf %s "checking how to convert $build file names to toolchain format... " >&6; } +if test ${lt_cv_to_tool_file_cmd+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) @@ -4994,26 +5830,29 @@ case $host in esac ;; 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +printf "%s\n" "$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' +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +printf %s "checking for $LD option to reload object files... " >&6; } +if test ${lt_cv_ld_reload_flag+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_ld_reload_flag='-r' ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 -$as_echo "$lt_cv_ld_reload_flag" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +printf "%s\n" "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; @@ -5046,38 +5885,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +printf "%s\n" "$OBJDUMP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5086,38 +5931,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +printf "%s\n" "$ac_ct_OBJDUMP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then @@ -5125,8 +5976,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP @@ -5145,12 +5996,13 @@ 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' +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +printf %s "checking how to recognize dependent libraries... " >&6; } +if test ${lt_cv_deplibs_check_method+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 @@ -5345,10 +6197,11 @@ tpf*) lt_cv_deplibs_check_method=pass_all ;; esac - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +printf "%s\n" "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no @@ -5392,38 +6245,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +printf "%s\n" "$DLLTOOL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5432,38 +6291,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +printf "%s\n" "$ac_ct_DLLTOOL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then @@ -5471,8 +6336,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL @@ -5492,12 +6357,13 @@ 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' +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +printf %s "checking how to associate runtime and link libraries... " >&6; } +if test ${lt_cv_sharedlib_from_linklib_cmd+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) @@ -5517,10 +6383,11 @@ cygwin* | mingw* | pw32* | cegcc*) lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac - + ;; +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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +printf "%s\n" "$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 @@ -5536,38 +6403,44 @@ if test -n "$ac_tool_prefix"; then 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5580,38 +6453,44 @@ if test -z "$AR"; then 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf "%s\n" "$ac_ct_AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5623,8 +6502,8 @@ done 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR @@ -5644,30 +6523,32 @@ fi -{ $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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +printf %s "checking for archiver @FILE support... " >&6; } +if test ${lt_cv_ar_at_file+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$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. @@ -5675,7 +6556,7 @@ if ac_fn_c_try_compile "$LINENO"; then : { { 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ @@ -5684,11 +6565,12 @@ if ac_fn_c_try_compile "$LINENO"; then : rm -f conftest.* libconftest.a fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -$as_echo "$lt_cv_ar_at_file" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +printf "%s\n" "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= @@ -5705,38 +6587,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_STRIP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf "%s\n" "$STRIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5745,38 +6633,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_STRIP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf "%s\n" "$ac_ct_STRIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then @@ -5784,8 +6678,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP @@ -5804,38 +6698,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5844,38 +6744,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then @@ -5883,8 +6789,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB @@ -5973,12 +6879,13 @@ 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 - +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +printf %s "checking command to parse $NM output from $compiler object... " >&6; } +if test ${lt_cv_sys_global_symbol_pipe+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] @@ -6096,14 +7003,14 @@ _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 + printf "%s\n" "$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 + printf "%s\n" "$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 @@ -6172,7 +7079,7 @@ _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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi @@ -6200,18 +7107,19 @@ _LT_EOF lt_cv_sys_global_symbol_pipe= fi done - + ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +printf "%s\n" "failed" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +printf "%s\n" "ok" >&6; } fi # Response file support. @@ -6247,14 +7155,16 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -$as_echo_n "checking for sysroot... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +printf %s "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. -if test "${with_sysroot+set}" = set; then : +if test ${with_sysroot+y} +then : withval=$with_sysroot; -else - with_sysroot=no +else case e in #( + e) with_sysroot=no ;; +esac fi @@ -6271,21 +7181,22 @@ case ${with_sysroot} in #( no|'') ;; #( *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 -$as_echo "${with_sysroot}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +printf "%s\n" "${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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +printf "%s\n" "${lt_sysroot:-no}" >&6; } # Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then : +if test ${enable_libtool_lock+y} +then : enableval=$enable_libtool_lock; fi @@ -6300,7 +7211,7 @@ ia64-*-hpux*) 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) @@ -6319,7 +7230,7 @@ ia64-*-hpux*) 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 + printf "%s\n" "$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 @@ -6357,7 +7268,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) @@ -6407,12 +7318,13 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +printf %s "checking whether the C compiler needs -belf... " >&6; } +if test ${lt_cv_cc_needs_belf+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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' @@ -6422,29 +7334,32 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : lt_cv_cc_needs_belf=yes -else - lt_cv_cc_needs_belf=no +else case e in #( + e) lt_cv_cc_needs_belf=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ 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 - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 -$as_echo "$lt_cv_cc_needs_belf" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +printf "%s\n" "$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" @@ -6456,7 +7371,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; } 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) @@ -6493,38 +7408,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_MANIFEST_TOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +printf "%s\n" "$MANIFEST_TOOL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6533,38 +7454,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then @@ -6572,8 +7499,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL @@ -6583,22 +7510,24 @@ else 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if test ${lt_cv_path_mainfest_tool+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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* + rm -f conftest* ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -$as_echo "$lt_cv_path_mainfest_tool" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi @@ -6613,38 +7542,44 @@ fi 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DSYMUTIL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +printf "%s\n" "$DSYMUTIL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6653,38 +7588,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DSYMUTIL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +printf "%s\n" "$ac_ct_DSYMUTIL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then @@ -6692,8 +7633,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL @@ -6705,38 +7646,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_NMEDIT+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +printf "%s\n" "$NMEDIT" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6745,38 +7692,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_NMEDIT+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +printf "%s\n" "$ac_ct_NMEDIT" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then @@ -6784,8 +7737,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT @@ -6797,38 +7750,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_LIPO+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +printf "%s\n" "$LIPO" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6837,38 +7796,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_LIPO+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +printf "%s\n" "$ac_ct_LIPO" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then @@ -6876,8 +7841,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO @@ -6889,38 +7854,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OTOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +printf "%s\n" "$OTOOL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6929,38 +7900,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OTOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +printf "%s\n" "$ac_ct_OTOOL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then @@ -6968,8 +7945,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL @@ -6981,38 +7958,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OTOOL64+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +printf "%s\n" "$OTOOL64" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -7021,38 +8004,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OTOOL64+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +printf "%s\n" "$ac_ct_OTOOL64" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then @@ -7060,8 +8049,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 @@ -7096,12 +8085,13 @@ 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +printf %s "checking for -single_module linker flag... " >&6; } +if test ${lt_cv_apple_cc_single_mod+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 @@ -7127,17 +8117,19 @@ else fi rm -rf libconftest.dylib* rm -f conftest.* - fi + fi ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +printf %s "checking for -exported_symbols_list linker flag... " >&6; } +if test ${lt_cv_ld_exported_symbols_list+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" @@ -7145,32 +8137,36 @@ else /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : lt_cv_ld_exported_symbols_list=yes -else - lt_cv_ld_exported_symbols_list=no +else case e in #( + e) lt_cv_ld_exported_symbols_list=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +printf %s "checking for -force_load linker flag... " >&6; } +if test ${lt_cv_ld_force_load+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF @@ -7195,10 +8191,11 @@ _LT_EOF fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 -$as_echo "$lt_cv_ld_force_load" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +printf "%s\n" "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; @@ -7234,293 +8231,51 @@ $as_echo "$lt_cv_ld_force_load" >&6; } ;; esac -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $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 +ac_header= ac_cache= +for ac_item in $ac_header_c_list 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 - + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h + fi + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item + fi 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 +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : -# 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 +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h 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 +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 +if test "x$ac_cv_header_dlfcn_h" = xyes +then : + printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h fi -done - # Set options # Check whether --enable-static was given. -if test "${enable_static+set}" = set; then : +if test ${enable_static+y} +then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; @@ -7538,8 +8293,9 @@ if test "${enable_static+set}" = set; then : IFS="$lt_save_ifs" ;; esac -else - enable_static=no +else case e in #( + e) enable_static=no ;; +esac fi @@ -7558,7 +8314,8 @@ fi # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : +if test ${enable_shared+y} +then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; @@ -7576,8 +8333,9 @@ if test "${enable_shared+set}" = set; then : IFS="$lt_save_ifs" ;; esac -else - enable_shared=yes +else case e in #( + e) enable_shared=yes ;; +esac fi @@ -7591,7 +8349,8 @@ fi # Check whether --with-pic was given. -if test "${with_pic+set}" = set; then : +if test ${with_pic+y} +then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; @@ -7608,8 +8367,9 @@ if test "${with_pic+set}" = set; then : IFS="$lt_save_ifs" ;; esac -else - pic_mode=default +else case e in #( + e) pic_mode=default ;; +esac fi @@ -7622,7 +8382,8 @@ test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then : +if test ${enable_fast_install+y} +then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; @@ -7640,8 +8401,9 @@ if test "${enable_fast_install+set}" = set; then : IFS="$lt_save_ifs" ;; esac -else - enable_fast_install=yes +else case e in #( + e) enable_fast_install=yes ;; +esac fi @@ -7708,12 +8470,13 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +printf %s "checking for objdir... " >&6; } +if test ${lt_cv_objdir+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs @@ -7721,19 +8484,18 @@ else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi -rmdir .libs 2>/dev/null +rmdir .libs 2>/dev/null ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 -$as_echo "$lt_cv_objdir" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +printf "%s\n" "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir -cat >>confdefs.h <<_ACEOF -#define LT_OBJDIR "$lt_cv_objdir/" -_ACEOF +printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h @@ -7786,12 +8548,13 @@ 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +printf %s "checking for ${ac_tool_prefix}file... " >&6; } +if test ${lt_cv_path_MAGIC_CMD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; @@ -7834,16 +8597,17 @@ _LT_EOF IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; +esac ;; 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +printf "%s\n" "$MAGIC_CMD" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -7852,12 +8616,13 @@ 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +printf %s "checking for file... " >&6; } +if test ${lt_cv_path_MAGIC_CMD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; @@ -7900,16 +8665,17 @@ _LT_EOF IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; +esac ;; 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +printf "%s\n" "$MAGIC_CMD" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -7994,12 +8760,13 @@ if test "$GCC" = yes; then 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if test ${lt_cv_prog_compiler_rtti_exceptions+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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" @@ -8027,10 +8794,11 @@ else fi fi $RM conftest* - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +printf "%s\n" "$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" @@ -8356,27 +9124,30 @@ case $host_os in ;; 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +printf %s "checking for $compiler option to produce PIC... " >&6; } +if test ${lt_cv_prog_compiler_pic+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -$as_echo "$lt_cv_prog_compiler_pic" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if test ${lt_cv_prog_compiler_pic_works+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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" @@ -8404,10 +9175,11 @@ else fi fi $RM conftest* - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in @@ -8435,12 +9207,13 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test ${lt_cv_prog_compiler_static_works+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 @@ -8461,10 +9234,11 @@ else fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : @@ -8478,12 +9252,13 @@ 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test ${lt_cv_prog_compiler_c_o+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest @@ -8523,22 +9298,24 @@ else cd .. $RM -r conftest $RM conftest* - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test ${lt_cv_prog_compiler_c_o+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest @@ -8578,10 +9355,11 @@ else cd .. $RM -r conftest $RM conftest* - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } @@ -8589,19 +9367,19 @@ $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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +printf %s "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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +printf "%s\n" "$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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +printf "%s\n" "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else @@ -8613,8 +9391,8 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= @@ -9098,21 +9876,23 @@ _LT_EOF 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 + if test ${lt_cv_aix_libpath_+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -9127,12 +9907,13 @@ if ac_fn_c_try_link "$LINENO"; 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 \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi - + ;; +esac fi aix_libpath=$lt_cv_aix_libpath_ @@ -9151,21 +9932,23 @@ fi 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 + if test ${lt_cv_aix_libpath_+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -9180,12 +9963,13 @@ if ac_fn_c_try_link "$LINENO"; 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 \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi - + ;; +esac fi aix_libpath=$lt_cv_aix_libpath_ @@ -9418,12 +10202,13 @@ fi # 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +printf %s "checking if $CC understands -b... " >&6; } +if test ${lt_cv_prog_compiler__b+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext @@ -9444,10 +10229,11 @@ else fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 -$as_echo "$lt_cv_prog_compiler__b" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +printf "%s\n" "$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' @@ -9487,28 +10273,32 @@ fi # 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" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if test ${lt_cv_irix_exported_symbol+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 : +if ac_fn_c_try_link "$LINENO" +then : lt_cv_irix_exported_symbol=yes -else - lt_cv_irix_exported_symbol=no +else case e in #( + e) lt_cv_irix_exported_symbol=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" + LDFLAGS="$save_LDFLAGS" ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -$as_echo "$lt_cv_irix_exported_symbol" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +printf "%s\n" "$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 @@ -9766,8 +10556,8 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -$as_echo "$ld_shlibs" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +printf "%s\n" "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld @@ -9803,18 +10593,19 @@ x|xyes) # 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* + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +printf %s "checking whether -lc should be explicitly linked in... " >&6; } +if test ${lt_cv_archive_cmds_need_lc+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) $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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest @@ -9832,7 +10623,7 @@ else 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no @@ -9844,10 +10635,11 @@ else cat conftest.err 1>&5 fi $RM conftest* - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac @@ -10006,8 +10798,8 @@ esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +printf %s "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in @@ -10498,10 +11290,11 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) 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 + if test ${lt_cv_shlibpath_overrides_runpath+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ @@ -10510,23 +11303,26 @@ else /* end confdefs.h. */ int -main () +main (void) { ; 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 : +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 \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir - + ;; +esac fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath @@ -10739,8 +11535,8 @@ uts4*) dynamic_linker=no ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +printf "%s\n" "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" @@ -10846,8 +11642,8 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +printf %s "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || @@ -10871,8 +11667,8 @@ else # directories. hardcode_action=unsupported fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 -$as_echo "$hardcode_action" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +printf "%s\n" "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then @@ -10916,233 +11712,281 @@ else 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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. */ + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char dlopen (void); int -main () +main (void) { return dlopen (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no +else case e in #( + e) ac_cv_lib_dl_dlopen=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac 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 : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$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 - +else case e in #( + e) lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes - + ;; +esac fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" -if test "x$ac_cv_func_shl_load" = xyes; then : +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 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +printf %s "checking for shl_load in -ldld... " >&6; } +if test ${ac_cv_lib_dld_shl_load+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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. */ + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif -char shl_load (); +char shl_load (void); int -main () +main (void) { return shl_load (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_dld_shl_load=yes -else - ac_cv_lib_dld_shl_load=no +else case e in #( + e) ac_cv_lib_dld_shl_load=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac 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 : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +printf "%s\n" "$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 : +else case e in #( + e) 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 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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. */ + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char dlopen (void); int -main () +main (void) { return dlopen (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no +else case e in #( + e) ac_cv_lib_dl_dlopen=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac 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 : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$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 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +printf %s "checking for dlopen in -lsvld... " >&6; } +if test ${ac_cv_lib_svld_dlopen+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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. */ + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char dlopen (void); int -main () +main (void) { return dlopen (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_svld_dlopen=yes -else - ac_cv_lib_svld_dlopen=no +else case e in #( + e) ac_cv_lib_svld_dlopen=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac 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 : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +printf "%s\n" "$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 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +printf %s "checking for dld_link in -ldld... " >&6; } +if test ${ac_cv_lib_dld_dld_link+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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. */ + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif -char dld_link (); +char dld_link (void); int -main () +main (void) { return dld_link (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_dld_dld_link=yes -else - ac_cv_lib_dld_dld_link=no +else case e in #( + e) ac_cv_lib_dld_dld_link=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac 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 : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +printf "%s\n" "$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 - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi ;; @@ -11165,12 +12009,13 @@ fi 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 : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +printf %s "checking whether a program can dlopen itself... " >&6; } +if test ${lt_cv_dlopen_self+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -11248,7 +12093,7 @@ _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 + printf "%s\n" "$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=$? @@ -11264,19 +12109,21 @@ _LT_EOF fi rm -fr conftest* - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 -$as_echo "$lt_cv_dlopen_self" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +printf "%s\n" "$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 : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +printf %s "checking whether a statically linked program can dlopen itself... " >&6; } +if test ${lt_cv_dlopen_self_static+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -11354,7 +12201,7 @@ _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 + printf "%s\n" "$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=$? @@ -11370,10 +12217,11 @@ _LT_EOF fi rm -fr conftest* - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 -$as_echo "$lt_cv_dlopen_self_static" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +printf "%s\n" "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" @@ -11411,13 +12259,13 @@ 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +printf %s "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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in @@ -11425,16 +12273,16 @@ else 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi ;; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ;; esac fi @@ -11451,13 +12299,13 @@ 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +printf %s "checking if libtool supports shared libraries... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +printf "%s\n" "$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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +printf %s "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 @@ -11477,15 +12325,15 @@ $as_echo_n "checking whether to build shared libraries... " >&6; } fi ;; esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +printf "%s\n" "$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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +printf %s "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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +printf "%s\n" "$enable_static" >&6; } @@ -11531,38 +12379,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -11571,38 +12425,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -11610,8 +12470,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -11624,38 +12484,44 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -11664,12 +12530,13 @@ 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no @@ -11677,15 +12544,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -11701,18 +12572,19 @@ if test $ac_prog_rejected = yes; then # 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+' '}$@" + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi -fi +fi ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -11723,38 +12595,44 @@ if test -z "$CC"; then 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -11767,38 +12645,44 @@ if test -z "$CC"; then 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$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 ;; +esac 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; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -11810,34 +12694,140 @@ done 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 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;} +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } +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 +printf "%s\n" "$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 +for ac_option in --version -v -V -qversion -version; 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 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -11847,20 +12837,21 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -11870,30 +12861,36 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else - ac_compiler_gnu=no +else case e in #( + e) ac_compiler_gnu=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi -ac_test_CFLAGS=${CFLAGS+set} +ac_test_CFLAGS=${CFLAGS+y} 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" @@ -11901,57 +12898,63 @@ else /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes -else - CFLAGS="" +else case e in #( + e) CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else - ac_c_werror_flag=$ac_save_c_werror_flag +else case e in #( + e) ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +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 +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag ;; +esac 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -11966,94 +12969,153 @@ 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_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC ;; +esac +fi -/* 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]; +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" ;; +esac +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 ;; +esac +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC ;; +esac +fi -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; -} +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" ;; +esac +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 ;; +esac +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +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 : + if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_c89=$ac_arg fi -rm -f core conftest.err conftest.$ac_objext +rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac +fi +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" ;; +esac 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; } ;; + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 ;; esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - +fi fi ac_ext=c @@ -12062,21 +13124,23 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_ext=c + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +printf %s "checking whether $CC understands -c and -o together... " >&6; } +if test ${am_cv_prog_cc_c_o+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -12102,10 +13166,11 @@ _ACEOF fi done rm -f core conftest* - unset am_i + unset am_i ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. @@ -12123,12 +13188,13 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +printf %s "checking dependency style of $depcc... " >&6; } +if test ${am_cv_CC_dependencies_compiler_type+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 @@ -12215,7 +13281,7 @@ else # 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: + # When given -MP, icc 7.0 and 7.1 complain thus: # 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 @@ -12232,10 +13298,11 @@ else else am_cv_CC_dependencies_compiler_type=none fi - + ;; +esac 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; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if @@ -12251,85 +13318,128 @@ fi # Checks for libraries. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gf_init_easy in -lgf_complete" >&5 -$as_echo_n "checking for gf_init_easy in -lgf_complete... " >&6; } -if ${ac_cv_lib_gf_complete_gf_init_easy+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gf_init_easy in -lgf_complete" >&5 +printf %s "checking for gf_init_easy in -lgf_complete... " >&6; } +if test ${ac_cv_lib_gf_complete_gf_init_easy+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lgf_complete $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif -char gf_init_easy (); +char gf_init_easy (void); int -main () +main (void) { return gf_init_easy (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_gf_complete_gf_init_easy=yes -else - ac_cv_lib_gf_complete_gf_init_easy=no +else case e in #( + e) ac_cv_lib_gf_complete_gf_init_easy=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gf_complete_gf_init_easy" >&5 -$as_echo "$ac_cv_lib_gf_complete_gf_init_easy" >&6; } -if test "x$ac_cv_lib_gf_complete_gf_init_easy" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBGF_COMPLETE 1 -_ACEOF +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gf_complete_gf_init_easy" >&5 +printf "%s\n" "$ac_cv_lib_gf_complete_gf_init_easy" >&6; } +if test "x$ac_cv_lib_gf_complete_gf_init_easy" = xyes +then : + printf "%s\n" "#define HAVE_LIBGF_COMPLETE 1" >>confdefs.h LIBS="-lgf_complete $LIBS" -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "You need to have gf_complete installed. gf_complete is available from http://web.eecs.utk.edu/~plank/plank/papers/CS-13-703.html -See \`config.log' for more details" "$LINENO" 5; } - +See 'config.log' for more details" "$LINENO" 5; } + ;; +esac fi # Checks for header files. -for ac_header in stddef.h stdint.h stdlib.h string.h sys/time.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +ac_fn_c_check_header_compile "$LINENO" "stddef.h" "ac_cv_header_stddef_h" "$ac_includes_default" +if test "x$ac_cv_header_stddef_h" = xyes +then : + printf "%s\n" "#define HAVE_STDDEF_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" +if test "x$ac_cv_header_stdint_h" = xyes +then : + printf "%s\n" "#define HAVE_STDINT_H 1" >>confdefs.h -done +fi +ac_fn_c_check_header_compile "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" +if test "x$ac_cv_header_stdlib_h" = xyes +then : + printf "%s\n" "#define HAVE_STDLIB_H 1" >>confdefs.h -for ac_header in gf_complete.h gf_general.h gf_method.h gf_rand.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +fi +ac_fn_c_check_header_compile "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default" +if test "x$ac_cv_header_string_h" = xyes +then : + printf "%s\n" "#define HAVE_STRING_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_time_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h -done +fi +ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" +if test "x$ac_cv_header_unistd_h" = xyes +then : + printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h + +fi + +ac_fn_c_check_header_compile "$LINENO" "gf_complete.h" "ac_cv_header_gf_complete_h" "$ac_includes_default" +if test "x$ac_cv_header_gf_complete_h" = xyes +then : + printf "%s\n" "#define HAVE_GF_COMPLETE_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "gf_general.h" "ac_cv_header_gf_general_h" "$ac_includes_default" +if test "x$ac_cv_header_gf_general_h" = xyes +then : + printf "%s\n" "#define HAVE_GF_GENERAL_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "gf_method.h" "ac_cv_header_gf_method_h" "$ac_includes_default" +if test "x$ac_cv_header_gf_method_h" = xyes +then : + printf "%s\n" "#define HAVE_GF_METHOD_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "gf_rand.h" "ac_cv_header_gf_rand_h" "$ac_includes_default" +if test "x$ac_cv_header_gf_rand_h" = xyes +then : + printf "%s\n" "#define HAVE_GF_RAND_H 1" >>confdefs.h + +fi # Checks for typedefs, structures, and compiler characteristics. @@ -12338,12 +13448,10 @@ case $ac_cv_c_uint32_t in #( no|yes) ;; #( *) -$as_echo "#define _UINT32_T 1" >>confdefs.h +printf "%s\n" "#define _UINT32_T 1" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define uint32_t $ac_cv_c_uint32_t -_ACEOF +printf "%s\n" "#define uint32_t $ac_cv_c_uint32_t" >>confdefs.h ;; esac @@ -12352,12 +13460,10 @@ case $ac_cv_c_uint64_t in #( no|yes) ;; #( *) -$as_echo "#define _UINT64_T 1" >>confdefs.h +printf "%s\n" "#define _UINT64_T 1" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define uint64_t $ac_cv_c_uint64_t -_ACEOF +printf "%s\n" "#define uint64_t $ac_cv_c_uint64_t" >>confdefs.h ;; esac @@ -12366,59 +13472,67 @@ _ACEOF case $host_cpu in powerpc*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether altivec is supported" >&5 -$as_echo_n "checking whether altivec is supported... " >&6; } -if ${ax_cv_have_altivec_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether altivec is supported" >&5 +printf %s "checking whether altivec is supported... " >&6; } +if test ${ax_cv_have_altivec_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test `/usr/sbin/sysctl -a 2>/dev/null| grep -c hw.optional.altivec` != 0; then if test `/usr/sbin/sysctl -n hw.optional.altivec` = 1; then ax_cv_have_altivec_ext=yes fi fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_altivec_ext" >&5 -$as_echo "$ax_cv_have_altivec_ext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_altivec_ext" >&5 +printf "%s\n" "$ax_cv_have_altivec_ext" >&6; } if test "$ax_cv_have_altivec_ext" = yes; then -$as_echo "#define HAVE_ALTIVEC /**/" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -faltivec" >&5 -$as_echo_n "checking whether C compiler accepts -faltivec... " >&6; } -if ${ax_cv_check_cflags___faltivec+:} false; then : - $as_echo_n "(cached) " >&6 -else +printf "%s\n" "#define HAVE_ALTIVEC /**/" >>confdefs.h + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -faltivec" >&5 +printf %s "checking whether C compiler accepts -faltivec... " >&6; } +if test ${ax_cv_check_cflags___faltivec+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -faltivec" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___faltivec=yes -else - ax_cv_check_cflags___faltivec=no +else case e in #( + e) ax_cv_check_cflags___faltivec=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___faltivec" >&5 -$as_echo "$ax_cv_check_cflags___faltivec" >&6; } -if test x"$ax_cv_check_cflags___faltivec" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___faltivec" >&5 +printf "%s\n" "$ax_cv_check_cflags___faltivec" >&6; } +if test x"$ax_cv_check_cflags___faltivec" = xyes +then : SIMD_FLAGS="$SIMD_FLAGS -faltivec" -else - : +else case e in #( + e) : ;; +esac fi fi @@ -12439,19 +13553,21 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 0x00000001 output" >&5 -$as_echo_n "checking for x86 cpuid 0x00000001 output... " >&6; } -if ${ax_cv_gcc_x86_cpuid_0x00000001+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 0x00000001 output" >&5 +printf %s "checking for x86 cpuid 0x00000001 output... " >&6; } +if test ${ax_cv_gcc_x86_cpuid_0x00000001+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test "$cross_compiling" = yes +then : ax_cv_gcc_x86_cpuid_0x00000001=unknown -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { int op = 0x00000001, eax, ebx, ecx, edx; @@ -12468,18 +13584,22 @@ main () return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ax_cv_gcc_x86_cpuid_0x00000001=`cat conftest_cpuid`; rm -f conftest_cpuid -else - ax_cv_gcc_x86_cpuid_0x00000001=unknown; rm -f conftest_cpuid +else case e in #( + e) ax_cv_gcc_x86_cpuid_0x00000001=unknown; rm -f conftest_cpuid ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0x00000001" >&5 -$as_echo "$ax_cv_gcc_x86_cpuid_0x00000001" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0x00000001" >&5 +printf "%s\n" "$ax_cv_gcc_x86_cpuid_0x00000001" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -12495,125 +13615,141 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu edx=`echo $ax_cv_gcc_x86_cpuid_0x00000001 | cut -d ":" -f 4` fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mmx is supported" >&5 -$as_echo_n "checking whether mmx is supported... " >&6; } -if ${ax_cv_have_mmx_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mmx is supported" >&5 +printf %s "checking whether mmx is supported... " >&6; } +if test ${ax_cv_have_mmx_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_mmx_ext=no if test "$((0x$edx>>23&0x01))" = 1; then ax_cv_have_mmx_ext=yes fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_mmx_ext" >&5 -$as_echo "$ax_cv_have_mmx_ext" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse is supported" >&5 -$as_echo_n "checking whether sse is supported... " >&6; } -if ${ax_cv_have_sse_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_mmx_ext" >&5 +printf "%s\n" "$ax_cv_have_mmx_ext" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sse is supported" >&5 +printf %s "checking whether sse is supported... " >&6; } +if test ${ax_cv_have_sse_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_sse_ext=no if test "$((0x$edx>>25&0x01))" = 1; then ax_cv_have_sse_ext=yes fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse_ext" >&5 -$as_echo "$ax_cv_have_sse_ext" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse2 is supported" >&5 -$as_echo_n "checking whether sse2 is supported... " >&6; } -if ${ax_cv_have_sse2_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse_ext" >&5 +printf "%s\n" "$ax_cv_have_sse_ext" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sse2 is supported" >&5 +printf %s "checking whether sse2 is supported... " >&6; } +if test ${ax_cv_have_sse2_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_sse2_ext=no if test "$((0x$edx>>26&0x01))" = 1; then ax_cv_have_sse2_ext=yes fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse2_ext" >&5 -$as_echo "$ax_cv_have_sse2_ext" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse3 is supported" >&5 -$as_echo_n "checking whether sse3 is supported... " >&6; } -if ${ax_cv_have_sse3_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse2_ext" >&5 +printf "%s\n" "$ax_cv_have_sse2_ext" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sse3 is supported" >&5 +printf %s "checking whether sse3 is supported... " >&6; } +if test ${ax_cv_have_sse3_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_sse3_ext=no if test "$((0x$ecx&0x01))" = 1; then ax_cv_have_sse3_ext=yes fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse3_ext" >&5 -$as_echo "$ax_cv_have_sse3_ext" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ssse3 is supported" >&5 -$as_echo_n "checking whether ssse3 is supported... " >&6; } -if ${ax_cv_have_ssse3_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse3_ext" >&5 +printf "%s\n" "$ax_cv_have_sse3_ext" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ssse3 is supported" >&5 +printf %s "checking whether ssse3 is supported... " >&6; } +if test ${ax_cv_have_ssse3_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_ssse3_ext=no if test "$((0x$ecx>>9&0x01))" = 1; then ax_cv_have_ssse3_ext=yes fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_ssse3_ext" >&5 -$as_echo "$ax_cv_have_ssse3_ext" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse4.1 is supported" >&5 -$as_echo_n "checking whether sse4.1 is supported... " >&6; } -if ${ax_cv_have_sse41_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_ssse3_ext" >&5 +printf "%s\n" "$ax_cv_have_ssse3_ext" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sse4.1 is supported" >&5 +printf %s "checking whether sse4.1 is supported... " >&6; } +if test ${ax_cv_have_sse41_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_sse41_ext=no if test "$((0x$ecx>>19&0x01))" = 1; then ax_cv_have_sse41_ext=yes fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse41_ext" >&5 -$as_echo "$ax_cv_have_sse41_ext" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse4.2 is supported" >&5 -$as_echo_n "checking whether sse4.2 is supported... " >&6; } -if ${ax_cv_have_sse42_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse41_ext" >&5 +printf "%s\n" "$ax_cv_have_sse41_ext" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sse4.2 is supported" >&5 +printf %s "checking whether sse4.2 is supported... " >&6; } +if test ${ax_cv_have_sse42_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_sse42_ext=no if test "$((0x$ecx>>20&0x01))" = 1; then ax_cv_have_sse42_ext=yes fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse42_ext" >&5 -$as_echo "$ax_cv_have_sse42_ext" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether avx is supported by processor" >&5 -$as_echo_n "checking whether avx is supported by processor... " >&6; } -if ${ax_cv_have_avx_cpu_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_sse42_ext" >&5 +printf "%s\n" "$ax_cv_have_sse42_ext" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether avx is supported by processor" >&5 +printf %s "checking whether avx is supported by processor... " >&6; } +if test ${ax_cv_have_avx_cpu_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_avx_cpu_ext=no if test "$((0x$ecx>>28&0x01))" = 1; then ax_cv_have_avx_cpu_ext=yes fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_avx_cpu_ext" >&5 -$as_echo "$ax_cv_have_avx_cpu_ext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_avx_cpu_ext" >&5 +printf "%s\n" "$ax_cv_have_avx_cpu_ext" >&6; } if test x"$ax_cv_have_avx_cpu_ext" = x"yes"; then @@ -12623,19 +13759,21 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86-AVX xgetbv 0x00000000 output" >&5 -$as_echo_n "checking for x86-AVX xgetbv 0x00000000 output... " >&6; } -if ${ax_cv_gcc_x86_avx_xgetbv_0x00000000+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for x86-AVX xgetbv 0x00000000 output" >&5 +printf %s "checking for x86-AVX xgetbv 0x00000000 output... " >&6; } +if test ${ax_cv_gcc_x86_avx_xgetbv_0x00000000+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test "$cross_compiling" = yes +then : ax_cv_gcc_x86_avx_xgetbv_0x00000000=unknown -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { int op = 0x00000000, eax, edx; @@ -12653,18 +13791,22 @@ main () return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ax_cv_gcc_x86_avx_xgetbv_0x00000000=`cat conftest_xgetbv`; rm -f conftest_xgetbv -else - ax_cv_gcc_x86_avx_xgetbv_0x00000000=unknown; rm -f conftest_xgetbv +else case e in #( + e) ax_cv_gcc_x86_avx_xgetbv_0x00000000=unknown; rm -f conftest_xgetbv ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_avx_xgetbv_0x00000000" >&5 -$as_echo "$ax_cv_gcc_x86_avx_xgetbv_0x00000000" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_avx_xgetbv_0x00000000" >&5 +printf "%s\n" "$ax_cv_gcc_x86_avx_xgetbv_0x00000000" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -12678,12 +13820,13 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu xgetbv_eax=`echo $ax_cv_gcc_x86_avx_xgetbv_0x00000000 | cut -d ":" -f 1` fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether avx is supported by operating system" >&5 -$as_echo_n "checking whether avx is supported by operating system... " >&6; } -if ${ax_cv_have_avx_ext+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether avx is supported by operating system" >&5 +printf %s "checking whether avx is supported by operating system... " >&6; } +if test ${ax_cv_have_avx_ext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_have_avx_ext=no if test "$((0x$ecx>>27&0x01))" = 1; then @@ -12691,389 +13834,438 @@ else ax_cv_have_avx_ext=yes fi fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_avx_ext" >&5 -$as_echo "$ax_cv_have_avx_ext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_avx_ext" >&5 +printf "%s\n" "$ax_cv_have_avx_ext" >&6; } if test x"$ax_cv_have_avx_ext" = x"no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports AVX, but your operating system doesn't" >&5 -$as_echo "$as_me: WARNING: Your processor supports AVX, but your operating system doesn't" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports AVX, but your operating system doesn't" >&5 +printf "%s\n" "$as_me: WARNING: Your processor supports AVX, but your operating system doesn't" >&2;} fi fi if test "$ax_cv_have_mmx_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mmmx" >&5 -$as_echo_n "checking whether C compiler accepts -mmmx... " >&6; } -if ${ax_cv_check_cflags___mmmx+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mmmx" >&5 +printf %s "checking whether C compiler accepts -mmmx... " >&6; } +if test ${ax_cv_check_cflags___mmmx+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mmmx" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___mmmx=yes -else - ax_cv_check_cflags___mmmx=no +else case e in #( + e) ax_cv_check_cflags___mmmx=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mmmx" >&5 -$as_echo "$ax_cv_check_cflags___mmmx" >&6; } -if test x"$ax_cv_check_cflags___mmmx" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mmmx" >&5 +printf "%s\n" "$ax_cv_check_cflags___mmmx" >&6; } +if test x"$ax_cv_check_cflags___mmmx" = xyes +then : ax_cv_support_mmx_ext=yes -else - : +else case e in #( + e) : ;; +esac fi if test x"$ax_cv_support_mmx_ext" = x"yes"; then SIMD_FLAGS="$SIMD_FLAGS -mmmx" -$as_echo "#define HAVE_MMX /**/" >>confdefs.h +printf "%s\n" "#define HAVE_MMX /**/" >>confdefs.h else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports mmx instructions but not your compiler, can you try another compiler?" >&5 -$as_echo "$as_me: WARNING: Your processor supports mmx instructions but not your compiler, can you try another compiler?" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports mmx instructions but not your compiler, can you try another compiler?" >&5 +printf "%s\n" "$as_me: WARNING: Your processor supports mmx instructions but not your compiler, can you try another compiler?" >&2;} fi fi if test "$ax_cv_have_sse_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse" >&5 -$as_echo_n "checking whether C compiler accepts -msse... " >&6; } -if ${ax_cv_check_cflags___msse+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse" >&5 +printf %s "checking whether C compiler accepts -msse... " >&6; } +if test ${ax_cv_check_cflags___msse+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -msse" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___msse=yes -else - ax_cv_check_cflags___msse=no +else case e in #( + e) ax_cv_check_cflags___msse=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse" >&5 -$as_echo "$ax_cv_check_cflags___msse" >&6; } -if test x"$ax_cv_check_cflags___msse" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse" >&5 +printf "%s\n" "$ax_cv_check_cflags___msse" >&6; } +if test x"$ax_cv_check_cflags___msse" = xyes +then : ax_cv_support_sse_ext=yes -else - : +else case e in #( + e) : ;; +esac fi if test x"$ax_cv_support_sse_ext" = x"yes"; then SIMD_FLAGS="$SIMD_FLAGS -msse" -$as_echo "#define HAVE_SSE /**/" >>confdefs.h +printf "%s\n" "#define HAVE_SSE /**/" >>confdefs.h else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse instructions but not your compiler, can you try another compiler?" >&5 -$as_echo "$as_me: WARNING: Your processor supports sse instructions but not your compiler, can you try another compiler?" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse instructions but not your compiler, can you try another compiler?" >&5 +printf "%s\n" "$as_me: WARNING: Your processor supports sse instructions but not your compiler, can you try another compiler?" >&2;} fi fi if test "$ax_cv_have_sse2_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse2" >&5 -$as_echo_n "checking whether C compiler accepts -msse2... " >&6; } -if ${ax_cv_check_cflags___msse2+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse2" >&5 +printf %s "checking whether C compiler accepts -msse2... " >&6; } +if test ${ax_cv_check_cflags___msse2+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -msse2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___msse2=yes -else - ax_cv_check_cflags___msse2=no +else case e in #( + e) ax_cv_check_cflags___msse2=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse2" >&5 -$as_echo "$ax_cv_check_cflags___msse2" >&6; } -if test x"$ax_cv_check_cflags___msse2" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse2" >&5 +printf "%s\n" "$ax_cv_check_cflags___msse2" >&6; } +if test x"$ax_cv_check_cflags___msse2" = xyes +then : ax_cv_support_sse2_ext=yes -else - : +else case e in #( + e) : ;; +esac fi if test x"$ax_cv_support_sse2_ext" = x"yes"; then SIMD_FLAGS="$SIMD_FLAGS -msse2" -$as_echo "#define HAVE_SSE2 /**/" >>confdefs.h +printf "%s\n" "#define HAVE_SSE2 /**/" >>confdefs.h else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse2 instructions but not your compiler, can you try another compiler?" >&5 -$as_echo "$as_me: WARNING: Your processor supports sse2 instructions but not your compiler, can you try another compiler?" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse2 instructions but not your compiler, can you try another compiler?" >&5 +printf "%s\n" "$as_me: WARNING: Your processor supports sse2 instructions but not your compiler, can you try another compiler?" >&2;} fi fi if test "$ax_cv_have_sse3_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse3" >&5 -$as_echo_n "checking whether C compiler accepts -msse3... " >&6; } -if ${ax_cv_check_cflags___msse3+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse3" >&5 +printf %s "checking whether C compiler accepts -msse3... " >&6; } +if test ${ax_cv_check_cflags___msse3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -msse3" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___msse3=yes -else - ax_cv_check_cflags___msse3=no +else case e in #( + e) ax_cv_check_cflags___msse3=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse3" >&5 -$as_echo "$ax_cv_check_cflags___msse3" >&6; } -if test x"$ax_cv_check_cflags___msse3" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse3" >&5 +printf "%s\n" "$ax_cv_check_cflags___msse3" >&6; } +if test x"$ax_cv_check_cflags___msse3" = xyes +then : ax_cv_support_sse3_ext=yes -else - : +else case e in #( + e) : ;; +esac fi if test x"$ax_cv_support_sse3_ext" = x"yes"; then SIMD_FLAGS="$SIMD_FLAGS -msse3" -$as_echo "#define HAVE_SSE3 /**/" >>confdefs.h +printf "%s\n" "#define HAVE_SSE3 /**/" >>confdefs.h else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse3 instructions but not your compiler, can you try another compiler?" >&5 -$as_echo "$as_me: WARNING: Your processor supports sse3 instructions but not your compiler, can you try another compiler?" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse3 instructions but not your compiler, can you try another compiler?" >&5 +printf "%s\n" "$as_me: WARNING: Your processor supports sse3 instructions but not your compiler, can you try another compiler?" >&2;} fi fi if test "$ax_cv_have_ssse3_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mssse3" >&5 -$as_echo_n "checking whether C compiler accepts -mssse3... " >&6; } -if ${ax_cv_check_cflags___mssse3+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mssse3" >&5 +printf %s "checking whether C compiler accepts -mssse3... " >&6; } +if test ${ax_cv_check_cflags___mssse3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mssse3" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___mssse3=yes -else - ax_cv_check_cflags___mssse3=no +else case e in #( + e) ax_cv_check_cflags___mssse3=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mssse3" >&5 -$as_echo "$ax_cv_check_cflags___mssse3" >&6; } -if test x"$ax_cv_check_cflags___mssse3" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mssse3" >&5 +printf "%s\n" "$ax_cv_check_cflags___mssse3" >&6; } +if test x"$ax_cv_check_cflags___mssse3" = xyes +then : ax_cv_support_ssse3_ext=yes -else - : +else case e in #( + e) : ;; +esac fi if test x"$ax_cv_support_ssse3_ext" = x"yes"; then SIMD_FLAGS="$SIMD_FLAGS -mssse3" -$as_echo "#define HAVE_SSSE3 /**/" >>confdefs.h +printf "%s\n" "#define HAVE_SSSE3 /**/" >>confdefs.h else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports ssse3 instructions but not your compiler, can you try another compiler?" >&5 -$as_echo "$as_me: WARNING: Your processor supports ssse3 instructions but not your compiler, can you try another compiler?" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports ssse3 instructions but not your compiler, can you try another compiler?" >&5 +printf "%s\n" "$as_me: WARNING: Your processor supports ssse3 instructions but not your compiler, can you try another compiler?" >&2;} fi fi if test "$ax_cv_have_sse41_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse4.1" >&5 -$as_echo_n "checking whether C compiler accepts -msse4.1... " >&6; } -if ${ax_cv_check_cflags___msse4_1+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse4.1" >&5 +printf %s "checking whether C compiler accepts -msse4.1... " >&6; } +if test ${ax_cv_check_cflags___msse4_1+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -msse4.1" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___msse4_1=yes -else - ax_cv_check_cflags___msse4_1=no +else case e in #( + e) ax_cv_check_cflags___msse4_1=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse4_1" >&5 -$as_echo "$ax_cv_check_cflags___msse4_1" >&6; } -if test x"$ax_cv_check_cflags___msse4_1" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse4_1" >&5 +printf "%s\n" "$ax_cv_check_cflags___msse4_1" >&6; } +if test x"$ax_cv_check_cflags___msse4_1" = xyes +then : ax_cv_support_sse41_ext=yes -else - : +else case e in #( + e) : ;; +esac fi if test x"$ax_cv_support_sse41_ext" = x"yes"; then SIMD_FLAGS="$SIMD_FLAGS -msse4.1" -$as_echo "#define HAVE_SSE4_1 /**/" >>confdefs.h +printf "%s\n" "#define HAVE_SSE4_1 /**/" >>confdefs.h else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse4.1 instructions but not your compiler, can you try another compiler?" >&5 -$as_echo "$as_me: WARNING: Your processor supports sse4.1 instructions but not your compiler, can you try another compiler?" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse4.1 instructions but not your compiler, can you try another compiler?" >&5 +printf "%s\n" "$as_me: WARNING: Your processor supports sse4.1 instructions but not your compiler, can you try another compiler?" >&2;} fi fi if test "$ax_cv_have_sse42_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse4.2" >&5 -$as_echo_n "checking whether C compiler accepts -msse4.2... " >&6; } -if ${ax_cv_check_cflags___msse4_2+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -msse4.2" >&5 +printf %s "checking whether C compiler accepts -msse4.2... " >&6; } +if test ${ax_cv_check_cflags___msse4_2+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -msse4.2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___msse4_2=yes -else - ax_cv_check_cflags___msse4_2=no +else case e in #( + e) ax_cv_check_cflags___msse4_2=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse4_2" >&5 -$as_echo "$ax_cv_check_cflags___msse4_2" >&6; } -if test x"$ax_cv_check_cflags___msse4_2" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___msse4_2" >&5 +printf "%s\n" "$ax_cv_check_cflags___msse4_2" >&6; } +if test x"$ax_cv_check_cflags___msse4_2" = xyes +then : ax_cv_support_sse42_ext=yes -else - : +else case e in #( + e) : ;; +esac fi if test x"$ax_cv_support_sse42_ext" = x"yes"; then SIMD_FLAGS="$SIMD_FLAGS -msse4.2" -$as_echo "#define HAVE_SSE4_2 /**/" >>confdefs.h +printf "%s\n" "#define HAVE_SSE4_2 /**/" >>confdefs.h else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse4.2 instructions but not your compiler, can you try another compiler?" >&5 -$as_echo "$as_me: WARNING: Your processor supports sse4.2 instructions but not your compiler, can you try another compiler?" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports sse4.2 instructions but not your compiler, can you try another compiler?" >&5 +printf "%s\n" "$as_me: WARNING: Your processor supports sse4.2 instructions but not your compiler, can you try another compiler?" >&2;} fi fi if test "$ax_cv_have_avx_ext" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx" >&5 -$as_echo_n "checking whether C compiler accepts -mavx... " >&6; } -if ${ax_cv_check_cflags___mavx+:} false; then : - $as_echo_n "(cached) " >&6 -else - + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx" >&5 +printf %s "checking whether C compiler accepts -mavx... " >&6; } +if test ${ax_cv_check_cflags___mavx+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mavx" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___mavx=yes -else - ax_cv_check_cflags___mavx=no +else case e in #( + e) ax_cv_check_cflags___mavx=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx" >&5 -$as_echo "$ax_cv_check_cflags___mavx" >&6; } -if test x"$ax_cv_check_cflags___mavx" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx" >&5 +printf "%s\n" "$ax_cv_check_cflags___mavx" >&6; } +if test x"$ax_cv_check_cflags___mavx" = xyes +then : ax_cv_support_avx_ext=yes -else - : +else case e in #( + e) : ;; +esac fi if test x"$ax_cv_support_avx_ext" = x"yes"; then SIMD_FLAGS="$SIMD_FLAGS -mavx" -$as_echo "#define HAVE_AVX /**/" >>confdefs.h +printf "%s\n" "#define HAVE_AVX /**/" >>confdefs.h else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports avx instructions but not your compiler, can you try another compiler?" >&5 -$as_echo "$as_me: WARNING: Your processor supports avx instructions but not your compiler, can you try another compiler?" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Your processor supports avx instructions but not your compiler, can you try another compiler?" >&5 +printf "%s\n" "$as_me: WARNING: Your processor supports avx instructions but not your compiler, can you try another compiler?" >&2;} fi fi @@ -13084,60 +14276,61 @@ $as_echo "$as_me: WARNING: Your processor supports avx instructions but not your # Checks for library functions. -for ac_header in stdlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" -if test "x$ac_cv_header_stdlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_STDLIB_H 1 -_ACEOF - -fi - -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 -$as_echo_n "checking for GNU libc compatible malloc... " >&6; } -if ${ac_cv_func_malloc_0_nonnull+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_malloc_0_nonnull=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 +printf %s "checking for GNU libc compatible malloc... " >&6; } +if test ${ac_cv_func_malloc_0_nonnull+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test "$cross_compiling" = yes +then : + case "$host_os" in # (( + # Guess yes on platforms where we know the result. + *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ + | hpux* | solaris* | cygwin* | mingw* | windows* | msys* ) + ac_cv_func_malloc_0_nonnull=yes ;; + # If we don't know, assume the worst. + *) ac_cv_func_malloc_0_nonnull=no ;; + esac +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#if defined STDC_HEADERS || defined HAVE_STDLIB_H -# include -#else -char *malloc (); -#endif +#include int -main () +main (void) { -return ! malloc (0); +void *p = malloc (0); + int result = !p; + free (p); + return result; ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_func_malloc_0_nonnull=yes -else - ac_cv_func_malloc_0_nonnull=no +else case e in #( + e) ac_cv_func_malloc_0_nonnull=no ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 -$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } -if test $ac_cv_func_malloc_0_nonnull = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 +printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; } +if test $ac_cv_func_malloc_0_nonnull = yes +then : -$as_echo "#define HAVE_MALLOC 1" >>confdefs.h +printf "%s\n" "#define HAVE_MALLOC 1" >>confdefs.h -else - $as_echo "#define HAVE_MALLOC 0" >>confdefs.h +else case e in #( + e) printf "%s\n" "#define HAVE_MALLOC 0" >>confdefs.h case " $LIBOBJS " in *" malloc.$ac_objext "* ) ;; @@ -13146,22 +14339,54 @@ else esac -$as_echo "#define malloc rpl_malloc" >>confdefs.h +printf "%s\n" "#define malloc rpl_malloc" >>confdefs.h + ;; +esac +fi + + +ac_fn_c_check_func "$LINENO" "bzero" "ac_cv_func_bzero" +if test "x$ac_cv_func_bzero" = xyes +then : + printf "%s\n" "#define HAVE_BZERO 1" >>confdefs.h fi +ac_fn_c_check_func "$LINENO" "getcwd" "ac_cv_func_getcwd" +if test "x$ac_cv_func_getcwd" = xyes +then : + printf "%s\n" "#define HAVE_GETCWD 1" >>confdefs.h +fi +ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday" +if test "x$ac_cv_func_gettimeofday" = xyes +then : + printf "%s\n" "#define HAVE_GETTIMEOFDAY 1" >>confdefs.h -for ac_func in bzero getcwd gettimeofday mkdir strchr strdup strrchr -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +fi +ac_fn_c_check_func "$LINENO" "mkdir" "ac_cv_func_mkdir" +if test "x$ac_cv_func_mkdir" = xyes +then : + printf "%s\n" "#define HAVE_MKDIR 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "strchr" "ac_cv_func_strchr" +if test "x$ac_cv_func_strchr" = xyes +then : + printf "%s\n" "#define HAVE_STRCHR 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "strdup" "ac_cv_func_strdup" +if test "x$ac_cv_func_strdup" = xyes +then : + printf "%s\n" "#define HAVE_STRDUP 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "strrchr" "ac_cv_func_strrchr" +if test "x$ac_cv_func_strrchr" = xyes +then : + printf "%s\n" "#define HAVE_STRRCHR 1" >>confdefs.h fi -done ac_config_files="$ac_config_files Examples/Makefile Makefile src/Makefile" @@ -13176,8 +14401,8 @@ cat >confcache <<\_ACEOF # 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 +# '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 @@ -13193,8 +14418,8 @@ _ACEOF 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;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -13207,14 +14432,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; (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 + # '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. + # 'set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | @@ -13224,15 +14449,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; /^ac_cv_env_/b end t clear :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ 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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else @@ -13246,8 +14471,8 @@ $as_echo "$as_me: updating cache $cache_file" >&6;} 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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -13264,7 +14489,7 @@ 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"` + ac_i=`printf "%s\n" "$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" @@ -13279,14 +14504,26 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +printf %s "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 +printf "%s\n" "done" >&6; } +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; +esac +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi + if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' @@ -13312,8 +14549,8 @@ fi 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;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL @@ -13336,63 +14573,65 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +if test ${ZSH_VERSION+y} && (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 #( +else case e in #( + e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; +esac ;; esac fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. 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 +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; 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 || @@ -13401,13 +14640,6 @@ if test "${PATH_SEPARATOR+set}" != set; then 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 #(( @@ -13416,43 +14648,27 @@ case $0 in #(( 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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' +# 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 + printf "%s\n" "$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] @@ -13465,9 +14681,9 @@ 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -13498,22 +14714,25 @@ 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 : +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 () +else case e in #( + e) as_fn_append () { eval $1=\$$1\$2 - } + } ;; +esac fi # as_fn_append # as_fn_arith ARG... @@ -13521,16 +14740,18 @@ fi # as_fn_append # 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 : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else - as_fn_arith () +else case e in #( + e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` - } + } ;; +esac fi # as_fn_arith @@ -13557,7 +14778,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -13579,6 +14800,10 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -13592,6 +14817,12 @@ case `echo -n x` in #((((( ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -13603,9 +14834,9 @@ if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable. + # In both cases, we have to default to 'cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then @@ -13633,7 +14864,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -13642,7 +14873,7 @@ $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" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -13686,10 +14917,12 @@ as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed '$as_sed_sh'" # deprecated exec 6>&1 @@ -13705,7 +14938,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # values after options handling. ac_log=" This file was extended by Jerasure $as_me 2.0, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.72. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -13737,7 +14970,7 @@ _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions +'$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. @@ -13768,14 +15001,16 @@ Report bugs to the package provider. Jerasure home page: ." _ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ Jerasure config.status 2.0 -configured by $0, generated by GNU Autoconf 2.69, +configured by $0, generated by GNU Autoconf 2.72, with options \\"\$ac_cs_config\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2023 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -13815,15 +15050,15 @@ do -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 ;; + printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; + printf "%s\n" "$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"` ;; + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" @@ -13831,23 +15066,23 @@ do --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`printf "%s\n" "$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.";; + as_fn_error $? "ambiguous option: '$1' +Try '$0 --help' for more information.";; --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; + printf "%s\n" "$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_error $? "unrecognized option: '$1' +Try '$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; @@ -13868,7 +15103,7 @@ 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 + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" @@ -13882,7 +15117,7 @@ exec 5>>config.log sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - $as_echo "$ac_log" + printf "%s\n" "$ac_log" } >&5 _ACEOF @@ -14184,7 +15419,7 @@ do "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + *) as_fn_error $? "invalid argument: '$ac_config_target'" "$LINENO" 5;; esac done @@ -14194,9 +15429,9 @@ done # 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 + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files + test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers + test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree @@ -14204,7 +15439,7 @@ fi # 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'. +# after its creation but before its name has been assigned to '$tmp'. $debug || { tmp= ac_tmp= @@ -14228,7 +15463,7 @@ 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'. +# This happens for instance with './config.status config.h'. if test -n "$CONFIG_FILES"; then @@ -14386,13 +15621,13 @@ 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'. +# 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 +# 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. @@ -14502,7 +15737,7 @@ do esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :L* | :C*:*) as_fn_error $? "invalid tag '$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -14524,33 +15759,33 @@ do -) 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 `:'. + # 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;; + 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 + case $ac_f in *\'*) ac_f=`printf "%s\n" "$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 + # 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' + printf "%s\n" "$*" | 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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$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" | + ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac @@ -14567,7 +15802,7 @@ $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" | +printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -14591,9 +15826,9 @@ $as_echo X"$ac_file" | case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$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|/||'` + ac_top_builddir_sub=`printf "%s\n" "$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/ ;; @@ -14655,8 +15890,8 @@ ac_sed_dataroot=' 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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$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=' @@ -14669,7 +15904,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 esac _ACEOF -# Neutralize VPATH when `$srcdir' = `.'. +# 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 @@ -14700,9 +15935,9 @@ 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' + { printf "%s\n" "$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' +printf "%s\n" "$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" @@ -14718,20 +15953,20 @@ which seems to be undefined. Please make sure it is defined" >&2;} # if test x"$ac_file" != x-; then { - $as_echo "/* $configure_input */" \ + printf "%s\n" "/* $configure_input */" >&1 \ && 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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +printf "%s\n" "$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 */" \ + printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi @@ -14751,7 +15986,7 @@ $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" | +printf "%s\n" X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -14771,8 +16006,8 @@ $as_echo X"$_am_arg" | 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;} + :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +printf "%s\n" "$as_me: executing $ac_file commands" >&6;} ;; esac @@ -14798,7 +16033,7 @@ esac for am_mf do # Strip MF so we end up with the name of the file. - am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` + am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line @@ -14810,7 +16045,7 @@ $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$am_mf" : 'X\(//\)[^/]' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$am_mf" | +printf "%s\n" X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -14832,7 +16067,7 @@ $as_echo X"$am_mf" | $as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$am_mf" | +printf "%s\n" X/"$am_mf" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -14857,13 +16092,15 @@ $as_echo X/"$am_mf" | (exit $ac_status); } || am_rc=$? done if test $am_rc -ne 0; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE=\"gmake\" (or whatever is + necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } fi { am_dirpart=; unset am_dirpart;} { am_filepart=; unset am_filepart;} @@ -15328,6 +16565,7 @@ _LT_EOF esac + ltmain="$ac_aux_dir/ltmain.sh" @@ -15492,8 +16730,8 @@ else 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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +printf "%s\n" "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi @@ -15536,7 +16774,8 @@ if test "$no_create" != yes; then $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;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi + diff --git a/ext/jerasure/configure.ac b/ext/jerasure/configure.ac index e274a2e76..54b3388ab 100644 --- a/ext/jerasure/configure.ac +++ b/ext/jerasure/configure.ac @@ -1,8 +1,7 @@ # Jerasure autoconf template -AC_PREREQ([2.65]) -AC_INIT([Jerasure], [2.0], [], [], - [https://bitbucket.org/jimplank/jerasure]) +AC_PREREQ([2.71]) +AC_INIT([Jerasure],[2.0],[],[],[https://bitbucket.org/jimplank/jerasure]) AC_CONFIG_SRCDIR([src/jerasure.c]) AC_CONFIG_HEADERS([include/config.h]) diff --git a/ext/jerasure/include/config.h.in b/ext/jerasure/include/config.h.in index 5d04afbe2..4d9346030 100644 --- a/ext/jerasure/include/config.h.in +++ b/ext/jerasure/include/config.h.in @@ -6,16 +6,16 @@ /* Support AVX (Advanced Vector Extensions) instructions */ #undef HAVE_AVX -/* Define to 1 if you have the `bzero' function. */ +/* Define to 1 if you have the 'bzero' function. */ #undef HAVE_BZERO /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H -/* Define to 1 if you have the `getcwd' function. */ +/* Define to 1 if you have the 'getcwd' function. */ #undef HAVE_GETCWD -/* Define to 1 if you have the `gettimeofday' function. */ +/* Define to 1 if you have the 'gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY /* Define to 1 if you have the header file. */ @@ -33,17 +33,14 @@ /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H -/* Define to 1 if you have the `gf_complete' library (-lgf_complete). */ +/* Define to 1 if you have the 'gf_complete' library (-lgf_complete). */ #undef HAVE_LIBGF_COMPLETE -/* Define to 1 if your system has a GNU libc compatible `malloc' function, and +/* Define to 1 if your system has a GNU libc compatible 'malloc' function, and to 0 otherwise. */ #undef HAVE_MALLOC -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the `mkdir' function. */ +/* Define to 1 if you have the 'mkdir' function. */ #undef HAVE_MKDIR /* Support mmx instructions */ @@ -73,13 +70,16 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H +/* Define to 1 if you have the header file. */ +#undef HAVE_STDIO_H + /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H -/* Define to 1 if you have the `strchr' function. */ +/* Define to 1 if you have the 'strchr' function. */ #undef HAVE_STRCHR -/* Define to 1 if you have the `strdup' function. */ +/* Define to 1 if you have the 'strdup' function. */ #undef HAVE_STRDUP /* Define to 1 if you have the header file. */ @@ -88,7 +88,7 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H -/* Define to 1 if you have the `strrchr' function. */ +/* Define to 1 if you have the 'strrchr' function. */ #undef HAVE_STRRCHR /* Define to 1 if you have the header file. */ @@ -128,7 +128,9 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION -/* Define to 1 if you have the ANSI C header files. */ +/* Define to 1 if all of the C89 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* Version number of package */ diff --git a/ext/jerasure/include/config.h.in~ b/ext/jerasure/include/config.h.in~ index 5d04afbe2..244b6abd9 100644 --- a/ext/jerasure/include/config.h.in~ +++ b/ext/jerasure/include/config.h.in~ @@ -40,9 +40,6 @@ to 0 otherwise. */ #undef HAVE_MALLOC -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - /* Define to 1 if you have the `mkdir' function. */ #undef HAVE_MKDIR @@ -73,6 +70,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H +/* Define to 1 if you have the header file. */ +#undef HAVE_STDIO_H + /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H @@ -128,7 +128,9 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION -/* Define to 1 if you have the ANSI C header files. */ +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* Version number of package */ diff --git a/ext/jerasure/src/Makefile.in b/ext/jerasure/src/Makefile.in index a61a8a4ff..db7236ba2 100644 --- a/ext/jerasure/src/Makefile.in +++ b/ext/jerasure/src/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.17 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2024 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -74,6 +74,8 @@ am__make_running_with_option = \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +am__rm_f = rm -f $(am__rm_f_notfound) +am__rm_rf = rm -rf $(am__rm_f_notfound) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -134,20 +136,20 @@ 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; }; \ + { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \ } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" \ "$(DESTDIR)$(jerasureincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) -ARFLAGS = cru +ARFLAGS = cr AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libtiming_a_AR = $(AR) $(ARFLAGS) +libtiming_a_RANLIB = $(RANLIB) libtiming_a_LIBADD = am_libtiming_a_OBJECTS = timing.$(OBJEXT) libtiming_a_OBJECTS = $(am_libtiming_a_OBJECTS) @@ -226,8 +228,6 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -242,8 +242,9 @@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -254,6 +255,7 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ @@ -305,8 +307,10 @@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__rm_f_notfound = @am__rm_f_notfound@ am__tar = @am__tar@ am__untar = @am__untar@ +am__xargs_n = @am__xargs_n@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -339,6 +343,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -401,7 +406,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + -$(am__rm_f) $(noinst_LIBRARIES) install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @@ -428,20 +433,18 @@ uninstall-libLTLIBRARIES: done clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + -$(am__rm_f) $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } + echo rm -f $${locs}; \ + $(am__rm_f) $${locs} libtiming.a: $(libtiming_a_OBJECTS) $(libtiming_a_DEPENDENCIES) $(EXTRA_libtiming_a_DEPENDENCIES) $(AM_V_at)-rm -f libtiming.a $(AM_V_AR)$(libtiming_a_AR) libtiming.a $(libtiming_a_OBJECTS) $(libtiming_a_LIBADD) - $(AM_V_at)$(RANLIB) libtiming.a + $(AM_V_at)$(libtiming_a_RANLIB) libtiming.a libJerasure.la: $(libJerasure_la_OBJECTS) $(libJerasure_la_DEPENDENCIES) $(EXTRA_libJerasure_la_DEPENDENCIES) $(AM_V_CCLD)$(libJerasure_la_LINK) -rpath $(libdir) $(libJerasure_la_OBJECTS) $(libJerasure_la_LIBADD) $(LIBS) @@ -461,7 +464,7 @@ distclean-compile: $(am__depfiles_remade): @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + @: >>$@ am--depfiles: $(am__depfiles_remade) @@ -585,7 +588,6 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am @@ -650,8 +652,8 @@ mostlyclean-generic: clean-generic: distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -$(am__rm_f) $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -662,7 +664,7 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLIBRARIES mostlyclean-am distclean: distclean-am - -rm -f ./$(DEPDIR)/cauchy.Plo + -rm -f ./$(DEPDIR)/cauchy.Plo -rm -f ./$(DEPDIR)/galois.Plo -rm -f ./$(DEPDIR)/jerasure.Plo -rm -f ./$(DEPDIR)/liberation.Plo @@ -713,7 +715,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/cauchy.Plo + -rm -f ./$(DEPDIR)/cauchy.Plo -rm -f ./$(DEPDIR)/galois.Plo -rm -f ./$(DEPDIR)/jerasure.Plo -rm -f ./$(DEPDIR)/liberation.Plo @@ -763,3 +765,10 @@ uninstall-am: uninstall-includeHEADERS \ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: + +# Tell GNU make to disable its built-in pattern rules. +%:: %,v +%:: RCS/%,v +%:: RCS/% +%:: s.% +%:: SCCS/s.% diff --git a/scripts/qfs_backup b/scripts/qfs_backup index d37436118..28c63280f 100755 --- a/scripts/qfs_backup +++ b/scripts/qfs_backup @@ -21,11 +21,15 @@ # This tool can be used to generate a tar archive stream of the latest # checkpoint and associated transaction logs to standard output. -import os, posix, subprocess, pprint, re, sys +from __future__ import print_function -from optparse import OptionParser, OptionGroup, IndentedHelpFormatter +import os +import re +import subprocess +import sys +from optparse import IndentedHelpFormatter, OptionParser -PRUNE_MSG=""" +PRUNE_MSG = """ The log, and checkpoint pruning related options are for backward compatibility only. These options have no effect, as pruning no longer performed by this script. The meta server maintains log and checkpoint directories, and performs @@ -33,6 +37,7 @@ checkpoint, and log pruning. The number of checkpoints and log segments to keep and related parameters are specified by the meta server configuration. """ + def check_directory(e, name, dir): if os.path.exists(dir): if not os.path.isdir(dir): @@ -40,6 +45,7 @@ def check_directory(e, name, dir): else: e.append("'%s' directory does not exist: %s" % (name, dir)) + def check_file(e, name, file): if os.path.exists(file): if not os.path.isfile(file): @@ -47,51 +53,85 @@ def check_file(e, name, file): else: e.append("'%s' file does not exist: %s" % (name, file)) + def parse_options(): formatter = IndentedHelpFormatter(max_help_position=50, width=80) usage = "usage: ./%prog -c CHECKPOINT -t TRANSACTIONS" - desc = """Generates a tar archive stream of the lateset -checkpoint and associated transacton logs to standard output.""" - parser = OptionParser(usage, formatter=formatter, add_help_option=False, - description=desc) - - parser.add_option('-c', '--checkpoint', metavar='DIR', - help="Path to checkpoint directory.") - parser.add_option('-t', '--transactions', metavar='DIR', - help="Path to transaction log directory.") - parser.add_option('-o', '--count', default=4, metavar='INT', - help="Number of checkpoints to archive.") - parser.add_option('-n', '--number', default=8, metavar='INT', + desc = """Generates a tar archive stream of the latest +checkpoint and associated transaction logs to standard output.""" + parser = OptionParser( + usage, formatter=formatter, add_help_option=False, description=desc + ) + + parser.add_option( + "-c", + "--checkpoint", + metavar="DIR", + help="Path to checkpoint directory.", + ) + parser.add_option( + "-t", + "--transactions", + metavar="DIR", + help="Path to transaction log directory.", + ) + parser.add_option( + "-o", + "--count", + default=4, + type="int", + help="Number of checkpoints to archive.", + ) + parser.add_option( + "-n", + "--number", + default=8, + type="int", help="""Number of checkpoints to keep, overrides -p --- Deprecated for the same reason as -p""") - parser.add_option('-a', '--tar', default='/bin/tar', metavar='BINARY', - help="Path to tar binary.") - parser.add_option('-p', '--prune', action='store_true', - help="Prune checkpoints -- Deprecated." + PRUNE_MSG) - parser.add_option('-d', '--dry-run', action='store_true', - help="Run in dry run mode.") - parser.add_option('-h', '--help', action='store_true', - help="Print this help message and exit.") +-- Deprecated for the same reason as -p""", + ) + parser.add_option( + "-a", + "--tar", + default="/bin/tar", + metavar="BINARY", + help="Path to tar binary.", + ) + parser.add_option( + "-p", + "--prune", + action="store_true", + help="Prune checkpoints -- Deprecated." + PRUNE_MSG, + ) + parser.add_option( + "-d", "--dry-run", action="store_true", help="Run in dry run mode." + ) + parser.add_option( + "-h", + "--help", + action="store_true", + help="Print this help message and exit.", + ) for option in parser.option_list: - if option.default != ("NO", "DEFAULT") and option.default != '': - option.help += " (%default)" + if option.default != ("NO", "DEFAULT") and option.default != "": + option.help += " (%default)" (options, args) = parser.parse_args() if options.help: parser.print_help() - print - posix._exit(0) + print() + sys.exit(0) e = [] if options.checkpoint: - check_directory(e, 'checkpoint', options.checkpoint) + check_directory(e, "checkpoint", options.checkpoint) else: e.append("'checkpoint' directory must be specified") if options.transactions: - check_directory(e, 'transactions', options.transactions) + check_directory(e, "transactions", options.transactions) else: e.append("'transactions' directory must be specified") @@ -107,118 +147,119 @@ checkpoint and associated transacton logs to standard output.""" if len(e) > 0: parser.print_help() - print + print() for error in e: - print "*** %s" % error - print - posix._exit(1) + print("*** %s" % error) + print() + sys.exit(1) return options -def cmp_files(a, b): - """ Compare files by VR log sequence number component.""" - - a_number = find_transaction_number(a) - if not a_number: a_number = find_checkpoint_number(a) - - b_number = find_transaction_number(b) - if not b_number: b_number = find_checkpoint_number(b) - - return cmp(a_number, b_number) def get_checkpoints(checkpoint_dir): - """ Return a list of checkpoint files in age ascending order.""" + """Return a list of checkpoint files in age ascending order.""" checkpoints = [] for file in os.listdir(checkpoint_dir): - if file.startswith('chkpt'): + if file.startswith("chkpt"): checkpoint_number = find_checkpoint_number(file) if checkpoint_number: checkpoints.append(os.path.join(checkpoint_dir, file)) - checkpoints.sort(cmp_files, reverse=True) + checkpoints.sort(key=find_checkpoint_number, reverse=True) log("Found %s checkpoint files." % len(checkpoints)) return checkpoints + def get_transactions(transactions_dir): - """ Return a list of transaction logs in age ascending order.""" + """Return a list of transaction logs in age ascending order.""" transactions = [] for file in os.listdir(transactions_dir): - if file.startswith('log'): + if file.startswith("log"): transactions.append(os.path.join(transactions_dir, file)) - transactions.sort(cmp_files, reverse=True) + transactions.sort(key=find_transaction_number, reverse=True) log("Found %s transactions logs." % len(transactions)) return transactions + def check_transaction_sequences(transactions): log("Checking transaction log sequences.") - last_log = None last_seq = None + last_log_file = None for log_file in transactions: seq = find_transaction_log_segment_number(log_file) if last_seq and seq and last_seq - seq > 1: - log("WARNING missing transaction log between %s and %s" % ( - last_log_file, log_file)) + log( + "WARNING missing transaction log between %s and %s" + % (last_log_file, log_file) + ) last_log_file = log_file last_seq = seq + def find_transaction_log_segment_number(transaction): - """ Extract transaction log segment number from the file name.""" + """Extract transaction log segment number from the file name.""" this_number = None - match = re.match("^.*?log\.\d+\.\d+\.\d+\.(\d+)$", transaction) + match = re.match(r"^.*?log\.\d+\.\d+\.\d+\.(\d+)$", transaction) if match: - this_number = long(match.group(1)) + this_number = int(match.group(1)) return this_number + def get_log_sequence(re_prefix, re_suffix, name): - """ Extract log sequence number from name, and convert it into -string that can sorted in lexicographic order""" + """Extract log sequence number from name, and convert it into + string that can sorted in lexicographic order""" this_number = None - match = re.match(re_prefix + "\.(\d+)\.(\d+)\.(\d+)" + re_suffix, name) + match = re.match(re_prefix + r"\.(\d+)\.(\d+)\.(\d+)" + re_suffix, name) if match: - this_number='' - for i in range(1,4): - this_number += "%016x" % long(match.group(i)) + this_number = "" + for i in range(1, 4): + this_number += "%016x" % int(match.group(i)) return this_number + def find_checkpoint_number(checkpoint): - """ Extract checkpoint log sequence number from the file name.""" + """Extract checkpoint log sequence number from the file name.""" return get_log_sequence("^.*?chkpt", "$", checkpoint) + def find_transaction_number(transaction): - """ Extract transaction log sequence number from the file name.""" + """Extract transaction log sequence number from the file name.""" + + return get_log_sequence(r"^.*?log", r"\.\d+$", transaction) - return get_log_sequence("^.*?log", "\.\d+$", transaction) def find_checkpoint_log_number(checkpoint): """Pull the transaction log sequence number referenced by a checkpoint - file.""" + file.""" log_number = 0 - file = open(checkpoint, 'r') + file = open(checkpoint, "r") for line in file: - if not line.startswith('log/'): continue - log_name = line[4:] + if not line.startswith("log/"): + continue + log_name = line[4:] log_number = find_transaction_number(log_name) break file.close() return [log_name, log_number] + def find_checkpoint_transactions(checkpoint, transactions): - """ Find the list of transaction logs needed by the specified - checkpoint.""" + """Find the list of transaction logs needed by the specified + checkpoint.""" checkpoint_transactions = [] [log_name, log_number] = find_checkpoint_log_number(checkpoint) @@ -230,20 +271,24 @@ def find_checkpoint_transactions(checkpoint, transactions): if this_number: if this_number >= log_number: checkpoint_transactions.append(logfile) - this_stat = os.stat(logfile) + os.stat(logfile) return checkpoint_transactions + def get_latest_checkpoint(checkpoint_dir): - return os.path.join(checkpoint_dir, 'latest') + return os.path.join(checkpoint_dir, "latest") + def get_last_transaction_log(transaction_dir): - return os.path.join(transaction_dir, 'last') + return os.path.join(transaction_dir, "last") + def log(msg): - print >> sys.stderr, msg + print(msg, file=sys.stderr) + -if __name__ == '__main__': +if __name__ == "__main__": o = parse_options() log("Scanning: %s and %s" % (o.checkpoint, o.transactions)) @@ -255,16 +300,16 @@ if __name__ == '__main__': if 0 == len(checkpoints): log("No checkpoints found exiting ...") - posix._exit(1) + sys.exit(1) - tar_cmd = [ o.tar, '-cf', '-' ] + tar_cmd = [o.tar, "-cf", "-"] filelist = [] archive_checkpoints = [] oldest_checkpoint = None if o.count <= len(checkpoints): oldest_checkpoint = checkpoints[o.count - 1] - archive_checkpoints = checkpoints[:o.count] + archive_checkpoints = checkpoints[: o.count] else: oldest_checkpoint = checkpoints[-1] archive_checkpoints = checkpoints @@ -274,8 +319,9 @@ if __name__ == '__main__': filelist.append(get_last_transaction_log(o.transactions)) - filelist.extend(find_checkpoint_transactions(oldest_checkpoint, - transactions)) + filelist.extend( + find_checkpoint_transactions(oldest_checkpoint, transactions) + ) filelist.append(get_latest_checkpoint(o.checkpoint)) filelist.extend(archive_checkpoints) @@ -293,4 +339,4 @@ if __name__ == '__main__': log("Archiving ...") code = subprocess.call(tar_cmd) - posix._exit(code) + sys.exit(code) diff --git a/scripts/rat.sh b/scripts/rat.sh index 6f4c38bab..f016bc65a 100755 --- a/scripts/rat.sh +++ b/scripts/rat.sh @@ -25,7 +25,7 @@ fi SRC="`cd "$1" > /dev/null && pwd`" -MYRAT_VERS=0.15 +MYRAT_VERS=0.16.1 MYURL="https://downloads.apache.org/creadur/apache-rat-${MYRAT_VERS}/apache-rat-${MYRAT_VERS}-bin.tar.gz" MYSHAURL="https://dlcdn.apache.org/creadur/apache-rat-${MYRAT_VERS}/apache-rat-${MYRAT_VERS}-bin.tar.gz.sha512" MYTAR="`basename "$MYURL"`" diff --git a/src/cc/access/kfs_module_py.cc b/src/cc/access/kfs_module_py.cc index 295b76b33..ab46d2b5e 100644 --- a/src/cc/access/kfs_module_py.cc +++ b/src/cc/access/kfs_module_py.cc @@ -27,6 +27,8 @@ // with caution. //---------------------------------------------------------------------------- +#define PY_SSIZE_T_CLEAN + #include "Python.h" #include "structmember.h" #include "libclient/KfsClient.h" @@ -39,6 +41,14 @@ #include #include +#ifndef Py_Is +#define Py_Is(x, y) ((x) == (y)) +#endif + +#ifndef Py_IsNone +#define Py_IsNone(x) Py_Is((x), Py_None) +#endif + using std::string; using std::vector; @@ -57,7 +67,6 @@ struct qfs_Client { static PyObject *Client_new(PyTypeObject *type, PyObject *args, PyObject *kwds); static int Client_init(PyObject *pself, PyObject *args, PyObject *kwds); -static int Client_print(PyObject *pself, FILE *fp, int flags); static void Client_dealloc(PyObject *pself); static PyObject *Client_repr(PyObject *pself); @@ -81,16 +90,53 @@ static PyObject *qfs_open(PyObject *pself, PyObject *args); static PyObject *qfs_cd(PyObject *pself, PyObject *args); static PyObject *qfs_log_level(PyObject *pself, PyObject *args); -inline static void SetPyIoError(int64_t err) +inline static void +SetPyIoError(int64_t err) { const string s = ErrorCodeToStr((int)err); PyErr_SetString(PyExc_IOError, s.c_str()); } +static int +SetTupleItem(PyObject *tuple, Py_ssize_t index, PyObject *item) +{ + return item ? PyTuple_SetItem(tuple, index, item) : -1; +} + +static PyObject * +CtimeUnicode(time_t time) +{ + char buf[32]; + char* tm = ctime_r(&time, buf); + if (!tm) + return NULL; + char* lf = strrchr(tm, '\n'); + if (lf) + *lf = 0; + + return PyUnicode_FromString(tm); +} + +inline static void +AssignRef(PyObject** dst, PyObject* obj) +{ + if (*dst != obj) { + Py_XDECREF(*dst); + Py_XINCREF(obj); + *dst = obj; + } +} + +inline static const char * +UnicodeAsUtf8Str(PyObject* unicode) +{ + return Py_IsNone(unicode) ? NULL : PyUnicode_AsUTF8(unicode); +} + static PyMemberDef Client_members[] = { - { (char*)"qfshost", T_OBJECT, offsetof(qfs_Client, qfshost), RO, (char*)"QFS metaserver hostname" }, - { (char*)"qfsport", T_INT, offsetof(qfs_Client, qfsport), RO, (char*)"QFS metaserver port" }, - { (char*)"cwd", T_OBJECT, offsetof(qfs_Client, cwd), RO, (char*)"current directory" }, + { (char*)"qfshost", T_OBJECT, offsetof(qfs_Client, qfshost), READONLY, (char*)"QFS metaserver hostname" }, + { (char*)"qfsport", T_INT, offsetof(qfs_Client, qfsport), READONLY, (char*)"QFS metaserver port" }, + { (char*)"cwd", T_OBJECT, offsetof(qfs_Client, cwd), READONLY, (char*)"current directory" }, { NULL } }; @@ -138,10 +184,10 @@ PyDoc_STRVAR(Client_doc, "\tfullstat(path) -- file attributes, including QFS attributes\n" "\tgetNumChunks(path) -- return the # of chunks in a file\n" "\tgetChunkSize(path) -- return the default size of chunks in a file\n" -"\tcreate(path, numReplicas=3) -- create a file and return a qfs.file object for it\n" +"\tcreate(path, numReplicas=3 [, encoding, errors]) -- create a file and return a qfs.file object for it\n" "\tremove(path) -- remove a file\n" "\tcoalesceblocks(src, dst) -- append blocks from src->dest\n" -"\topen(path[, mode]) -- open a file and return an object for it\n" +"\topen(path[, mode, encoding, errors]) -- open a file and return an object for it\n" "\tcd(path) -- change current directory\n" "\tlog_level(level) -- change the message log level\n" "\n\nData:\n" @@ -149,16 +195,15 @@ PyDoc_STRVAR(Client_doc, "\tcwd -- the current directory (for relative paths)\n"); static PyTypeObject qfs_ClientType = { - PyObject_HEAD_INIT(NULL) - 0, // ob_size + PyVarObject_HEAD_INIT(NULL, 0) "qfs.client", // tp_name sizeof (qfs_Client), // tp_basicsize 0, // tp_itemsize Client_dealloc, // tp_dealloc - Client_print, // tp_print + 0, // tp_vectorcall_offset 0, // tp_getattr 0, // tp_setattr - 0, // tp_compare + 0, // tp_as_async Client_repr, // tp_repr 0, // tp_as_number 0, // tp_as_sequence @@ -197,6 +242,9 @@ struct qfs_File { PyObject *mode; // Access mode PyObject *pclient; // Python object for QFS client int fd; // File descriptor + bool binary; // Binary mode + PyObject *encoding; + PyObject *errors; }; static PyObject * @@ -204,7 +252,7 @@ File_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { static PyObject *noname = NULL; if (noname == NULL) { - noname = PyString_FromString(""); + noname = PyUnicode_FromString(""); if (noname == NULL) return NULL; } @@ -217,6 +265,11 @@ File_new(PyTypeObject *type, PyObject *args, PyObject *kwds) Py_INCREF(noname); self->pclient = noname; self->fd = -1; + self->binary = false; + self->encoding = Py_None; + Py_INCREF(self->encoding); + self->errors = Py_None; + Py_INCREF(self->errors); } return (PyObject *)self; } @@ -226,63 +279,112 @@ File_dealloc(PyObject *pself) { qfs_File *self = (qfs_File *)pself; qfs_Client *cl = (qfs_Client *)self->pclient; - if (self->fd != -1) + if (0 <= self->fd) cl->client->Close(self->fd); Py_DECREF(self->name); Py_DECREF(self->mode); Py_DECREF(self->pclient); - self->ob_type->tp_free((PyObject *)self); + Py_DECREF(self->encoding); + Py_DECREF(self->errors); + Py_TYPE(self)->tp_free((PyObject *)self); } static int -modeflag(const char *modestr) +ParseModeStr(const char *modestr, bool *binary) { // convert mode string to flag - int mode = -1; - - if (strcmp(modestr, "r") == 0) - mode = O_RDWR; - else if (strcmp(modestr, "w") == 0) - mode = O_WRONLY; - else if (strcmp(modestr, "r+") == 0 || strcmp(modestr, "w+") == 0) - mode = O_RDWR; - else if (strcmp(modestr, "a") == 0) - mode = O_WRONLY | O_APPEND; - - return mode; + int mode = 0; + bool read = false; + bool write = false; + int tb = 0; + const char* p; + + if (!modestr) + return -1; + + *binary = false; + for (p = modestr; *p != 0; p += 1) { + switch (*p & 0xFF) { + case 'r': read = true; break; + case 'w': write = true; break; + case 'x': mode |= O_EXCL; break; + case 'a': write = true; mode |= O_APPEND; break; + case 'b': + if (tb == 't') return -1; + tb = 'b'; *binary = true; break; + case 't': + if (tb == 'b') return -1; + tb = 't'; *binary = false; break; + case '+': read = true; write = true; break; + default: return -1; + } + } + + return mode | (write ? (read ? O_RDWR : O_WRONLY) : O_RDONLY); } static int -set_file_members( - qfs_File *self, const char *path, - const char *modestr, qfs_Client *client, int fd) +SetFileMembers( + qfs_File *self, PyObject *path, + PyObject *modestr, PyObject *pclient, + PyObject *encoding, PyObject *errors, + int numReplicas = 3, bool create = false) { - int mode; + if (!self) { + return -1; + } // convert mode string to flag - mode = modeflag(modestr); - if (mode == -1) + bool binary; + int mode = ParseModeStr(PyUnicode_AsUTF8(modestr), &binary); + if (mode == -1) { + PyErr_SetString(PyExc_ValueError, "invalid mode argument"); return -1; + } - // open the file if necessary - if (fd < 0) - fd = client->client->Open(path, mode); + if (binary) { + // Reset encoding and errors in binary mode if encoding and errors are + // from self. + if (!Py_IsNone(encoding)) { + if (encoding != self->encoding) { + PyErr_SetString(PyExc_ValueError, + "binary mode doesn't take an encoding argument"); + return -1; + } + encoding = Py_None; + } + if (!Py_IsNone(errors)) { + if (errors != self->errors) { + PyErr_SetString(PyExc_ValueError, + "binary mode doesn't take an errors argument"); + return -1; + } + errors = Py_None; + } + } + // open the file + const char* const pn = PyUnicode_AsUTF8(path); + if (! pn) + return -1; + + qfs_Client* client = (qfs_Client*)pclient; + int fd = create ? + client->client->Create(pn, mode, numReplicas) : + client->client->Open(pn, mode, numReplicas); if (fd < 0) { SetPyIoError(fd); return -1; } // set all of the fields in the qfs_File structure - Py_DECREF(self->name); - self->name = PyString_FromString(path); - Py_DECREF(self->mode); - self->mode = PyString_FromString(modestr); - PyObject *pclient = (PyObject *)client; - Py_INCREF(pclient); - Py_DECREF(self->pclient); - self->pclient = pclient; + AssignRef(&self->name, path); + AssignRef(&self->mode, modestr); + AssignRef(&self->pclient, pclient); self->fd = fd; + self->binary = binary; + AssignRef(&self->encoding, encoding); + AssignRef(&self->errors, errors); return 0; } @@ -291,63 +393,71 @@ static int File_init(PyObject *pself, PyObject *args, PyObject *kwds) { qfs_File *self = (qfs_File *)pself; - const char *nm, *md = "r"; - PyObject *cl = NULL; + PyObject *mode = NULL; + PyObject *mode_deref = NULL; + PyObject *path; + PyObject *pclient; + PyObject *encoding = Py_None; + PyObject *errors = Py_None; static char *kwlist[] = { - (char*)"client", (char*)"name", (char*)"mode", NULL + (char*)"client", (char*)"name", (char*)"mode", (char*)"encoding", + (char*)errors, NULL }; int ok = !PyArg_ParseTupleAndKeywords( - args, kwds, "O!s|s", kwlist, &qfs_ClientType, - &cl, &nm, &md); + args, kwds, "O!U|UUU", kwlist, &qfs_ClientType, + &pclient, &path, &mode, &encoding, &errors); if (!ok) return -1; - return set_file_members(self, nm, md, (qfs_Client *)cl, -1); + if (!mode) { + mode = PyUnicode_FromString("r"); + if (!mode) + return -1; + mode_deref = mode; + } + int const ret = SetFileMembers(self, path, mode, pclient, encoding, errors); + Py_XDECREF(mode_deref); + return ret; } static PyObject * File_repr(PyObject *pself) { - qfs_File *self = (qfs_File *)pself; - return PyString_FromFormat("qfs.file<%s, %s, %d>", - PyString_AsString(self->name), - PyString_AsString(self->mode), - self->fd); -} - -static int -File_print(PyObject *pself, FILE *fp, int flags) -{ - qfs_File *self = (qfs_File *)pself; - fprintf(fp, "qfs.file<%s, %s, %d>\n", - PyString_AsString(self->name), - PyString_AsString(self->mode), - self->fd); - return 0; + qfs_File * const self = (qfs_File *)pself; + const char * const encoding = UnicodeAsUtf8Str(self->encoding); + const char * const errors = UnicodeAsUtf8Str(self->errors); + + return PyUnicode_FromFormat("qfs.file<%s, %s, %d%s%s%s%s>", + PyUnicode_AsUTF8(self->name), + PyUnicode_AsUTF8(self->mode), + self->fd, + encoding ? ", encoding=" : "", + encoding ? encoding : "", + errors ? ", errors=" : "", + errors ? errors : ""); } static PyObject * qfs_reopen(PyObject *pself, PyObject *args) { qfs_File *self = (qfs_File *)pself; - qfs_Client *cl = (qfs_Client *)self->pclient; - char *modestr = PyString_AsString(self->mode); + PyObject *mode = self->mode; + PyObject *encoding = self->encoding; + PyObject *errors = self->errors; - if (!PyArg_ParseTuple(args, "|s", &modestr)) + if (!PyArg_ParseTuple(args, "|UUU", &mode, &encoding, &errors)) return NULL; - int mode = modeflag(modestr); - if (mode == -1) + if (0 <= self->fd) { + PyErr_SetString(PyExc_ValueError, "file is already open"); return NULL; - - int fd = cl->client->Open(PyString_AsString(self->name), mode); - if (fd == -1) + } + if (SetFileMembers(self, self->name, mode, self->pclient, encoding, + errors) < 0) return NULL; - self->fd = fd; - self->mode = PyString_FromString(modestr); Py_RETURN_NONE; } @@ -356,10 +466,16 @@ qfs_close(PyObject *pself, PyObject *args) { qfs_File *self = (qfs_File *)pself; qfs_Client *cl = (qfs_Client *)self->pclient; + if (self->fd != -1) { - cl->client->Close(self->fd); + int ret = cl->client->Close(self->fd); self->fd = -1; + if (ret < 0) { + SetPyIoError(ret); + return NULL; + } } + Py_RETURN_NONE; } @@ -368,29 +484,44 @@ qfs_read(PyObject *pself, PyObject *args) { qfs_File *self = (qfs_File *)pself; qfs_Client *cl = (qfs_Client *)self->pclient; - ssize_t rsize = -1l; + Py_ssize_t rsize = -1l; - if (!PyArg_ParseTuple(args, "l", &rsize)) + if (!PyArg_ParseTuple(args, "n", &rsize)) return NULL; + if (rsize < 0) { + PyErr_SetString(PyExc_ValueError, "size must not be less than zero"); + return NULL; + } + if (self->fd == -1) { SetPyIoError(-EBADF); return NULL; } - PyObject *v = PyString_FromStringAndSize((char *)NULL, rsize); + PyObject *v = PyBytes_FromStringAndSize(NULL, rsize); if (v == NULL) return NULL; - char *buf = PyString_AsString(v); - ssize_t nr = cl->client->Read(self->fd, buf, rsize); + char *buf = PyBytes_AsString(v); + ssize_t nr = cl->client->Read(self->fd, buf, (size_t)rsize); if (nr < 0) { Py_DECREF(v); SetPyIoError(nr); return NULL; } if (nr != rsize) - _PyString_Resize(&v, nr); + if (PyByteArray_Resize(v, nr) < 0) { + Py_DECREF(v); + return NULL; + } + + if (!self->binary) { + PyObject *s = PyUnicode_FromEncodedObject(v, + UnicodeAsUtf8Str(self->encoding), UnicodeAsUtf8Str(self->errors)); + Py_DECREF(v); + v = s; + } return v; } @@ -399,28 +530,57 @@ qfs_write(PyObject *pself, PyObject *args) { qfs_File *self = (qfs_File *)pself; qfs_Client *cl = (qfs_Client *)self->pclient; - int wsize = -1; + Py_ssize_t wsize = -1; + PyObject *encoded = NULL; + PyObject *inbuf; char *buf = NULL; - if (!PyArg_ParseTuple(args, "s#", &buf, &wsize)) + if (!PyArg_ParseTuple(args, self->binary ? "S" : "U", &inbuf)) + return NULL; + + if (!self->binary) { + encoded = PyUnicode_AsEncodedString(inbuf, + UnicodeAsUtf8Str(self->encoding), UnicodeAsUtf8Str(self->errors)); + if (!encoded) + return NULL; + } + + if (PyBytes_AsStringAndSize(encoded ? encoded : inbuf, &buf, &wsize) < 0) { + Py_XDECREF(encoded); return NULL; + } + + if (wsize < 0) { + Py_XDECREF(encoded); + SetPyIoError(-EINVAL); + return NULL; + } if (self->fd == -1) { - SetPyIoError(EBADF); + Py_XDECREF(encoded); + SetPyIoError(-EBADF); return NULL; } - ssize_t nw = cl->client->Write(self->fd, buf, (ssize_t)wsize); + ssize_t nw = cl->client->Write(self->fd, buf, (size_t)wsize); + Py_XDECREF(encoded); if (nw < 0) { SetPyIoError(nw); return NULL; } + if (nw != wsize) { - PyObject *msg = PyString_FromFormat( - "requested write of %d bytes but %ld were written", - wsize, (long)nw); - return msg; + char msg[80]; + size_t const max_len = sizeof(msg) / sizeof(msg[0]) - 1; + + snprintf(msg, max_len, + "requested write of %lld bytes but %lld were written", + (long long)wsize, (long long)nw); + msg[max_len] = 0; + PyErr_SetString(PyExc_IOError, msg); + return NULL; } + Py_RETURN_NONE; } @@ -429,9 +589,9 @@ qfs_chunkLocations(PyObject *pself, PyObject *args) { qfs_File *self = (qfs_File *)pself; qfs_Client *cl = (qfs_Client *)self->pclient; - int off, len; + long long off, len; - if (!PyArg_ParseTuple(args, "i|i", &off, &len)) + if (!PyArg_ParseTuple(args, "L|L", &off, &len)) return NULL; if (self->fd == -1) { @@ -440,7 +600,6 @@ qfs_chunkLocations(PyObject *pself, PyObject *args) } vector > results; - int s = cl->client->GetDataLocation(self->fd, off, len, results); if (s < 0) { SetPyIoError(s); @@ -448,14 +607,23 @@ qfs_chunkLocations(PyObject *pself, PyObject *args) } size_t n = results.size(); PyObject *outer = PyTuple_New(n); + if (!outer) + return NULL; for (size_t i = 0; i < n; i++) { size_t nlocs = results[i].size(); vector locs = results[i]; PyObject *inner = PyTuple_New(nlocs); + if (SetTupleItem(outer, i, inner) < 0) { + Py_DECREF(outer); + return NULL; + } for (size_t j = 0; j < nlocs; j++) { - PyTuple_SetItem(inner, j, PyString_FromString(locs[j].c_str())); + if (SetTupleItem( + inner, j, PyUnicode_FromString(locs[j].c_str())) < 0) { + Py_DECREF(outer); + return NULL; + } } - PyTuple_SetItem(outer, i, inner); } return outer; } @@ -465,19 +633,23 @@ qfs_dataVerify(PyObject *pself, PyObject *args) { qfs_File *self = (qfs_File *)pself; qfs_Client *cl = (qfs_Client *)self->pclient; - int wsize = -1; - char *buf = NULL; - if (!PyArg_ParseTuple(args, "s#", &buf, &wsize)) + if (args) { + PyErr_SetString(PyExc_ValueError, "no arguments expected"); return NULL; + } if (self->fd == -1) { SetPyIoError(-EBADF); return NULL; } - bool res = cl->client->VerifyDataChecksums(self->fd); - return Py_BuildValue("b", res); + int res = cl->client->VerifyDataChecksums(self->fd); + if (res < 0) { + SetPyIoError(res); + return NULL; + } + return Py_BuildValue("i", res); } static PyObject * @@ -485,9 +657,9 @@ qfs_truncate(PyObject *pself, PyObject *args) { qfs_File *self = (qfs_File *)pself; qfs_Client *cl = (qfs_Client *)self->pclient; - off_t off; + long long off; - if (!PyArg_ParseTuple(args, "L|i", &off)) + if (!PyArg_ParseTuple(args, "L", &off)) return NULL; if (self->fd == -1) { @@ -570,14 +742,16 @@ static PyMethodDef File_methods[] = { { "seek", qfs_seek, METH_VARARGS, "Seek to file offset." }, { "tell", qfs_tell, METH_NOARGS, "Return current offset." }, { "sync", qfs_sync, METH_NOARGS, "Flush file data." }, - { "data_verify", qfs_dataVerify, METH_VARARGS, "Verify data matches what is in QFS."}, + { "data_verify", qfs_dataVerify, METH_NOARGS, "Verify data matches what is in QFS."}, { NULL, NULL } }; static PyMemberDef File_members[] = { - { (char*)"name", T_OBJECT, offsetof(qfs_File, name), RO, (char*)"file name" }, - { (char*)"mode", T_OBJECT, offsetof(qfs_File, mode), RO, (char*)"access mode" }, - { (char*)"fd", T_INT, offsetof(qfs_File, fd), RO, (char*)"file descriptor" }, + { (char*)"name", T_OBJECT, offsetof(qfs_File, name), READONLY, (char*)"file name" }, + { (char*)"mode", T_OBJECT, offsetof(qfs_File, mode), READONLY, (char*)"access mode" }, + { (char*)"encoding", T_OBJECT, offsetof(qfs_File, encoding), READONLY, (char*)"file encoding" }, + { (char*)"erros", T_OBJECT, offsetof(qfs_File, errors), READONLY, (char*)"file encoding error mode" }, + { (char*)"fd", T_INT, offsetof(qfs_File, fd), READONLY, (char*)"file descriptor" }, { NULL } }; @@ -597,23 +771,22 @@ PyDoc_STRVAR(File_doc, "\ttell() -- return current offest\n" "\tsync() -- flush file data to server\n" "\tchunk_locations(path, offset) -- location(s) of the chunk corresponding to offset\n" -"\tdata_verify(str) -- verify that the data in QFS matches what is passed in\n" +"\tdata_verify() -- verify file checksums\n" "\nData:\n\n" "\tname -- the name of the file\n" "\tmode -- access mode ('r', 'w', 'r+', or 'w+')\n" "\tfd -- file descriptor (-1 if closed)\n"); static PyTypeObject qfs_FileType = { - PyObject_HEAD_INIT(NULL) - 0, // ob_size + PyVarObject_HEAD_INIT(NULL, 0) "qfs.file", // tp_name sizeof (qfs_File), // tp_basicsize 0, // tp_itemsize File_dealloc, // tp_dealloc - File_print, // tp_print + 0, // tp_vectorcall_offset 0, // tp_getattr 0, // tp_setattr - 0, // tp_compare + 0, // tp_as_async File_repr, // tp_repr 0, // tp_as_number 0, // tp_as_sequence @@ -652,7 +825,7 @@ Client_dealloc(PyObject *pself) Py_XDECREF(self->qfshost); Py_XDECREF(self->cwd); delete self->client; - self->ob_type->tp_free(pself); + Py_TYPE(self)->tp_free(pself); } static PyObject * @@ -663,9 +836,11 @@ Client_new(PyTypeObject *type, PyObject *args, PyObject *kwds) if (self == NULL) return NULL; - PyObject *host = PyString_FromString(""); - PyObject *cwd = PyString_FromString("/"); + PyObject *host = PyUnicode_FromString(""); + PyObject *cwd = PyUnicode_FromString("/"); if (host == NULL || cwd == NULL) { + Py_XDECREF(host); + Py_XDECREF(cwd); Py_DECREF(self); return NULL; } @@ -681,22 +856,27 @@ static int Client_init(PyObject *pself, PyObject *args, PyObject *kwds) { qfs_Client *self = (qfs_Client *)pself; - char *qfsHost = NULL; + PyObject *qfsHost; int qfsPort = -1; - if (!PyArg_ParseTuple(args, "(si)", &qfsHost, &qfsPort)) { + if (!PyArg_ParseTuple(args, "(Ui)", &qfsHost, &qfsPort)) return -1; - } - KfsClient* client = KFS::Connect(qfsHost, qfsPort); + KfsClient* client = KFS::Connect(PyUnicode_AsUTF8(qfsHost), qfsPort); if (!client) { PyErr_SetString(PyExc_IOError, "Unable to start client."); return -1; } + string cwd = client->GetCwd(); + PyObject *newcwd = PyUnicode_FromString(cwd.c_str()); + if (!newcwd) { + delete client; + return -1; + } + Py_DECREF(self->cwd); + self->cwd = newcwd; self->client = client; - PyObject *tmp = self->qfshost; - self->qfshost = PyString_FromString(qfsHost); - Py_XDECREF(tmp); + AssignRef(&self->qfshost, qfsHost); self->qfsport = qfsPort; return 0; @@ -706,73 +886,13 @@ static PyObject * Client_repr(PyObject *pself) { qfs_Client *self = (qfs_Client *)pself; - return PyString_FromFormat("qfs.client((\'%s\', %d)), cwd=\'%s\'", - PyString_AsString(self->qfshost), + return PyUnicode_FromFormat("qfs.client((\'%s\', %d)), cwd=\'%s\'", + PyUnicode_AsUTF8(self->qfshost), self->qfsport, - PyString_AsString(self->cwd)); + PyUnicode_AsUTF8(self->cwd)); } -static int -Client_print(PyObject *pself, FILE *fp, int flags) -{ - qfs_Client *self = (qfs_Client *)pself; - fprintf(fp, "qfs.client((\'%s\', %d)), cwd=\'%s\'\n", - PyString_AsString(self->qfshost), - self->qfsport, - PyString_AsString(self->cwd)); - return 0; -} - -static string -strip_dots(string path) -{ - vector component; - string result; - string::size_type start = 0; - - while (start != string::npos) { - assert(path[start] == '/'); - string::size_type slash = path.find('/', start + 1); - string nextc = path.substr(start, slash - start); - start = slash; - if (nextc.compare("/..") == 0) { - if (!component.empty()) - component.pop_back(); - } else if (nextc.compare("/.") != 0) - component.push_back(nextc); - } - - if (component.empty()) - component.push_back(string("/")); - - for (vector ::iterator c = component.begin(); - c != component.end(); c++) { - result += *c; - } - return result; -} - -/* - * Take a path name that was supplied as an argument for a QFS operation. - * If it is not absolute, add the current directory to the front of it and - * in either case, call strip_dots to strip out any "." and ".." components. - */ -static string -build_path(PyObject *cwd, const char *input) -{ - string tail(input); - if (input[0] == '/') - return strip_dots(tail); - - const char *c = PyString_AsString(cwd); - bool is_root = (c[0] == '/' && c[1] == '\0'); - string head(c); - if (!is_root) - head.append("/"); - return strip_dots(head + tail); -} - static PyObject * qfs_cd(PyObject *pself, PyObject *args) { @@ -782,22 +902,17 @@ qfs_cd(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "s", &patharg)) return NULL; - string path = build_path(self->cwd, patharg); - KfsFileAttr attr; - int status = self->client->Stat(path.c_str(), attr); + int status = self->client->Cd(patharg); if (status < 0) { SetPyIoError(status); return NULL; } - if (! attr.isDirectory) { - SetPyIoError(-ENOTDIR); + string cwd = self->client->GetCwd(); + PyObject *newcwd = PyUnicode_FromString(cwd.c_str()); + if (newcwd == NULL) return NULL; - } - PyObject *newcwd = PyString_FromString(path.c_str()); - if (newcwd != NULL) { - Py_DECREF(self->cwd); - self->cwd = newcwd; - } + Py_DECREF(self->cwd); + self->cwd = newcwd; Py_RETURN_NONE; } @@ -811,7 +926,7 @@ qfs_log_level(PyObject *pself, PyObject *args) return NULL; self->client->SetLogLevel(logLevel); - Py_RETURN_NONE; + Py_RETURN_NONE; } static PyObject * @@ -823,8 +938,7 @@ qfs_isdir(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "s", &patharg)) return NULL; - string path = build_path(self->cwd, patharg); - bool res = self->client->IsDirectory(path.c_str()); + bool res = self->client->IsDirectory(patharg); return Py_BuildValue("b", res); } @@ -837,8 +951,7 @@ qfs_isfile(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "s", &patharg)) return NULL; - string path = build_path(self->cwd, patharg); - bool res = self->client->IsFile(path.c_str()); + bool res = self->client->IsFile(patharg); return Py_BuildValue("b", res); } @@ -851,8 +964,7 @@ qfs_mkdir(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "s", &patharg)) return NULL; - string path = build_path(self->cwd, patharg); - int status = self->client->Mkdir(path.c_str()); + int status = self->client->Mkdir(patharg); if (status < 0) { SetPyIoError(status); return NULL; @@ -869,8 +981,7 @@ qfs_mkdirs(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "s", &patharg)) return NULL; - string path = build_path(self->cwd, patharg); - int status = self->client->Mkdirs(path.c_str()); + int status = self->client->Mkdirs(patharg); if (status < 0) { SetPyIoError(status); return NULL; @@ -887,8 +998,7 @@ qfs_rmdir(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "s", &patharg)) return NULL; - string path = build_path(self->cwd, patharg); - int status = self->client->Rmdir(path.c_str()); + int status = self->client->Rmdir(patharg); if (status < 0) { SetPyIoError(status); return NULL; @@ -905,8 +1015,7 @@ qfs_rmdirs(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "s", &patharg)) return NULL; - string path = build_path(self->cwd, patharg); - int status = self->client->Rmdirs(path.c_str()); + int status = self->client->Rmdirs(patharg); if (status < 0) { SetPyIoError(status); return NULL; @@ -930,18 +1039,22 @@ qfs_readdir(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "s", &patharg)) return NULL; - string path = build_path(self->cwd, patharg); vector result; - int status = self->client->Readdir(path.c_str(), result); + int status = self->client->Readdir(patharg, result); if (status < 0) { SetPyIoError(status); return NULL; } size_t n = result.size(); PyObject *tuple = PyTuple_New(n); + if (!tuple) + return NULL; for (size_t i = 0; i != n; i++) { - PyTuple_SetItem(tuple, i, - PyString_FromString(result[i].c_str())); + if (SetTupleItem(tuple, i, + PyUnicode_FromString(result[i].c_str())) < 0) { + Py_DECREF(tuple); + return NULL; + } } return tuple; } @@ -953,14 +1066,24 @@ static PyObject * package_fattr(KfsFileAttr &fa) { PyObject *tuple = PyTuple_New(7); - PyTuple_SetItem(tuple, 0, PyString_FromString(fa.filename.c_str())); - PyTuple_SetItem(tuple, 1, PyLong_FromLongLong(fa.fileId)); - PyTuple_SetItem(tuple, 2, PyString_FromString(ctime(&fa.mtime.tv_sec))); - PyTuple_SetItem(tuple, 3, PyString_FromString(ctime(&fa.ctime.tv_sec))); - PyTuple_SetItem(tuple, 4, PyString_FromString(ctime(&fa.crtime.tv_sec))); - PyTuple_SetItem(tuple, 5, PyString_FromString( - fa.isDirectory ? "dir" : "file")); - PyTuple_SetItem(tuple, 6, PyLong_FromLongLong(fa.fileSize)); + if (!tuple) + return NULL; + + if (SetTupleItem(tuple, 0, PyUnicode_FromString( + fa.filename.c_str())) < 0 || + SetTupleItem(tuple, 1, PyLong_FromLongLong(fa.fileId)) < 0 || + SetTupleItem(tuple, 2, + CtimeUnicode(fa.mtime.tv_sec)) < 0 || + SetTupleItem(tuple, 3, + CtimeUnicode(fa.ctime.tv_sec)) < 0 || + SetTupleItem(tuple, 4, + CtimeUnicode(fa.crtime.tv_sec)) < 0 || + SetTupleItem(tuple, 5, PyUnicode_FromString( + fa.isDirectory ? "dir" : "file")) < 0 || + SetTupleItem(tuple, 6, PyLong_FromLongLong(fa.fileSize)) < 0) { + Py_DECREF(tuple); + return NULL; + } return tuple; } @@ -981,19 +1104,22 @@ qfs_readdirplus(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "s", &patharg)) return NULL; - string path = build_path(self->cwd, patharg); - vector result; - int status = self->client->ReaddirPlus(path.c_str(), result); + int status = self->client->ReaddirPlus(patharg, result); if (status < 0) { SetPyIoError(status); return NULL; } size_t n = result.size(); PyObject *outer = PyTuple_New(n); + if (!outer) + return NULL; for (size_t i = 0; i != n; i++) { PyObject *inner = package_fattr(result[i]); - PyTuple_SetItem(outer, i, inner); + if (SetTupleItem(outer, i, inner) < 0) { + Py_DECREF(outer); + return NULL; + } } return outer; } @@ -1007,9 +1133,8 @@ qfs_stat(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "s", &patharg)) return NULL; - string path = build_path(self->cwd, patharg); KfsFileAttr attr; - int status = self->client->Stat(path.c_str(), attr, true); + int status = self->client->Stat(patharg, attr, true); if (status < 0) { SetPyIoError(status); return NULL; @@ -1020,17 +1145,22 @@ qfs_stat(PyObject *pself, PyObject *args) * on it. */ PyObject *pstat = PyTuple_New(10); - PyTuple_SetItem(pstat, 0, PyInt_FromLong( - attr.mode | (attr.isDirectory ? S_IFDIR : 0))); - PyTuple_SetItem(pstat, 1, PyLong_FromLongLong(attr.fileId)); - PyTuple_SetItem(pstat, 2, PyLong_FromLong(0)); // dev - PyTuple_SetItem(pstat, 3, PyInt_FromLong(1)); // num links - PyTuple_SetItem(pstat, 4, PyInt_FromLong(attr.user)); - PyTuple_SetItem(pstat, 5, PyInt_FromLong(attr.group)); - PyTuple_SetItem(pstat, 6, PyLong_FromLongLong(attr.fileSize)); - PyTuple_SetItem(pstat, 7, PyInt_FromLong(attr.ctime.tv_sec)); - PyTuple_SetItem(pstat, 8, PyInt_FromLong(attr.mtime.tv_sec)); - PyTuple_SetItem(pstat, 9, PyInt_FromLong(attr.crtime.tv_sec)); + if (!pstat) + return NULL; + if (SetTupleItem(pstat, 0, PyLong_FromLong( + attr.mode | (attr.isDirectory ? S_IFDIR : 0))) < 0 || + SetTupleItem(pstat, 1, PyLong_FromLongLong(attr.fileId)) < 0 || + SetTupleItem(pstat, 2, PyLong_FromLong(0)) < 0 || // dev + SetTupleItem(pstat, 3, PyLong_FromLong(1)) < 0 || // num links + SetTupleItem(pstat, 4, PyLong_FromUnsignedLong(attr.user)) < 0 || + SetTupleItem(pstat, 5, PyLong_FromUnsignedLong(attr.group)) < 0 || + SetTupleItem(pstat, 6, PyLong_FromLongLong(attr.fileSize)) < 0 || + SetTupleItem(pstat, 7, PyLong_FromLong(attr.ctime.tv_sec)) < 0 || + SetTupleItem(pstat, 8, PyLong_FromLong(attr.mtime.tv_sec)) < 0 || + SetTupleItem(pstat, 9, PyLong_FromLong(attr.crtime.tv_sec)) < 0) { + Py_DECREF(pstat); + return NULL; + } return pstat; } @@ -1043,34 +1173,50 @@ qfs_fullstat(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "s", &patharg)) return NULL; - string path = build_path(self->cwd, patharg); KfsFileAttr attr; - int status = self->client->Stat(path.c_str(), attr, true); + int status = self->client->Stat(patharg, attr, true); if (status < 0) { SetPyIoError(status); return NULL; } PyObject *pstat = PyTuple_New(13); - PyTuple_SetItem(pstat, 0, PyString_FromString( - attr.isDirectory ? "dir" : "file")); - PyTuple_SetItem(pstat, 1, PyString_FromString(ctime(&attr.ctime.tv_sec))); - PyTuple_SetItem(pstat, 2, PyString_FromString(ctime(&attr.mtime.tv_sec))); - PyTuple_SetItem(pstat, 3, PyLong_FromLongLong(attr.fileSize)); - PyTuple_SetItem(pstat, 4, PyLong_FromLongLong(attr.fileId)); - PyTuple_SetItem(pstat, 5, PyLong_FromLongLong(attr.numReplicas)); - PyTuple_SetItem(pstat, 6, PyInt_FromLong(attr.user)); - PyTuple_SetItem(pstat, 7, PyInt_FromLong(attr.group)); - PyTuple_SetItem(pstat, 8, PyInt_FromLong(attr.mode)); - PyTuple_SetItem(pstat, 9, PyInt_FromLong( - attr.striperType == KFS::KFS_STRIPED_FILE_TYPE_NONE ? 0 : 1)); + if (!pstat) + return NULL; + if (SetTupleItem(pstat, 0, PyUnicode_FromString( + attr.isDirectory ? "dir" : "file")) < 0 || + SetTupleItem(pstat, 1, + CtimeUnicode(attr.ctime.tv_sec)) < 0 || + SetTupleItem(pstat, 2, + CtimeUnicode(attr.mtime.tv_sec)) < 0 || + SetTupleItem(pstat, 3, PyLong_FromLongLong(attr.fileSize)) < 0 || + SetTupleItem(pstat, 4, PyLong_FromLongLong(attr.fileId)) < 0 || + SetTupleItem(pstat, 5, PyLong_FromLongLong( + attr.numReplicas)) < 0 || + SetTupleItem(pstat, 6, PyLong_FromUnsignedLong(attr.user)) < 0 || + SetTupleItem(pstat, 7, PyLong_FromUnsignedLong(attr.group)) < 0 || + SetTupleItem(pstat, 8, PyLong_FromUnsignedLong(attr.mode)) < 0 || + SetTupleItem(pstat, 9, PyLong_FromLong( + attr.striperType == KFS::KFS_STRIPED_FILE_TYPE_NONE ? + 0 : 1)) < 0) { + Py_DECREF(pstat); + return NULL; + } if (attr.striperType != KFS::KFS_STRIPED_FILE_TYPE_NONE) { - PyTuple_SetItem(pstat, 10, PyLong_FromLong(attr.stripeSize)); - PyTuple_SetItem(pstat, 11, PyInt_FromLong(attr.numStripes)); - PyTuple_SetItem(pstat, 12, PyInt_FromLong(attr.numRecoveryStripes)); + if (SetTupleItem(pstat, 10, PyLong_FromLong(attr.stripeSize)) < 0 || + SetTupleItem(pstat, 11, PyLong_FromLong( + attr.numStripes)) < 0 || + SetTupleItem(pstat, 12, PyLong_FromLong( + attr.numRecoveryStripes)) < 0) { + Py_DECREF(pstat); + return NULL; + } } else { - PyTuple_SetItem(pstat, 10, PyLong_FromLong(0)); - PyTuple_SetItem(pstat, 11, PyInt_FromLong(0)); - PyTuple_SetItem(pstat, 12, PyInt_FromLong(0)); + if (SetTupleItem(pstat, 10, PyLong_FromLong(0)) < 0 || + SetTupleItem(pstat, 11, PyLong_FromLong(0)) < 0 || + SetTupleItem(pstat, 12, PyLong_FromLong(0)) < 0) { + Py_DECREF(pstat); + return NULL; + } } return pstat; } @@ -1084,8 +1230,7 @@ qfs_getNumChunks(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "s", &patharg)) return NULL; - string path = build_path(self->cwd, patharg); - int chunkCount = self->client->GetNumChunks(path.c_str()); + int chunkCount = self->client->GetNumChunks(patharg); if (chunkCount < 0) { SetPyIoError(chunkCount); return NULL; @@ -1101,32 +1246,38 @@ qfs_getChunkSize(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "s", &patharg)) return NULL; - string path = build_path(self->cwd, patharg); - int chunksz = self->client->GetChunkSize(path.c_str()); + int chunksz = self->client->GetChunkSize(patharg); return Py_BuildValue("i", chunksz); } static PyObject * qfs_create(PyObject *pself, PyObject *args) { - qfs_Client *self = (qfs_Client *)pself; - char *patharg; - int numReplicas = 3; - - if (!PyArg_ParseTuple(args, "s|i", &patharg, &numReplicas)) + PyObject *patharg; + PyObject *mode = NULL; + PyObject *mode_deref = NULL; + int numReplicas = 3; + PyObject *encoding = Py_None, *errors = Py_None; + + if (!PyArg_ParseTuple(args, "U|iUUU", &patharg, &numReplicas, &mode, + &encoding, &errors)) return NULL; - string path = build_path(self->cwd, patharg); - int fd = self->client->Create(path.c_str(), numReplicas); - if (fd < 0) { - SetPyIoError(fd); - return NULL; + if (!mode) { + mode = PyUnicode_FromString("w"); + if (!mode) + return NULL; + mode_deref = mode; } qfs_File *f = (qfs_File *)qfs_FileType.tp_new(&qfs_FileType, NULL, NULL); - if (f == NULL || set_file_members(f, path.c_str(), "w", self, fd) < 0) + int const res = SetFileMembers(f, patharg, mode, pself, encoding, errors, + numReplicas, true); + Py_XDECREF(mode_deref); + if (res < 0) { + Py_XDECREF(f); return NULL; - + } return (PyObject *)f; } @@ -1139,8 +1290,7 @@ qfs_remove(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "s", &patharg)) return NULL; - string path = build_path(self->cwd, patharg); - int status = self->client->Remove(path.c_str()); + int status = self->client->Remove(patharg); if (status < 0) { SetPyIoError(status); return NULL; @@ -1158,9 +1308,7 @@ qfs_rename(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "ss|b", &srcpath, &dstpath, &overwrite)) return NULL; - string spath = build_path(self->cwd, srcpath); - string dpath = build_path(self->cwd, dstpath); - int status = self->client->Rename(spath.c_str(), dpath.c_str(), overwrite); + int status = self->client->Rename(srcpath, dstpath, overwrite); if (status < 0) { SetPyIoError(status); return NULL; @@ -1177,38 +1325,46 @@ qfs_coalesceblocks(PyObject *pself, PyObject *args) if (!PyArg_ParseTuple(args, "ss", &srcpath, &dstpath)) return NULL; - string spath = build_path(self->cwd, srcpath); - string dpath = build_path(self->cwd, dstpath); - chunkOff_t dstStartOffset; + chunkOff_t dstStartOffset; int status = self->client->CoalesceBlocks( - spath.c_str(), dpath.c_str(), &dstStartOffset); + srcpath, dstpath, &dstStartOffset); if (status < 0) { SetPyIoError(status); return NULL; } - return Py_BuildValue("l", dstStartOffset); + return Py_BuildValue("L", (long long)dstStartOffset); } static PyObject * qfs_open(PyObject *pself, PyObject *args) { - qfs_Client *self = (qfs_Client *)pself; - const char *patharg, *modestr = "r"; + PyObject *mode = NULL; + PyObject *mode_deref = NULL; + PyObject *patharg, *encoding = Py_None, *errors = Py_None; - if (!PyArg_ParseTuple(args, "s|s", &patharg, &modestr)) + if (!PyArg_ParseTuple( + args, "U|UUU", &patharg, &mode, &encoding, &errors)) return NULL; - - string path = build_path(self->cwd, patharg); - + if (!mode) { + mode = PyUnicode_FromString("r"); + if (!mode) + return NULL; + mode_deref = mode; + } qfs_File *f = (qfs_File *)qfs_FileType.tp_new(&qfs_FileType, NULL, NULL); - if (f == NULL || - set_file_members(f, path.c_str(), modestr, self, -1) < 0) { + int const res = SetFileMembers(f, patharg, mode, pself, encoding, errors); + Py_XDECREF(mode_deref); + if (res < 0) { + Py_XDECREF(f); return NULL; } return (PyObject *)f; } -PyDoc_STRVAR(module_doc, +static struct PyModuleDef qfs_moduledef = { + PyModuleDef_HEAD_INIT, + .m_name = "qfs", + .m_doc = PyDoc_STR( "This module links to the QFS client library to provide simple QFS\n" "file services akin to those for built-in Python file objects. To use\n" "it, you must first create a qfs.client object. This provides the\n" @@ -1216,20 +1372,21 @@ PyDoc_STRVAR(module_doc, " and chunkservers) must already be active.\n\n" "Once you have a qfs.client, you can perform file system operations\n" "corresponding to the QFS client library interfaces and create qfs.file\n" -"objects that represent files in QFS.\n"); - +"objects that represent files in QFS.\n" + ) +}; PyMODINIT_FUNC -initqfs() +PyInit_qfs() { - if (PyType_Ready(&qfs_ClientType) < 0 || - PyType_Ready(&qfs_FileType) < 0) - return; + if (PyType_Ready(&qfs_ClientType) < 0 || PyType_Ready(&qfs_FileType) < 0) + return NULL; - PyObject *m = Py_InitModule3("qfs", NULL, module_doc); + PyObject *m = PyModule_Create(&qfs_moduledef); Py_INCREF(&qfs_ClientType); PyModule_AddObject(m, "client", (PyObject *)&qfs_ClientType); Py_INCREF(&qfs_FileType); PyModule_AddObject(m, "file", (PyObject *)&qfs_FileType); + return m; } diff --git a/src/cc/access/kfs_setup.py b/src/cc/access/kfs_setup.py index 8393c23a3..0e6249b9b 100644 --- a/src/cc/access/kfs_setup.py +++ b/src/cc/access/kfs_setup.py @@ -35,48 +35,62 @@ # file doc/DeveloperDoc. # -from distutils.core import setup, Extension -import sys import os -import os.path +import sys +from distutils.core import Extension, setup -kfs_access_dir=os.path.dirname(sys.argv[0]) +kfs_access_dir = os.path.dirname(os.path.realpath(sys.argv[0])) -kfsext = Extension( - 'qfs', - include_dirs = [ - os.path.abspath(os.path.join(kfs_access_dir, "..")) - ], - libraries = [ - 'qfs_client', - 'qfs_common', - 'qfs_io', - 'qfs_qcdio', - 'qfs_qcrs' - ], - library_dirs = [ - 'src/cc/libclient', - 'src/cc/common', - 'src/cc/kfsio', - 'src/cc/qcdio', - 'src/cc/qcrs', - ], - runtime_library_dirs = [], - sources = [ - os.path.abspath(os.path.join(kfs_access_dir, "kfs_module_py.cc")) +# The following assumes that QFS was build by running cmake and then +# make install +libs_dir = "lib" +if os.path.exists("qfs"): + # kfs_setup.py symlinked to setup.py and build directory symlinked to qfs. + # QFS shared libraries are packaged into qfs/lib and QFS C extension's run + # time path is set accordingly. + libs_dir = os.path.join("qfs", libs_dir) + setup_extra_args = { + "packages": ["qfs"], + "package_data": { + "qfs": [ + os.path.join("lib", f) + for f in os.listdir(libs_dir) + if os.path.isfile(os.path.join(libs_dir, f)) + and not os.path.islink(os.path.join(libs_dir, f)) + and "qfsc." not in f + and "qfss3io." not in f + and "qfs_access." not in f + ] + }, + # "ext_package": "qfs", + } + extension_extra_args = { + "runtime_library_dirs": { + "darwin": ["@loader_path/qfs/lib"], + "win32": [], + }.get(sys.platform, ["$ORIGIN/qfs/lib"]) + } +else: + # Old way of invoking kfs_setup.py from build directory. + setup_extra_args = {} + extension_extra_args = {} + +qfs_ext = Extension( + "qfs", + include_dirs=[os.path.abspath(os.path.join(kfs_access_dir, ".."))], + libraries=["qfs_client"], + library_dirs=[libs_dir], + sources=[ + os.path.abspath(os.path.join(kfs_access_dir, "kfs_module_py.cc")) ], + **extension_extra_args, ) -# OSX boost ports typically end up at /opt/local/lib -if sys.platform in ('darwin', 'Darwin'): - kfsext.library_dirs.append('/opt/local/lib') - kfsext.libraries.append('boost_regex-mt') -else: - kfsext.libraries.append('boost_regex') - setup( - name = "qfs", version = "2.0", + name="qfs", + version="2.5", description="QFS client module", author="Blake Lewis and Sriram Rao", - ext_modules = [kfsext] + ext_modules=[qfs_ext], + **setup_extra_args, ) diff --git a/src/cc/common/BufferedLogWriter.cc b/src/cc/common/BufferedLogWriter.cc index c93d3855f..8846f5d14 100644 --- a/src/cc/common/BufferedLogWriter.cc +++ b/src/cc/common/BufferedLogWriter.cc @@ -92,7 +92,7 @@ class BufferedLogWriter::Impl : public QCRunnable int inFd, const char* inFileNamePtr, int inBufSize, - const char* inTrucatedSuffixPtr, + const char* inTruncatedSuffixPtr, int64_t inOpenRetryIntervalMicroSec, int64_t inFlushIntervalMicroSec, int64_t inMaxLogFileSize, @@ -107,7 +107,7 @@ class BufferedLogWriter::Impl : public QCRunnable mThread(0, inThreadNamePtr ? inThreadNamePtr : "TraceLogWriter"), mLogFileNamePrefixes(), mFileName(inFileNamePtr ? inFileNamePtr : ""), - mTruncatedSuffix(inTrucatedSuffixPtr ? inTrucatedSuffixPtr : "..."), + mTruncatedSuffix(inTruncatedSuffixPtr ? inTruncatedSuffixPtr : "..."), mTimeStampFormat(inTimeStampFormatPtr ? inTimeStampFormatPtr : "%m-%d-%Y %H:%M:%S"), mNewLogSuffix(), @@ -1347,7 +1347,7 @@ BufferedLogWriter::BufferedLogWriter( int inFd, const char* inFileNamePtr /* = 0 */, int inBufSize /* = 1 << 20 */, - const char* inTrucatedSuffixPtr /* = 0 */, + const char* inTruncatedSuffixPtr /* = 0 */, int64_t inOpenRetryIntervalMicroSec /* = 5000000 */, int64_t inFlushIntervalMicroSec /* = 1000000 */, int64_t inMaxLogFileSize /* = -1 */, @@ -1362,7 +1362,7 @@ BufferedLogWriter::BufferedLogWriter( inFd, inFileNamePtr, inBufSize, - inTrucatedSuffixPtr, + inTruncatedSuffixPtr, inOpenRetryIntervalMicroSec, inFlushIntervalMicroSec, inMaxLogFileSize, diff --git a/src/cc/common/BufferedLogWriter.h b/src/cc/common/BufferedLogWriter.h index 32c63bc5f..1b3eda913 100644 --- a/src/cc/common/BufferedLogWriter.h +++ b/src/cc/common/BufferedLogWriter.h @@ -75,7 +75,7 @@ class BufferedLogWriter int inFd = -1, const char* inFileNamePtr = 0, int inBufSize = 1 << 20, - const char* inTrucatedSuffixPtr = 0, + const char* inTruncatedSuffixPtr = 0, int64_t inOpenRetryIntervalMicroSec = 5000000, int64_t inFlushIntervalMicroSec = 1000000, int64_t inMaxLogFileSize = -1, diff --git a/src/cc/common/buildversgit.sh b/src/cc/common/buildversgit.sh index 368213605..d01c79f78 100755 --- a/src/cc/common/buildversgit.sh +++ b/src/cc/common/buildversgit.sh @@ -19,7 +19,7 @@ # permissions and limitations under the License. # default version to use if git is not available -qfs_no_git_version="2.2.6" +qfs_no_git_version="2.2.7" usage() { echo " diff --git a/src/cc/fuse/kfs_fuse_main.cc b/src/cc/fuse/kfs_fuse_main.cc index 428d73163..f5f002827 100644 --- a/src/cc/fuse/kfs_fuse_main.cc +++ b/src/cc/fuse/kfs_fuse_main.cc @@ -28,6 +28,10 @@ // //---------------------------------------------------------------------------- +#ifndef FUSE_USE_VERSION +# define FUSE_USE_VERSION 26 +#endif + #include "libclient/KfsClient.h" #include "common/Properties.h" #include "common/MsgLogger.h" @@ -44,6 +48,33 @@ #include +/* Do not compare FUSE_USE_VERSION with FUSE_MAKE_VERSION as the later on 3.0 + * multiplies major version by 100, but on 2.0 by 10, and the conditionals int + * the fuse includes appears to be use using 2.0 convention with + * FUSE_USE_VERSION + */ +#if FUSE_USE_VERSION < 30 +# define QFS_FUSE_USE_MAJOR_VERSION 2 +# define FUSE2_API_ARG(x) , x +# define FUSE3_API_ARG(x) +# define QFS_FUSE_LOOP_MT(x) fuse_loop_mt(x) +# if FUSE_USE_VERSION > 24 +# define FUSE_UMOUNT_ARG(x) , x +# else +# define FUSE_UMOUNT_ARG(x) +# endif +#else +# define QFS_FUSE_USE_MAJOR_VERSION 3 +# define FUSE_UMOUNT_ARG(x) +# define FUSE2_API_ARG(x) +# define FUSE3_API_ARG(x) , x +# if FUSE_USE_VERSION < 32 +# define QFS_FUSE_LOOP_MT(x) fuse_loop_mt(x, 0) +# else +# define QFS_FUSE_LOOP_MT(x) fuse_loop_mt(x, NULL) +# endif +#endif + using std::string; using std::vector; using std::hex; @@ -92,7 +123,8 @@ mode2kfs_mode(mode_t mode) } static int -fuse_getattr(const char* path, struct stat* s) +fuse_getattr(const char* path, struct stat* s + FUSE3_API_ARG(struct fuse_file_info*)) { KfsFileAttr attr; int status = client->Stat(path, attr); @@ -103,12 +135,14 @@ fuse_getattr(const char* path, struct stat* s) return 0; } +#if QFS_FUSE_USE_MAJOR_VERSION < 3 static int fuse_fgetattr(const char* path, struct stat* s, struct fuse_file_info* /* finfo */) { return fuse_getattr(path, s); } +#endif static int fuse_mkdir(const char* path, mode_t mode) @@ -129,11 +163,13 @@ fuse_rmdir(const char* path) } static int -fuse_rename(const char* src, const char* dst) +fuse_rename(const char* src, const char* dst FUSE3_API_ARG(unsigned int flags)) { - return client->Rename(src, dst, false); + return client->Rename(src, dst FUSE2_API_ARG(false) + FUSE3_API_ARG(flags != RENAME_NOREPLACE)); } +#if QFS_FUSE_USE_MAJOR_VERSION < 3 static int fuse_ftruncate(const char* path, off_t size, struct fuse_file_info* finfo) { @@ -144,9 +180,11 @@ fuse_ftruncate(const char* path, off_t size, struct fuse_file_info* finfo) KFS_LOG_EOM; return client->Truncate(finfo->fh, size); } +#endif static int -fuse_truncate(const char* path, off_t size) +fuse_truncate(const char* path, off_t size + FUSE3_API_ARG(struct fuse_file_info*)) { KFS_LOG_STREAM_DEBUG << "qfs_fuse" " truncate:" << (path ? path : "") << @@ -346,7 +384,8 @@ fuse_opendir(const char* path, struct fuse_file_info* /* finfo */) static int fuse_readdir(const char* path, void* buf, fuse_fill_dir_t filler, off_t /* offset */, - struct fuse_file_info* /* finfo */) + struct fuse_file_info* /* finfo */ + FUSE3_API_ARG(enum fuse_readdir_flags)) { vector contents; int status = client->ReaddirPlus(path, contents); @@ -357,7 +396,8 @@ fuse_readdir(const char* path, void* buf, for (int i = 0; i < n; i++) { struct stat s; contents[i].ToStat(s); - if (filler(buf, contents[i].filename.c_str(), &s, 0) != 0) { + if (filler(buf, contents[i].filename.c_str(), &s, 0 + FUSE3_API_ARG(FUSE_FILL_DIR_PLUS)) != 0) { break; } } @@ -390,13 +430,14 @@ fuse_access(const char* path, int mode) } static int -fuse_chmod(const char* path, mode_t mode) +fuse_chmod(const char* path, mode_t mode FUSE3_API_ARG(struct fuse_file_info*)) { return client->Chmod(path, mode2kfs_mode(mode)); } static int -fuse_chown(const char* path, uid_t user, gid_t group) +fuse_chown(const char* path, uid_t user, gid_t group + FUSE3_API_ARG(struct fuse_file_info*)) { return client->Chown(path, user == (uid_t)-1 ? kKfsUserNone : (kfsUid_t)user, @@ -441,7 +482,9 @@ fuse_statfs(const char* path, struct statvfs* stat) struct fuse_operations ops = { fuse_getattr, NULL, /* readlink */ +#if QFS_FUSE_USE_MAJOR_VERSION < 3 NULL, /* getdir */ +#endif NULL, /* mknod */ fuse_mkdir, fuse_unlink, @@ -452,7 +495,9 @@ struct fuse_operations ops = { fuse_chmod, /* chmod */ fuse_chown, /* chown */ fuse_truncate, +#if QFS_FUSE_USE_MAJOR_VERSION < 3 NULL, /* utime */ +#endif fuse_open, fuse_read, fuse_write, @@ -472,14 +517,30 @@ struct fuse_operations ops = { NULL, /* destroy */ fuse_access, /* access */ fuse_create, /* create */ +#if QFS_FUSE_USE_MAJOR_VERSION < 3 fuse_ftruncate, /* ftruncate */ fuse_fgetattr, /* fgetattr */ +#else + NULL, /* lock */ + NULL, /* utimens */ + NULL, /* bmap */ + NULL, /* ioctl */ + NULL, /* poll */ + NULL, /* write_buf */ + NULL, /* read_buf */ + NULL, /* flock */ + NULL, /* fallocate */ + NULL, /* copy_file_range */ + NULL, /* lseek */ +#endif }; struct fuse_operations ops_readonly = { fuse_getattr, NULL, /* readlink */ +#if QFS_FUSE_USE_MAJOR_VERSION < 3 NULL, /* getdir */ +#endif NULL, /* mknod */ NULL, /* mkdir */ NULL, /* unlink */ @@ -490,7 +551,9 @@ struct fuse_operations ops_readonly = { NULL, /* chmod */ NULL, /* chown */ NULL, /* truncate */ +#if QFS_FUSE_USE_MAJOR_VERSION < 3 NULL, /* utime */ +#endif fuse_open, fuse_read, NULL, /* write */ @@ -510,8 +573,22 @@ struct fuse_operations ops_readonly = { NULL, /* destroy */ fuse_access, /* access */ NULL, /* create */ +#if QFS_FUSE_USE_MAJOR_VERSION < 3 NULL, /* ftruncate */ fuse_fgetattr, /* fgetattr */ +#else + NULL, /* lock */ + NULL, /* utimens */ + NULL, /* bmap */ + NULL, /* ioctl */ + NULL, /* poll */ + NULL, /* write_buf */ + NULL, /* read_buf */ + NULL, /* flock */ + NULL, /* fallocate */ + NULL, /* copy_file_range */ + NULL, /* lseek */ +#endif }; static void @@ -589,6 +666,7 @@ initkfs(char* addr, const string& cfg_file, const string& cfg_props) } } +#if QFS_FUSE_USE_MAJOR_VERSION < 3 static struct fuse_args* get_fs_args(struct fuse_args* args) { @@ -607,6 +685,7 @@ get_fs_args(struct fuse_args* args) args->allocated = 1; return args; } +#endif static struct fuse_args* get_mount_args(struct fuse_args* args, const char* options) @@ -617,7 +696,7 @@ get_mount_args(struct fuse_args* args, const char* options) args->argc = 2; args->argv = (char**)calloc(sizeof(char*), args->argc + 1); - args->argv[0] = strdup("unused_arg0"); + args->argv[0] = strdup("qfs_fuse"); args->argv[1] = strdup(options); args->allocated = 1; return args; @@ -743,37 +822,60 @@ initfuse(char* kfs_host_address, const char* mountpoint, initkfs(kfs_host_address, cfg_file, cfg_props); struct fuse_args fs_args; - struct fuse_args mnt_args; - struct fuse_chan* ch = NULL; - ch = fuse_mount(mountpoint, get_mount_args(&mnt_args, options)); +#if QFS_FUSE_USE_MAJOR_VERSION < 3 + struct fuse_args mnt_args; + struct fuse_chan* const ch = + fuse_mount(mountpoint, get_mount_args(&mnt_args, options)); if (ch == NULL) { const int err = errno; delete client; fatal(err, "fuse_mount: %s:", mountpoint); } - - struct fuse* fuse = NULL; - fuse = fuse_new(ch, get_fs_args(&fs_args), - (readonly ? &ops_readonly : &ops), - (readonly ? sizeof(ops_readonly) : sizeof(ops)), - NULL); +#endif + struct fuse* const fuse = fuse_new( +#if QFS_FUSE_USE_MAJOR_VERSION < 3 + ch, + get_fs_args(&fs_args), +#else + get_mount_args(&fs_args, options), +#endif + (readonly ? &ops_readonly : &ops), + (readonly ? sizeof(ops_readonly) : sizeof(ops)), + NULL + ); if (fuse == NULL) { const int err = errno; - fuse_unmount(mountpoint, ch); +#if QFS_FUSE_USE_MAJOR_VERSION < 3 + fuse_unmount(mountpoint FUSE_UMOUNT_ARG(ch)); +#endif delete client; fatal(err, "fuse_new:"); } +#if QFS_FUSE_USE_MAJOR_VERSION > 2 + if (fuse_mount(fuse, mountpoint)) { + const int err = errno; + fuse_destroy(fuse); + delete client; + fatal(err, "fuse_mount: %s:", mountpoint); + } +#endif sReadOnlyFlag = readonly; #ifndef KFS_OS_NAME_SUNOS if (! readonly) { - fuse_loop_mt(fuse); + QFS_FUSE_LOOP_MT(fuse); } else #endif { fuse_loop(fuse); } - fuse_unmount(mountpoint, ch); + fuse_unmount( +#if QFS_FUSE_USE_MAJOR_VERSION < 3 + mountpoint FUSE_UMOUNT_ARG(ch) +#else + fuse +#endif + ); fuse_destroy(fuse); delete client; } diff --git a/src/cc/kfsio/SslFilter.cc b/src/cc/kfsio/SslFilter.cc index a8b9608fb..0f02da566 100644 --- a/src/cc/kfsio/SslFilter.cc +++ b/src/cc/kfsio/SslFilter.cc @@ -740,8 +740,13 @@ class SslFilter::Impl : private IOBuffer::Reader if (! theCurSessionPtr) { return (time(0) - 1); } - return ((int64_t)SSL_SESSION_get_time(theCurSessionPtr) + - SSL_SESSION_get_timeout(theCurSessionPtr)); + return ((int64_t) +#if OPENSSL_VERSION_NUMBER < 0x30300000L + SSL_SESSION_get_time(theCurSessionPtr) +#else + SSL_SESSION_get_time_ex(theCurSessionPtr) +#endif + + SSL_SESSION_get_timeout(theCurSessionPtr)); } virtual bool RenewSession() { diff --git a/src/cc/meta/MetaDataStore.cc b/src/cc/meta/MetaDataStore.cc index c7d4e5361..f454ee6f4 100644 --- a/src/cc/meta/MetaDataStore.cc +++ b/src/cc/meta/MetaDataStore.cc @@ -934,18 +934,19 @@ class MetaDataStore::Impl : public ITimeout return (0 < theErr ? -theErr : -EINVAL); } struct stat theStat = {0}; - string theTmpStr; - bool theHasLatestFlag = false; + string thePathNameStr; + thePathNameStr.reserve(1 << 10); + thePathNameStr = inDirNamePtr; + thePathNameStr += "/"; + const size_t theDirNamePrefixLen = thePathNameStr.length(); + bool theHasLatestFlag = false; if (inLatestNamePtr) { - theTmpStr.reserve(1 << 10); - theTmpStr = inDirNamePtr; - theTmpStr += "/"; - theTmpStr += inLatestNamePtr; - if (stat(theTmpStr.c_str(), &theStat)) { + thePathNameStr += inLatestNamePtr; + if (stat(thePathNameStr.c_str(), &theStat)) { const int theErr = errno; if (ENOENT != theErr || inLatestRequiredFlag) { KFS_LOG_STREAM_ERROR << - "stat: " << theTmpStr << + "stat: " << thePathNameStr << ": " << QCUtils::SysError(theErr) << KFS_LOG_EOM; return -EINVAL; @@ -954,10 +955,12 @@ class MetaDataStore::Impl : public ITimeout theHasLatestFlag = true; } } - int theRet = 0; - size_t const thePrefixLen = strlen(inNamePrefixPtr); - size_t theTmpSufLen = + int theRet = 0; + size_t const thePrefixLen = strlen(inNamePrefixPtr); + size_t theTmpSufLen = inTmpSuffixPtr ? strlen(inTmpSuffixPtr) : 0; + bool theUseDirentInoFlag = false; + bool theLatestFlag = false; const struct dirent* thePtr; while ((thePtr = readdir(theDirPtr))) { const char* const theNamePtr = thePtr->d_name; @@ -981,17 +984,16 @@ class MetaDataStore::Impl : public ITimeout (theNamePtr + thePrefixLen + theTmpSufLen <= theEndPtr && memcmp(theEndPtr - theTmpSufLen, inTmpSuffixPtr, theTmpSufLen) == 0))) { - theTmpStr = inDirNamePtr; - theTmpStr += "/"; - theTmpStr += theNamePtr; + thePathNameStr.erase(theDirNamePrefixLen); + thePathNameStr += theNamePtr; KFS_LOG_STREAM_DEBUG << (inRemoveTmpFlag ? - "removing" : "ignoring") << ": " << theTmpStr << + "removing" : "ignoring") << ": " << thePathNameStr << KFS_LOG_EOM; - if (inRemoveTmpFlag && remove(theTmpStr.c_str())) { + if (inRemoveTmpFlag && remove(thePathNameStr.c_str())) { const int theErr = errno; KFS_LOG_STREAM_ERROR << - "remove: " << theTmpStr << + "remove: " << thePathNameStr << ": " << QCUtils::SysError(theErr) << KFS_LOG_EOM; theRet = 0 < theErr ? -theErr : -EINVAL; @@ -1005,8 +1007,31 @@ class MetaDataStore::Impl : public ITimeout theRet = -ENXIO; break; } + if (theHasLatestFlag) { + // Check if d_ino field can be used by comparing its value with + // st_ino. If these match for the first entry, then use d_ino, + // otherwise use stat to get i-node number. + if (theUseDirentInoFlag) { + theLatestFlag = theStat.st_ino == thePtr->d_ino; + } else { + thePathNameStr.erase(theDirNamePrefixLen); + thePathNameStr += theNamePtr; + struct stat theCurStat; + if (stat(thePathNameStr.c_str(), &theCurStat)) { + const int theErr = errno; + KFS_LOG_STREAM_ERROR << + "stat: " << thePathNameStr << + ": " << QCUtils::SysError(theErr) << + KFS_LOG_EOM; + theRet = 0 < theErr ? -theErr : -EINVAL; + break; + } + theLatestFlag = theStat.st_ino == theCurStat.st_ino; + theUseDirentInoFlag = theCurStat.st_ino == thePtr->d_ino; + } + } if (0 != (theRet = inFunctor(theLogSeq, theSegNum, theNamePtr, - theHasLatestFlag && theStat.st_ino == thePtr->d_ino))) { + theLatestFlag))) { break; } } diff --git a/src/cc/meta/MetaRequestHandler.cc b/src/cc/meta/MetaRequestHandler.cc index 4feb9085d..01dae64c5 100644 --- a/src/cc/meta/MetaRequestHandler.cc +++ b/src/cc/meta/MetaRequestHandler.cc @@ -30,6 +30,8 @@ #include "LogWriter.h" #include "util.h" +#include "qcdio/qcdefs.h" + #include "common/RequestParser.h" #include "common/CIdChecksum.h" #include "common/StringIo.h" @@ -283,9 +285,12 @@ MakeMetaRequestLogXmitHandler( class MetaRequestDeleter { public: +QC_GCC_13_PRAGMA(GCC diagnostic push) +QC_GCC_13_PRAGMA(GCC diagnostic ignored "-Warray-bounds") static void Delete( MetaRequest* inReqPtr) { MetaRequest::Release(inReqPtr); } +QC_GCC_13_PRAGMA(GCC diagnostic pop) }; template diff --git a/src/cc/meta/Replay.cc b/src/cc/meta/Replay.cc index 212e8dc01..a22cd1977 100644 --- a/src/cc/meta/Replay.cc +++ b/src/cc/meta/Replay.cc @@ -2249,7 +2249,7 @@ Replay::Replay() lastLogNum(-1), lastLogIntBase(-1), appendToLastLogFlag(false), - verifyAllLogSegmentsPresetFlag(false), + verifyAllLogSegmentsPresentFlag(false), enqueueFlag(false), replayTokenizer(file, this, &enqueueFlag), checkpointCommitted(replayTokenizer.GetState().mCheckpointCommitted), @@ -2667,6 +2667,9 @@ Replay::getLastLogNum() KFS_LOG_EOM; return (err > 0 ? -err : (err == 0 ? -1 : err)); } + bool useDirIno = false; + string pathName = dirName + '/'; + const size_t pathNameLen = pathName.length(); int ret = 0; LogSegmentNumbers logNums; const struct dirent* ent; @@ -2676,15 +2679,39 @@ Replay::getLastLogNum() } const char* const p = strrchr(ent->d_name, '.'); const int64_t num = p ? toNumber(p + 1) : int64_t(-1); - if (0 <= lastLogNum && lastst.st_ino == ent->d_ino) { - lastLogNum = num; - if (num < 0) { - KFS_LOG_STREAM_FATAL << - "invalid log segment name: " << - dirName << "/" << ent->d_name << - KFS_LOG_EOM; - ret = -EINVAL; - break; + if (0 <= lastLogNum) { + bool lastLogFlag; + // Check if d_ino field can be used by comparing its value with + // st_ino. If these match for the first entry, then use d_ino, + // otherwise use stat to get i-node number. + if (useDirIno) { + lastLogFlag = lastst.st_ino == ent->d_ino; + } else { + pathName.erase(pathNameLen); + pathName += ent->d_name; + struct stat cur; + if (stat(pathName.c_str(), &cur)) { + const int err = errno; + KFS_LOG_STREAM_ERROR << + "stat: " << pathName << + ": " << QCUtils::SysError(err) << + KFS_LOG_EOM; + ret = 0 < err ? -err : -EINVAL; + break; + } + lastLogFlag = lastst.st_ino == cur.st_ino; + useDirIno = cur.st_ino == ent->d_ino; + } + if (lastLogFlag) { + lastLogNum = num; + if (num < 0) { + KFS_LOG_STREAM_FATAL << + "invalid log segment name: " << + dirName << "/" << ent->d_name << + KFS_LOG_EOM; + ret = -EINVAL; + break; + } } } if (num < 0) { @@ -2713,7 +2740,7 @@ Replay::getLastLogNum() ret = -EINVAL; break; } - if ((verifyAllLogSegmentsPresetFlag || number <= num) && + if ((verifyAllLogSegmentsPresentFlag || number <= num) && ! logNums.insert(make_pair(num, ent->d_name)).second) { KFS_LOG_STREAM_FATAL << "duplicate log segment number: " << num << @@ -2733,32 +2760,36 @@ Replay::getLastLogNum() KFS_LOG_EOM; ret = -EINVAL; } - LogSegmentNumbers::const_iterator it = logNums.begin(); - if (logNums.end() == it || (verifyAllLogSegmentsPresetFlag ? - logNums.find(number) == logNums.end() : it->first != number)) { - KFS_LOG_STREAM_FATAL << - "missing log segmnet: " << number << - KFS_LOG_EOM; - ret = -EINVAL; - } else { - seq_t n = it->first; - while (logNums.end() != ++it) { - if (++n != it->first) { - KFS_LOG_STREAM_FATAL << - "missing log segmnets:" - " from: " << n << - " to: " << it->first << - KFS_LOG_EOM; - n = it->first; - ret = -EINVAL; + if (0 == ret) { + LogSegmentNumbers::const_iterator it = logNums.begin(); + if (logNums.end() == it || (verifyAllLogSegmentsPresentFlag ? + logNums.find(number) == logNums.end() : it->first != number)) { + KFS_LOG_STREAM_FATAL << + "missing log segmnet: " << number << + KFS_LOG_EOM; + ret = -EINVAL; + } else { + seq_t n = it->first; + while (logNums.end() != ++it) { + if (++n != it->first) { + KFS_LOG_STREAM_FATAL << + "missing log segmnets:" + " from: " << n << + " to: " << it->first << + KFS_LOG_EOM; + n = it->first; + ret = -EINVAL; + } } } } if (0 == ret && 0 <= logSeqStartNum) { - it = logNums.find(logSeqStartNum); - string name; + string name = dirName + '/'; + const size_t prefLen = name.length(); + LogSegmentNumbers::const_iterator it = logNums.find(logSeqStartNum); while (logNums.end() != it) { - name = dirName + "/" + it->second; + name.erase(prefLen); + name += it->second; ++it; if (0 != (ret = ValidateLogSegmentTrailer( name.c_str(), logNums.end() != it))) { diff --git a/src/cc/meta/Replay.h b/src/cc/meta/Replay.h index a32861953..de23d1ff1 100644 --- a/src/cc/meta/Replay.h +++ b/src/cc/meta/Replay.h @@ -101,8 +101,8 @@ class Replay int playLine(const char* line, int len, seq_t blockSeq); bool logSegmentHasLogSeq() const { return logSegmentHasLogSeq(number); } - void verifyAllLogSegmentsPreset(bool flag) - { verifyAllLogSegmentsPresetFlag = flag; } + void verifyAllLogSegmentsPresent(bool flag) + { verifyAllLogSegmentsPresentFlag = flag; } void setLogDir(const char* dir); MetaVrLogSeq getCheckpointCommitted() const { return checkpointCommitted; } @@ -175,7 +175,7 @@ class Replay seq_t lastLogNum; int lastLogIntBase; bool appendToLastLogFlag; - bool verifyAllLogSegmentsPresetFlag; + bool verifyAllLogSegmentsPresentFlag; bool enqueueFlag; Tokenizer replayTokenizer; MetaVrLogSeq& checkpointCommitted; diff --git a/src/cc/meta/kfsops.cc b/src/cc/meta/kfsops.cc index 67eef4405..8bbb1e603 100644 --- a/src/cc/meta/kfsops.cc +++ b/src/cc/meta/kfsops.cc @@ -2174,6 +2174,9 @@ Tree::rename(fid_t parent, const string& oldname, const string& newname, if (! sdfattr->CanWrite(euser, egroup)) { return -EACCES; } + if (outSrcFid) { + *outSrcFid = sfattr->id(); + } fid_t ddir; string dname; const string::size_type rslash = newname.rfind('/'); @@ -2297,9 +2300,6 @@ Tree::rename(fid_t parent, const string& oldname, const string& newname, kKfsUserNone, kKfsGroupNone, 0, ddfattr, 0, mtime); assert(status == 0); } - if (outSrcFid) { - *outSrcFid = srcfid; - } return 0; } diff --git a/src/cc/meta/metaserver_main.cc b/src/cc/meta/metaserver_main.cc index 47ad549a1..0148fba14 100644 --- a/src/cc/meta/metaserver_main.cc +++ b/src/cc/meta/metaserver_main.cc @@ -903,9 +903,9 @@ MetaServer::Startup(bool createEmptyFsFlag, KFS_LOG_EOM; return false; } - const bool veifyAllLogSegmentsPresentFlag = mStartupProperties.getValue( - "metaServer.veifyAllLogSegmentsPresent", 0) != 0; - replayer.verifyAllLogSegmentsPreset(veifyAllLogSegmentsPresentFlag); + const bool verifyAllLogSegmentsPresentFlag = mStartupProperties.getValue( + "metaServer.verifyAllLogSegmentsPresent", 0) != 0; + replayer.verifyAllLogSegmentsPresent(verifyAllLogSegmentsPresentFlag); replayer.setLogDir(mLogDir.c_str()); bool writeCheckpointFlag = false; if (! createEmptyFsFlag && @@ -920,7 +920,7 @@ MetaServer::Startup(bool createEmptyFsFlag, mLogDir.c_str(), mStartupProperties.getValue( "metaServer.cleanupTempFiles", 1) != 0, - ! veifyAllLogSegmentsPresentFlag, + ! verifyAllLogSegmentsPresentFlag, mMetaMd.c_str()))) { if (-ENXIO == status) { KFS_LOG_STREAM_FATAL << @@ -1067,7 +1067,7 @@ MetaServer::Startup(bool createEmptyFsFlag, mLogDir.c_str(), mStartupProperties.getValue( "metaServer.cleanupTempFiles", 1) != 0, - ! veifyAllLogSegmentsPresentFlag, + ! verifyAllLogSegmentsPresentFlag, mMetaMd.c_str())) { return false; } diff --git a/src/cc/qcdio/QCThread.cc b/src/cc/qcdio/QCThread.cc index 3d922aaaa..bc6c3e6d5 100644 --- a/src/cc/qcdio/QCThread.cc +++ b/src/cc/qcdio/QCThread.cc @@ -21,7 +21,7 @@ // permissions and limitations under the License. // // Thread wrapper implementation. -// +// //---------------------------------------------------------------------------- #include "QCThread.h" diff --git a/src/cc/qcdio/qcdefs.h b/src/cc/qcdio/qcdefs.h new file mode 100644 index 000000000..a643c1454 --- /dev/null +++ b/src/cc/qcdio/qcdefs.h @@ -0,0 +1,37 @@ +//---------------------------------------------------------- -*- Mode: C++ -*- +// $Id$ +// +// Created 2024/09/30 +// Author: Mike Ovsiannikov +// +// Copyright 2024 Quantcast Corporation. All rights reserved. +// +// This file is part of Quantcast File System (QFS). +// +// Licensed under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +// implied. See the License for the specific language governing +// permissions and limitations under the License. +// + +#ifndef QC_DEFS_H +#define QC_DEFS_H + +#if !defined(QC_GCC_13_PRAGMA) && defined(__GNUC__) && !defined(__clang__) +#if 13 <= __GNUC__ +# define QC_GCC_13_PRAGMA(x) _Pragma(#x) +#endif +#endif + +#ifndef QC_GCC_13_PRAGMA +# define QC_GCC_13_PRAGMA(x) +#endif + +#endif /* QC_DEFS_H */ diff --git a/src/cc/qcdio/qcstutils.h b/src/cc/qcdio/qcstutils.h index eb45714a5..caf8246c8 100644 --- a/src/cc/qcdio/qcstutils.h +++ b/src/cc/qcdio/qcstutils.h @@ -31,6 +31,7 @@ #include "QCMutex.h" #include "qcdebug.h" +#include "qcdefs.h" class QCStMutexLocker { @@ -231,7 +232,10 @@ class QCStDeleteNotifier mTargetDeleteFlagPtr(inTargetDeleteFlagPtr) { if (! inTargetDeleteFlagPtr) { +QC_GCC_13_PRAGMA(GCC diagnostic push) +QC_GCC_13_PRAGMA(GCC diagnostic ignored "-Wdangling-pointer") inTargetDeleteFlagPtr = &mDeletedFlag; +QC_GCC_13_PRAGMA(GCC diagnostic pop) } } diff --git a/src/cc/qcrs/CMakeLists.txt b/src/cc/qcrs/CMakeLists.txt index 01c7f7ff0..c4a6efb7a 100644 --- a/src/cc/qcrs/CMakeLists.txt +++ b/src/cc/qcrs/CMakeLists.txt @@ -49,25 +49,30 @@ if (NOT DEFINED vectormode AND message(STATUS "System processor: ${CMAKE_SYSTEM_PROCESSOR}") # OS X uses sysctl instead of /proc/cpuinfo if (CMAKE_SYSTEM_NAME STREQUAL "Darwin") - execute_process( - COMMAND sh -c "sysctl machdep.cpu.features | grep -wi ssse3" - OUTPUT_QUIET - ERROR_QUIET - RESULT_VARIABLE MY_SSSE3_SUPPORTED_RET - ) - if (MY_SSSE3_SUPPORTED_RET EQUAL 0) - set(vectormode ssse3) - else (MY_SSSE3_SUPPORTED_RET EQUAL 0) + if (CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + message(STATUS "qcrs: enabling neon") + set(vectormode neon) + else () execute_process( - COMMAND sh -c "sysctl machdep.cpu.features | grep -wi sse2" + COMMAND sh -c "sysctl machdep.cpu.features | grep -wi ssse3" OUTPUT_QUIET ERROR_QUIET - RESULT_VARIABLE MY_SSE2_SUPPORTED_RET + RESULT_VARIABLE MY_SSSE3_SUPPORTED_RET ) - if (MY_SSE2_SUPPORTED_RET EQUAL 0) - set(vectormode sse2) - endif (MY_SSE2_SUPPORTED_RET EQUAL 0) - endif (MY_SSSE3_SUPPORTED_RET EQUAL 0) + if (MY_SSSE3_SUPPORTED_RET EQUAL 0) + set(vectormode ssse3) + else (MY_SSSE3_SUPPORTED_RET EQUAL 0) + execute_process( + COMMAND sh -c "sysctl machdep.cpu.features | grep -wi sse2" + OUTPUT_QUIET + ERROR_QUIET + RESULT_VARIABLE MY_SSE2_SUPPORTED_RET + ) + if (MY_SSE2_SUPPORTED_RET EQUAL 0) + set(vectormode sse2) + endif (MY_SSE2_SUPPORTED_RET EQUAL 0) + endif (MY_SSSE3_SUPPORTED_RET EQUAL 0) + endif () elseif (CMAKE_SYSTEM_PROCESSOR MATCHES ^arm OR CMAKE_SYSTEM_PROCESSOR MATCHES aarch64) if (EXISTS /proc/cpuinfo) @@ -130,8 +135,15 @@ if (DEFINED vectormode) add_definitions(-msse2 -DLIBRS_USE_SSE2) elseif (vectormode STREQUAL neon) message(STATUS "qcrs: enabling neon") - add_definitions(-mfpu=neon -DLIBRS_USE_NEON) - else (vectormode STREQUAL neon) + # -mfpu=neon is implied on arm64 and no longer supported by the recent + # clang + include(CheckCXXCompilerFlag) + CHECK_CXX_COMPILER_FLAG(-mfpu=neon SUPPORTS_MFPU_NEON_FLAG) + if (SUPPORTS_MFPU_NEON_FLAG) + add_definitions(-mfpu=neon) + endif() + add_definitions(-DLIBRS_USE_NEON) + else () message(STATUS "qcrs: unsupported ${vectormode}") endif (vectormode STREQUAL ssse3) if (vectormode STREQUAL ssse3 OR vectormode STREQUAL sse2) @@ -158,3 +170,6 @@ add_dependencies (${rsmktablebin} kfsrs) install (TARGETS kfsrs kfsrs-shared LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/static) + +install (TARGETS rstest + RUNTIME DESTINATION bin/devtools) diff --git a/src/cc/qfsc/CMakeLists.txt b/src/cc/qfsc/CMakeLists.txt index 968e2bb6b..f66d91acb 100644 --- a/src/cc/qfsc/CMakeLists.txt +++ b/src/cc/qfsc/CMakeLists.txt @@ -57,4 +57,6 @@ install (TARGETS qfsc qfsc-shared LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/static) install (FILES qfs.h DESTINATION include/kfs/c) +install (TARGETS test-qfsc + RUNTIME DESTINATION bin/devtools) diff --git a/src/cc/s3io/s3ion.cc b/src/cc/s3io/s3ion.cc index 9c5d2f5a1..34c602cee 100644 --- a/src/cc/s3io/s3ion.cc +++ b/src/cc/s3io/s3ion.cc @@ -38,6 +38,7 @@ #include "qcdio/QCMutex.h" #include "qcdio/qcdebug.h" #include "qcdio/qcstutils.h" +#include "qcdio/qcdefs.h" #include "kfsio/Base64.h" #include "kfsio/TransactionalClient.h" @@ -2028,7 +2029,10 @@ class S3ION : public IOMethod if (mReq.mClearBufferPtr) { mReq.mClearBufferPtr->mBufferPtr = 0; } +QC_GCC_13_PRAGMA(GCC diagnostic push) +QC_GCC_13_PRAGMA(GCC diagnostic ignored "-Wdangling-pointer") mReq.mClearBufferPtr = this; +QC_GCC_13_PRAGMA(GCC diagnostic pop) } ~StClearBuffer() { diff --git a/src/java/javabuild.sh b/src/java/javabuild.sh index e660b88a1..c341d6297 100755 --- a/src/java/javabuild.sh +++ b/src/java/javabuild.sh @@ -21,65 +21,80 @@ # Helper script to build Java components of QFS. # -if [ $# -eq 1 -a x"$1" = x'-h' ]; then - echo "Usage:" - echo "basename $0 [-r ] [ | clean]" - echo "Script to build QFA Java access library and optionally the Apache Hadoop QFS plugin." - echo "Supported hadoop versions: 1.0.*, 1.1.*, 0.23.*, 2.*.*" - exit 0 -fi +mymaxtry=1 +work_dir='' +build_vers_git_path=../cc/common/buildversgit.sh -cd "`dirname "$0"`" -if [ $? -ne 0 ]; then - exit 1 -fi +while [ $# -gt 0 ]; do + if [ x"$1" = x'-r' -a $# -gt 1 ]; then + shift + mymaxtry=${1-1} + elif [ x"$1" = x'-d' -a $# -gt 1 ]; then + shift + work_dir=$1 + elif [ x"$1" = x'-v' -a $# -gt 1 ]; then + shift + build_vers_git_path=$1 + elif [ x"$1" = x'--' ]; then + break + elif [ x"$1" = x'-j' ]; then + echo "Usage:" + echo "basename $0 [-r ] [-d ] [-v ] [ | clean]" + echo "Script to build QFA Java access library and optionally the Apache Hadoop QFS plugin." + echo "Supported hadoop versions: 1.0.*, 1.1.*, 0.23.*, 2.*.*, 3.*.*" + exit 0 + else + break + fi + shift +done -if mvn --version > /dev/null 2>&1; then +if mvn --version >/dev/null 2>&1; then echo "Using Apache Maven to build QFS jars.." else echo "Skipping Java build of QFS. Please install Apache Maven and try again." exit 0 fi -mymaxtry=1 -if [ x"$1" = x'-r' ]; then - shift - mymaxtry=${1-1} - shift +if [ x"$work_dir" = x ]; then + work_dir=$(dirname "$0") fi +cd "$work_dir" || exit hadoop_qfs_profile="none" if [ $# -eq 1 ]; then if [ x"$1" = x'clean' ]; then mvn clean - exit 0 + exit fi - myversion="`echo "$1" | cut -d. -f 1-2`" - myversionmaj="`echo "$1" | cut -d. -f 1`" - if [ x"$myversion" = x"1.0" -o x"$myversion" = x"1.1" ]; then - hadoop_qfs_profile="hadoop_branch1_profile" - elif [ x"$myversion" = x"0.23" ]; then - hadoop_qfs_profile="hadoop_trunk_profile" - elif [ x"$myversionmaj" = x"2" -o x"$myversionmaj" = x"3" ]; then - hadoop_qfs_profile="hadoop_trunk_profile,hadoop_trunk_profile_2" - else - echo "Unsupported Hadoop release version." - exit 1 + if [ x"$1" != x'--' ]; then + myversion="$(echo "$1" | cut -d. -f 1-2)" + myversionmaj="$(echo "$1" | cut -d. -f 1)" + if [ x"$myversion" = x"1.0" -o x"$myversion" = x"1.1" ]; then + hadoop_qfs_profile="hadoop_branch1_profile" + elif [ x"$myversion" = x"0.23" ]; then + hadoop_qfs_profile="hadoop_trunk_profile" + elif [ x"$myversionmaj" = x"2" -o x"$myversionmaj" = x"3" ]; then + hadoop_qfs_profile="hadoop_trunk_profile,hadoop_trunk_profile_2" + else + echo "Unsupported Hadoop release version." + exit 1 + fi fi fi -qfs_release_version=`sh ../cc/common/buildversgit.sh --release` -qfs_source_revision=`sh ../cc/common/buildversgit.sh --head` +qfs_release_version=$(sh "$build_vers_git_path" --release) && + qfs_source_revision=$(sh "$build_vers_git_path" --head) || exit if [ x"$qfs_source_revision" = x ]; then - qfs_source_revision="00000000" + qfs_source_revision="00000000" fi test_build_data=${test_build_data:-"/tmp"} min_supported_release=6 until javac --release $min_supported_release -version >/dev/null 2>&1; do - if [ $min_supported_release -ge 20 ]; then + if [ $min_supported_release -ge 30 ]; then min_supported_release=6 break fi @@ -92,8 +107,7 @@ echo "qfs_source_revision = $qfs_source_revision" echo "hadoop_qfs_profile = $hadoop_qfs_profile" echo "test_build_data = $test_build_data" -run_maven_exit_if_success() -{ +run_maven_exit_if_success() { set -x mvn \ -Dhttps.protocols='TLSv1,TLSv1.1,TLSv1.2' \ @@ -102,23 +116,26 @@ run_maven_exit_if_success() -Dqfs.release.version="$qfs_release_version" \ -Dqfs.source.revision="$qfs_source_revision" \ -Dtest.build.data="$test_build_data" \ - ${1+"$@"} \ - && exit + ${1+"$@"} && + exit set +x } mytry=0 while true; do - if [ x"$hadoop_qfs_profile" = x'none' ]; then + if [ x"$1" = x'--' ]; then + shift + run_maven_exit_if_success ${1+"$@"} + elif [ x"$hadoop_qfs_profile" = x'none' ]; then run_maven_exit_if_success --projects qfs-access package else run_maven_exit_if_success -P "$hadoop_qfs_profile" \ -Dhadoop.release.version="$1" package fi - mytry=`expr $mytry + 1` + mytry=$(expr $mytry + 1) [ $mytry -lt $mymaxtry ] || break echo "Retry: $mytry in 20 * $mytry seconds" - sleep `expr 20 \* $mytry` + sleep $(expr 20 \* $mytry) done exit 1 diff --git a/src/test-scripts/objstoreclosetest.sh b/src/test-scripts/objstoreclosetest.sh index 7f2ca4343..ea5b9a7ef 100755 --- a/src/test-scripts/objstoreclosetest.sh +++ b/src/test-scripts/objstoreclosetest.sh @@ -38,7 +38,7 @@ clicfg=${clicfg-"$qfstestdir"/client.prp} clirootcfg=${clirootcfg-"$qfstestdir"/clientroot.prp} metaport=${metaport-20200} metahost=${metahost-127.0.0.1} -csstartport=${csstartport-20400} +csstartport=${csstartport-`expr $metaport + 200`} csendport=${csendport-`expr $csstartport + 0`} cptoqfsextraopts=${cptoqfsextraopts-} diff --git a/src/test-scripts/qfstest.sh b/src/test-scripts/qfstest.sh index 005043dc2..7a86c5acf 100755 --- a/src/test-scripts/qfstest.sh +++ b/src/test-scripts/qfstest.sh @@ -35,12 +35,14 @@ metaserverclithreads=${metaserverclithreads-2} myexmetaconfig='' myexchunkconfig='' myexclientconfig='' +installprefix='' +pythonwheeldir='' mynewlinechar=' ' +metasrvdir= -validnumorexit() -{ - if [ x"`expr "$2" - 0 2>/dev/null`" = x ]; then +validnumorexit() { + if [ x"$(expr "$2" - 0 2>/dev/null)" = x ]; then echo "invalid argument value $1 $2" exit 1 fi @@ -111,6 +113,30 @@ while [ $# -ge 1 ]; do fi shift myexclientconfig=${myexclientconfig}${mynewlinechar}${1} + elif [ x"$1" = x'-install-prefix' ]; then + if [ $# -le 1 ]; then + echo "invalid argument $1" + fi + shift + installprefix=$1 + elif [ x"$1" = x'-python-wheel-dir' ]; then + if [ $# -le 1 ]; then + echo "invalid argument $1" + fi + shift + pythonwheeldir=$1 + elif [ x"$1" = x'-test-dir' ]; then + if [ $# -le 1 ]; then + echo "invalid argument $1" + fi + shift + testdir=$1 + elif [ x"$1" = x'-meta-test-dir' ]; then + if [ $# -le 1 ]; then + echo "invalid argument $1" + fi + shift + metasrvdir=$1 else echo "unsupported option: $1" 1>&2 echo "Usage: $0 " \ @@ -127,7 +153,11 @@ while [ $# -ge 1 ]; do "[-meta-cli-threads ]" \ "[-meta-ex-config ]" \ "[-chunk-ex-config ]" \ - "[-client-ex-config ]" + "[-client-ex-config ]" \ + "[-install-prefix ]" \ + "[-python-wheel-dir ]" \ + "[-test-dir ]" \ + "[-meta-test-dir ]" exit 1 fi shift @@ -135,11 +165,11 @@ done if [ x"$s3test" = x'yes' ]; then if [ x"$QFS_S3_ACCESS_KEY_ID" = x -o \ - x"$QFS_S3_SECRET_ACCESS_KEY" = x -o \ - x"$QFS_S3_BUCKET_NAME" = x ]; then + x"$QFS_S3_SECRET_ACCESS_KEY" = x -o \ + x"$QFS_S3_BUCKET_NAME" = x ]; then echo "environment variables QFS_S3_ACCESS_KEY_ID," \ "QFS_S3_SECRET_ACCESS_KEY," \ - "QFS_S3_BUCKET_NAME, and optionally"\ + "QFS_S3_BUCKET_NAME, and optionally" \ "QFS_S3_REGION_NAME must be set accordintly" exit 1 fi @@ -156,7 +186,7 @@ exec /dev/null; then + if openssl version | grep 'SSL 0\.' >/dev/null; then auth='no' else auth='yes' @@ -179,12 +209,39 @@ else iptobind='0.0.0.0' fi -clientuser=${clientuser-"`id -un`"} +clientuser=${clientuser-"$(id -un)"} numchunksrv=${numchunksrv-3} metasrvport=${metasrvport-20200} -testdir=${testdir-`pwd`/`basename "$0" .sh`} -objectstorebuffersize=${objectstorebuffersize-`expr 500 \* 1024`} +testdir=${testdir-$(pwd)/$(basename "$0" .sh)} +objectstorebuffersize=${objectstorebuffersize-$(expr 500 \* 1024)} + +if [ x"$installprefix" = x ]; then + installbindir='' + installlibdir='' +else + installprefix=$(cd "$installprefix" >/dev/null && pwd) || exit + installbindir=$installprefix/bin + installlibdir=$installprefix/lib +fi + +if [ x"$pythonwheeldir" = x ]; then + kfspythonwheel='' +else + pythonwheeldir=$(cd "$pythonwheeldir" >/dev/null && pwd) || exit + kfspythonwheel=$(find "$pythonwheeldir" -name 'qfs*.whl' -type f) + if [ ! -f "$kfspythonwheel" ]; then + echo "$pythonwheeldir: no QFS python wheel found" 1>&2 + exit 1 + fi + kfspythontest=$(dirname "$0")/../../examples/python + kfspythontest=$(cd "$kfspythontest" >/dev/null 2>&1 && pwd) + kfspythontest=$kfspythontest/qfssample.py + if [ ! -f "$kfspythontest" ]; then + echo "$kfspythontest: no QFS python test found" 1>&2 + exit 1 + fi +fi export metahost export metasrvport @@ -198,9 +255,10 @@ fanouttestsize=${fanouttestsize-1e5} fanoutpartitions=${fanoutpartitions-3} kfstestnoshutdownwait=${kfstestnoshutdownwait-} -metasrvchunkport=`expr $metasrvport + 100` -chunksrvport=`expr $metasrvchunkport + 100` -metasrvdir="$testdir/meta" +metasrvchunkport=$(expr $metasrvport + 100) +chunksrvport=$(expr $metasrvchunkport + 100) +testmetasrvdir=$testdir/meta +metasrvdir=${metasrvdir:-$testmetasrvdir} chunksrvdir="$testdir/chunk" metasrvprop='MetaServer.prp' metasrvlog='metaserver.log' @@ -223,13 +281,11 @@ lowrequreddiskspace=${lowrequreddiskspace-20e9} lowrequreddiskspacefanoutsort=${lowrequreddiskspacefanoutsort-30e9} csheartbeatinterval=${csheartbeatinterval-5} cptestextraopts=${cptestextraopts-} -mkcerts=`dirname "$0"` -mkcerts="`cd "$mkcerts" && pwd`/qfsmkcerts.sh" +mkcerts=$(dirname "$0") +mkcerts="$(cd "$mkcerts" && pwd)/qfsmkcerts.sh" -[ x"`uname`" = x'Darwin' ] && dontusefuser=yes -if [ x"$dontusefuser" = x'yes' ]; then - true -else +[ x"$(uname)" = x'Darwin' ] && dontusefuser=yes +if [ x"$dontusefuser" != x'yes' ]; then fuser "$0" >/dev/null 2>&1 || dontusefuser=yes fi @@ -238,8 +294,8 @@ sizes=${sizes-'0 1 2 3 127 511 1024 65535 65536 65537 70300 1e5 10e6 100e6 250e6 meta=${meta-"-s $metahost -p $metasrvport"} export sizes export meta -if find "$0" -type f -print0 2>/dev/null \ - | xargs -0 echo > /dev/null 2>/dev/null; then +if find "$0" -type f -print0 2>/dev/null | + xargs -0 echo >/dev/null 2>/dev/null; then findprint=-print0 xargsnull=-0 else @@ -247,24 +303,20 @@ else xargsnull='' fi -findpids() -{ +findpids() { find . -name \*"${pidsuf}" $findprint | xargs $xargsnull ${1+"$@"} } -getpids() -{ - findpids cat +getpids() { + findpids cat } -showpids() -{ +showpids() { findpids grep -v x /dev/null } -myrunprog() -{ - p=`which "$1"` +myrunprog() { + p=$(which "$1") shift if [ x"$myvalgrind" = x ]; then exec "$p" ${1+"$@"} @@ -273,11 +325,10 @@ myrunprog() fi } -ensurerunning() -{ +ensurerunning() { rem=${2-10} until kill -0 "$1"; do - rem=`expr $rem - 1` + rem=$(expr $rem - 1) [ $rem -le 0 ] && return 1 sleep 1 done @@ -286,8 +337,7 @@ ensurerunning() mytailpids='' -mytailwait() -{ +mytailwait() { exec tail -1000f "$2" & mytailpids="$mytailpids $!" wait $1 @@ -295,8 +345,7 @@ mytailwait() return $myret } -waitqfscandcptests() -{ +waitqfscandcptests() { mytailwait $qfscpid test-qfsc.out qfscstatus=$? rm "$qfscpidf" @@ -317,6 +366,14 @@ waitqfscandcptests() rm "$kfsgopidf" fi + if [ x"$kfspythonpid" = x ]; then + kfspythonstatus=0 + else + mytailwait $kfspythonpid kfspython_test.out + kfspythonstatus=$? + rm "$kfspythonpidf" + fi + mytailwait $cppid cptest.out cpstatus=$? rm "$cppidf" @@ -325,10 +382,10 @@ waitqfscandcptests() fodir='src/cc/fanout' smsdir='src/cc/sortmaster' if [ x"$sortdir" = x -a \( -d "$smsdir" -o -d "$fodir" \) ]; then - sortdir="`dirname "$0"`/../../../sort" + sortdir="$(dirname "$0")/../../../sort" fi if [ -d "$sortdir" ]; then - sortdir=`cd "$sortdir" >/dev/null 2>&1 && pwd` + sortdir=$(cd "$sortdir" >/dev/null 2>&1 && pwd) else sortdir='' fi @@ -340,8 +397,14 @@ if [ x"$sortdir" = x ]; then fotest=0 else smdir="$sortdir/$smsdir" - smdir=`cd "$smdir" >/dev/null 2>&1 && pwd` - builddir="`pwd`/src/cc" + smdir=$(cd "$smdir" >/dev/null 2>&1 && pwd) + if [ x"$installbindir" = x ]; then + builddir="$(pwd)/src/cc" + else + builddir=xxx-sortmaster-do-not-add-build-dirs-to-path + quantsort=$installbindir/quantsort/quantsort + export quantsort + fi export builddir metaport=$metasrvport export metaport @@ -352,20 +415,17 @@ else smtestqfsvalgrind='yes' fi export smtestqfsvalgrind -# Use QFS_CLIENT_CONFIG for sort master. -# if [ x"$auth" = x'yes' ]; then -# smauthconf="$testdir/sortmasterauth.prp" -# export smauthconf -# fi + # Use QFS_CLIENT_CONFIG for sort master. + # if [ x"$auth" = x'yes' ]; then + # smauthconf="$testdir/sortmasterauth.prp" + # export smauthconf + # fi for name in \ - "$smsdir/ksortmaster" \ - "$smtest" \ - "quantsort/quantsort" \ - "$smdir/../../../glue/ksortcontroller" \ - ; do - if [ -x "$name" ]; then - true - else + "${installbindir:-$smsdir}/ksortmaster" \ + "$smtest" \ + "${installbindir:+$installbindir/}quantsort/quantsort" \ + "$smdir/../../../glue/ksortcontroller"; do + if [ ! -x "$name" ]; then echo "$name doesn't exist or not executable, skipping sort master test" smtest='' break @@ -383,14 +443,14 @@ else fi fi -accessdir='src/cc/access' -if [ -e "$accessdir/libqfs_access."* -a -x "`which java 2>/dev/null`" ]; then - kfsjar="`dirname "$0"`" - kfsjarvers=`$kfsjar/../cc/common/buildversgit.sh --release` - kfsjar="`cd "$kfsjar/../../build/java/qfs-access" >/dev/null 2>&1 && pwd`" +accessdir=${installlibdir:-'src/cc/access'} +if [ -e "$accessdir/libqfs_access."* -a -x "$(which java 2>/dev/null)" ]; then + kfsjar="$(dirname "$0")" + kfsjarvers=$($kfsjar/../cc/common/buildversgit.sh --release) + kfsjar="$(cd "$kfsjar/../../build/java/qfs-access" >/dev/null 2>&1 && pwd)" kfsjar="${kfsjar}/qfs-access-${kfsjarvers}.jar" if [ -e "$kfsjar" ]; then - accessdir="`cd "${accessdir}" >/dev/null 2>&1 && pwd`" + accessdir="$(cd "${accessdir}" >/dev/null 2>&1 && pwd)" else accessdir='' fi @@ -398,72 +458,123 @@ else accessdir='' fi -qfscdir=`cd src/cc/qfsc >/dev/null 2>&1 && pwd` -kfsgosrcdir="`dirname "$0"`" -kfsgosrcdir="`cd "$kfsgosrcdir/../go" >/dev/null 2>&1 && pwd`" -monitorpluginlib="`pwd`/`echo 'contrib/plugins/libqfs_monitor.'*`" +qfscdir=${installlibdir:-$(cd src/cc/qfsc >/dev/null 2>&1 && pwd)} +kfsgosrcdir="$(dirname "$0")" +kfsgosrcdir="$(cd "$kfsgosrcdir/../go" >/dev/null 2>&1 && pwd)" +monitorpluginlib="$(pwd)/$(echo 'contrib/plugins/libqfs_monitor.'*)" fusedir='src/cc/fuse' -if [ x'yes' = x"$myopttestfuse" -a -d "$fusedir" ] && \ - { [ x'Darwin' = x"`uname`" -a -w /dev/osxfuse0 ] || \ - [ x'FreeBSD' = x"`uname`" -a -w /dev/fuse ] || \ - { [ x'Linux' = x"`uname`" -a -w /dev/fuse ] && \ - fusermount -V > /dev/null 2>&1 ; } }; then +if [ x'yes' = x"$myopttestfuse" -a -d "${installbindir:-$fusedir}" ] && + { [ x'Darwin' = x"$(uname)" -a -w /dev/osxfuse0 ] || + [ x'FreeBSD' = x"$(uname)" -a -w /dev/fuse ] || + { [ x'Linux' = x"$(uname)" -a -w /dev/fuse ] && + fusermount -V >/dev/null 2>&1; }; }; then testfuse=1 else testfuse=0 fusedir='' fi -for dir in \ - 'src/cc/devtools' \ - 'src/cc/chunk' \ - 'src/cc/meta' \ - 'src/cc/tools' \ - 'src/cc/libclient' \ - 'src/cc/kfsio' \ - 'src/cc/qcdio' \ - 'src/cc/common' \ - 'src/cc/qcrs' \ - 'src/cc/qfsc' \ - 'src/cc/krb' \ - 'src/cc/emulator' \ - "$fusedir" \ - "`dirname "$0"`" \ - "$fosdir" \ - "$fodir" \ - ; do +if [ x"$installbindir" = x ]; then + qfsbindirs=$( + echo \ + 'src/cc/devtools' \ + 'src/cc/chunk' \ + 'src/cc/meta' \ + 'src/cc/tools' \ + 'src/cc/libclient' \ + 'src/cc/kfsio' \ + 'src/cc/qcdio' \ + 'src/cc/common' \ + 'src/cc/qcrs' \ + 'src/cc/qfsc' \ + 'src/cc/krb' \ + 'src/cc/emulator' + ) +else + qfsbindirs='' + fusedir='' + fodir=${fodir:+$installbindir/fanout} +fi + +qfsshareddirs='' +for dir in \ + $qfsbindirs \ + "${installbindir}" \ + "${installbindir:+$installbindir/tools}" \ + "${installbindir:+$installbindir/devtools}" \ + "${installbindir:+$installbindir/emulator}" \ + "$fusedir" \ + "$(dirname "$0")" \ + "$fosdir" \ + "$fodir"; do if [ x"${dir}" = x ]; then - continue; + continue fi if [ -d "${dir}" ]; then - dir=`cd "${dir}" >/dev/null 2>&1 && pwd` - dname=`basename "$dir"` + dir=$(cd "${dir}" >/dev/null 2>&1 && pwd) + dname=$(basename "$dir") if [ x"$dname" = x'meta' ]; then metabindir=$dir - elif [ x"$dname" = x'chunk' ]; then + elif [ x"$dname" = x'chunk' ]; then chunkbindir=$dir fi fi - if [ -d "${dir}" ]; then - true - else + if [ ! -d "${dir}" ]; then echo "missing directory: ${dir}" exit 1 fi PATH="${dir}:${PATH}" - LD_LIBRARY_PATH="${dir}:${LD_LIBRARY_PATH}" + qfsshareddirs="${dir}${qfsshareddirs:+:$qfsshareddirs}" done + +if [ x"$installlibdir" = x ]; then + for dir in \ + 'gf-complete/lib' \ + 'jerasure/lib'; do + if [ -d "${dir}" ]; then + dir=$(cd "${dir}" >/dev/null 2>&1 && pwd) + if [ -d "${dir}" ]; then + if [ x"$(uname)" = x'Darwin' ]; then + # Link on MacOS as run time path has been changed. + ln -snf "$dir"/*.dylib src/cc/libclient || exit + else + qfsshareddirs="${dir}${qfsshareddirs:+:$qfsshareddirs}" + fi + fi + fi + done +else + qfsshareddirs=$installlibdir + metabindir=$installbindir + chunkbindir=$installbindir +fi + # fuser might be in sbin PATH="${PATH}:/sbin:/usr/sbin" +LD_LIBRARY_PATH="${qfsshareddirs}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" export PATH export LD_LIBRARY_PATH rm -rf "$testdir" +rm -rf "$metasrvdir" mkdir "$testdir" || exit mkdir "$metasrvdir" || exit mkdir "$chunksrvdir" || exit +if [ ! -d "$testmetasrvdir" ]; then + # Sym link to make other tests work. + absmetasrvdir=$(cd -- "$metasrvdir" && pwd) && + ln -snf "$absmetasrvdir" "$testmetasrvdir" || exit +fi + +if [ x"$(uname)" = x'Darwin' ]; then + # Note: on macos DYLD_LIBRARY_PATH will disappear in sub shell due to + # integrity system protection. + DYLD_LIBRARY_PATH="${LD_LIBRARY_PATH}${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH}" + export DYLD_LIBRARY_PATH +fi + cabundlefileos='/etc/pki/tls/certs/ca-bundle.crt' cabundlefile="$chunksrvdir/ca-bundle.crt" objectstoredir="$chunksrvdir/object_store" @@ -473,8 +584,8 @@ if [ x"$s3test" = x'yes' ]; then echo "Using $cabundlefileos" cabundlefile=$cabundlefileos else - if [ -x "`which curl 2>/dev/null`" ]; then - curl "$cabundleurl" > "$cabundlefile" || exit + if [ -x "$(which curl 2>/dev/null)" ]; then + curl "$cabundleurl" >"$cabundlefile" || exit else wget "$cabundleurl" -O "$cabundlefile" || exit fi @@ -525,13 +636,13 @@ fi if [ x"$auth" = x'yes' ]; then "$mkcerts" "$certsdir" meta root "$clientuser" || exit -cat > "$clientprop" << EOF + cat >"$clientprop" < /dev/null 2>&1 || mytimecmd= +{ $mytimecmd true; } >/dev/null 2>&1 || mytimecmd= $mytimecmd rstest 6 65536 2>&1 || exit # Cleanup handler @@ -556,7 +667,7 @@ echo "Starting meta server $metahosturl:$metasrvport" if [ x"$myvalgrind" = x ]; then csheartbeattimeout=60 csheartbeatskippedinterval=50 - cssessionmaxtime=`expr $csheartbeatinterval + 10` + cssessionmaxtime=$(expr $csheartbeatinterval + 10) clisessionmaxtime=5 csmininactivityinterval=25 else @@ -566,18 +677,16 @@ else fi csheartbeattimeout=900 csheartbeatskippedinterval=800 - cssessionmaxtime=`expr $csheartbeatinterval + 50` + cssessionmaxtime=$(expr $csheartbeatinterval + 50) clisessionmaxtime=25 csmininactivityinterval=200 - cat >> "$clientprop" << EOF + cat >>"$clientprop" <> "$clientprop" << EOF +if [ x"$myexclientconfig" != x ]; then + cat >>"$clientprop" < "$metasrvprop" << EOF +cat >"$metasrvprop" <> "$metasrvprop" << EOF +if [ x"$myvalgrind" != x ]; then + cat >>"$metasrvprop" <> "$metasrvprop" << EOF + cat >>"$metasrvprop" <> "$metasrvprop" << EOF + cat >>"$metasrvprop" <> "$metasrvprop" << EOF + cat >>"$metasrvprop" < "${metaservercreatefsout}" 2>&1 || { + -c "$metasrvprop" >"${metaservercreatefsout}" 2>&1 || { status=$? cat "${metaservercreatefsout}" exit $status } -cat >> "$metasrvprop" << EOF +cat >>"$metasrvprop" <> "$metasrvprop" << EOF +if [ x"$myexmetaconfig" != x ]; then + cat >>"$metasrvprop" < "${metasrvout}" 2>&1 & + "$metasrvprop" "$metasrvlog" >"${metasrvout}" 2>&1 & metapid=$! -echo "$metapid" > "$metasrvpid" +echo "$metapid" >"$metasrvpid" cd "$testdir" || exit ensurerunning "$metapid" || exit echo "Waiting for the meta server startup unit tests to complete." -if [ x"$myvalgrind" = x ]; then - true -else +if [ x"$myvalgrind" != x ]; then echo "With valgrind meta server unit tests might take serveral minutes." fi myfsurl="qfs://${metahost}:${metasrvport}/" -runqfsuser() -{ +runqfsuser() { qfs -D fs.msgLogWriter.logLevel=ERROR -fs "$myfsurl" ${1+"$@"} } remretry=20 until runqfsuser -test -e / 1>/dev/null; do kill -0 "$metapid" || exit - remretry=`expr $remretry - 1` + remretry=$(expr $remretry - 1) if [ $remretry -le 0 ]; then echo "Wait for meta server startup timed out." exit 1 @@ -772,13 +874,13 @@ else fi i=$chunksrvport -e=`expr $i + $numchunksrv` +e=$(expr $i + $numchunksrv) while [ $i -lt $e ]; do dir="$chunksrvdir/$i" mkdir "$dir" || exit mkdir "$dir/kfschunk" || exit mkdir "$dir/kfschunk-tier0" || exit - cat > "$dir/$chunksrvprop" << EOF + cat >"$dir/$chunksrvprop" <> "$dir/$chunksrvprop" << EOF + cat >>"$dir/$chunksrvprop" <> "$dir/$chunksrvprop" << EOF + cat >>"$dir/$chunksrvprop" <> "$dir/$chunksrvprop" << EOF + if [ x"$myvalgrind" != x ]; then + cat >>"$dir/$chunksrvprop" <> "$dir/$chunksrvprop" << EOF + cat >>"$dir/$chunksrvprop" <> "$dir/$chunksrvprop" << EOF + cat >>"$dir/$chunksrvprop" <> "$dir/$chunksrvprop" << EOF + cat >>"$dir/$chunksrvprop" <> "$dir/$chunksrvprop" << EOF + if [ $(expr $chunksrvport + 1) -eq $i ]; then + cat >>"$dir/$chunksrvprop" <> "$dir/$chunksrvprop" << EOF + if [ x"$myexchunkconfig" != x ]; then + cat >>"$dir/$chunksrvprop" < "${chunksrvout}" 2>&1 & - echo $! > "$chunksrvpid" - i=`expr $i + 1` + "$chunksrvprop" "$chunksrvlog" >"${chunksrvout}" 2>&1 & + echo $! >"$chunksrvpid" + i=$(expr $i + 1) done cd "$testdir" || exit # Ensure that chunk and meta servers are running. -for pid in `getpids`; do +for pid in $(getpids); do ensurerunning "$pid" || exit done if [ x"$auth" = x'yes' ]; then - clientdelegation=`runqfsuser -delegate | awk ' + clientdelegation=$(runqfsuser -delegate | awk ' { if ($1 == "Token:") t=$2; else if ($1 == "Key:") k=$2; } - END{printf("client.auth.psk.key=%s client.auth.psk.keyId=%s", k, t); }'` + END{printf("client.auth.psk.key=%s client.auth.psk.keyId=%s", k, t); }') clientenvcfg="${clientdelegation} client.auth.allowChunkServerClearText=0" - cat > "$clientrootprop" << EOF + cat >"$clientrootprop" < "$clientrootprop" << EOF + cat >"$clientrootprop" <> "$clientrootprop" << EOF +if [ x"$myvalgrind" != x ]; then + cat >>"$clientrootprop" <> "$metasrvdir/$metasrvprop" << EOF + cat >>"$metasrvdir/$metasrvprop" < /dev/null; do - i=`expr $i - 1` + until runqfsadmin ping | + grep -E 'Config:.*( |;)'"$1"'(;|$)' \ + >/dev/null; do + i=$(expr $i - 1) if [ $i -le 0 ]; then echo "meta server parameter update has failed" 1>&2 exit 1 @@ -956,15 +1049,14 @@ EOF done } -waitrecoveryperiodend() -{ +waitrecoveryperiodend() { remretry=30 - until runqfsadmin ping 2>/dev/null \ - | grep 'System Info:' \ - | tr '\t' '\n' \ - | grep 'In recovery= 0' > /dev/null; do + until runqfsadmin ping 2>/dev/null | + grep 'System Info:' | + tr '\t' '\n' | + grep 'In recovery= 0' >/dev/null; do kill -0 "$metapid" || exit - remretry=`expr $remretry - 1` + remretry=$(expr $remretry - 1) if [ $remretry -le 0 ]; then echo "Wait for QFS chunk servers to connect timed out" 1>&2 exit 1 @@ -977,16 +1069,15 @@ echo "Waiting for chunk servers to connect to meta server." waitrecoveryperiodend echo "Testing dumpster" -runqfsroot() -{ +runqfsroot() { QFS_CLIENT_CONFIG= \ - qfs -D fs.msgLogWriter.logLevel=ERROR \ + qfs -D fs.msgLogWriter.logLevel=ERROR \ -cfg "$clientrootprop" -fs "$myfsurl" -D fs.euser=0 \ ${1+"$@"} } runqfsroot -touchz '/dumpstertest' || exit runqfsroot -rm -skipTrash /dumpstertest || exit -dumpstertest="`runqfsroot -ls /dumpster | awk '/dumpstertest/{print $NF}'`" +dumpstertest="$(runqfsroot -ls /dumpster | awk '/dumpstertest/{print $NF}')" runqfsroot -D dfs.force.remove=true -rm "$dumpstertest" && exit 1 runqfsroot -chmod -w "$dumpstertest" || exit runqfsroot -mv "$dumpstertest" '/dumpster/test' && exit 1 @@ -1013,31 +1104,30 @@ runqfsroot -D 'fs.createParams=0,0,0,0,1,2,2' \ # Test with OS DNS resolver. clientpropresolver=${clientprop}.res.cfg cp "$clientprop" "$clientpropresolver" || exit -cat >> "$clientpropresolver" << EOF +cat >>"$clientpropresolver" < /dev/null || exit 1 + qfs -D fs.msgLogWriter.logLevel=ERROR \ + -cfg "$clientpropresolver" -ls / >/dev/null || exit 1 until runqfsroot -rmr -skipTrash '/dumpster' \ - 2>"$testdir/dumpster-test-run.err" ; do + 2>"$testdir/dumpster-test-run.err"; do sleep 0.1 -done > "$testdir/dumpster-test.log" 2>&1 & +done >"$testdir/dumpster-test.log" 2>&1 & dumpstertestpid=$! dumpstertestpidf="$testdir/dumpster-test${pidsuf}" -echo $dumpstertestpid > "$dumpstertestpidf" +echo $dumpstertestpid >"$dumpstertestpidf" -runcptoqfsroot() -{ +runcptoqfsroot() { QFS_CLIENT_CONFIG= \ - cptoqfs -s "$metahost" -p "$metasrvport" -f "$clientrootprop" ${1+"$@"} + cptoqfs -s "$metahost" -p "$metasrvport" -f "$clientrootprop" ${1+"$@"} } truncatetest='/truncate.test' -rand-sfmt -g 24577 1234 \ -| runcptoqfsroot -t -u 4096 -y 6 -z 3 -r 3 -d - -k "$truncatetest" || exit +rand-sfmt -g 24577 1234 | + runcptoqfsroot -t -u 4096 -y 6 -z 3 -r 3 -d - -k "$truncatetest" || exit # Test move into chunk delete queue enforcement.. metaserversetparameter 'metaServer.maxTruncateChunksQueueCount=1' @@ -1061,7 +1151,7 @@ runqfsuser -mkdir "$chunkinventorytestdir" || exit i=0 while [ $i -lt 10 ]; do echo "$i" | runqfsuser -put - "$chunkinventorytestdir/$i.dat" || exit - i=`expr $i + 1` + i=$(expr $i + 1) done [ $spacecheck -ne 0 ] && sleep 2 # Create object store files. @@ -1069,12 +1159,12 @@ i=0 while [ $i -lt 10 ]; do echo "$i" | runqfsuser -D fs.createParams=0,1,0,0,1,15,15 \ -put - "$chunkinventorytestdir/os.$i.dat" || exit - i=`expr $i + 1` + i=$(expr $i + 1) done [ $spacecheck -ne 0 ] && sleep 3 if [ x"$jerasuretest" = 'x' ]; then - if qfs -ecinfo | grep -w jerasure > /dev/null; then + if qfs -ecinfo | grep -w jerasure >/dev/null; then jerasuretest='yes' else jerasuretest='no' @@ -1084,8 +1174,7 @@ fi ostestname='object store file overwrite' echo "Testing $ostestname" myostestlog='os-overwrite-test.log' -ostestrunqfs() -{ +ostestrunqfs() { qfs -v -D fs.createParams=0 -fs "$myfsurl" ${1+"$@"} } @@ -1102,12 +1191,12 @@ ostestrunqfs() ostestrunqfs -cp "$myostestfile" "$myostestfile1" ostestrunqfs -cp "$myostestfile1" "$myostestfile" ostestrunqfs -rmr -skipTrash "$myostestdir" -) > "$myostestlog" 2>&1 \ -|| { - echo "Test $ostestname failed" - cat "$myostestlog" - exit 1 -} +) >"$myostestlog" 2>&1 || + { + echo "Test $ostestname failed" + cat "$myostestlog" + exit 1 + } echo "Test $ostestname passed" echo "Starting copy test. Test file sizes: $sizes" @@ -1117,12 +1206,10 @@ echo "Starting copy test. Test file sizes: $sizes" # Schedule meta server checkpoint after the first two tests. if [ x"$myvalgrind" = x ]; then - if [ x"$cptestextraopts" = x ]; then - true - else + if [ x"$cptestextraopts" != x ]; then $cptestextraopts=" $cptestextraopts" fi - if [ $spacecheck -ne 0 ] || uname | grep CYGWIN > /dev/null; then + if [ $spacecheck -ne 0 ] || uname | grep CYGWIN >/dev/null; then # Sleep before renaming test directories to ensure that all files # are closed / flushed by QFS / os cptestendsleeptime=3 @@ -1137,45 +1224,43 @@ fi cp /dev/null cptest.out cppidf="cptest${pidsuf}" { -# cptokfsopts='-W 2 -b 32767 -w 32767' && \ + # cptokfsopts='-W 2 -b 32767 -w 32767' && \ QFS_CLIENT_CONFIG=$clientenvcfg \ - cptokfsopts='-r 0 -m 15 -l 15 -R 20 -w -1'"$cptestextraopts" \ - cpfromkfsopts='-r 0 -w 65537'"$cptestextraopts" \ - cptest.sh && \ - sleep $cptestendsleeptime && \ - mv cptest.log cptest-os.log && \ - cptokfsopts='-r 3 -m 1 -l 15 -w -1'"$cptestextraopts" \ - cpfromkfsopts='-r 1e6 -w 65537'"$cptestextraopts" \ - cptest.sh && \ - sleep $cptestendsleeptime && \ - mv cptest.log cptest-0.log && \ - kill -USR1 $metapid && \ - cptokfsopts='-S -m 2 -l 2 -w -1'"$cptestextraopts" \ - cpfromkfsopts='-r 0 -w 65537'"$cptestextraopts" \ - cptest.sh && \ - { \ - [ x"$jerasuretest" = x'no' ] || { \ - sleep $cptestendsleeptime && \ - mv cptest.log cptest-rs.log && \ - cptokfsopts='-u 65536 -y 10 -z 4 -r 1 -F 3 -m 2 -l 2 -w -1'"$cptestextraopts" \ + cptokfsopts='-r 0 -m 15 -l 15 -R 20 -w -1'"$cptestextraopts" \ + cpfromkfsopts='-r 0 -w 65537'"$cptestextraopts" \ + cptest.sh && + sleep $cptestendsleeptime && + mv cptest.log cptest-os.log && + cptokfsopts='-r 3 -m 1 -l 15 -w -1'"$cptestextraopts" \ + cpfromkfsopts='-r 1e6 -w 65537'"$cptestextraopts" \ + cptest.sh && + sleep $cptestendsleeptime && + mv cptest.log cptest-0.log && + kill -USR1 $metapid && + cptokfsopts='-S -m 2 -l 2 -w -1'"$cptestextraopts" \ cpfromkfsopts='-r 0 -w 65537'"$cptestextraopts" \ - cptest.sh ; \ - } \ - } -} >> cptest.out 2>&1 & + cptest.sh && + { + [ x"$jerasuretest" = x'no' ] || { + sleep $cptestendsleeptime && + mv cptest.log cptest-rs.log && + cptokfsopts='-u 65536 -y 10 -z 4 -r 1 -F 3 -m 2 -l 2 -w -1'"$cptestextraopts" \ + cpfromkfsopts='-r 0 -w 65537'"$cptestextraopts" \ + cptest.sh + } + } +} >>cptest.out 2>&1 & cppid=$! -echo "$cppid" > "$cppidf" +echo "$cppid" >"$cppidf" qfscpidf="qfsctest${pidsuf}" cp /dev/null test-qfsc.out QFS_CLIENT_LOG_LEVEL=DEBUG \ test-qfsc "$metahost:$metasrvport" 1>>test-qfsc.out 2>test-qfsc.log & qfscpid=$! -echo "$qfscpid" > "$qfscpidf" +echo "$qfscpid" >"$qfscpidf" -if [ x"$accessdir" = x ]; then - true -else +if [ x"$accessdir" != x ]; then kfsaccesspidf="kfsaccess_test${pidsuf}" clientproppool="$clientprop.pool.prp" if [ -f "$clientprop" ]; then @@ -1183,61 +1268,81 @@ else else cp /dev/null "$clientproppool" || exit fi - cat >> "$clientproppool" << EOF + cat >>"$clientproppool" <> "$clientproppool" << EOF + cat >>"$clientproppool" <> kfsaccess_test.out 2>&1 & + >>kfsaccess_test.out 2>&1 & kfsaccesspid=$! - echo "$kfsaccesspid" > "$kfsaccesspidf" + echo "$kfsaccesspid" >"$kfsaccesspidf" fi if [ x"$kfsgosrcdir" != x ] && go version >/dev/null 2>&1; then kfsgopidf="kfsgo${pidsuf}" - ( - include_path=include/kfs/c && - mkdir -p "$include_path" && - cp "$kfsgosrcdir/../cc/qfsc/qfs.h" "$include_path" && - [ x"`uname`" != x'Darwin' ] || { - DYLD_LIBRARY_PATH="${LD_LIBRARY_PATH}${DYLD_LIBRARY_PATH+:$DYLD_LIBRARY_PATH}" && - export DYLD_LIBRARY_PATH - } && - CGO_CFLAGS="-I`pwd`/include" && - export CGO_CFLAGS && - CGO_LDFLAGS="-L$qfscdir" && - export CGO_LDFLAGS && - QFS_CLIENT_CONFIG=$clientenvcfg && - export QFS_CLIENT_CONFIG && - cd "$kfsgosrcdir" && - go get -t -v && - go test -qfs.addr "$metahost:$metasrvport" - ) > kfsgo_test.out 2>&1 & + cp /dev/null kfsgo_test.out + { + if [ x"$installprefix" = x ]; then + qfscincludedir=$(pwd)/include && + qfscincludesubdir=$qfscincludedir/kfs/c && + mkdir -p "$qfscincludesubdir" && + cp "$kfsgosrcdir/../cc/qfsc/qfs.h" "$qfscincludesubdir" + else + qfscincludedir=$installprefix/include + fi && + cd "$kfsgosrcdir" && + go get -t -v && + CGO_CFLAGS="-I$qfscincludedir" \ + CGO_LDFLAGS="-L$qfscdir" \ + QFS_CLIENT_CONFIG=$clientenvcfg \ + go test -qfs.addr "$metahost:$metasrvport" + } >>kfsgo_test.out 2>&1 & kfsgopid=$! - echo "$kfsgopid" > "$kfsgopidf" + echo "$kfsgopid" >"$kfsgopidf" else kfsgopid='' fi +if [ x"$kfspythonwheel" = x ]; then + kfspythonpid='' +else + kfspythonpidf="kfspython${pidsuf}" + cp /dev/null kfspython_test.out + { + cd "$testdir" && + python3 -m venv .venv && + . .venv/bin/activate && + python -m pip install "$kfspythonwheel" && + kfspythonconf=kfspython.cfg && + cat >"$kfspythonconf" <>kfspython_test.out 2>&1 & + kfspythonpid=$! + echo "$kfspythonpid" >"$kfspythonpidf" +fi + if [ $spacecheck -ne 0 ]; then waitqfscandcptests - pausesec=`expr $csheartbeatinterval \* 2` - echo "Pausing for two chunk server chunk server heartbeat intervals:"\ + pausesec=$(expr $csheartbeatinterval \* 2) + echo "Pausing for two chunk server chunk server heartbeat intervals:" \ "$pausesec sec. to give a chance for space update to occur." sleep $pausesec n=0 @@ -1259,7 +1364,7 @@ if [ $spacecheck -ne 0 ]; then } }'; do sleep 1 - n=`expr $n + 1` + n=$(expr $n + 1) [ $n -le 30 ] || break done fi @@ -1267,13 +1372,13 @@ fi cp /dev/null qfs_tool-test.out qfstoolpidf="qfstooltest${pidsuf}" qfstoolopts='-v' \ -qfstoolmeta="$metahosturl:$metasrvport" \ -qfstooltrace=on \ -qfstoolrootauthcfg=$qfstoolrootauthcfg \ -qfs_tool-test.sh '##??##::??**??~@!#$%^&()=<>`|||' \ + qfstoolmeta="$metahosturl:$metasrvport" \ + qfstooltrace=on \ + qfstoolrootauthcfg=$qfstoolrootauthcfg \ + qfs_tool-test.sh '##??##::??**??~@!#$%^&()=<>`|||' \ 1>>qfs_tool-test.out 2>qfs_tool-test.log & qfstoolpid=$! -echo "$qfstoolpid" > "$qfstoolpidf" +echo "$qfstoolpid" >"$qfstoolpidf" if [ $fotest -ne 0 ]; then if [ x"$myvalgrind" = x ]; then @@ -1295,19 +1400,16 @@ if [ $fotest -ne 0 ]; then -read-retries 1 \ -kfanout-extra-opts "-U $p -P 3""$foextraopts" \ -cpfromkfs-extra-opts "$cptestextraopts" \ - || exit - done >> kfanout_test.out 2>&1 & + ${installbindir:+-bin-prefix xxx-no-add-fanout-build-dir-to-path} || + exit + done >>kfanout_test.out 2>&1 & fopid=$! - echo "$fopid" > "$fopidf" + echo "$fopid" >"$fopidf" fi -if [ x"$smtest" = x ]; then - true -else - if [ x"$smauthconf" = x ]; then - true - else - cat > "$smauthconf" << EOF +if [ x"$smtest" != x ]; then + if [ x"$smauthconf" != x ]; then + cat >"$smauthconf" <> sortmaster_test.out 2>&1 & + QFS_CLIENT_CONFIG=$clientenvcfg "$smtest" >>sortmaster_test.out 2>&1 & smpid=$! - echo "$smpid" > "$smpidf" || exit + echo "$smpid" >"$smpidf" || exit fi if [ $spacecheck -eq 0 ]; then @@ -1369,44 +1471,41 @@ cd "$testdir" || exit # Clean up write leases, if any, (sorters' speculative sorts might leave # stale leases), and force chunks deletion by truncating files in dumpster. # This is needed to minimize the "retire" test time, as write leases, and files -# in the dumpster with replication larger than the number of chunk server +# in the dumpster with replication larger than the number of chunk servers # would prevent chunk server "retirement", until expiration / cleanup. -# until they expire. echo "Cleaning up write leases by removing and truncating files" -rootrmlist=`runqfsroot -ls '/' \ -| awk '/^[d-]/{ if ($NF != "/dumpster" && - $NF != "'"$chunkinventorytestdir"'") print $NF; }'` -if [ x"$rootrmlist" = x ]; then - true -else +rootrmlist=$(runqfsroot -ls '/' | + awk '/^[d-]/{ if ($NF != "/dumpster" && + $NF != "'"$chunkinventorytestdir"'") print $NF; }') +if [ x"$rootrmlist" != x ]; then runqfsroot -rmr -skipTrash $rootrmlist || exit fi movefromdumpster='/movefromdumpster.tmp' runqfsroot -mkdir "$movefromdumpster" || exit -runqfsroot -ls '/dumpster' \ -| awk '/^-/{ if (0 < $2 && $NF != "/dumpster/deletequeue") print $NF; }' \ -| while read fn; do - if runqfsroot -mv "$fn" "$movefromdumpster/" 2>/dev/null; then - n=`basename "$fn"` - runcptoqfsroot -t -d /dev/null -k "$movefromdumpster/$n" || exit - else - # Check if the file has already been removed. - if runqfsroot -test -e "$fn"; then - # Try again, emitting error / diagnostic message. - if runqfsroot -mv "$fn" "$movefromdumpster/"; then - continue +runqfsroot -ls '/dumpster' | + awk '/^-/{ if (0 < $2 && $NF != "/dumpster/deletequeue") print $NF; }' | + while read fn; do + if runqfsroot -mv "$fn" "$movefromdumpster/" 2>/dev/null; then + n=$(basename "$fn") + runcptoqfsroot -t -d /dev/null -k "$movefromdumpster/$n" || exit + else + # Check if the file has already been removed. + if runqfsroot -test -e "$fn"; then + # Try again, emitting error / diagnostic message. + if runqfsroot -mv "$fn" "$movefromdumpster/"; then + continue + fi + # The meta server is likely started deleting the file, by truncating + # n chunks at a time. + # List and stat the file for diagnostics. + runqfsroot -ls "$fn" + runqfsroot -astat "$fn" fi - # The meta server is likely started deleting the file, by truncating - # n chunks at a time. - # List and stat the file for diagnostics. - runqfsroot -ls "$fn" - runqfsroot -astat "$fn" fi - fi -done || exit + done || exit if kill -0 $dumpstertestpid; then kill $dumpstertestpid @@ -1419,36 +1518,33 @@ fi echo "Testing admin commands" adminstatus=0 -myfsid=`awk -F / '/^filesysteminfo\//{print $3; exit 0;}' \ - "$metasrvdir/kfscp/latest"` +myfsid=$(awk -F / '/^filesysteminfo\//{print $3; exit 0;}' \ + "$metasrvdir/kfscp/latest") mymetareadargs="-F FsId=$myfsid -F Read-pos=0 -F Read-size=2047" for cmd in \ - get_chunk_server_dirs_counters \ - get_chunk_servers_counters \ - get_request_counters \ - ping \ - dump_chunkreplicationcandidates \ - dump_chunktoservermap \ - open_files \ - stats \ - upservers \ - check_leases \ - recompute_dirsize \ - "vr_get_status || true" \ - "-F op-type=help vr_reconfiguration" \ - "-F Toggle-WORM=1 toggle_worm" \ - "-F Toggle-WORM=0 toggle_worm" \ - "-F Checkpoint=1 $mymetareadargs read_meta_data && echo ''" \ - "-F Start-log='0 0 0' $mymetareadargs read_meta_data && echo ''" \ - ; do + get_chunk_server_dirs_counters \ + get_chunk_servers_counters \ + get_request_counters \ + ping \ + dump_chunkreplicationcandidates \ + dump_chunktoservermap \ + open_files \ + stats \ + upservers \ + check_leases \ + recompute_dirsize \ + "vr_get_status || true" \ + "-F op-type=help vr_reconfiguration" \ + "-F Toggle-WORM=1 toggle_worm" \ + "-F Toggle-WORM=0 toggle_worm" \ + "-F Checkpoint=1 $mymetareadargs read_meta_data && echo ''" \ + "-F Start-log='0 0 0' $mymetareadargs read_meta_data && echo ''"; do echo "===================== start $cmd ===================================" - if eval runqfsadmin $cmd; then - true - else - adminstatus=`expr $adminstatus + 1` + if ! eval runqfsadmin $cmd; then + adminstatus=$(expr $adminstatus + 1) fi echo "===================== end $cmd =====================================" -done > qfsadmintest.out 2>qfsadmintest.err +done >qfsadmintest.out 2>qfsadmintest.err echo "Testing chunk server hibernate and retire" @@ -1456,14 +1552,14 @@ echo "Testing chunk server hibernate and retire" metaserversetparameter 'metaServer.panicOnRemoveFromPlacement=0' upserverslist='upservers.tmp' -runqfsadmin upservers > "$upserverslist" || exit +runqfsadmin upservers >"$upserverslist" || exit # Tell chunk servers to re-connect to the meta server, in order to exercise # chunk inventory sync. logic. while read server port; do pidf=$chunksrvdir/$port/$chunksrvpid - xargs kill -HUP < "$pidf" || exit -done < "$upserverslist" + xargs kill -HUP <"$pidf" || exit +done <"$upserverslist" # Give chunk servers couple seconds to initiate re-connect. sleep 2 waitrecoveryperiodend @@ -1474,10 +1570,10 @@ while read server port; do qfshibernate -m "$metahost" -p "$metasrvport" -s "$hibernatesleep" \ -f "$clientrootprop" -c "$server" -d "$port" || exit pidf=$chunksrvdir/$port/$chunksrvpid - pid=`cat "$pidf"` + pid=$(cat "$pidf") i=0 while kill -0 "$pid" 2>/dev/null; do - i=`expr $i + 1` + i=$(expr $i + 1) if [ $i -gt $hibernateshutdowntimeout ]; then echo "hibernate failed; chunk server still up after" \ " $hibernateshutdowntimeout sec; $pidf" 1>&2 @@ -1494,34 +1590,32 @@ while read server port; do fi [ $hibernatesleep -gt 0 ] && break hibernatesleep=10000 -done < "$upserverslist" +done <"$upserverslist" # Turn off chunk inventory mismatch debug, as retire does not delete evacuated # chunks. metaserversetparameter 'metaServer.debugPanicOnHelloResumeFailureCount=-1' i=$chunksrvport -e=`expr $i + $numchunksrv` +e=$(expr $i + $numchunksrv) while [ $i -lt $e ]; do cd "$chunksrvdir/$i" || exit - if [ -e "$chunksrvpid" ]; then - true - else + if [ ! -e "$chunksrvpid" ]; then echo "Restarting chunk server $i" if [ -e "$myvalgrindlog" ]; then mv "$myvalgrindlog" "$myvalgrindlog"'.run.log' || exit fi myrunprog "$chunkbindir"/chunkserver \ - "$chunksrvprop" "$chunksrvlog" >> "${chunksrvout}" 2>&1 & - echo $! > "$chunksrvpid" + "$chunksrvprop" "$chunksrvlog" >>"${chunksrvout}" 2>&1 & + echo $! >"$chunksrvpid" fi - i=`expr $i + 1` + i=$(expr $i + 1) done cd "$testdir" || exit waitrecoveryperiodend echo "Testing chunk server directory evacuation" -i=`expr $e - 1` +i=$(expr $e - 1) myevacuatefile="$chunksrvdir/$i/kfschunk/evacuate" touch "$myevacuatefile" || exit @@ -1535,7 +1629,7 @@ until [ -f "$myevacuatefile" ]; do myevacuatestatus=1 break fi - i=`expr $i + 1` + i=$(expr $i + 1) sleep 1 done echo "Chunk server directory evacuation is now complete" @@ -1545,7 +1639,7 @@ sleep 5 echo "Shutting down" kill -QUIT "$metapid" || exit -pids=`getpids | grep -v "$metapid"` +pids=$(getpids | grep -v "$metapid") # For now pause to let chunk server IOs complete sleep 2 for pid in $pids; do @@ -1565,13 +1659,13 @@ while true; do estatus=$? if [ $estatus -ne 0 ]; then echo "Exit status: $estatus pid: $pid" - status=$estatus; + status=$estatus fi fi done pids=$rpids [ x"$pids" = x ] && break - i=`expr $i + 1` + i=$(expr $i + 1) if [ $i -le $nsecwait ]; then sleep 1 else @@ -1587,11 +1681,12 @@ if [ $status -ne 0 ]; then showpids fi -if [ x"$mytailpids" = x ]; then - true -else +if [ x"$mytailpids" != x ]; then # Let tail -f poll complete, then shut them down. - { sleep 1 ; kill -TERM $mytailpids ; } & + { + sleep 1 + kill -TERM $mytailpids + } & wait 2>/dev/null fi @@ -1639,33 +1734,38 @@ if [ $status -eq 0 ]; then report_test_status "Re-balance planner" $status fi -find "$testdir" -name core\* || status=1 +# Check for core files, and fail the test if any. +find "$testdir" -path "$testdir/.venv" -prune -o -type f -name core\* -print | + awk '{ print; } END{ exit (NR > 0 ? 1 : 0); }' || status=1 if [ $status -eq 0 \ - -a $cpstatus -eq 0 \ - -a $qfstoolstatus -eq 0 \ - -a $fostatus -eq 0 \ - -a $smstatus -eq 0 \ - -a $kfsaccessstatus -eq 0 \ - -a $kfsgostatus -eq 0 \ - -a $qfscstatus -eq 0 \ - -a $fsckstatus -eq 0 \ - -a $fusestatus -eq 0 \ - -a $adminstatus -eq 0 \ - -a $myevacuatestatus -eq 0 \ - ]; then + -a $cpstatus -eq 0 \ + -a $qfstoolstatus -eq 0 \ + -a $fostatus -eq 0 \ + -a $smstatus -eq 0 \ + -a $kfsaccessstatus -eq 0 \ + -a $kfsgostatus -eq 0 \ + -a $kfspythonstatus -eq 0 \ + -a $qfscstatus -eq 0 \ + -a $fsckstatus -eq 0 \ + -a $fusestatus -eq 0 \ + -a $adminstatus -eq 0 \ + -a $myevacuatestatus -eq 0 \ + ]; then echo "Passed all tests" else - report_test_status "Copy" $cpstatus - report_test_status "Qfs tool" $qfstoolstatus - report_test_status "Fanout" $fostatus + report_test_status "Copy" $cpstatus + report_test_status "Qfs tool" $qfstoolstatus + report_test_status "Fanout" $fostatus report_test_status "Sort master" $smstatus - report_test_status "Java shim" $kfsaccessstatus - report_test_status "C bindings" $qfscstatus - report_test_status "Fsck" $fsckstatus - report_test_status "Fuse" $fusestatus - report_test_status "Admin" $adminstatus - report_test_status "Evacuate" $myevacuatestatus + report_test_status "Java shim" $kfsaccessstatus + report_test_status "Go shim" $kfsgostatus + report_test_status "Python shim" $kfspythonstatus + report_test_status "C bindings" $qfscstatus + report_test_status "Fsck" $fsckstatus + report_test_status "Fuse" $fusestatus + report_test_status "Admin" $adminstatus + report_test_status "Evacuate" $myevacuatestatus echo "Test failure" status=1 fi diff --git a/src/test-scripts/recoverytest.sh b/src/test-scripts/recoverytest.sh index 5b0b72a4a..ca9337265 100755 --- a/src/test-scripts/recoverytest.sh +++ b/src/test-scripts/recoverytest.sh @@ -46,7 +46,7 @@ testblocksizes=${testblocksizes-'26214399 26214400 29358894 26214401'} testtailblocksize=${testtailblocksize-1} filecreateparams=${filecreateparams-'fs.createParams=1,6,3,1048576,2,15,15'} rsrecoveryreadsize=${rsrecoveryreadsize-524288} -csstartport=${csstartport-20400} +csstartport=${csstartport-`expr $metaport + 200`} csendport=${csendport-`expr $csstartport + 1`} valgrind_cmd=${valgrind_cmd-''} recoveryforcetimes=${recoveryforcetimes-1} diff --git a/travis/script.sh b/travis/script.sh index d4f797e58..dbd142f34 100755 --- a/travis/script.sh +++ b/travis/script.sh @@ -26,18 +26,22 @@ set -ex DEPS_UBUNTU='g++ cmake git libboost-regex-dev libkrb5-dev libssl-dev' DEPS_UBUNTU=$DEPS_UBUNTU' libfuse-dev default-jdk zlib1g-dev unzip maven sudo' -DEPS_UBUNTU=$DEPS_UBUNTU' passwd curl openssl fuse gdb' +DEPS_UBUNTU=$DEPS_UBUNTU' passwd curl openssl fuse gdb chrpath' +DEPS_UBUNTU14_16=$DEPS_UBUNTU +DEPS_UBUNTU=$DEPS_UBUNTU' python3-dev python3-venv' DEPS_UBUNTU22=$DEPS_UBUNTU' golang-go' -DEPS_UBUNTU=$DEPS_UBUNTU' python-dev' -DEPS_DEBIAN=$DEPS_UBUNTU DEPS_CENTOS='gcc-c++ make git boost-devel krb5-devel' -DEPS_CENTOS=$DEPS_CENTOS' fuse-devel java-openjdk java-devel' -DEPS_CENTOS=$DEPS_CENTOS' libuuid-devel curl unzip sudo which openssl fuse gdb' +DEPS_CENTOS=$DEPS_CENTOS' java-openjdk java-devel' +DEPS_CENTOS=$DEPS_CENTOS' libuuid-devel unzip sudo which openssl fuse gdb' -DEPS_CENTOS5=$DEPS_CENTOS' cmake28 openssl101e openssl101e-devel' -DEPS_CENTOS=$DEPS_CENTOS' openssl-devel cmake' +DEPS_CENTOS_PRIOR_TO_9=' curl fuse-devel' +DEPS_CENTOS5=$DEPS_CENTOS' cmake28 openssl101e openssl101e-devel'$DEPS_CENTOS_PRIOR_TO_9 +DEPS_CENTOS=$DEPS_CENTOS' openssl-devel cmake chrpath python3-devel' DEPS_CENTOS8=$DEPS_CENTOS' diffutils hostname' +DEPS_CENTOS9=$DEPS_CENTOS8' zlib-devel fuse3-devel' +DEPS_CENTOS=$DEPS_CENTOS$DEPS_CENTOS_PRIOR_TO_9 +DEPS_CENTOS8=$DEPS_CENTOS8$DEPS_CENTOS_PRIOR_TO_9 MYMVN_URL='https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz' @@ -63,22 +67,28 @@ MYQFSHADOOP_VERSIONS_CENTOS5='0.23.4 0.23.11 1.0.4 1.1.2 2.5.1' MYBUILD_TYPE='release' -set_sudo() -{ +set_sudo() { if [ x"$(id -u)" = x'0' ]; then MYSUDO= MYUSER= - if [ $# -gt 0 ]; then - if [ x"$1" = x'root' ]; then - true - else - MYUSER=$1 - fi + if [ $# -gt 0 -a x"${1-}" != x'root' ]; then + MYUSER=$1 fi if [ x"$MYUSER" = x ]; then MYSU= else - MYSU="sudo -H -u $MYUSER" + MYSU='my_set_user' + # Test if runuser is present and working, and fall back to sudo if + # it does not. + if runuser -u root -- test 1 -eq 1 2>/dev/null; then + my_set_user() { + runuser -u "$MYUSER" -- ${1+"$@"} + } + else + my_set_user() { + sudo -H -u "$MYUSER" ${1+"$@"} + } + fi fi else MYSUDO='sudo' @@ -87,34 +97,32 @@ set_sudo() fi } -cores_show_stack_traces() -{ - gdb -version > /dev/null || return 0 - MYGDBCMDS=`mktemp` - cat > "$MYGDBCMDS" << EOF +cores_show_stack_traces() { + gdb -version >/dev/null || return 0 + MYGDBCMDS=$(mktemp) + cat >"$MYGDBCMDS" </dev/null \ - | sed -ne 's/^Core was generated by `\([^ ]*\).*$/\1/p') - echo "================== $MYEXECUTABLE $MYCORE ====" - gdb -batch "$MYEXECUTABLE" -c "$MYCORE" -x "$MYGDBCMDS" \ - 2>/dev/null || true - echo "------------------ $MYEXECUTABLE $MYCORE ----" - done + find ${1+"$@"} -type f -name core\* -print | + while read MYCORE; do + MYEXECUTABLE=$(gdb -batch -c "$MYCORE" 2>/dev/null | + sed -ne 's/^Core was generated by `\([^ ]*\).*$/\1/p') + echo "================== $MYEXECUTABLE $MYCORE ====" + gdb -batch "$MYEXECUTABLE" -c "$MYCORE" -x "$MYGDBCMDS" \ + 2>/dev/null || true + echo "------------------ $MYEXECUTABLE $MYCORE ----" + done rm "$MYGDBCMDS" return 0 } -tail_logs_and_exit() -{ +tail_logs_and_exit() { MYQFSTEST_DIR="build/$MYBUILD_TYPE/qfstest" if [ -d "$MYQFSTEST_DIR" ]; then cores_show_stack_traces "$MYQFSTEST_DIR" - find "$MYQFSTEST_DIR" -type f -name '*.log' -print0 \ - | xargs -0 tail -n 100 + find "$MYQFSTEST_DIR" -type f -name '*.log' -print0 | + xargs -0 tail -n 100 fi while [ -e "$MYDOCKERBUILDDEBUGFILENAME" ]; do echo 'sleeping for 10 sec.' @@ -123,8 +131,7 @@ tail_logs_and_exit() exit 1 } -do_build() -{ +do_build() { if [ x"$MYBUILD_TYPE" = x'debug' ]; then MYCMAKE_OPTIONS=$MYCMAKE_OPTIONS' -D CMAKE_BUILD_TYPE=Debug' else @@ -136,16 +143,15 @@ do_build() CMAKE="$MYCMAKE" \ CMAKE_OPTIONS="$MYCMAKE_OPTIONS" \ JAVA_BUILD_OPTIONS='-r 5' \ - test tarball \ - || tail_logs_and_exit + test tarball || + tail_logs_and_exit } -do_build_linux() -{ +do_build_linux() { MYMAKEOPT='-j 2' if [ -r /proc/cpuinfo ]; then cat /proc/cpuinfo - MYCCNT=`grep -c -w processor /proc/cpuinfo` + MYCCNT=$(grep -c -w processor /proc/cpuinfo) if [ $MYCCNT -gt 2 ]; then MYMAKEOPT="-j $MYCCNT" fi @@ -161,23 +167,21 @@ do_build_linux() fi } -init_codecov() -{ +init_codecov() { # Run code coverage in docker # Pass travis env vars to code coverage. - mkdir -p "$MYTMPDIR" + mkdir -p "$MYTMPDIR" { env | grep -E '^(TRAVIS|CI|GITHUB)' | sed \ - -e "s/'/'\\\''/g" \ + -e "s/'/'\\\''/g" \ -e "s/=/=\'/" \ -e 's/$/'"'/" \ -e 's/^/export /' echo 'curl -s https://codecov.io/bash | /bin/bash' - } > "$MYCODECOV" + } >"$MYCODECOV" } -install_maven() -{ +install_maven() { if [ -f "$MYMVNTAR" ]; then $MYSUDO tar -xf "$MYMVNTAR" -C '/usr/local' # Set up PATH and links @@ -190,10 +194,11 @@ install_maven() fi } -build_ubuntu() -{ - if [ x"$1" = x'22.04' ]; then +build_ubuntu() { + if [ x"$1" = x'22.04' -o x"$1" = x'24.04' -o x"$1" = x'd12' ]; then MYDEPS=$DEPS_UBUNTU22 + elif [ x"$1" = x'14.04' -o x"$1" = x'16.04' ]; then + MYDEPS=$DEPS_UBUNTU14_16 else MYDEPS=$DEPS_UBUNTU fi @@ -204,12 +209,17 @@ build_ubuntu() $MYSUDO apt-get update $MYSUDO /bin/bash -c \ "DEBIAN_FRONTEND='noninteractive' apt-get install -y $MYDEPS" - if [ x"$1" = x'18.04' -o x"$1" = x'20.04' -o x"$1" = x'22.04' ]; then + if [ x"$1" = x'18.04' -o x"$1" = x'20.04' -o x"$1" = x'22.04' \ + -o x"$1" = x'24.04' \ + -o x"$1" = x'd10' -o x"$1" = x'd11' -o x"$1" = x'd12' ]; then QFSHADOOP_VERSIONS=$MYQFSHADOOP_VERSIONS_UBUNTU1804 fi if [ x"$1" = x'14.04' ]; then install_maven QFSHADOOP_VERSIONS=$MYQFSHADOOP_VERSIONS_UBUNTU1404_CENTOS6 + elif [ x"$1" = x'24.04' -o x"$1" = x'd11' -o x"$1" = x'd12' ]; then + # Work around -O2 optimization bugs. + MYCMAKE_OPTIONS=$MYCMAKE_OPTIONS" -D CMAKE_CXX_FLAGS_RELWITHDEBINFO='-O1 -g'" fi do_build_linux \ ${MYPATH+PATH="${MYPATH}:${PATH}"} \ @@ -217,47 +227,60 @@ build_ubuntu() ${QFSHADOOP_VERSIONS+QFSHADOOP_VERSIONS="$QFSHADOOP_VERSIONS"} } -build_ubuntu32() -{ +build_ubuntu32() { build_ubuntu } -build_debian() -{ - if [ x"$1" = x'9' ]; then - true - else - QFSHADOOP_VERSIONS=$MYQFSHADOOP_VERSIONS_UBUNTU1804 - fi - build_ubuntu +build_debian() { + build_ubuntu "d$1" } -build_centos() -{ +build_centos() { if [ x"$1" = x'5' ]; then # Centos 5 EOL, use vault for now. - sed -i 's/enabled=1/enabled=0/' \ + $MYSUDO sed -i 's/enabled=1/enabled=0/' \ /etc/yum/pluginconf.d/fastestmirror.conf - sed -i 's/mirrorlist/#mirrorlist/' \ + $MYSUDO sed -i 's/mirrorlist/#mirrorlist/' \ /etc/yum.repos.d/*.repo - sed -i 's/#\(baseurl.*\)mirror.centos.org\/centos\/\$releasever\//\1vault.centos.org\/5.11\//' \ + $MYSUDO sed -i 's/#\(baseurl.*\)mirror.centos.org\/centos\/\$releasever\//\1vault.centos.org\/5.11\//' \ /etc/yum.repos.d/*.repo elif [ x"$1" = x'6' ]; then # Centos 6 EOL, use vault for now. - sed -i 's/enabled=1/enabled=0/' \ + $MYSUDO sed -i 's/enabled=1/enabled=0/' \ + /etc/yum/pluginconf.d/fastestmirror.conf + $MYSUDO sed -i 's/mirrorlist/#mirrorlist/' \ + /etc/yum.repos.d/*.repo + $MYSUDO sed -i 's/#\(baseurl.*\)mirror.centos.org\/centos\/\$releasever\//\1vault.centos.org\/6.10\//' \ + /etc/yum.repos.d/*.repo + elif [ x"$1" = x'7' ]; then + # Centos 7 EOL, use vault for now. + $MYSUDO sed -i 's/enabled=1/enabled=0/' \ /etc/yum/pluginconf.d/fastestmirror.conf - sed -i 's/mirrorlist/#mirrorlist/' \ + $MYSUDO sed -i 's/mirrorlist/#mirrorlist/' \ /etc/yum.repos.d/*.repo - sed -i 's/#\(baseurl.*\)mirror.centos.org\/centos\/\$releasever\//\1vault.centos.org\/6.10\//' \ + $MYSUDO sed -i 's/#\(baseurl.*\)mirror.centos.org\/centos\/\$releasever\//\1vault.centos.org\/7.9.2009\//' \ /etc/yum.repos.d/*.repo + $MYSUDO yum update -y + elif [ x"$1" = x'8' ]; then + # Centos 8 EOL, use vault for now. + $MYSUDO sed -i 's/mirrorlist/#mirrorlist/' \ + /etc/yum.repos.d/*.repo + $MYSUDO sed -i 's/#\(baseurl.*\)mirror.centos.org\/\$contentdir\//\1vault.centos.org\//' \ + /etc/yum.repos.d/*.repo + $MYSUDO yum update -y else $MYSUDO yum update -y fi if [ -f "$MYCENTOSEPEL_RPM" ]; then $MYSUDO rpm -Uvh "$MYCENTOSEPEL_RPM" fi + if [ x"$1" = x'9' ]; then + YUM_OPTS=--nobest + else + YUM_OPTS= + fi eval MYDEPS='${DEPS_CENTOS'"$1"'-$DEPS_CENTOS}' - $MYSUDO yum install -y $MYDEPS + $MYSUDO yum install -y $YUM_OPTS $MYDEPS MYPATH=$PATH # CentOS doesn't package maven directly so we have to install it manually install_maven @@ -270,11 +293,13 @@ build_centos() MYBINDIR='/usr/local/openssl101e/bin' fi mkdir -p "$MYBINDIR" - ln -snf "`which openssl101e`" "$MYBINDIR/openssl" + ln -snf "$(which openssl101e)" "$MYBINDIR/openssl" MYPATH="$MYBINDIR:$MYPATH:/usr/kerberos/bin" MYCMAKE_OPTIONS=$MYCMAKE_OPTIONS_CENTOS5 MYCMAKE=$MYCMAKE_CENTOS5 QFSHADOOP_VERSIONS=$MYQFSHADOOP_VERSIONS_CENTOS5 + elif [ x"$1" = x'7' ]; then + QFS_MSTRESS_ON=false elif [ x"$1" = x'6' ]; then QFSHADOOP_VERSIONS=$MYQFSHADOOP_VERSIONS_UBUNTU1404_CENTOS6 fi @@ -289,14 +314,16 @@ build_centos() "cut /etc/redhat-release -d' ' --fields=1,3,4 > /etc/issue" fi do_build_linux PATH="$MYPATH" ${M2_HOME+M2_HOME="$M2_HOME"} \ - ${QFSHADOOP_VERSIONS+QFSHADOOP_VERSIONS="$QFSHADOOP_VERSIONS"} + ${QFSHADOOP_VERSIONS+QFSHADOOP_VERSIONS="$QFSHADOOP_VERSIONS"} \ + ${QFS_MSTRESS_ON+QFS_MSTRESS_ON="$QFS_MSTRESS_ON"} } -set_build_type() -{ - if [ x"$1" = x ]; then - true - else +build_rockylinux() { + build_centos ${1+"$@"} +} + +set_build_type() { + if [ x"$1" != x ]; then MYBUILD_TYPE=$1 fi } @@ -304,12 +331,14 @@ set_build_type() if [ $# -eq 5 -a x"$1" = x'build' ]; then set_build_type "$4" set_sudo "$5" - if [ x"$MYUSER" = x ]; then - true - else + rm -rf build + if [ x"$MYUSER" != x ]; then # Create regular user to run the build and test under it. id -u "$MYUSER" >/dev/null 2>&1 || useradd -m "$MYUSER" - chown -R "$MYUSER" . + # Do not attempt to change ownership of read only files, as doing so + # fails with MacOS docker (due to use / modification of extendent + # attributes). + find . -perm /0111 -print0 | xargs -0 chown "$MYUSER" fi "$1_$(basename "$2")" "$3" exit @@ -331,11 +360,11 @@ if [ x"$BUILD_OS_NAME" = x'linux' ]; then init_codecov fi if [ x"$DOCKER_BUILD_DEBUG" = x'yes' ]; then - mkdir -p "$MYTMPDIR" + mkdir -p "$MYTMPDIR" touch "$MYDOCKERBUILDDEBUGFILENAME" fi if [ x"$DISTRO" = x'centos' -o x"$DISTRO $VER" = x'ubuntu 14.04' ]; then - mkdir -p "$MYTMPDIR" + mkdir -p "$MYTMPDIR" curl --retry 3 -S -o "$MYMVNTAR" "$MYMVN_URL" if [ x"$DISTRO $VER" = x'centos 5' ]; then # Download here as curl/openssl and root certs are dated on centos5, @@ -350,7 +379,7 @@ if [ x"$BUILD_OS_NAME" = x'linux' ]; then "$0" build "$DISTRO" "$VER" "$BTYPE" "$BUSER" else if [ x"${DOCKER_IMAGE_PREFIX+x}" = x ]; then - if [ x"$DISTRO" = x'centos' -a 7 -lt $VER ]; then + if [ x"$DISTRO" = x'centos' ] && [ 7 -lt $VER ]; then DOCKER_IMAGE_PREFIX='tgagor/' else DOCKER_IMAGE_PREFIX='' @@ -363,19 +392,20 @@ if [ x"$BUILD_OS_NAME" = x'linux' ]; then elif [ x"$BUILD_OS_NAME" = x'osx' ]; then set_build_type "$BTYPE" for pkg_name in \ - 'openssl@1.1' \ - 'openssl' \ - ; do - MYSSLD=$(brew list "$pkg_name" | sed -ne 's/^\(.*\)\/bin\/.*$/\1/p' \ - | sort -u | head -1) + 'openssl' \ + 'openssl@3' \ + 'openssl@1.1'; do + MYSSLD=$(brew list "$pkg_name" | + sed -ne 's/^\(.*\)\/bin\/[^\/]*$/\1/p' | + sort -ru | head -1) [ -d "$MYSSLD" ] && break done if [ -d "$MYSSLD" ]; then MYCMAKE_OPTIONS="$MYCMAKE_OPTIONS -D OPENSSL_ROOT_DIR=${MYSSLD}" MYSSLBIND="$MYSSLD/bin" - if [ -f "$MYSSLBIND/openssl" ] && \ - PATH="$MYSSLBIND:$PATH" \ - openssl version > /dev/null 2>&1; then + if [ -f "$MYSSLBIND/openssl" ] && + PATH="$MYSSLBIND:$PATH" \ + openssl version >/dev/null 2>&1; then PATH="$MYSSLBIND:$PATH" export PATH fi @@ -383,7 +413,12 @@ elif [ x"$BUILD_OS_NAME" = x'osx' ]; then make rat clean sysctl machdep.cpu || true df -h || true - do_build -j 2 + xcode-select --version || true + clang --version || true + openssl version || true + cpu_count=$(sysctl -n hw.ncpu) + expr "$cpu_count" : '^[0-9]*$' >/dev/null 2>&1 || cpu_count=2 + do_build -j "$cpu_count" else echo "OS: $BUILD_OS_NAME not yet supported" exit 1 diff --git a/webui/browse.py b/webui/browse.py index 187231827..fb1b99c26 100644 --- a/webui/browse.py +++ b/webui/browse.py @@ -22,6 +22,8 @@ # File system lister / browser. # +from __future__ import print_function + import os import stat import sys @@ -30,12 +32,24 @@ try: import qfs except ImportError: - sys.stderr.write("Warning: %s. Proceeding without file browser.\n" % str(sys.exc_info()[1])) + sys.stderr.write( + "Warning: %s. Proceeding without file browser.\n" + % str(sys.exc_info()[1]) + ) gBrowsable = False class QFSBrowser: - PERMISSIONS = {0: "---", 1: "--x", 2: "-w-", 3: "-wx", 4: "r--", 5: "r-x", 6: "rw-", 7: "rwx"} + PERMISSIONS = { + 0: "---", + 1: "--x", + 2: "-w-", + 3: "-wx", + 4: "r--", + 5: "r-x", + 6: "rw-", + 7: "rwx", + } browsable = True def __init__(self): @@ -81,7 +95,8 @@ def startHTML(self, directory, buffer): print( """ - + @@ -94,18 +109,29 @@ def startHTML(self, directory, buffer):

Go back to QFS home

- - - - - - - - - - + + + + + + + + + + - + @@ -143,7 +169,9 @@ def contentHTML(self, path, info, fullStat, buffer): target = "/browse-it%s" % path print( """ - + """ % (target, info[0]), file=buffer, @@ -151,7 +179,8 @@ def contentHTML(self, path, info, fullStat, buffer): else: print( """ - + """ % info[0], file=buffer, @@ -159,15 +188,24 @@ def contentHTML(self, path, info, fullStat, buffer): print( """ - - - - - - - - - + + + + + + + + + """ % ( info[5], @@ -187,10 +225,20 @@ def printToHTML(self, directory, host, port, buffer): client = qfs.client((host, port)) self.startHTML(directory, buffer) dirPath = os.path.join("/", directory) - for info in client.readdirplus(dirPath): - if info[0] in (".", ".."): - continue - pathEntry = os.path.join(dirPath, info[0]) - fullStat = client.fullstat(pathEntry) - self.contentHTML(pathEntry, info, fullStat, buffer) + try: + for info in client.readdirplus(dirPath): + if info[0] in (".", ".."): + continue + pathEntry = os.path.join(dirPath, info[0]) + fullStat = client.fullstat(pathEntry) + self.contentHTML(pathEntry, info, fullStat, buffer) + except Exception as ex: + print( + """ + + """ + % (dirPath, str(ex)), + file=buffer, + ) self.endHTML(buffer) diff --git a/webui/chunks.py b/webui/chunks.py index 50ebb68c6..1b36c99ff 100644 --- a/webui/chunks.py +++ b/webui/chunks.py @@ -30,26 +30,43 @@ # 1. how to stop thread if app has died # 2 cookies # ---------------- +from __future__ import print_function + import socket import threading import time +import sys from datetime import datetime -from io import StringIO -from chart import ChartData, ChartServerData +from chart import ChartServerData + +if sys.version_info < (3, 0): + from StringIO import StringIO +else: + from io import StringIO kDeltaPrefix = "D-" REQUEST_GET_SERVER_COUNTERS = ( - "GET_CHUNK_SERVERS_COUNTERS\r\nVersion: KFS/1.0\r\nCseq: 1\r\nClient-Protocol-Version: 116\r\n\r\n".encode("utf-8") -) + "GET_CHUNK_SERVERS_COUNTERS\r\n" + "Version: KFS/1.0\r\n" + "Cseq: 1\r\n" + "Client-Protocol-Version: 116\r\n" + "\r\n" +).encode("utf-8") REQUEST_GET_COUNTERS = ( - "GET_REQUEST_COUNTERS\r\nVersion: KFS/1.0\r\nCseq: 1\r\nClient-Protocol-Version: 116\r\n\r\n".encode("utf-8") -) + "GET_REQUEST_COUNTERS\r\n" + "Version: KFS/1.0\r\n" + "Cseq: 1\r\n" + "Client-Protocol-Version: 116\r\n" + "\r\n" +).encode("utf-8") REQUEST_GET_CHUNK_COUNTERS = ( - "GET_CHUNK_SERVER_DIRS_COUNTERS\r\nVersion: KFS/1.0\r\nCseq: 1\r\nClient-Protocol-Version: 116\r\n\r\n".encode( - "utf-8" - ) -) + "GET_CHUNK_SERVER_DIRS_COUNTERS\r\n" + "Version: KFS/1.0\r\n" + "Cseq: 1\r\n" + "Client-Protocol-Version: 116\r\n" + "\r\n" +).encode("utf-8") class ChunkArrayData: @@ -108,12 +125,15 @@ def __init__(self, timespan, maxLength, nextList=None): self.theList = [] # SavedChunkData self.firstTime = 0 self.lastTime = 0 - self.name = "data_list: maxlength %d, timespan = %d" % (self.maxLength, self.timespan) + self.name = "data_list: maxlength %d, timespan = %d" % ( + self.maxLength, + self.timespan, + ) def free_space_for_new_data(self): # move to next list if posssible oldData = self.extract(-1) - if self.nextList != None and oldData != None: + if self.nextList is not None and oldData is not None: self.nextList.addData(oldData, 0) def addData(self, data, always=1): @@ -174,7 +194,15 @@ def printDebug(self): class ChunkDataManager: - def __init__(self, mainColumnName, predefinedHeaders, monthly, dayly, hourly, current): + def __init__( + self, + mainColumnName, + predefinedHeaders, + monthly, + dayly, + hourly, + current, + ): # 1 entry per day # self.monthlyData = SavedChunkDataList(60*60*24, 30) # 1 entry per hour @@ -194,19 +222,28 @@ def __init__(self, mainColumnName, predefinedHeaders, monthly, dayly, hourly, cu self.selectedHeaders = predefinedHeaders self.mainColumnName = mainColumnName - # SavedChunkDataList.__init__(self, timespan, maxLength, nextList=None): + # SavedChunkDataList.__init__(self, timespan, maxLength, + # nextList=None): self.dataArray = [] - theData = SavedChunkDataList(monthly.timespan, monthly.theSize) # monthly + theData = SavedChunkDataList( + monthly.timespan, monthly.theSize + ) # monthly # theData = SavedChunkDataList(8.0, 6) #monthly self.dataArray.append(theData) - theData = SavedChunkDataList(dayly.timespan, dayly.theSize, self.dataArray[0]) # dayly + theData = SavedChunkDataList( + dayly.timespan, dayly.theSize, self.dataArray[0] + ) # dayly self.dataArray.insert(0, theData) - theData = SavedChunkDataList(hourly.timespan, hourly.theSize, self.dataArray[0]) # hourly + theData = SavedChunkDataList( + hourly.timespan, hourly.theSize, self.dataArray[0] + ) # hourly self.dataArray.insert(0, theData) - theData = SavedChunkDataList(current.timespan, current.theSize, self.dataArray[0]) # current + theData = SavedChunkDataList( + current.timespan, current.theSize, self.dataArray[0] + ) # current self.dataArray.insert(0, theData) def getLastTime(self): @@ -225,7 +262,9 @@ def printDebug(self): print("ChunkDataManager debug print") arrayNames = ["latestData", "hourlyData", "daylyData", "monthlyData"] for i in range(theLen): - print(arrayNames[i] + "---------------------------------------------") + print( + arrayNames[i] + "---------------------------------------------" + ) self.dataArray[i].printDebug() def setSelectedHeaders(self, headers): @@ -244,39 +283,41 @@ def getDelta(self): dataIter = DataIter(self.dataArray) - # data in arrays is sorted by descending time, so fromTime is bigger than toTime + # data in arrays is sorted by descending time, so fromTime is bigger + # than toTime if self.minusLatestTime > 0: fromTime = self.dataArray[0].lastTime - self.minusLatestTime if self.findArrayIndexByTime(dataIter, fromTime): if self.findTimedData(dataIter, fromTime): data1 = dataIter.getCur() - if data1 == None: + if data1 is None: dataIter.setFirst() data1 = dataIter.getCur() fromTime = data1.timestamp toTime = fromTime - self.deltaInterval - # print "---, fromTime, toTime, self.minusLatestTime, dataIter.iArray, dataIter.iElem + # print "---, fromTime, toTime, self.minusLatestTime, dataIter.iArray, + # dataIter.iElem - if dataIter.getNext() != None: + if dataIter.getNext() is not None: if self.findArrayIndexByTime(dataIter, toTime): if self.findTimedData(dataIter, toTime): data2 = dataIter.getCur() - if data2 == None: + if data2 is None: dataIter.setLast() data2 = dataIter.getCur() - if data2 != None and data2.timestamp == data1.timestamp: + if data2 is not None and data2.timestamp == data1.timestamp: data2 = None else: dataPrev = dataIter.getPrev() - if dataPrev != None: + if dataPrev is not None: data2 = data1 data1 = dataPrev # print data1.timestamp - if data2 != None: + if data2 is not None: # print data2.timestamp return [data1, data2] else: @@ -287,7 +328,7 @@ def findArrayIndexByTime(self, dataIter, theTime): return 0 array = dataIter.getArray() - while array != None: + while array is not None: if theTime >= array.firstTime: return 1 array = dataIter.getNextArray() @@ -295,7 +336,7 @@ def findArrayIndexByTime(self, dataIter, theTime): def findTimedData(self, dataIter, timestamp): elem = dataIter.getCur() - while elem != None: + while elem is not None: if elem.timestamp - timestamp <= 0: return 1 elem = dataIter.getNext() @@ -311,9 +352,11 @@ def findTimedData(self, dataIter, timestamp): def getChartData(self, chartData): chartData.headers = self.selectedHeaders elem = self.dataArray[0].theList[0] - if self.mainColumnName != None: + if self.mainColumnName is not None: if self.mainColumnName in elem.chunkServerData.chunkHeaders: - serverNameIndex = elem.chunkServerData.chunkHeaders.index(self.mainColumnName) + serverNameIndex = elem.chunkServerData.chunkHeaders.index( + self.mainColumnName + ) else: return else: @@ -330,12 +373,19 @@ def getServerChartData(self, serverName, chartArray): theList = array.theList for elem in theList: timeDataArray = [] - if self.mainColumnName == None: + if self.mainColumnName is None: serverNameIndex = 0 else: serverNameIndex = -1 - if self.mainColumnName in elem.chunkServerData.chunkHeaders: - serverNameIndex = elem.chunkServerData.chunkHeaders.index(self.mainColumnName) + if ( + self.mainColumnName + in elem.chunkServerData.chunkHeaders + ): + serverNameIndex = ( + elem.chunkServerData.chunkHeaders.index( + self.mainColumnName + ) + ) if serverNameIndex == -1: return for i in range(len(elem.chunkServerData.chunkServers)): @@ -358,7 +408,9 @@ def getServerChartData(self, serverName, chartArray): else: theHeader = header if theHeader in elem.chunkServerData.chunkHeaders: - index = elem.chunkServerData.chunkHeaders.index(theHeader) + index = elem.chunkServerData.chunkHeaders.index( + theHeader + ) else: index = -1 value = None @@ -376,13 +428,15 @@ def getServerChartData(self, serverName, chartArray): for j in range(1, len(serverArray)): array0 = serverArray[j - 1] array1 = serverArray[j] - timediff = array1[0] - array0[0] # first element in array is timestamp + timediff = ( + array1[0] - array0[0] + ) # first element in array is timestamp val1 = None if len(array0) > i + 1 and len(array1) > i + 1: val1 = array1[i + 1] if j == 1: valPrev = array0[i + 1] - if valPrev == None or val1 == None or timediff == 0: + if valPrev is None or val1 is None or timediff == 0: value = None else: value = (val1 - valPrev) / timediff @@ -404,9 +458,12 @@ def getServerChartData(self, serverName, chartArray): class DataIter: def __init__(self, dataArray): self.dataArray = dataArray - if dataArray == None or len(self.dataArray) == 0: + if dataArray is None or len(self.dataArray) == 0: self.iArray = self.iElem = -1 - elif self.dataArray[0].theList == None or len(self.dataArray[0].theList) == 0: + elif ( + self.dataArray[0].theList is None + or len(self.dataArray[0].theList) == 0 + ): self.iArray = self.iElem = -1 else: self.iArray = self.iElem = 0 @@ -435,7 +492,10 @@ def getNext(self): self.iElem = self.iElem + 1 # print "getNext", self.iArray, self.iElem return self.dataArray[self.iArray].theList[self.iElem] - elif self.iArray + 1 < len(self.dataArray) and len(self.dataArray[self.iArray + 1].theList) > 0: + elif ( + self.iArray + 1 < len(self.dataArray) + and len(self.dataArray[self.iArray + 1].theList) > 0 + ): self.iArray = self.iArray + 1 self.iElem = 0 # print "getNext", self.iArray, self.iElem @@ -482,7 +542,15 @@ def setLast(self): class ChunkThread(threading.Thread): - def __init__(self, serverName, port, interval, chunkDataManager, countersDataManager, chunkDirDataManager): + def __init__( + self, + serverName, + port, + interval, + chunkDataManager, + countersDataManager, + chunkDirDataManager, + ): threading.Thread.__init__(self) self.interval = float(interval) self.chunkDataManager = chunkDataManager @@ -534,7 +602,7 @@ def run(self): time.sleep(self.interval) - ## chunk request to metaserver + # chunk request to metaserver def getChunkServerData(self, chunkServerData, req): try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) @@ -584,7 +652,15 @@ def getChunkServerData(self, chunkServerData, req): class HtmlPrintData: - def __init__(self, mainColumnName, deltaList, dataManager, formId, pageTitle, itemName): + def __init__( + self, + mainColumnName, + deltaList, + dataManager, + formId, + pageTitle, + itemName, + ): # list of 2 SavedChunkData: timestamp + ChunkServerData self.data1 = deltaList[0] self.data2 = None @@ -599,7 +675,10 @@ def __init__(self, mainColumnName, deltaList, dataManager, formId, pageTitle, it self.serverNameIndex = -1 self.selectedHeaders = dataManager.selectedHeaders - self.indexList = [] # index of corresponding headers in allHeaders for each selectedHeader in selectedHeaders + self.indexList = ( + [] + ) # index of corresponding headers in allHeaders for each + # selectedHeader in selectedHeaders self.mainColumnName = mainColumnName self.formId = formId self.pageTitle = pageTitle @@ -608,28 +687,36 @@ def __init__(self, mainColumnName, deltaList, dataManager, formId, pageTitle, it # beginning of html def startHTML(self, buffer): # beginning of html - if self.data2 != None: + if self.data2 is not None: timediffStr = str(int(self.data1.timestamp - self.data2.timestamp)) timestr = ( - time.strftime("%m-%d-%Y %H:%M:%S", time.localtime(self.data2.timestamp)) + time.strftime( + "%m-%d-%Y %H:%M:%S", time.localtime(self.data2.timestamp) + ) + " - " - + time.strftime("%m-%d-%Y %H:%M:%S", time.localtime(self.data1.timestamp)) + + time.strftime( + "%m-%d-%Y %H:%M:%S", time.localtime(self.data1.timestamp) + ) + " (" + timediffStr + ")" ) else: - timestr = time.strftime("%m-%d-%Y %H:%M:%S", time.localtime(self.data1.timestamp)) + timestr = time.strftime( + "%m-%d-%Y %H:%M:%S", time.localtime(self.data1.timestamp) + ) numServers = len(self.data1.chunkServerData.chunkServers) print( """ - + - + """, self.pageTitle, """ @@ -652,7 +739,8 @@ def startHTML(self, buffer):
Name
Type
Size
Replication
Data Stripes
Recovery Stripes
Modification Time
Permission
Owner
Group
+ Name
+ Type
+ Size
+ Replication
+ Data Stripes
+ Recovery Stripes
+ Modification Time
+ Permission
+ Owner
+ Group
..
+ ..



%s
+ %s
%s
%s
%s
%s
%s
%s
%s
%s
%s
%s
%s
+ %s
+ %s
+ %s
+ %s
+ %s
+ %s
+ %s
+ %s
+ %s
%s: %s

- +
""" % (numServers, self.pageTitle, timestr), file=buffer, @@ -735,7 +823,13 @@ def printHeaderToHTML(self, buffer): # table headers print("""""", end=" ", file=buffer) for i in range(len(self.selectedHeaders)): - print("""""", end=" ", file=buffer) + print( + """""", + end=" ", + file=buffer, + ) print("""""", file=buffer) def initHeaders(self): @@ -743,13 +837,16 @@ def initHeaders(self): newHeaders = [] if len(self.indexList) != 0: del self.indexList - if self.mainColumnName == None: + if self.mainColumnName is None: self.serverNameIndex = 0 for i in range(len(allHeaders)): header = allHeaders[i] d_header = kDeltaPrefix + header - if self.mainColumnName != None and header == self.mainColumnName: + if ( + self.mainColumnName is not None + and header == self.mainColumnName + ): self.serverNameIndex = i if header in self.selectedHeaders: @@ -760,11 +857,16 @@ def initHeaders(self): self.indexList.append(i) self.selectedHeaders = newHeaders - # print "serverNameIndex:%d, %s" % (self.serverNameIndex, allHeaders[self.serverNameIndex]) - # print self.indexList + # print( + # "serverNameIndex:%d, %s" + # % (self.serverNameIndex, allHeaders[self.serverNameIndex]) + # ) + # print(self.indexList) def findServerForData2(self, serverIndex): - serverName = self.data1.chunkServerData.chunkServers[serverIndex].nodes[self.serverNameIndex] + serverName = self.data1.chunkServerData.chunkServers[ + serverIndex + ].nodes[self.serverNameIndex] # print "ServerName:" + serverName if serverIndex < len(self.data2.chunkServerData.chunkServers): chunkData2 = self.data2.chunkServerData.chunkServers[serverIndex] @@ -781,10 +883,10 @@ def printServerToHTML(self, buffer, serverIndex, trclass, totalValue): # print "server index %d" % (serverIndex) chunkData1 = self.data1.chunkServerData.chunkServers[serverIndex] chunkData2 = None - if self.data2 != None: + if self.data2 is not None: chunkData2 = self.findServerForData2(serverIndex) - if chunkData2 != None: + if chunkData2 is not None: timediff = self.data1.timestamp - self.data2.timestamp else: # print "No Chunk data2!!!" @@ -808,27 +910,41 @@ def printServerToHTML(self, buffer, serverIndex, trclass, totalValue): s = "undefined" else: if ( - chunkData1.nodes[index] == None + chunkData1.nodes[index] is None or chunkData1.nodes[index].isalpha() == 1 - or chunkData2.nodes[index] == None + or chunkData2.nodes[index] is None or chunkData2.nodes[index].isalpha() == 1 ): - # print "not digit !%s! !%s!" % (chunkData1.nodes[index], chunkData2.nodes[index]) + # print( + # "not digit !%s! !%s!" + # % ( + # chunkData1.nodes[index], + # chunkData2.nodes[index], + # ) + # ) s = "n/a" else: try: if self.divideByTime: - value = (float(chunkData1.nodes[index]) - float(chunkData2.nodes[index])) / timediff + value = ( + float(chunkData1.nodes[index]) + - float(chunkData2.nodes[index]) + ) / timediff else: - value = float(chunkData1.nodes[index]) - float(chunkData2.nodes[index]) + value = float( + chunkData1.nodes[index] + ) - float(chunkData2.nodes[index]) s = "%.2e" % (value) - except: + except Exception: s = "n/a" - elif chunkData1.nodes[index] != None or chunkData1.nodes[index].isalpha() != 1: + elif ( + chunkData1.nodes[index] is not None + or chunkData1.nodes[index].isalpha() != 1 + ): try: value = float(chunkData1.nodes[index]) s = "%.2e" % (value) - except: + except Exception: s = chunkData1.nodes[index] else: s = chunkData1.nodes[index] @@ -844,7 +960,7 @@ def printServerToHTML(self, buffer, serverIndex, trclass, totalValue): ) # ''' % (s), - if totalValue != None and value != None: + if totalValue is not None and value is not None: totalValue[i][0] = totalValue[i][0] + value totalValue[i][1] = 1 @@ -856,8 +972,12 @@ def printIntervalsToHTML(self, buffer): else: checked = "" timediff = self.lastTime - self.firstTime - timestr_latest = time.strftime("%m-%d-%Y %H:%M:%S", time.localtime(self.lastTime)) - timestr_first = time.strftime("%m-%d-%Y %H:%M:%S", time.localtime(self.firstTime)) + timestr_latest = time.strftime( + "%m-%d-%Y %H:%M:%S", time.localtime(self.lastTime) + ) + timestr_first = time.strftime( + "%m-%d-%Y %H:%M:%S", time.localtime(self.firstTime) + ) minusTimeStr = "" minusTime = self.minusTime if minusTime > 0: @@ -879,13 +999,27 @@ def printIntervalsToHTML(self, buffer): print( """
-

- refresh in sec
- available interval: %s - %s ( %d sec )
- latest time minus - (d-days, h-hours,m-minutes, s-seconds; default - seconds)
- show delta for sec        -    divide by time """ + +
+ refresh in + + sec +
+ available interval: %s - %s ( %d sec ) +
+ latest time minus + + (d-days, h-hours,m-minutes, s-seconds; default - seconds) +
+ show delta for + + sec      divide by time + """ % ( self.refreshInterval, timestr_first, @@ -899,15 +1033,18 @@ def printIntervalsToHTML(self, buffer): ) def printFormTypeToHTML(self, buffer): - #        + #        print( ''' -

       +

       +

-
%s %s
""", self.selectedHeaders[i], """""", + self.selectedHeaders[i], + """
%s
+
""", end=" ", file=buffer, @@ -943,7 +1080,8 @@ def printSelectionToHTML(self, buffer): checked2 = "" print( """ - """ + """ % (header, checked1, header2, checked2, header), end=" ", file=buffer, @@ -959,27 +1097,37 @@ def printSelectionToHTML(self, buffer): class HtmlPrintMetaData(HtmlPrintData): def __init__(self, deltaList, dataManager): - HtmlPrintData.__init__(self, None, deltaList, dataManager, "no", "none", "rows") + HtmlPrintData.__init__( + self, None, deltaList, dataManager, "no", "none", "rows" + ) def startHTML(self, buffer): # beginning of html - if self.data2 != None: + if self.data2 is not None: timestr = ( - time.strftime("%m-%d-%Y %H:%M:%S", time.localtime(self.data2.timestamp)) + time.strftime( + "%m-%d-%Y %H:%M:%S", time.localtime(self.data2.timestamp) + ) + " - " - + time.strftime("%m-%d-%Y %H:%M:%S", time.localtime(self.data1.timestamp)) + + time.strftime( + "%m-%d-%Y %H:%M:%S", time.localtime(self.data1.timestamp) + ) ) else: - timestr = time.strftime("%m-%d-%Y %H:%M:%S", time.localtime(self.data1.timestamp)) + timestr = time.strftime( + "%m-%d-%Y %H:%M:%S", time.localtime(self.data1.timestamp) + ) print( """ - + - + Meta Server Status @@ -993,14 +1141,15 @@ def startHTML(self, buffer):
   # %s    # + %s

- +
""" % (datetime.now().ctime(), timestr), file=buffer, ) def initHeaders(self): - if self.selectedHeaders == None: + if self.selectedHeaders is None: self.selectedHeaders = [] for header in self.data1.chunkServerData.chunkHeaders: d_header = kDeltaPrefix + header @@ -1011,17 +1160,20 @@ def initHeaders(self): def printFormTypeToHTML(self, buffer): print( """ - -

       + +

      

-
Meta Server Status      %s
+
""", end=" ", file=buffer, ) def printServerListToHTML(self, buffer): - theLen = len(self.selectedHeaders) + # theLen = len(self.selectedHeaders) # beginning of table body print( """ diff --git a/webui/qfsstatus.py b/webui/qfsstatus.py index 956cfd765..8516a23ab 100755 --- a/webui/qfsstatus.py +++ b/webui/qfsstatus.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python # # $Id$ # @@ -23,35 +23,64 @@ # A simple webserver that displays KFS status by pinging the metaserver. # -import configparser +from __future__ import print_function + import os import platform import socket -import socketserver import sys import time from datetime import datetime -from http.server import SimpleHTTPRequestHandler -from io import StringIO -from urllib.request import urlopen from browse import QFSBrowser from chart import ChartData, ChartHTML -from chunks import (ChunkArrayData, ChunkDataManager, ChunkServerData, - ChunkThread, HtmlPrintData, HtmlPrintMetaData) +from chunks import ( + ChunkArrayData, + ChunkDataManager, + ChunkServerData, + ChunkThread, + HtmlPrintData, + HtmlPrintMetaData, +) -REQUEST_PING = "PING\r\nVersion: KFS/1.0\r\nCseq: 1\r\nClient-Protocol-Version: 116\r\n\r\n".encode("utf-8") +if sys.version_info < (3, 0): + from urllib import urlopen + + import ConfigParser as configparser + import SocketServer as socketserver + from SimpleHTTPServer import SimpleHTTPRequestHandler + from StringIO import StringIO +else: + import configparser + import socketserver + from http.server import SimpleHTTPRequestHandler + from io import StringIO + from urllib.request import urlopen + + +REQUEST_PING = ( + "PING\r\n" + "Version: KFS/1.0\r\n" + "Cseq: 1\r\n" + "Client-Protocol-Version: 116\r\n" + "\r\n" +).encode("utf-8") REQUEST_GET_DIRS_COUNTERS = ( - "GET_CHUNK_SERVER_DIRS_COUNTERS\r\nVersion: KFS/1.0\r\nCseq: 1\r\nClient-Protocol-Version: 116\r\n\r\n".encode( - "utf-8" - ) -) + "GET_CHUNK_SERVER_DIRS_COUNTERS\r\n" + "Version: KFS/1.0\r\n" + "Cseq: 1\r\n" + "Client-Protocol-Version: 116\r\n" + "\r\n" +).encode("utf-8") gHasCollections = True try: from collections import OrderedDict -except: - sys.stderr.write("Warning: '%s'. Proceeding without collections.\n" % str(sys.exc_info()[1])) +except Exception: + sys.stderr.write( + "Warning: '%s'. Proceeding without collections.\n" + % str(sys.exc_info()[1]) + ) gHasCollections = False gJsonSupported = True @@ -88,7 +117,10 @@ def default(self, obj): return obj except ImportError: - sys.stderr.write("Warning: '%s'. Proceeding without query support.\n" % str(sys.exc_info()[1])) + sys.stderr.write( + "Warning: '%s'. Proceeding without query support.\n" + % str(sys.exc_info()[1]) + ) gJsonSupported = False metaserverPort = 20000 @@ -145,7 +177,12 @@ def showUptime(uptime): rem = rem / 60 hours = rem % 24 days = rem / 24 - return "%d days, %02d:%02d:%02d" % (days, hours, minutes, seconds) + return "%d days, %02d:%02d:%02d" % ( + days, + hours, + minutes, + seconds, + ) class ServerLocation: @@ -312,7 +349,6 @@ def display( vrStatus, ): global gQfsBrowser - rows = "" if gQfsBrowser.browsable: browseLink = 'Browse Filesystem' else: @@ -326,16 +362,22 @@ def display( displayName, """

- Chunk Servers Status       - Meta Server Status       - Chunk Directories Status       - Meta Server Configuration     """, + Chunk Servers Status +        + Meta Server Status +        + Chunk Directories Status +        + Meta Server Configuration +      """, file=buffer, ) if 0 <= systemInfo.vrNodeId: print( """ - Meta Server Viewstamped Replication Status     """, + + Meta Server Viewstamped Replication Status +      """, file=buffer, ) print( @@ -350,7 +392,11 @@ def display( ) if systemInfo.isInRecovery and 0 != systemInfo.vrPrimaryFlag: - print("""

""", file=buffer) + print( + """ + """, + file=buffer, + ) fsFree = systemInfo.freeFsSpace if fsFree < 0: fsFree = freeFsSpace @@ -365,7 +411,9 @@ def display( time.strftime("%a %b %d %H:%M:%S %Y"), """ """, file=buffer, ) @@ -406,7 +454,10 @@ def display( ) if 0 < systemInfo.objStoreEnabled: print( - "" + "", file=buffer, ) - print(""" @@ -534,11 +628,16 @@ def display( file=buffer, ) if systemInfo.hibernatedServerCount >= 0: - print(""" hibernated: """ + splitThousands(systemInfo.hibernatedServerCount), file=buffer) + print( + """ hibernated: """ + + splitThousands(systemInfo.hibernatedServerCount), + file=buffer, + ) print("""""", file=buffer) if systemInfo.replications >= 0: print( - """""", file=buffer) if systemInfo.internalNodes >= 0: print( - """""", file=buffer, ) @@ -644,7 +772,11 @@ def display( mult = 0 else: mult = 100.0 / float(serverCount) - print(""" + """, file=buffer) @@ -680,7 +819,8 @@ def display( + splitThousands(systemInfo.totalDrives) + " writable: " + splitThousands(systemInfo.writableDrives) - + " %.2f%%" % (float(systemInfo.writableDrives) * mult) + + " %.2f%%" + % (float(systemInfo.writableDrives) * mult) + " avg capacity: " + bytesToReadable(systemInfo.totalSpace * mult / 100.0), """""", @@ -707,9 +847,11 @@ def display( print( """
-
Recovery status: :IN RECOVERY
Recovery status: :IN RECOVERY
Started at : """, - systemInfo.startedAt + " uptime: " + showUptime(systemInfo.uptime), + systemInfo.startedAt + + " uptime: " + + showUptime(systemInfo.uptime), """
Object store delete queue:size: " + ( + "
Object store delete queue:size: " + ) + splitThousands(systemInfo.objStoreDeletes) + " in flight: " + splitThousands(systemInfo.objStoreDeletesInFlight) @@ -422,16 +473,26 @@ def display( if 0 <= systemInfo.logPendingOpsCount: if systemInfo.logTimeOpsCount: avg = systemInfo.logTimeUsec / systemInfo.logTimeOpsCount - opWriteAvg = systemInfo.logDiskWriteUsec / systemInfo.logTimeOpsCount + opWriteAvg = ( + systemInfo.logDiskWriteUsec / systemInfo.logTimeOpsCount + ) else: avg = 0 opWriteAvg = 0 if 0 < systemInfo.uptime: - rate = systemInfo.logTimeOpsCount * systemInfo.logAvgReqRateDiv / systemInfo.uptime + rate = ( + systemInfo.logTimeOpsCount + * systemInfo.logAvgReqRateDiv + / systemInfo.uptime + ) else: rate = 0 if 0 < systemInfo.logTotalRequestCount: - droppedPct = 100.0 * systemInfo.logExceedQueueDepthFailedCount / systemInfo.logTotalRequestCount + droppedPct = ( + 100.0 + * systemInfo.logExceedQueueDepthFailedCount + / systemInfo.logTotalRequestCount + ) else: droppedPct = 0.0 print( @@ -441,24 +502,35 @@ def display( + "/" + bytesToReadable(systemInfo.logPendingAckByteCount) + "; dropped: " - + splitThousands(systemInfo.logExceedLogQueueDepthFailureCount300SecAvg) + + splitThousands( + systemInfo.logExceedLogQueueDepthFailureCount300SecAvg + ) + "/%.2e%%" % droppedPct - + "; request rate & time usec. total/disk" - + " [5; 10; 15 sec.; total averages]:" - + " " - + showRate(systemInfo.log5SecAvgReqRate, systemInfo.logAvgReqRateDiv) + + ( + "; request rate & time " + "usec. total/disk" + " [5; 10; 15 sec.;" + " total averages]: " + ) + + showRate( + systemInfo.log5SecAvgReqRate, systemInfo.logAvgReqRateDiv + ) + " " + splitThousands(systemInfo.log5SecAvgUsec) + "/" + splitThousands(systemInfo.logOpWrite5SecAvgUsec) + "; " - + showRate(systemInfo.log10SecAvgReqRate, systemInfo.logAvgReqRateDiv) + + showRate( + systemInfo.log10SecAvgReqRate, systemInfo.logAvgReqRateDiv + ) + " " + splitThousands(systemInfo.log10SecAvgUsec) + "/" + splitThousands(systemInfo.logOpWrite10SecAvgUsec) + "; " - + showRate(systemInfo.log15SecAvgReqRate, systemInfo.logAvgReqRateDiv) + + showRate( + systemInfo.log15SecAvgReqRate, systemInfo.logAvgReqRateDiv + ) + " " + splitThousands(systemInfo.log15SecAvgUsec) + "/" @@ -472,7 +544,11 @@ def display( + "
Meta server viewstamped replication (VR) : """, file=buffer) + print( + """
Meta server viewstamped replication (VR) + : """, + file=buffer, + ) if systemInfo.vrNodeId < 0 or len(vrStatus) <= 0: print("""not configured""", file=buffer) else: @@ -490,38 +566,56 @@ def display( status = int(vrStatus["vr.status"]) if 0 != status: primaryId = vrStatus["vr.primaryId"] - textBuf = textBuf + " primary node id: " + primaryId + textBuf = ( + textBuf + + " primary node id: " + + primaryId + ) for k in vrStatus: - if k.startswith("configuration.node.") and k.endswith(".id") and vrStatus[k] == primaryId: + if ( + k.startswith("configuration.node.") + and k.endswith(".id") + and vrStatus[k] == primaryId + ): try: - host = vrStatus[k.replace(".id", ".listener")].split()[0] - textBuf += ' host: 
Replications :in flight: """ + """
Replications :in flight: +  """ + str(systemInfo.replications) + """ check: """ + splitThousands(systemInfo.replicationsCheck) @@ -555,14 +654,29 @@ def display( ) if systemInfo.clients >= 0: print( - """
Allocations :clients: """ + splitThousands(systemInfo.clients), + """
Allocations :clients: """ + + splitThousands(systemInfo.clients), file=buffer, ) if 0 <= systemInfo.maxClients: - print(""" (max: """ + splitThousands(systemInfo.maxClients) + ")", file=buffer) - print(""" chunk servers: """ + splitThousands(systemInfo.chunkServers), file=buffer) + print( + """ (max: """ + + splitThousands(systemInfo.maxClients) + + ")", + file=buffer, + ) + print( + """ chunk servers: """ + + splitThousands(systemInfo.chunkServers), + file=buffer, + ) if 0 <= systemInfo.maxChunkServers: - print(""" (max: """ + splitThousands(systemInfo.maxChunkServers) + ")", file=buffer) + print( + """ (max: """ + + splitThousands(systemInfo.maxChunkServers) + + ")", + file=buffer, + ) print( """ requests: """ + splitThousands(systemInfo.allocatedRequests) @@ -571,7 +685,12 @@ def display( file=buffer, ) if 0 <= systemInfo.totalBuffers: - print(""" (max: """ + splitThousands(systemInfo.totalBuffers) + ")", file=buffer) + print( + """ (max: """ + + splitThousands(systemInfo.totalBuffers) + + ")", + file=buffer, + ) print( """ sockets: """ + splitThousands(systemInfo.sockets) @@ -580,11 +699,16 @@ def display( file=buffer, ) if systemInfo.appendCacheSize >= 0: - print(""" append cache: """ + splitThousands(systemInfo.appendCacheSize), file=buffer) + print( + """ append cache: """ + + splitThousands(systemInfo.appendCacheSize), + file=buffer, + ) print("""
Allocations b+tree:internal: """ + """
Allocations b+tree: + internal: """ + splitThousands(systemInfo.internalNodes) + """x""" + splitThousands(systemInfo.internalNodeSize) @@ -615,7 +739,8 @@ def display( ) if systemInfo.csmapNodes >= 0: print( - """
Allocations chunk2server:nodes: """ + """
Allocations chunk2server: + nodes: """ + splitThousands(systemInfo.csmapNodes) + """x""" + splitThousands(systemInfo.csmapNodeSize) @@ -632,11 +757,14 @@ def display( if 0 != systemInfo.vrPrimaryFlag: if systemInfo.csMaxGoodCandidateLoadAvg >= 0: print( - """
Chunk placement load threshold:""" + """
Chunk placement load  + threshold:""" + "avg: %5.2e" % systemInfo.csMaxGoodCandidateLoadAvg + " " - + " master: %5.2e" % systemInfo.csMaxGoodMasterLoadAvg - + " slave: %5.2e" % systemInfo.csMaxGoodSlaveLoadAvg + + " master: %5.2e" + % systemInfo.csMaxGoodMasterLoadAvg + + " slave: %5.2e" + % systemInfo.csMaxGoodSlaveLoadAvg + """
Chunk placement candidates:""", file=buffer) + print( + """
Chunk placement candidates:""", + file=buffer, + ) if systemInfo.goodMasters >= 0 and systemInfo.goodSlaves >= 0: allGood = systemInfo.goodMasters + systemInfo.goodSlaves print( @@ -661,11 +793,18 @@ def display( ) else: allGood = serverCount - canNotBeUsedForPlacment - print("all: " + splitThousands(allGood) + " %.2f%%" % (float(allGood) * mult), file=buffer) + print( + "all: " + + splitThousands(allGood) + + " %.2f%%" % (float(allGood) * mult), + file=buffer, + ) if goodNoRackAssignedCount < allGood: all = allGood - goodNoRackAssignedCount print( - " in racks: " + splitThousands(all) + " %.2f%%" % (float(all) * mult), + " in racks: " + + splitThousands(all) + + " %.2f%%" % (float(all) * mult), file=buffer, ) print("""
- + @@ -744,9 +886,11 @@ def display( print( """
-
Evacuating Nodes Status Evacuating Nodes Status +
Chunkserver
- + """, @@ -783,7 +927,6 @@ def display( ) rowCnt = 0 colCnt = 0 - trclass = "" for val in tiersInfo: if colCnt == 0: print("""""", file=buffer) @@ -816,8 +959,10 @@ def display( print( """
-
Storage Tiers Available For Placement Status + Storage Tiers Available For Placement Status
+
@@ -860,10 +1005,13 @@ def display( print( """
-
All Nodes
- +
Retiring Nodes Status
+ - + """, @@ -883,10 +1031,12 @@ def display( if len(downServers) > 0: print( """
-
Retiring Nodes Status +
Chunkserver Start # blks done # blks left
Chunkserver Start # blks done + # blks left
+
- + + """, @@ -917,7 +1067,8 @@ def display( def printStyle(buffer, title): print( """ - + @@ -971,7 +1122,14 @@ def printStatusHTML(self, buffer, count): if self.stillDown: trclass = "class=dead" - print("""""", file=buffer) + print( + """""", + file=buffer, + ) print("""""", file=buffer) print("""""", file=buffer) print("""""", file=buffer) @@ -1028,7 +1186,14 @@ def printStatusHTML(self, buffer, count): else: trclass = "class=odd" - print("""""", file=buffer) + print( + """""", + file=buffer, + ) print("""""", file=buffer) print("""""", file=buffer) print("""""", file=buffer) @@ -1224,22 +1389,22 @@ def __init__(self, status, info): try: self.connected = int(self.connected) - except: + except Exception: self.connected = 1 try: self.replay = int(self.replay) - except: + except Exception: self.replay = 0 try: self.stopped = int(self.stopped) - except: + except Exception: self.stopped = 0 try: self.chunks = int(self.chunks) - except: + except Exception: self.chunks = -1 self.tiersCount = self.tiers.count(";") + 1 @@ -1320,9 +1485,23 @@ def printStatusHTML(self, buffer, count, showNoRack): else: trclass = "" - print("""""", file=buffer) - print("""""", file=buffer) - print("""""", file=buffer) + print( + """""", + file=buffer, + ) + print( + """""", file=buffer + ) + print( + """""", + file=buffer, + ) print("""""", file=buffer) if self.tiersCount > 0 and displayChunkServerStorageTiers: print( @@ -1334,7 +1513,8 @@ def printStatusHTML(self, buffer, count, showNoRack): """
-
Dead Nodes History
Chunkserver Down Since Reason
Chunkserver Down Since Reason
""", self.displayName, """
""", + self.displayName, + """""", self.down, """""", self.reason, """
""", self.displayName, """
""", + self.displayName, + """""", self.started, """""", self.numDone, """""", self.numLeft, """
""", self.displayName, """""", self.numDrives, """""", self.numWritableDrives, """
""", + self.displayName, + """""", self.numDrives, """""", + self.numWritableDrives, + """""", self.nwrites, """
""" +
""" % count, """ @@ -1347,7 +1527,9 @@ def printStatusHTML(self, buffer, count, showNoRack):
%Used
""", - self.tiers.replace(";", "
").replace(":", ""), + self.tiers.replace(";", "
").replace( + ":", "" + ), """
@@ -1357,19 +1539,45 @@ def printStatusHTML(self, buffer, count, showNoRack): file=buffer, ) else: - print("""""", self.tiersCount, """""", file=buffer) + print( + """""", + self.tiersCount, + """""", + file=buffer, + ) print("""""", "%.2e" % self.used, """""", file=buffer) print("""""", "%.2e" % self.free, """""", file=buffer) print("""""", "%.2e" % self.total, """""", file=buffer) - print("""""", "%.2f" % self.util, """""", file=buffer) + print( + """""", + "%.2f" % self.util, + """""", + file=buffer, + ) print("""""", self.nblocks, """""", file=buffer) print("""""", self.chunks, """""", file=buffer) - print("""""", self.lastheard, """""", file=buffer) - print("""""", self.numReplications, """""", file=buffer) - print("""""", self.numReadReplications, """""", file=buffer) - print("""""", self.ncorrupt, """""", file=buffer) + print( + """""", self.lastheard, """""", file=buffer + ) + print( + """""", + self.numReplications, + """""", + file=buffer, + ) + print( + """""", + self.numReadReplications, + """""", + file=buffer, + ) + print( + """""", self.ncorrupt, """""", file=buffer + ) print("""""", "%.2e" % self.load, """""", file=buffer) - print("""""", self.rack, """""", file=buffer) + print( + """""", self.rack, """""", file=buffer + ) class RackNode: @@ -1396,7 +1604,14 @@ def printHTML(self, buffer, count): if not self.wasStarted: trclass = "class=notstarted" - print("""""", self.displayName, """ """, file=buffer) + print( + """""", + self.displayName, + """ """, + file=buffer, + ) def nodeIsNotUp(status, d): @@ -1405,7 +1620,11 @@ def nodeIsNotUp(status, d): def nodeIsRetiring(status, u): - x = [r for r in status.retiringServers if u.host == r.host and u.port == r.port] + x = [ + r + for r in status.retiringServers + if u.host == r.host and u.port == r.port + ] return len(x) > 0 @@ -1422,7 +1641,11 @@ def mergeDownUpNodes(status): def mergeRetiringUpNodes(status): """merge retiring nodes with up nodes""" - [u.setRetiring(status) for u in status.upServers if nodeIsRetiring(status, u)] + [ + u.setRetiring(status) + for u in status.upServers + if nodeIsRetiring(status, u) + ] def processUpNodes(status, nodes): @@ -1449,7 +1672,9 @@ def processEvacuatingNodes(status, nodes): servers = nodes.split("\t") if not servers: return - status.evacuatingServers = [EvacuatingServer(c) for c in servers if c != ""] + status.evacuatingServers = [ + EvacuatingServer(c) for c in servers if c != "" + ] status.evacuatingServers.sort() @@ -1717,7 +1942,9 @@ def processSystemInfo(systemInfo, sysInfo): systemInfo.logTotalRequestCount = int(info[84].split("=")[1]) if len(info) < 86: return - systemInfo.logExceedLogQueueDepthFailureCount300SecAvg = int(info[85].split("=")[1]) + systemInfo.logExceedLogQueueDepthFailureCount300SecAvg = int( + info[85].split("=")[1] + ) if len(info) < 87: return systemInfo.watchDogPolls = int(info[86].split("=")[1]) @@ -1732,7 +1959,9 @@ def processSystemInfo(systemInfo, sysInfo): systemInfo.watchDogTimerOverrunUsecs = int(info[89].split("=")[1]) if len(info) < 91: return - systemInfo.watchDogTimeSinseLastTimerOverrunUsecs = int(info[90].split("=")[1]) + systemInfo.watchDogTimeSinseLastTimerOverrunUsecs = int( + info[90].split("=")[1] + ) if len(info) < 92: return systemInfo.checkpointTimeSinceLastRunStart = int(info[91].split("=")[1]) @@ -1807,7 +2036,7 @@ def ping(status, metaserver): status.systemInfo.wormMode = "Enabled" else: status.systemInfo.wormMode = "Disabled" - except: + except Exception: pass if line.startswith("Build-version:"): @@ -1815,11 +2044,15 @@ def ping(status, metaserver): continue if line.startswith("Source-version:"): - status.systemInfo.sourceVersion = line[line.find(":") + 1 :].strip() + status.systemInfo.sourceVersion = line[ + line.find(":") + 1 : + ].strip() continue if line.startswith("System Info:"): - processSystemInfo(status.systemInfo, line[line.find(":") + 1 :].strip()) + processSystemInfo( + status.systemInfo, line[line.find(":") + 1 :].strip() + ) continue if line.startswith("Servers:"): @@ -1827,7 +2060,9 @@ def ping(status, metaserver): continue if line.startswith("Storage tiers info names:"): - status.tiersColumnNames = line[line.find(":") + 1 :].strip().split("\t") + status.tiersColumnNames = ( + line[line.find(":") + 1 :].strip().split("\t") + ) continue if line.startswith("Storage tiers info:"): @@ -1835,7 +2070,9 @@ def ping(status, metaserver): continue if line.startswith("Rebalance status:"): - status.rebalanceStatus = parse_fields(line, field_sep="\t", key_sep="=") + status.rebalanceStatus = parse_fields( + line, field_sep="\t", key_sep="=" + ) continue if line.startswith("Config:"): @@ -1873,7 +2110,7 @@ def parse_fields(line, field_sep="\t", key_sep="="): def splitThousands(s, tSep=",", dSep="."): """Splits a general float on thousands. GIGO on general input""" - if s == None: + if s is None: return 0 if not isinstance(s, str): s = str(s) @@ -1909,7 +2146,8 @@ def printRackViewHTML(rack, servers, buffer): print( """
- - +
Rack : """, @@ -1946,7 +2184,8 @@ def rackView(buffer, status):
Dead Node
Retiring Node
Healthy
Healthy, but not enough space for writes
+ Healthy, but not enough space for writes
@@ -1996,7 +2235,9 @@ def processInput(self, inputBody): return -1 newInputBody = inputBody[index:] headers = newInputBody.split("&") - newHeaders = [header.strip()[5:].replace("%25", "%") for header in headers] + newHeaders = [ + header.strip()[5:].replace("%25", "%") for header in headers + ] # newHeaders = [header.strip()[5:] for header in headers] # data MUMU=header1&MUMU=header22&MUMU=header3 @@ -2010,7 +2251,14 @@ def processInput(self, inputBody): return theType def setIntervalData( - self, refreshInterval, predefinedHeaders, predefinedChunkDirHeaders, monthly, dayly, hourly, current + self, + refreshInterval, + predefinedHeaders, + predefinedChunkDirHeaders, + monthly, + dayly, + hourly, + current, ): self.interval = refreshInterval headers = [] @@ -2019,15 +2267,25 @@ def setIntervalData( dirHeaders = [] if predefinedChunkDirHeaders != "": dirHeaders = predefinedChunkDirHeaders.split("&") - self.chunkDataManager = ChunkDataManager(kServerName, headers, monthly, dayly, hourly, current) - self.countersDataManager = ChunkDataManager(None, None, monthly, dayly, hourly, current) - self.chunkDirDataManager = ChunkDataManager(kChunkDirName, dirHeaders, monthly, dayly, hourly, current) + self.chunkDataManager = ChunkDataManager( + kServerName, headers, monthly, dayly, hourly, current + ) + self.countersDataManager = ChunkDataManager( + None, None, monthly, dayly, hourly, current + ) + self.chunkDirDataManager = ChunkDataManager( + kChunkDirName, dirHeaders, monthly, dayly, hourly, current + ) def startThread(self, serverHost, serverPort): - if self.chunkDataManager == None or self.countersDataManager == None or self.chunkDirDataManager == None: + if ( + self.chunkDataManager is None + or self.countersDataManager is None + or self.chunkDirDataManager is None + ): print("ERROR - need to set the chunk intervals data first") return - if self.thread != None: + if self.thread is not None: return self.thread = ChunkThread( @@ -2041,30 +2299,35 @@ def startThread(self, serverHost, serverPort): self.thread.start() def chunksToHTML(self, buffer): - if self.chunkDataManager == None: + if self.chunkDataManager is None: return 0 self.chunkDataManager.lock.acquire() # print "deltaInterval", self.deltaInterval deltaList = self.chunkDataManager.getDelta() iRet = 0 - if deltaList != None: + if deltaList is not None: HtmlPrintData( - kServerName, deltaList, self.chunkDataManager, "no", "Chunk Servers Status", "servers" + kServerName, + deltaList, + self.chunkDataManager, + "no", + "Chunk Servers Status", + "servers", ).printToHTML(buffer) iRet = 1 self.chunkDataManager.lock.release() return iRet def chunkDirsToHTML(self, buffer): - if self.chunkDirDataManager == None: + if self.chunkDirDataManager is None: return 0 self.chunkDirDataManager.lock.acquire() # print "deltaInterval", self.deltaInterval deltaList = self.chunkDirDataManager.getDelta() iRet = 0 - if deltaList != None: + if deltaList is not None: HtmlPrintData( kChunkDirName, deltaList, @@ -2078,21 +2341,23 @@ def chunkDirsToHTML(self, buffer): return iRet def countersToHTML(self, buffer): - if self.countersDataManager == None: + if self.countersDataManager is None: return 0 self.countersDataManager.lock.acquire() # print "deltaInterval", self.deltaInterval deltaList = self.countersDataManager.getDelta() iRet = 0 - if deltaList != None: - HtmlPrintMetaData(deltaList, self.countersDataManager).printToHTML(buffer) + if deltaList is not None: + HtmlPrintMetaData(deltaList, self.countersDataManager).printToHTML( + buffer + ) iRet = 1 self.countersDataManager.lock.release() return iRet def chartsToHTML(self, buffer): - if self.chunkDataManager == None: + if self.chunkDataManager is None: return 0 chartData = ChartData() self.chunkDataManager.lock.acquire() @@ -2147,7 +2412,7 @@ def setDeltaValues(self, inputStr, theType): dataManager = self.chunkDirDataManager else: dataManager = self.chunkDataManager - if dataManager == None: + if dataManager is None: return value = self.getIntValue(inputStr, "refresh") @@ -2155,7 +2420,7 @@ def setDeltaValues(self, inputStr, theType): dataManager.refreshInterval = value str1 = self.getValue(inputStr, "startTime") - if str1 != None: + if str1 is not None: dataManager.minusLatestTime = self.parseMinusTime(str1) else: dataManager.minusLatestTime = 0 @@ -2171,7 +2436,7 @@ def setDeltaValues(self, inputStr, theType): def getIntValue(self, inputStr, keyword): str1 = self.getValue(inputStr, keyword) - if str1 == None: + if str1 is None: return -1 else: return int(str1) @@ -2214,7 +2479,9 @@ class QueryCache: @staticmethod def GetMatchingCounters(chunkserverHosts): result = {} - chunkserverIndex = QueryCache.DIR_COUNTERS.chunkHeaders.index("Chunk-server") + chunkserverIndex = QueryCache.DIR_COUNTERS.chunkHeaders.index( + "Chunk-server" + ) chunkDirIndex = QueryCache.DIR_COUNTERS.chunkHeaders.index("Chunk-dir") for entry in QueryCache.DIR_COUNTERS.chunkServers: dirResult = {} @@ -2235,7 +2502,8 @@ def GetChunkServerCounters(chunkserverHosts): global metaserverPort, metaserverHost if time.time() - QueryCache.TIME < QueryCache.REFRESH_INTERVAL: if len(QueryCache.DIR_COUNTERS.chunkServers) > 0: - # print "Using cached numbers:", QueryCache.DIR_COUNTERS.printDebug() + # print("Using cached numbers:", + # QueryCache.DIR_COUNTERS.printDebug()) return QueryCache.GetMatchingCounters(chunkserverHosts) dir_counters = ChunkServerData() req = REQUEST_GET_DIRS_COUNTERS @@ -2314,14 +2582,23 @@ def HandleQuery(queryPath, metaserver, buffer): status = Status() try: ping(status, metaserver) - print(json.dumps(status.__dict__, cls=ObjectEncoder), file=buffer) + print( + json.dumps(status.__dict__, cls=ObjectEncoder), file=buffer + ) return (200, "") except IOError: return (504, "Unable to ping metaserver") elif queryPath.startswith("/query/chunkserverdirs/"): try: - hostsToMatch = queryPath[len("/query/chunkserverdirs/") :].split("&") - print(json.dumps(QueryCache.GetChunkServerCounters(set(hostsToMatch))), file=buffer) + hostsToMatch = queryPath[ + len("/query/chunkserverdirs/") : + ].split("&") + print( + json.dumps( + QueryCache.GetChunkServerCounters(set(hostsToMatch)) + ), + file=buffer, + ) return (200, "") except IOError: return (504, "Unable to ping metaserver") @@ -2330,7 +2607,9 @@ def HandleQuery(queryPath, metaserver, buffer): class Pinger(SimpleHTTPRequestHandler): def __init__(self, request, client_address, server): - SimpleHTTPRequestHandler.__init__(self, request, client_address, server) + SimpleHTTPRequestHandler.__init__( + self, request, client_address, server + ) def setMeta(self, meta): self.metaserver = meta @@ -2338,7 +2617,7 @@ def setMeta(self, meta): def sendErrorResponse(self, code, msg): self.send_response(code) - body = f"error {msg}".encode("utf-8") + body = ("error %s" % msg).encode("utf-8") # Send standard HTP headers self.send_header("Content-type", "text/html; charset=utf-8") self.send_header("Connection", "close") @@ -2351,7 +2630,7 @@ def sendErrorResponse(self, code, msg): def do_POST(self): global gChunkHandler try: - interval = 60 # todo + # interval = 60 # todo clen = int(self.headers.get("Content-Length").strip()) if clen <= 0: @@ -2388,8 +2667,8 @@ def do_POST(self): self.send_response(400) return - reqHost = self.headers.get("Host") - refresh = "%d ; URL=http://%s%s" % (interval, reqHost, self.path) + # reqHost = self.headers.get("Host") + # refresh = "%d ; URL=http://%s%s" % (interval, reqHost, self.path) self.send_response(200) self.send_header("Content-type", "text/html") @@ -2402,8 +2681,9 @@ def do_POST(self): print("Unable to post to metaserver, IO error") self.send_error(504, "Unable to post to metaserver, IO error") except Exception as e: - print(f"Unable to post to metaserver, {e}") - self.send_error(504, f"Unable to post to metaserver, {e}") + err = "Unable to post to metaserver %s" % e + print(err) + self.send_error(504, err) def do_GET(self): global metaserverPort, metaserverHost, docRoot @@ -2417,11 +2697,13 @@ def do_GET(self): fpath = os.path.abspath(os.path.join(docRoot, self.path[7:])) try: self.send_response(200) - self.send_header("Content-length", str(os.path.getsize(fpath))) + self.send_header( + "Content-length", str(os.path.getsize(fpath)) + ) self.end_headers() self.copyfile(urlopen("file://" + fpath), self.wfile) except IOError: - print(f" failed to find file: {'file://' + fpath} ") + print("failed to find file: file://" + fpath) self.send_error(404, "Not found") return @@ -2429,19 +2711,25 @@ def do_GET(self): fpath = os.path.abspath(self.path[1:]) try: self.send_response(200) - self.send_header("Content-length", str(os.path.getsize(fpath))) + self.send_header( + "Content-length", str(os.path.getsize(fpath)) + ) self.end_headers() self.copyfile(urlopen("file://" + fpath), self.wfile) except IOError: - print(f" failed to find chart file: {'file://' + fpath} ") + print("failed to find chart file: file://" + fpath) self.send_error(404, "Not found") return - metaserver = ServerLocation(node=metaserverHost, port=metaserverPort) + metaserver = ServerLocation( + node=metaserverHost, port=metaserverPort + ) txtStream = StringIO() if self.path.startswith("/query/"): - (ret, msg) = QFSQueryHandler.HandleQuery(self.path, metaserver, txtStream) + (ret, msg) = QFSQueryHandler.HandleQuery( + self.path, metaserver, txtStream + ) if ret != 200: self.send_error(ret, msg) return @@ -2453,7 +2741,7 @@ def do_GET(self): self.wfile.write(bytes_array) return - if gChunkHandler.thread == None: + if gChunkHandler.thread is None: gChunkHandler.startThread(metaserverHost, metaserverPort) status = None @@ -2485,7 +2773,8 @@ def do_GET(self):

Back

- +
@@ -2502,7 +2791,14 @@ def do_GET(self): file=txtStream, ) for k in keyvals: - print("", file=txtStream) + print( + "", + file=txtStream, + ) print( """ @@ -2520,7 +2816,10 @@ def do_GET(self): status = Status() ping(status, metaserver) if gJsonSupported: - print(json.dumps(status.config, sort_keys=True, indent=0), file=txtStream) + print( + json.dumps(status.config, sort_keys=True, indent=0), + file=txtStream, + ) else: print(status.config, file=txtStream) self.path = "/" @@ -2529,7 +2828,10 @@ def do_GET(self): status = Status() ping(status, metaserver) if gJsonSupported: - print(json.dumps(status.vrStatus, sort_keys=True, indent=0), file=txtStream) + print( + json.dumps(status.vrStatus, sort_keys=True, indent=0), + file=txtStream, + ) else: print(status.vrStatus, file=txtStream) self.path = "/" @@ -2562,10 +2864,19 @@ def do_GET(self): self.send_error(404, "Not found") return elif reqType == kBrowse and gQfsBrowser.browsable: - if gQfsBrowser.printToHTML(self.path, metaserverHost, metaserverPort, txtStream) == 0: + if ( + gQfsBrowser.printToHTML( + self.path, metaserverHost, metaserverPort, txtStream + ) + == 0 + ): self.send_error(404, "Not found") return - elif reqType != cMeta and reqType != kConfig and reqType != kVrStatus: + elif ( + reqType != cMeta + and reqType != kConfig + and reqType != kVrStatus + ): status = Status() ping(status, metaserver) printStyle(txtStream, "QFS Status") @@ -2575,14 +2886,19 @@ def do_GET(self): if self.path.startswith("/cluster-view"): rackView(txtStream, status) else: - if reqType == None: + if reqType is None: status.systemStatus(txtStream) reqHost = self.headers.get("Host") if reqHost is not None and autoRefresh > 0: - if reqType != None: + if reqType is not None: refresh = None else: - refresh = str(autoRefresh) + " ; URL=http://" + reqHost + self.path + refresh = ( + str(autoRefresh) + + " ; URL=http://" + + reqHost + + self.path + ) self.send_response(200) if reqType != cMeta: @@ -2600,8 +2916,9 @@ def do_GET(self): print("Unable to ping metaserver, IO error") self.send_error(504, "Unable to ping metaserver, IO error") except Exception as e: - print(f"Unable to ping metaserver, {e}") - self.send_error(504, f"Unable to ping metaserver, {e}") + msg = "Unable to ping metaserver, " + str(e) + print(msg) + self.send_error(504, msg) def parseChunkConfig(config): @@ -2610,26 +2927,28 @@ def parseChunkConfig(config): predefinedChunkDirHeaders = "" try: refreshInterval = config.getint("chunk", "refreshInterval") - except: + except Exception: pass try: predefinedHeaders = config.get("chunk", "predefinedHeaders") - except: + except Exception: pass try: - predefinedChunkDirHeaders = config.get("chunk", "predefinedChunkDirHeaders") - except: + predefinedChunkDirHeaders = config.get( + "chunk", "predefinedChunkDirHeaders" + ) + except Exception: pass theSize = 10 timespan = 10 try: theSize = config.getint("chunk", "currentSize") - except: + except Exception: pass try: timespan = config.getint("chunk", "currentSpan") - except: + except Exception: pass current = ChunkArrayData(timespan, theSize) @@ -2637,11 +2956,11 @@ def parseChunkConfig(config): timespan = 120 try: theSize = config.getint("chunk", "hourlySize") - except: + except Exception: pass try: timespan = config.getint("chunk", "hourlySpan") - except: + except Exception: pass hourly = ChunkArrayData(timespan, theSize) @@ -2649,11 +2968,11 @@ def parseChunkConfig(config): timespan = 120 try: theSize = config.getint("chunk", "daylySize") - except: + except Exception: pass try: timespan = config.getint("chunk", "daylySpan") - except: + except Exception: pass dayly = ChunkArrayData(timespan, theSize) @@ -2661,16 +2980,22 @@ def parseChunkConfig(config): timespan = 120 try: theSize = config.getint("chunk", "monthlySize") - except: + except Exception: pass try: timespan = config.getint("chunk", "monthlySpan") - except: + except Exception: pass monthly = ChunkArrayData(timespan, theSize) gChunkHandler.setIntervalData( - int(refreshInterval), predefinedHeaders, predefinedChunkDirHeaders, monthly, dayly, hourly, current + int(refreshInterval), + predefinedHeaders, + predefinedChunkDirHeaders, + monthly, + dayly, + hourly, + current, ) @@ -2689,40 +3014,44 @@ def parseChunkConfig(config): gQfsBrowser = QFSBrowser() config = configparser.ConfigParser() - config.read_file(open(sys.argv[1])) + config.read(sys.argv[1]) metaserverPort = config.getint("webserver", "webServer.metaserverPort") try: metaserverHost = config.get("webserver", "webServer.metaserverHost") - except: + except Exception: pass try: autoRefresh = config.getint("webserver", "webServer.autoRefresh") - except: + except Exception: pass try: displayPorts = config.getboolean("webserver", "webServer.displayPorts") - except: + except Exception: pass try: socketTimeout = config.getint("webserver", "webServer.socketTimeout") - except: + except Exception: socketTimeout = 90 pass try: - displayChunkServerStorageTiers = config.getboolean("webserver", "webServer.displayChunkServerStorageTiers") - except: + displayChunkServerStorageTiers = config.getboolean( + "webserver", "webServer.displayChunkServerStorageTiers" + ) + except Exception: displayChunkServerStorageTiers = True pass docRoot = config.get("webserver", "webServer.docRoot") try: HOST = config.get("webserver", "webServer.host") - except: + except Exception: HOST = "0.0.0.0" pass myWebserverPort = config.getint("webserver", "webServer.port") try: - objectStoreMode = config.getboolean("webserver", "webServer.objectStoreMode") - except: + objectStoreMode = config.getboolean( + "webserver", "webServer.objectStoreMode" + ) + except Exception: objectStoreMode = False pass if metaserverHost != "127.0.0.1" and metaserverHost != "localhost": @@ -2739,7 +3068,7 @@ def parseChunkConfig(config): pidf = "" try: pidf = config.get("webserver", "webServer.pidFile") - except: + except Exception: pass if 0 < len(pidf): f = open(pidf, "w") diff --git a/wiki/Binary-Distributions.md b/wiki/Binary-Distributions.md index 70aaca5e9..04fa6ad73 100644 --- a/wiki/Binary-Distributions.md +++ b/wiki/Binary-Distributions.md @@ -4,29 +4,29 @@ Tarballs are made available for the following platforms. These are ideal for quickly trying out QFS as a Single Node deployment. See [Trying QFS](//github.com/quantcast/qfs#trying-qfs) for how to use them. -| Release | Ubuntu 14.04 (Trusty Tahr) | Ubuntu 16.04 LTS (Xenial Xerus) | Ubuntu 18.04 LTS (Bionic Beaver) | Ubuntu 20.04.2.0 LTS (Focal Fossa) | Ubuntu 22.04.2 LTS (Jammy Jellyfish) | Debian 9 Stretch | Debian 10 Buster | CentOS 6 | CentOS 7 | CentOS 8 | Mac OS X | Mac OS X arm64 | -| ---------------- | ------------------------------ | ------------------------------- | -------------------------------- | ---------------------------------- | ------------------------------------ | -------------------------- | --------------------------- | -------------------------- | -------------------------- | -------------------------- | ------------------------ | ------------------------------ | -| [master][master] | [download][master,ubuntu14.04] | [download][master,ubuntu16.04] | [download][master,ubuntu18.04] | [download][master,ubuntu20.04] | [download][master,ubuntu22.04] | End of life | [download][master,debian10] | [download][master,centos6] | [download][master,centos7] | [download][master,centos8] | [download][master,macos] | [download][master,macos-arm64] | -| [2.2.6][2.2.6] | [download][2.2.6,ubuntu14.04] | [download][2.2.6,ubuntu16.04] | [download][2.2.6,ubuntu18.04] | [download][2.2.6,ubuntu20.04] | [download][2.2.6,ubuntu22.04] | End of life | [download][2.2.6,debian10] | [download][2.2.6,centos6] | [download][2.2.6,centos7] | [download][2.2.6,centos8] | [download][2.2.6,macos] | -| [2.2.5][2.2.5] | [download][2.2.5,ubuntu14.04] | [download][2.2.5,ubuntu16.04] | [download][2.2.5,ubuntu18.04] | [download][2.2.5,ubuntu20.04] | | [download][2.2.5,debian9] | [download][2.2.5,debian10] | [download][2.2.5,centos6] | [download][2.2.5,centos7] | [download][2.2.5,centos8] | [download][2.2.5,macos] | -| [2.2.4][2.2.4] | [download][2.2.4,ubuntu14.04] | [download][2.2.4,ubuntu16.04] | [download][2.2.4,ubuntu18.04] | [download][2.2.4,ubuntu20.04] | | [download][2.2.4,debian9] | [download][2.2.4,debian10] | [download][2.2.4,centos6] | [download][2.2.4,centos7] | [download][2.2.4,centos8] | [download][2.2.4,macos] | -| [2.2.3][2.2.3] | [download][2.2.3,ubuntu14.04] | [download][2.2.3,ubuntu16.04] | [download][2.2.3,ubuntu18.04] | [download][2.2.3,ubuntu20.04] | | [download][2.2.3,debian9] | [download][2.2.3,debian10] | [download][2.2.3,centos6] | [download][2.2.3,centos7] | [download][2.2.3,centos8] | [download][2.2.3,macos] | -| [2.2.2][2.2.2] | [download][2.2.2,ubuntu14.04] | [download][2.2.2,ubuntu16.04] | [download][2.2.2,ubuntu18.04] | | | [download][2.2.2,debian9] | | [download][2.2.2,centos6] | [download][2.2.2,centos7] | | [download][2.2.2,macos] | -| [2.2.1][2.2.1] | [download][2.2.1,ubuntu14.04] | [download][2.2.1,ubuntu16.04] | [download][2.2.1,ubuntu18.04] | | | [download][2.2.1,debian9] | | [download][2.2.1,centos6] | [download][2.2.1,centos7] | | [download][2.2.1,macos] | -| [2.2.0][2.2.0] | [download][2.2.0,ubuntu14.04] | [download][2.2.0,ubuntu16.04] | [download][2.2.0,ubuntu18.04] | | | [download][2.2.0,debian9] | | [download][2.2.0,centos6] | [download][2.2.0,centos7] | | [download][2.2.0,macos] | -| [2.1.3][2.1.3] | [download][2.1.3,ubuntu14.04] | [download][2.1.3,ubuntu16.04] | [download][2.1.3,ubuntu18.04] | | | [download][2.1.3,debian9] | | [download][2.1.3,centos6] | [download][2.1.3,centos7] | | [download][2.1.3,macos] | -| [2.1.2][2.1.2] | [download][2.1.2,ubuntu14.04] | [download][2.1.2,ubuntu16.04] | [download][2.1.2,ubuntu18.04] | | | [download][2.1.2,debian9] | | [download][2.1.2,centos6] | [download][2.1.2,centos7] | | [download][2.1.2,macos] | -| [2.1.1][2.1.1] | [download][2.1.1,ubuntu14.04] | [download][2.1.1,ubuntu16.04] | [download][2.1.1,ubuntu18.04] | | | [download][2.1.1,debian9] | | [download][2.1.1,centos6] | [download][2.1.1,centos7] | | [download][2.1.1,macos] | -| [2.1.0][2.1.0] | [download][2.1.0,ubuntu14.04] | | [download][2.1.0,ubuntu18.04] | | | [download][2.1.0,debian9] | | [download][2.1.0,centos6] | [download][2.1.0,centos7] | | | -| [2.0.0][2.0.0] | | | | | | | | | | | | -| [1.2.1][1.2.1] | [download][1.2.1,ubuntu] | | | | | | | [download][1.2.1,centos6] | [download][1.2.1,centos7] | | [download][1.2.1,macos] | -| [1.2.0][1.2.0] | [download][1.2.0,ubuntu] | | | | | | | [download][1.2.0,centos6] | [download][1.2.0,centos7] | | [download][1.2.0,macos] | -| [1.1.4][1.1.4] | [download][1.1.4,ubuntu] | | | | | | | [download][1.1.4,centos6] | | | [download][1.1.4,macos] | -| [1.1.3][1.1.3] | [download][1.1.3,ubuntu] | | | | | | | [download][1.1.3,centos6] | | | [download][1.1.3,macos] | -| [1.1.2][1.1.2] | [download][1.1.2,ubuntu] | | | | | | | [download][1.1.2,centos6] | | | [download][1.1.2,macos] | -| [1.1.1][1.1.1] | [download][1.1.1,ubuntu] | | | | | | | [download][1.1.1,centos6] | | | [download][1.1.1,macos] | -| [1.1.0][1.1.0] | [download][1.1.0,ubuntu] | | | | | | | [download][1.1.0,centos6] | | | [download][1.1.0,macos] | -| [1.0.1][1.0.1] | [download][1.0.1,ubuntu] | | | | | | | [download][1.0.1,centos6] | | | | +| Release | Ubuntu 14.04 (Trusty Tahr) | Ubuntu 16.04 LTS (Xenial Xerus) | Ubuntu 18.04 LTS (Bionic Beaver) | Ubuntu 20.04.2.0 LTS (Focal Fossa) | Ubuntu 22.04 LTS (Jammy Jellyfish) | Ubuntu 24.04 LTS | Debian 9 Stretch | Debian 10 Buster | Debian 11 Bullseye | Debian 12 Bookworm | CentOS 6 | CentOS 7 | CentOS 8 | Rocky Linux 9 | Mac OS X | Mac OS X arm64 | +| ---------------- | ------------------------------ | ------------------------------- | -------------------------------- | ---------------------------------- | ------------------------------------ | ----------------------------- | -------------------------- | --------------------------- | --------------------------- | --------------------------- |--------------------------- | -------------------------- | -------------------------- | ------------------------- | ------------------------ | ------------------------------ | +| [master][master] | [download][master,ubuntu14.04] | [download][master,ubuntu16.04] | [download][master,ubuntu18.04] | [download][master,ubuntu20.04] | [download][master,ubuntu22.04] | [download][master,ubuntu24.04] | End of life | [download][master,debian10] | [download][master,debian11] | [download][master,debian12] | [download][master,centos6] | [download][master,centos7] | [download][master,centos8] | [download][master,rocky9] | [download][master,macos] | [download][master,macos-arm64] | +| [2.2.6][2.2.6] | [download][2.2.6,ubuntu14.04] | [download][2.2.6,ubuntu16.04] | [download][2.2.6,ubuntu18.04] | [download][2.2.6,ubuntu20.04] | [download][2.2.6,ubuntu22.04] | | End of life | [download][2.2.6,debian10] | | | [download][2.2.6,centos6] | [download][2.2.6,centos7] | [download][2.2.6,centos8] | | [download][2.2.6,macos] | | +| [2.2.5][2.2.5] | [download][2.2.5,ubuntu14.04] | [download][2.2.5,ubuntu16.04] | [download][2.2.5,ubuntu18.04] | [download][2.2.5,ubuntu20.04] | | | [download][2.2.5,debian9] | [download][2.2.5,debian10] | | | [download][2.2.5,centos6] | [download][2.2.5,centos7] | [download][2.2.5,centos8] | | [download][2.2.5,macos] | | +| [2.2.4][2.2.4] | [download][2.2.4,ubuntu14.04] | [download][2.2.4,ubuntu16.04] | [download][2.2.4,ubuntu18.04] | [download][2.2.4,ubuntu20.04] | | | [download][2.2.4,debian9] | [download][2.2.4,debian10] | | | [download][2.2.4,centos6] | [download][2.2.4,centos7] | [download][2.2.4,centos8] | | [download][2.2.4,macos] | | +| [2.2.3][2.2.3] | [download][2.2.3,ubuntu14.04] | [download][2.2.3,ubuntu16.04] | [download][2.2.3,ubuntu18.04] | [download][2.2.3,ubuntu20.04] | | | [download][2.2.3,debian9] | [download][2.2.3,debian10] | | | [download][2.2.3,centos6] | [download][2.2.3,centos7] | [download][2.2.3,centos8] | | [download][2.2.3,macos] | | +| [2.2.2][2.2.2] | [download][2.2.2,ubuntu14.04] | [download][2.2.2,ubuntu16.04] | [download][2.2.2,ubuntu18.04] | | | | [download][2.2.2,debian9] | | | | [download][2.2.2,centos6] | [download][2.2.2,centos7] | | | [download][2.2.2,macos] | | +| [2.2.1][2.2.1] | [download][2.2.1,ubuntu14.04] | [download][2.2.1,ubuntu16.04] | [download][2.2.1,ubuntu18.04] | | | | [download][2.2.1,debian9] | | | | [download][2.2.1,centos6] | [download][2.2.1,centos7] | | | [download][2.2.1,macos] | | +| [2.2.0][2.2.0] | [download][2.2.0,ubuntu14.04] | [download][2.2.0,ubuntu16.04] | [download][2.2.0,ubuntu18.04] | | | | [download][2.2.0,debian9] | | | | [download][2.2.0,centos6] | [download][2.2.0,centos7] | | | [download][2.2.0,macos] | | +| [2.1.3][2.1.3] | [download][2.1.3,ubuntu14.04] | [download][2.1.3,ubuntu16.04] | [download][2.1.3,ubuntu18.04] | | | | [download][2.1.3,debian9] | | | | [download][2.1.3,centos6] | [download][2.1.3,centos7] | | | [download][2.1.3,macos] | | +| [2.1.2][2.1.2] | [download][2.1.2,ubuntu14.04] | [download][2.1.2,ubuntu16.04] | [download][2.1.2,ubuntu18.04] | | | | [download][2.1.2,debian9] | | | | [download][2.1.2,centos6] | [download][2.1.2,centos7] | | | [download][2.1.2,macos] | | +| [2.1.1][2.1.1] | [download][2.1.1,ubuntu14.04] | [download][2.1.1,ubuntu16.04] | [download][2.1.1,ubuntu18.04] | | | | [download][2.1.1,debian9] | | | | [download][2.1.1,centos6] | [download][2.1.1,centos7] | | | [download][2.1.1,macos] | | +| [2.1.0][2.1.0] | [download][2.1.0,ubuntu14.04] | | [download][2.1.0,ubuntu18.04] | | | | [download][2.1.0,debian9] | | | | [download][2.1.0,centos6] | [download][2.1.0,centos7] | | | | | +| [2.0.0][2.0.0] | | | | | | | | | | | | | | | | | +| [1.2.1][1.2.1] | [download][1.2.1,ubuntu] | | | | | | | | | | [download][1.2.1,centos6] | [download][1.2.1,centos7] | | | [download][1.2.1,macos] | | +| [1.2.0][1.2.0] | [download][1.2.0,ubuntu] | | | | | | | | | | [download][1.2.0,centos6] | [download][1.2.0,centos7] | | | [download][1.2.0,macos] | | +| [1.1.4][1.1.4] | [download][1.1.4,ubuntu] | | | | | | | | | | [download][1.1.4,centos6] | | | | [download][1.1.4,macos] | | +| [1.1.3][1.1.3] | [download][1.1.3,ubuntu] | | | | | | | | | | [download][1.1.3,centos6] | | | | [download][1.1.3,macos] | | +| [1.1.2][1.1.2] | [download][1.1.2,ubuntu] | | | | | | | | | | [download][1.1.2,centos6] | | | | [download][1.1.2,macos] | | +| [1.1.1][1.1.1] | [download][1.1.1,ubuntu] | | | | | | | | | | [download][1.1.1,centos6] | | | | [download][1.1.1,macos] | | +| [1.1.0][1.1.0] | [download][1.1.0,ubuntu] | | | | | | | | | | [download][1.1.0,centos6] | | | | [download][1.1.0,macos] | | +| [1.0.1][1.0.1] | [download][1.0.1,ubuntu] | | | | | | | | | | [download][1.0.1,centos6] | | | | | | ![Quantcast](//pixel.quantserve.com/pixel/p-9fYuixa7g_Hm2.gif?labels=opensource.qfs.wiki) @@ -100,6 +100,7 @@ QFS](//github.com/quantcast/qfs#trying-qfs) for how to use them. [2.2.4,ubuntu20.04]: https://s3.amazonaws.com/quantcast-qfs/qfs-ubuntu-20.04-2.2.4-x86_64.tgz [2.2.3,ubuntu20.04]: https://s3.amazonaws.com/quantcast-qfs/qfs-ubuntu-20.04-2.2.3-x86_64.tgz [master,ubuntu22.04]: https://s3.amazonaws.com/quantcast-qfs/qfs-ubuntu-22.04-master-x86_64.tgz +[master,ubuntu24.04]: https://s3.amazonaws.com/quantcast-qfs/qfs-ubuntu-24.04-master-x86_64.tgz [2.2.6,ubuntu22.04]: https://s3.amazonaws.com/quantcast-qfs/qfs-ubuntu-22.04-2.2.6-x86_64.tgz [2.2.5,debian9]: https://s3.amazonaws.com/quantcast-qfs/qfs-debian-9-2.2.5-x86_64.tgz [2.2.4,debian9]: https://s3.amazonaws.com/quantcast-qfs/qfs-debian-9-2.2.4-x86_64.tgz @@ -112,6 +113,8 @@ QFS](//github.com/quantcast/qfs#trying-qfs) for how to use them. [2.1.1,debian9]: https://s3.amazonaws.com/quantcast-qfs/qfs-debian-9-2.1.1-x86_64.tgz [2.1.0,debian9]: https://s3.amazonaws.com/quantcast-qfs/qfs-debian-9-2.1.0-x86_64.tgz [master,debian10]: https://s3.amazonaws.com/quantcast-qfs/qfs-debian-10-master-x86_64.tgz +[master,debian11]: https://s3.amazonaws.com/quantcast-qfs/qfs-debian-11-master-x86_64.tgz +[master,debian12]: https://s3.amazonaws.com/quantcast-qfs/qfs-debian-12-master-x86_64.tgz [2.2.6,debian10]: https://s3.amazonaws.com/quantcast-qfs/qfs-debian-10-2.2.6-x86_64.tgz [2.2.5,debian10]: https://s3.amazonaws.com/quantcast-qfs/qfs-debian-10-2.2.5-x86_64.tgz [2.2.4,debian10]: https://s3.amazonaws.com/quantcast-qfs/qfs-debian-10-2.2.4-x86_64.tgz @@ -155,6 +158,7 @@ QFS](//github.com/quantcast/qfs#trying-qfs) for how to use them. [2.2.5,centos8]: https://s3.amazonaws.com/quantcast-qfs/qfs-centos-8-2.2.5-x86_64.tgz [2.2.4,centos8]: https://s3.amazonaws.com/quantcast-qfs/qfs-centos-8-2.2.4-x86_64.tgz [2.2.3,centos8]: https://s3.amazonaws.com/quantcast-qfs/qfs-centos-8-2.2.3-x86_64.tgz +[master,rocky9]: https://s3.amazonaws.com/quantcast-qfs/qfs-rocky-9-master-x86_64.tgz [master,macos]: https://s3.amazonaws.com/quantcast-qfs/qfs-darwin-master-x86_64.tgz [2.2.6,macos]: https://s3.amazonaws.com/quantcast-qfs/qfs-darwin-2.2.6-x86_64.tgz [2.2.5,macos]: https://s3.amazonaws.com/quantcast-qfs/qfs-darwin-2.2.5-x86_64.tgz diff --git a/wiki/Developer-Documentation.md b/wiki/Developer-Documentation.md index 74df6bd10..d796c84c5 100644 --- a/wiki/Developer-Documentation.md +++ b/wiki/Developer-Documentation.md @@ -122,33 +122,6 @@ and performs various checks, it may take a couple of minutes to complete. If you are running this from a partition that is nearly full, the test may fail. Please refer to `maxSpaceUtilizationThreshold` in [[Configuration Reference]]. -#### Writing Tests -C++ tests are stored in `src/cc/tests`. QFS uses [Google Test][gt] as its -testing framework. Unit tests which test specific functionality in a function or -library can simply use a bare test, e.g. `TEST(Foo, Bar)`. However, all -integration tests (tests which interact with the metaserver or chunkserver) -should use test fixtures, subclassing the `QFSTest` class. For example, you -could add a new test class like so: - - #include - #include "tests/integtest.h" - - class FooTest : public QFSTest { - public: - virtual void SetUp() { ... } - virtual void TearDown() { ... } - }; - - TEST_F(FooTest, TestBar) { - ... - } - -Furthermore, you should place tests in the corresponding directory for which -functionality you are testing. For example, if you are testing functionality for -code stored in the `libclient` directory, place the tests in -`src/cc/tests/libclient`. Either a unit or integration test should be added for -each functionality change to QFS. Please see the tests in `src/cc/tests` for -some examples on how QFS has already implemented various tests. ### Developing a C++ client To develop a c++ client, see the sample code in the @@ -196,26 +169,28 @@ To execute, $ qfsjar=`echo ../../build/qfs-access/qfs-access*.jar` $ java -Djava.library.path="$libdir" -classpath ".:$qfsjar" QfsSample 127.0.0.1 20000 -Compiling Python Side (Experimental) +### Compiling Python Side ------------------------------------ Python applications can access QFS by using the python extension module. This section describes how to build and install the python extension module. To build -the python module, use the command `make python`. The file -`build/build//qfs.so` will be created at the end. +the python module, use the command `make python`. If build succeeds, then python +wheel `build/release/python-qfs/dist/qfs*.whl` will be created at the end. ### Developing a Python Client -Python applications use the python QFS extension module, `qfs.so`, to get at the -C++ QFS client library. The example program +Python applications use the python QFS extension module `qfs`. The example program `examples/python/qfssample.py` illustrates how to write a Python client for QFS. - -Set `PYTHONPATH` accordingly if you are using a `qfs.so` install path different -from the default path, so that the python run-time can detect the `qfs.so`. -Also, ensure that `LD_LIBRARY_PATH` has the path to the QFS libraries. For -example, - - $ export PYTHONPATH=/usr/lib/python2.7/dist-packages:$PYTHONPATH - $ export LD_LIBRARY_PATH=/usr/lib/python2.7/dist-packages/qfs:$LD_LIBRARY_PATH - $ python examples/python/qfssample.py +The module requires python 3.6 or later version. + +All required QFS libraries are included with QFS python module. Relative run +linker paths are used in QFS shared libraries, therefore additional run time +linker configuration (like setting `LD_LIBRARY_PATH` and/or +`DYLD_LIBRARRY_PATH`) should not be required. +QFS python wheel can be installed using pip: +`python -m pip install build/release/python-qfs/dist/qfs*.whl` +To run the example program create or modify existing configuration file +`examples/python/qfssample.cfg` by specifying meta server host and port, and +then run the example: +`python examples/python/qfssample.py examples/python/qfssample.cfg` ![Quantcast](//pixel.quantserve.com/pixel/p-9fYuixa7g_Hm2.gif?labels=opensource.qfs.wiki) diff --git a/wiki/Release-Notes.md b/wiki/Release-Notes.md index 0e070220b..deaaf098e 100644 --- a/wiki/Release-Notes.md +++ b/wiki/Release-Notes.md @@ -1,15 +1,47 @@ +# QFS release notes + +## QFS version 2.2.7 + +## New features + +1. Support for python3. Native / platform independent python code is now +compatible with python2 and python3, including QFS meta server web UI and meta +server backup script. QFS python module / bindings now is only compatible with +python3, and python2 is no longer supported. + +2. All required QFS shared libraries are now installed along with QFS python +module, making QFS module installation self contained. On macOS and linux +runtime relative linker paths are now used in order to make installed QFS shared +libraries relocatable. With this explicitly specifying QFS libraries runtime +linkers paths with python module is no longer required. Python QFS module wheel +is now built and included into QFS tarball. + +## Minor improvements + +1. Benchmarks mstress build now uses maven instead of ant, and is now included +in QFS build and tarball by default. + +2. QFS python module is now built, tested, and included into QFS tarball if +python 3.6 or higher is available. + +3. ARM Neon support is now enabled for QFS Reed-Solomon and GF complete +libraries on Mac OS with Apple silicon. + ## QFS version 2.2.6 ## New features + 1. Added go language bindings. ## Bug fixes + 1. Increase default watchdog poll interval by 0.15 to 1.15 seconds in order to avoid spurious timeouts during idle time due to 1 second default net manager sleep interval. Change poll interval dependent default parameters calculation accordingly. -## Minor improvements. +## Minor improvements + 1. Additional object store chunk server / AP assignment modes. One is choose AP with matching rack only (i.e. with no fall back to choosing from all available APs), and the other is to choose AP with with matching rack only if client rack @@ -100,7 +132,8 @@ theory, connection might never get out of this state. 15. Added support for org.apache.hadoop.fs.FileSystem.getScheme(). This method is used by Spark NLP, and possibly other packages. -## Minor improvements. +## Minor improvements + 1. Meta server: simplify log chunk in flight RPC handling given that now the RPC can no longer be en-queued after the first teardown attempt when meta chunk server bye RPC for a given chunk server is en-queued. Implement backward @@ -123,6 +156,7 @@ to be used for debugging and recovery. ## QFS version 2.2.4 ## Bug fixes + 1. Meta server: fix condition reversal in rename RPC WORM mode specific handling logic resulting treating files with .tmp suffix as files with no such suffix and the other way around. @@ -269,7 +303,7 @@ making progress due to likely server and / or OS malfunction. ## New features 1. Non blocking DNS resolver. Resolver implementation at - https://github.com/wahern/dns is used by default. It is possible to configure + is used by default. It is possible to configure QFS to use OS DNS resolver. DNS related configuration options are described in the annotated [configuration files](https://github.com/quantcast/qfs/tree/master/conf) @@ -289,11 +323,11 @@ making progress due to likely server and / or OS malfunction. 3. Fixed file system URL parsing in QFS tool. -## Upgrade from 2.0. release. +## Upgrade from 2.0. release The 2.0.1 release is backward and forward compatible with 2.0 release. -## QFS version 2.0. +## QFS version 2.0 ## New features
""", title, """
", htmlEscape(k), "", htmlEscape(keyvals[k]), "
", + htmlEscape(k), + "", + htmlEscape(keyvals[k]), + "