From a92b0e1bbab24b7993de6a9e3b040136703aa4f0 Mon Sep 17 00:00:00 2001 From: David Burgess Date: Wed, 12 Oct 2011 07:44:40 +0000 Subject: [PATCH] Adding in the missing Transceiver52M directory git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2307 19bc5d8c-e614-43d4-8b26-e1612bc8e597 --- Transceiver52M/Complex.h | 267 + Transceiver52M/DummyLoad.cpp | 146 + Transceiver52M/DummyLoad.h | 132 + Transceiver52M/Makefile | 661 ++ Transceiver52M/Makefile.am | 88 + Transceiver52M/Makefile.in | 661 ++ Transceiver52M/README | 35 + Transceiver52M/README.DFEsymbolspaced | 14 + Transceiver52M/README.Talgorithm | 15 + Transceiver52M/Transceiver.cpp | 798 ++ Transceiver52M/Transceiver.h | 207 + Transceiver52M/USRPDevice.cpp | 631 ++ Transceiver52M/USRPDevice.h | 261 + Transceiver52M/USRPping.cpp | 96 + Transceiver52M/inband-signaling-usb | 314 + Transceiver52M/pulseApproximate.m | 15 + Transceiver52M/radioDevice.h | 115 + Transceiver52M/radioInterface.cpp | 315 + Transceiver52M/radioInterface.h | 243 + Transceiver52M/runTransceiver.cpp | 123 + Transceiver52M/sigProcLib.cpp | 1486 ++++ Transceiver52M/sigProcLib.h | 386 + Transceiver52M/sigProcLibTest.cpp | 168 + Transceiver52M/std_inband.rbf | Bin 0 -> 176507 bytes configure | 10418 +++++++++--------------- 25 files changed, 11103 insertions(+), 6492 deletions(-) create mode 100644 Transceiver52M/Complex.h create mode 100644 Transceiver52M/DummyLoad.cpp create mode 100644 Transceiver52M/DummyLoad.h create mode 100644 Transceiver52M/Makefile create mode 100644 Transceiver52M/Makefile.am create mode 100644 Transceiver52M/Makefile.in create mode 100644 Transceiver52M/README create mode 100644 Transceiver52M/README.DFEsymbolspaced create mode 100644 Transceiver52M/README.Talgorithm create mode 100644 Transceiver52M/Transceiver.cpp create mode 100644 Transceiver52M/Transceiver.h create mode 100644 Transceiver52M/USRPDevice.cpp create mode 100644 Transceiver52M/USRPDevice.h create mode 100644 Transceiver52M/USRPping.cpp create mode 100644 Transceiver52M/inband-signaling-usb create mode 100644 Transceiver52M/pulseApproximate.m create mode 100644 Transceiver52M/radioDevice.h create mode 100644 Transceiver52M/radioInterface.cpp create mode 100644 Transceiver52M/radioInterface.h create mode 100644 Transceiver52M/runTransceiver.cpp create mode 100644 Transceiver52M/sigProcLib.cpp create mode 100644 Transceiver52M/sigProcLib.h create mode 100644 Transceiver52M/sigProcLibTest.cpp create mode 100755 Transceiver52M/std_inband.rbf diff --git a/Transceiver52M/Complex.h b/Transceiver52M/Complex.h new file mode 100644 index 0000000..32eb18f --- /dev/null +++ b/Transceiver52M/Complex.h @@ -0,0 +1,267 @@ +/**@file templates for Complex classes +unlike the built-in complex<> templates, these inline most operations for speed +*/ + +/* +* Copyright 2008 Free Software Foundation, Inc. +* +* This software is distributed under multiple licenses; see the COPYING file in the main directory for licensing information for this specific distribuion. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + + + + +#ifndef COMPLEXCPP_H +#define COMPLEXCPP_H + +#include +#include + + +template class Complex { + +public: + + Real r, i; + + /**@name constructors */ + //@{ + /**@name from real */ + //@{ + Complex(Real real, Real imag) {r=real; i=imag;} // x=complex(a,b) + Complex(Real real) {r=real; i=0;} // x=complex(a) + //@} + /**@name from nothing */ + //@{ + Complex() {r=(Real)0; i=(Real)0;} // x=complex() + //@} + /**@name from other complex */ + //@{ + Complex(const Complex& z) {r=z.r; i=z.i;} // x=complex(z) + Complex(const Complex& z) {r=z.r; i=z.i;} // x=complex(z) + Complex(const Complex& z) {r=z.r; i=z.i;} // x=complex(z) + //@} + //@} + + /**@name casting up from basic numeric types */ + //@{ + Complex& operator=(char a) { r=(Real)a; i=(Real)0; return *this; } + Complex& operator=(int a) { r=(Real)a; i=(Real)0; return *this; } + Complex& operator=(long int a) { r=(Real)a; i=(Real)0; return *this; } + Complex& operator=(short a) { r=(Real)a; i=(Real)0; return *this; } + Complex& operator=(float a) { r=(Real)a; i=(Real)0; return *this; } + Complex& operator=(double a) { r=(Real)a; i=(Real)0; return *this; } + Complex& operator=(long double a) { r=(Real)a; i=(Real)0; return *this; } + //@} + + /**@name arithmetic */ + //@{ + /**@ binary operators */ + //@{ + Complex operator+(const Complex& a) const { return Complex(r+a.r, i+a.i); } + Complex operator+(Real a) const { return Complex(r+a,i); } + Complex operator-(const Complex& a) const { return Complex(r-a.r, i-a.i); } + Complex operator-(Real a) const { return Complex(r-a,i); } + Complex operator*(const Complex& a) const { return Complex(r*a.r-i*a.i, r*a.i+i*a.r); } + Complex operator*(Real a) const { return Complex(r*a, i*a); } + Complex operator/(const Complex& a) const { return operator*(a.inv()); } + Complex operator/(Real a) const { return Complex(r/a, i/a); } + //@} + /*@name component-wise product */ + //@{ + Complex operator&(const Complex& a) const { return Complex(r*a.r, i*a.i); } + //@} + /*@name inplace operations */ + //@{ + Complex& operator+=(const Complex&); + Complex& operator-=(const Complex&); + Complex& operator*=(const Complex&); + Complex& operator/=(const Complex&); + Complex& operator+=(Real); + Complex& operator-=(Real); + Complex& operator*=(Real); + Complex& operator/=(Real); + //@} + //@} + + /**@name comparisons */ + //@{ + bool operator==(const Complex& a) const { return ((i==a.i)&&(r==a.r)); } + bool operator!=(const Complex& a) const { return ((i!=a.i)||(r!=a.r)); } + bool operator<(const Complex& a) const { return norm2()(const Complex& a) const { return norm2()>a.norm2(); } + //@} + + /// reciprocation + Complex inv() const; + + // unary functions -- inlined + /**@name unary functions */ + //@{ + /**@name inlined */ + //@{ + Complex conj() const { return Complex(r,-i); } + Real norm2() const { return i*i+r*r; } + Complex flip() const { return Complex(i,r); } + Real real() const { return r;} + Real imag() const { return i;} + Complex neg() const { return Complex(-r, -i); } + bool isZero() const { return ((r==(Real)0) && (i==(Real)0)); } + //@} + /**@name not inlined due to outside calls */ + //@{ + Real abs() const { return ::sqrt(norm2()); } + Real arg() const { return ::atan2(i,r); } + float dB() const { return 10.0*log10(norm2()); } + Complex exp() const { return expj(i)*(::exp(r)); } + Complex unit() const; ///< unit phasor with same angle + Complex log() const { return Complex(::log(abs()),arg()); } + Complex pow(double n) const { return expj(arg()*n)*(::pow(abs(),n)); } + Complex sqrt() const { return pow(0.5); } + //@} + //@} + +}; + + +/**@name standard Complex manifestations */ +//@{ +typedef Complex complex; +typedef Complex dcomplex; +typedef Complex complex16; +typedef Complex complex32; +//@} + + +template inline Complex Complex::inv() const +{ + Real nVal; + + nVal = norm2(); + return Complex(r/nVal, -i/nVal); +} + +template Complex& Complex::operator+=(const Complex& a) +{ + r += a.r; + i += a.i; + return *this; +} + +template Complex& Complex::operator*=(const Complex& a) +{ + operator*(a); + return *this; +} + +template Complex& Complex::operator-=(const Complex& a) +{ + r -= a.r; + i -= a.i; + return *this; +} + +template Complex& Complex::operator/=(const Complex& a) +{ + operator/(a); + return *this; +} + + +/* op= style operations with reals */ + +template Complex& Complex::operator+=(Real a) +{ + r += a; + return *this; +} + +template Complex& Complex::operator*=(Real a) +{ + r *=a; + i *=a; + return *this; +} + +template Complex& Complex::operator-=(Real a) +{ + r -= a; + return *this; +} + +template Complex& Complex::operator/=(Real a) +{ + r /= a; + i /= a; + return *this; +} + + +template Complex Complex::unit() const +{ + Real absVal = abs(); + return (Complex(r/absVal, i/absVal)); +} + + + +/**@name complex functions outside of the Complex<> class. */ +//@{ + +/** this allows type-commutative multiplication */ +template Complex operator*(Real a, const Complex& z) +{ + return Complex(z.r*a, z.i*a); +} + + +/** this allows type-commutative addition */ +template Complex operator+(Real a, const Complex& z) +{ + return Complex(z.r+a, z.i); +} + + +/** this allows type-commutative subtraction */ +template Complex operator-(Real a, const Complex& z) +{ + return Complex(z.r-a, z.i); +} + + + +/// e^jphi +template Complex expj(Real phi) +{ + return Complex(cos(phi),sin(phi)); +} + +/// phasor expression of a complex number +template Complex phasor(Real C, Real phi) +{ + return (expj(phi)*C); +} + +/// formatted stream output +template std::ostream& operator<<(std::ostream& os, const Complex& z) +{ + os << z.r << ' '; + //os << z.r << ", "; + //if (z.i>=0) { os << "+"; } + os << z.i << "j"; + os << "\n"; + return os; +} + +//@} + + +#endif diff --git a/Transceiver52M/DummyLoad.cpp b/Transceiver52M/DummyLoad.cpp new file mode 100644 index 0000000..d11226e --- /dev/null +++ b/Transceiver52M/DummyLoad.cpp @@ -0,0 +1,146 @@ +/* +* Copyright 2008, 2009 Free Software Foundation, Inc. +* +* This software is distributed under the terms of the GNU Public License. +* See the COPYING file in the main directory for details. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +*/ + + +/* + Compilation Flags + + SWLOOPBACK compile for software loopback testing +*/ + + +#include +#include +#include +#include "Threads.h" +#include "DummyLoad.h" + +#include + + +using namespace std; + + + +int DummyLoad::loadBurst(short *wDummyBurst, int len) { + dummyBurst = wDummyBurst; + dummyBurstSz = len; +} + + +DummyLoad::DummyLoad (double _desiredSampleRate) +{ + LOG(INFO) << "creating USRP device..."; + sampleRate = _desiredSampleRate; +} + +void DummyLoad::updateTime(void) { + gettimeofday(&currTime,NULL); + double timeElapsed = (currTime.tv_sec - startTime.tv_sec)*1.0e6 + + (currTime.tv_usec - startTime.tv_usec); + currstamp = (TIMESTAMP) floor(timeElapsed/(1.0e6/sampleRate)); +} + +bool DummyLoad::make(bool wSkipRx) +{ + + samplesRead = 0; + samplesWritten = 0; + return true; +} + +bool DummyLoad::start() +{ + LOG(INFO) << "starting USRP..."; + underrun = false; + gettimeofday(&startTime,NULL); + dummyBurstCursor = 0; + return true; +} + +bool DummyLoad::stop() +{ + return true; +} + + +// NOTE: Assumes sequential reads +int DummyLoad::readSamples(short *buf, int len, bool *overrun, + TIMESTAMP timestamp, + bool *wUnderrun, + unsigned *RSSI) +{ + updateTime(); + underrunLock.lock(); + *wUnderrun = underrun; + underrunLock.unlock(); + if (currstamp+len < timestamp) { + usleep(100); + return NULL; + } + else if (currstamp < timestamp) { + usleep(100); + return NULL; + } + else if (timestamp+len < currstamp) { + memcpy(buf,dummyBurst+dummyBurstCursor*2,sizeof(short)*2*(dummyBurstSz-dummyBurstCursor)); + int retVal = dummyBurstSz-dummyBurstCursor; + dummyBurstCursor = 0; + return retVal; + } + else if (timestamp + len > currstamp) { + int amount = timestamp + len - currstamp; + if (amount < dummyBurstSz-dummyBurstCursor) { + memcpy(buf,dummyBurst+dummyBurstCursor*2,sizeof(short)*2*amount); + dummyBurstCursor += amount; + return amount; + } + else { + memcpy(buf,dummyBurst+dummyBurstCursor*2,sizeof(short)*2*(dummyBurstSz-dummyBurstCursor)); + int retVal = dummyBurstSz-dummyBurstCursor; + dummyBurstCursor = 0; + return retVal; + } + } + return 0; +} + +int DummyLoad::writeSamples(short *buf, int len, bool *wUnderrun, + unsigned long long timestamp, + bool isControl) +{ + updateTime(); + underrunLock.lock(); + underrun |= (currstamp+len < timestamp); + underrunLock.unlock(); + return len; +} + +bool DummyLoad::updateAlignment(TIMESTAMP timestamp) +{ + return true; +} + +bool DummyLoad::setTxFreq(double wFreq) { return true;}; +bool DummyLoad::setRxFreq(double wFreq) { return true;}; diff --git a/Transceiver52M/DummyLoad.h b/Transceiver52M/DummyLoad.h new file mode 100644 index 0000000..74a962d --- /dev/null +++ b/Transceiver52M/DummyLoad.h @@ -0,0 +1,132 @@ +/* +* Copyright 2008 Free Software Foundation, Inc. +* +* This software is distributed under the terms of the GNU Public License. +* See the COPYING file in the main directory for details. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +*/ + + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "radioDevice.h" + + +#include +#include +#include +#include + + +/** A class to handle a USRP rev 4, with a two RFX900 daughterboards */ +class DummyLoad: public RadioDevice { + +private: + + double sampleRate; ///< the desired sampling rate + unsigned long long samplesRead; ///< number of samples read from USRP + unsigned long long samplesWritten; ///< number of samples sent to USRP + + Mutex underrunLock; + + struct timeval startTime, currTime; + + TIMESTAMP currstamp; + short *dummyBurst; + int dummyBurstSz; + int dummyBurstCursor; + bool underrun; + + void updateTime(void); + + public: + + /** Object constructor */ + DummyLoad (double _desiredSampleRate); + + int loadBurst(short *wDummyBurst, int len); + + /** Instantiate the USRP */ + bool make(bool skipRx = false); + + /** Start the USRP */ + bool start(); + + /** Stop the USRP */ + bool stop(); + + /** + Read samples from the USRP. + @param buf preallocated buf to contain read result + @param len number of samples desired + @param overrun Set if read buffer has been overrun, e.g. data not being read fast enough + @param timestamp The timestamp of the first samples to be read + @param underrun Set if USRP does not have data to transmit, e.g. data not being sent fast enough + @param RSSI The received signal strength of the read result + @return The number of samples actually read + */ + int readSamples(short *buf, int len, bool *overrun, + TIMESTAMP timestamp = 0xffffffff, + bool *underrun = NULL, + unsigned *RSSI = NULL); + /** + Write samples to the USRP. + @param buf Contains the data to be written. + @param len number of samples to write. + @param underrun Set if USRP does not have data to transmit, e.g. data not being sent fast enough + @param timestamp The timestamp of the first sample of the data buffer. + @param isControl Set if data is a control packet, e.g. a ping command + @return The number of samples actually written + */ + int writeSamples(short *buf, int len, bool *underrun, + TIMESTAMP timestamp = 0xffffffff, + bool isControl = false); + + /** Update the alignment between the read and write timestamps */ + bool updateAlignment(TIMESTAMP timestamp); + + /** Set the transmitter frequency */ + bool setTxFreq(double wFreq); + + /** Set the receiver frequency */ + bool setRxFreq(double wFreq); + + /** Returns the starting write Timestamp*/ + TIMESTAMP initialWriteTimestamp(void) { return 20000;} + + /** Returns the starting read Timestamp*/ + TIMESTAMP initialReadTimestamp(void) { return 20000;} + + /** returns the full-scale transmit amplitude **/ + double fullScaleInputValue() {return 13500.0;} + + /** returns the full-scale receive amplitude **/ + double fullScaleOutputValue() {return 9450.0;} + + /** Return internal status values */ + inline double getTxFreq() { return 0;} + inline double getRxFreq() { return 0;} + inline double getSampleRate() {return sampleRate;} + inline double numberRead() { return samplesRead; } + inline double numberWritten() { return samplesWritten;} + +}; + diff --git a/Transceiver52M/Makefile b/Transceiver52M/Makefile new file mode 100644 index 0000000..3f58e50 --- /dev/null +++ b/Transceiver52M/Makefile @@ -0,0 +1,661 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Transceiver52M/Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + +# +# Copyright 2008 Free Software Foundation, Inc. +# Copyright 2010 Range Networks, Inc. +# +# This software is distributed under the terms of the GNU Public License. +# See the COPYING file in the main directory for details. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# +# Copyright 2008 Free Software Foundation, Inc. +# +# This software is distributed under the terms of the GNU Public License. +# See the COPYING file in the main directory for details. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + + + +pkgdatadir = $(datadir)/openbts +pkgincludedir = $(includedir)/openbts +pkglibdir = $(libdir)/openbts +pkglibexecdir = $(libexecdir)/openbts +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = i686-pc-linux-gnu +host_triplet = i686-pc-linux-gnu +target_triplet = i686-pc-linux-gnu +DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(top_srcdir)/Makefile.common +noinst_PROGRAMS = USRPping$(EXEEXT) transceiver$(EXEEXT) \ + sigProcLibTest$(EXEEXT) +subdir = Transceiver52M +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libtransceiver_la_LIBADD = +am_libtransceiver_la_OBJECTS = radioInterface.lo sigProcLib.lo \ + Transceiver.lo USRPDevice.lo DummyLoad.lo +libtransceiver_la_OBJECTS = $(am_libtransceiver_la_OBJECTS) +PROGRAMS = $(noinst_PROGRAMS) +am_USRPping_OBJECTS = USRPping.$(OBJEXT) +USRPping_OBJECTS = $(am_USRPping_OBJECTS) +USRPping_DEPENDENCIES = libtransceiver.la $(COMMON_LA) $(SQLITE_LA) +am_sigProcLibTest_OBJECTS = sigProcLibTest.$(OBJEXT) +sigProcLibTest_OBJECTS = $(am_sigProcLibTest_OBJECTS) +sigProcLibTest_DEPENDENCIES = libtransceiver.la $(GSM_LA) $(COMMON_LA) \ + $(SQLITE_LA) +am_transceiver_OBJECTS = runTransceiver.$(OBJEXT) +transceiver_OBJECTS = $(am_transceiver_OBJECTS) +transceiver_DEPENDENCIES = libtransceiver.la $(GSM_LA) $(COMMON_LA) \ + $(SQLITE_LA) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libtransceiver_la_SOURCES) $(USRPping_SOURCES) \ + $(sigProcLibTest_SOURCES) $(transceiver_SOURCES) +DIST_SOURCES = $(libtransceiver_la_SOURCES) $(USRPping_SOURCES) \ + $(sigProcLibTest_SOURCES) $(transceiver_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = ${SHELL} /home/openbts/range/software/public/openbts/trunk/missing --run aclocal-1.9 +AMTAR = ${SHELL} /home/openbts/range/software/public/openbts/trunk/missing --run tar +AR = ar +AS = as +AUTOCONF = ${SHELL} /home/openbts/range/software/public/openbts/trunk/missing --run autoconf +AUTOHEADER = ${SHELL} /home/openbts/range/software/public/openbts/trunk/missing --run autoheader +AUTOMAKE = ${SHELL} /home/openbts/range/software/public/openbts/trunk/missing --run automake-1.9 +AWK = mawk +CC = gcc +CCAS = gcc +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = -g -O2 +CCDEPMODE = depmode=gcc3 +CFLAGS = -g -O2 +CPP = gcc -E +CPPFLAGS = +CXX = g++ +CXXCPP = g++ -E +CXXDEPMODE = depmode=gcc3 +CXXFLAGS = -g -O2 +CYGPATH_W = echo +DEFS = -DHAVE_CONFIG_H +DEPDIR = .deps +DLLTOOL = dlltool +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = /bin/grep -E +EXEEXT = +FGREP = @FGREP@ +GREP = /bin/grep +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s +LD = @LD@ +LDFLAGS = +LIBOBJS = +LIBS = +LIBTOOL = $(SHELL) $(top_builddir)/libtool +LIBUSB_CFLAGS = -I/usr/local/include/libusb-1.0 +LIBUSB_LIBS = -L/usr/local/lib -lusb-1.0 +LIPO = @LIPO@ +LN_S = ln -s +LTLIBOBJS = +MAKEINFO = ${SHELL} /home/openbts/range/software/public/openbts/trunk/missing --run makeinfo +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = objdump +OBJEXT = o +ORTP_CFLAGS = -D_REENTRANT -DORTP_INET6 -I/usr/local/include +ORTP_LIBS = -L/usr/local/lib -lortp -lpthread +OSIP_CFLAGS = -DOSIP_MT -I/usr/local/include +OSIP_LIBS = -L/usr/local/lib -losipparser2 -losip2 +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = openbts +PACKAGE_BUGREPORT = +PACKAGE_NAME = openbts +PACKAGE_STRING = openbts P2.8TRUNK +PACKAGE_TARNAME = openbts +PACKAGE_URL = +PACKAGE_VERSION = P2.8TRUNK +PATH_SEPARATOR = : +PKG_CONFIG = /usr/bin/pkg-config +RANLIB = ranlib +RM_PROG = /bin/rm +SED = @SED@ +SET_MAKE = +SHELL = /bin/bash +STRIP = strip +VERSION = P2.8TRUNK +abs_builddir = /home/openbts/range/software/public/openbts/trunk/Transceiver52M +abs_srcdir = /home/openbts/range/software/public/openbts/trunk/Transceiver52M +abs_top_builddir = /home/openbts/range/software/public/openbts/trunk +abs_top_srcdir = /home/openbts/range/software/public/openbts/trunk +ac_ct_CC = gcc +ac_ct_CXX = g++ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = include +am__leading_dot = . +am__quote = +am__tar = ${AMTAR} chof - "$$tardir" +am__untar = ${AMTAR} xf - +bindir = ${exec_prefix}/bin +build = i686-pc-linux-gnu +build_alias = +build_cpu = i686 +build_os = linux-gnu +build_vendor = pc +builddir = . +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} +dvidir = ${docdir} +exec_prefix = ${prefix} +host = i686-pc-linux-gnu +host_alias = +host_cpu = i686 +host_os = linux-gnu +host_vendor = pc +htmldir = ${docdir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = /home/openbts/range/software/public/openbts/trunk/install-sh +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +lt_ECHO = @lt_ECHO@ +mandir = ${datarootdir}/man +mkdir_p = mkdir -p -- +oldincludedir = /usr/include +pdfdir = ${docdir} +prefix = /usr/local +program_transform_name = s,x,x, +psdir = ${docdir} +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +sysconfdir = ${prefix}/etc +target = i686-pc-linux-gnu +target_alias = +target_cpu = i686 +target_os = linux-gnu +target_vendor = pc +top_build_prefix = ../ +top_builddir = .. +top_srcdir = .. +COMMON_INCLUDEDIR = $(top_srcdir)/CommonLibs +CONTROL_INCLUDEDIR = $(top_srcdir)/Control +GSM_INCLUDEDIR = $(top_srcdir)/GSM +SIP_INCLUDEDIR = $(top_srcdir)/SIP +SMS_INCLUDEDIR = $(top_srcdir)/SMS +TRX_INCLUDEDIR = $(top_srcdir)/TRXManager +GLOBALS_INCLUDEDIR = $(top_srcdir)/Globals +CLI_INCLUDEDIR = $(top_srcdir)/CLI +SQLITE_INCLUDEDIR = $(top_srcdir)/sqlite3 +SR_INCLUDEDIR = $(top_srcdir)/SR +STD_DEFINES_AND_INCLUDES = \ + -I$(COMMON_INCLUDEDIR) \ + -I$(CONTROL_INCLUDEDIR) \ + -I$(GSM_INCLUDEDIR) \ + -I$(SIP_INCLUDEDIR) \ + -I$(SMS_INCLUDEDIR) \ + -I$(TRX_INCLUDEDIR) \ + -I$(GLOBALS_INCLUDEDIR) \ + -I$(CLI_INCLUDEDIR) \ + -I$(SR_INCLUDEDIR) \ + -I$(SQLITE_INCLUDEDIR) + +COMMON_LA = $(top_builddir)/CommonLibs/libcommon.la +GSM_LA = $(top_builddir)/GSM/libGSM.la +SIP_LA = $(top_builddir)/SIP/libSIP.la +SMS_LA = $(top_builddir)/SMS/libSMS.la +TRX_LA = $(top_builddir)/TRXManager/libtrxmanager.la +CONTROL_LA = $(top_builddir)/Control/libcontrol.la +GLOBALS_LA = $(top_builddir)/Globals/libglobals.la +CLI_LA = $(top_builddir)/CLI/libcli.la +SR_LA = $(top_builddir)/SR/libSR.la +SQLITE_LA = $(top_builddir)/sqlite3/libsqlite.la +MOSTLYCLEANFILES = *~ +AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(USRP_CFLAGS) +AM_CXXFLAGS = -ldl -lpthread + +#rev2dir = $(datadir)/usrp/rev2 +#rev4dir = $(datadir)/usrp/rev4 + +#dist_rev2_DATA = std_inband.rbf +#dist_rev4_DATA = std_inband.rbf +EXTRA_DIST = \ + README \ + README.Talgorithm + +noinst_LTLIBRARIES = libtransceiver.la +libtransceiver_la_SOURCES = \ + radioInterface.cpp \ + sigProcLib.cpp \ + Transceiver.cpp \ + USRPDevice.cpp \ + DummyLoad.cpp + +noinst_HEADERS = \ + Complex.h \ + radioInterface.h \ + radioDevice.h \ + sigProcLib.h \ + Transceiver.h \ + USRPDevice.h \ + DummyLoad.h + +USRPping_SOURCES = USRPping.cpp +USRPping_LDADD = \ + libtransceiver.la \ + $(COMMON_LA) $(SQLITE_LA) \ + $(USRP_LIBS) + +transceiver_SOURCES = runTransceiver.cpp +transceiver_LDADD = \ + libtransceiver.la \ + $(GSM_LA) \ + $(COMMON_LA) $(SQLITE_LA) \ + $(USRP_LIBS) + +sigProcLibTest_SOURCES = sigProcLibTest.cpp +sigProcLibTest_LDADD = \ + libtransceiver.la \ + $(GSM_LA) \ + $(COMMON_LA) $(SQLITE_LA) \ + $(USRP_LIBS) + +all: all-am + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/Makefile.common $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Transceiver52M/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Transceiver52M/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libtransceiver.la: $(libtransceiver_la_OBJECTS) $(libtransceiver_la_DEPENDENCIES) + $(CXXLINK) $(libtransceiver_la_OBJECTS) $(libtransceiver_la_LIBADD) $(LIBS) + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +USRPping$(EXEEXT): $(USRPping_OBJECTS) $(USRPping_DEPENDENCIES) + @rm -f USRPping$(EXEEXT) + $(CXXLINK) $(USRPping_OBJECTS) $(USRPping_LDADD) $(LIBS) +sigProcLibTest$(EXEEXT): $(sigProcLibTest_OBJECTS) $(sigProcLibTest_DEPENDENCIES) + @rm -f sigProcLibTest$(EXEEXT) + $(CXXLINK) $(sigProcLibTest_OBJECTS) $(sigProcLibTest_LDADD) $(LIBS) +transceiver$(EXEEXT): $(transceiver_OBJECTS) $(transceiver_DEPENDENCIES) + @rm -f transceiver$(EXEEXT) + $(CXXLINK) $(transceiver_OBJECTS) $(transceiver_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +include ./$(DEPDIR)/DummyLoad.Plo +include ./$(DEPDIR)/Transceiver.Plo +include ./$(DEPDIR)/USRPDevice.Plo +include ./$(DEPDIR)/USRPping.Po +include ./$(DEPDIR)/radioInterface.Plo +include ./$(DEPDIR)/runTransceiver.Po +include ./$(DEPDIR)/sigProcLib.Plo +include ./$(DEPDIR)/sigProcLibTest.Po + +.cpp.o: + $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< + $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +# source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: + $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` + $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +# source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: + $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< + $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +# source='$<' object='$@' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES clean-noinstPROGRAMS \ + ctags distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am + + +#radioInterface.cpp +#ComplexTest.cpp +#sigProcLibTest.cpp +#sweepGenerator.cpp +#testRadio.cpp + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Transceiver52M/Makefile.am b/Transceiver52M/Makefile.am new file mode 100644 index 0000000..4669b99 --- /dev/null +++ b/Transceiver52M/Makefile.am @@ -0,0 +1,88 @@ +# +# Copyright 2008 Free Software Foundation, Inc. +# Copyright 2010 Range Networks, Inc. +# +# This software is distributed under the terms of the GNU Public License. +# See the COPYING file in the main directory for details. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +include $(top_srcdir)/Makefile.common + +AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(USRP_CFLAGS) +AM_CXXFLAGS = -ldl -lpthread + +#rev2dir = $(datadir)/usrp/rev2 +#rev4dir = $(datadir)/usrp/rev4 + +#dist_rev2_DATA = std_inband.rbf +#dist_rev4_DATA = std_inband.rbf + +EXTRA_DIST = \ + README \ + README.Talgorithm + +noinst_LTLIBRARIES = libtransceiver.la + +libtransceiver_la_SOURCES = \ + radioInterface.cpp \ + sigProcLib.cpp \ + Transceiver.cpp \ + USRPDevice.cpp \ + DummyLoad.cpp + +noinst_PROGRAMS = \ + USRPping \ + transceiver \ + sigProcLibTest + +noinst_HEADERS = \ + Complex.h \ + radioInterface.h \ + radioDevice.h \ + sigProcLib.h \ + Transceiver.h \ + USRPDevice.h \ + DummyLoad.h + +USRPping_SOURCES = USRPping.cpp +USRPping_LDADD = \ + libtransceiver.la \ + $(COMMON_LA) $(SQLITE_LA) \ + $(USRP_LIBS) + +transceiver_SOURCES = runTransceiver.cpp +transceiver_LDADD = \ + libtransceiver.la \ + $(GSM_LA) \ + $(COMMON_LA) $(SQLITE_LA) \ + $(USRP_LIBS) + +sigProcLibTest_SOURCES = sigProcLibTest.cpp +sigProcLibTest_LDADD = \ + libtransceiver.la \ + $(GSM_LA) \ + $(COMMON_LA) $(SQLITE_LA) \ + $(USRP_LIBS) + + +MOSTLYCLEANFILES += + +#radioInterface.cpp +#ComplexTest.cpp +#sigProcLibTest.cpp +#sweepGenerator.cpp +#testRadio.cpp + diff --git a/Transceiver52M/Makefile.in b/Transceiver52M/Makefile.in new file mode 100644 index 0000000..65518b2 --- /dev/null +++ b/Transceiver52M/Makefile.in @@ -0,0 +1,661 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# Copyright 2008 Free Software Foundation, Inc. +# Copyright 2010 Range Networks, Inc. +# +# This software is distributed under the terms of the GNU Public License. +# See the COPYING file in the main directory for details. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# +# Copyright 2008 Free Software Foundation, Inc. +# +# This software is distributed under the terms of the GNU Public License. +# See the COPYING file in the main directory for details. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(top_srcdir)/Makefile.common +noinst_PROGRAMS = USRPping$(EXEEXT) transceiver$(EXEEXT) \ + sigProcLibTest$(EXEEXT) +subdir = Transceiver52M +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libtransceiver_la_LIBADD = +am_libtransceiver_la_OBJECTS = radioInterface.lo sigProcLib.lo \ + Transceiver.lo USRPDevice.lo DummyLoad.lo +libtransceiver_la_OBJECTS = $(am_libtransceiver_la_OBJECTS) +PROGRAMS = $(noinst_PROGRAMS) +am_USRPping_OBJECTS = USRPping.$(OBJEXT) +USRPping_OBJECTS = $(am_USRPping_OBJECTS) +USRPping_DEPENDENCIES = libtransceiver.la $(COMMON_LA) $(SQLITE_LA) +am_sigProcLibTest_OBJECTS = sigProcLibTest.$(OBJEXT) +sigProcLibTest_OBJECTS = $(am_sigProcLibTest_OBJECTS) +sigProcLibTest_DEPENDENCIES = libtransceiver.la $(GSM_LA) $(COMMON_LA) \ + $(SQLITE_LA) +am_transceiver_OBJECTS = runTransceiver.$(OBJEXT) +transceiver_OBJECTS = $(am_transceiver_OBJECTS) +transceiver_DEPENDENCIES = libtransceiver.la $(GSM_LA) $(COMMON_LA) \ + $(SQLITE_LA) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libtransceiver_la_SOURCES) $(USRPping_SOURCES) \ + $(sigProcLibTest_SOURCES) $(transceiver_SOURCES) +DIST_SOURCES = $(libtransceiver_la_SOURCES) $(USRPping_SOURCES) \ + $(sigProcLibTest_SOURCES) $(transceiver_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBUSB_CFLAGS = @LIBUSB_CFLAGS@ +LIBUSB_LIBS = @LIBUSB_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +ORTP_CFLAGS = @ORTP_CFLAGS@ +ORTP_LIBS = @ORTP_LIBS@ +OSIP_CFLAGS = @OSIP_CFLAGS@ +OSIP_LIBS = @OSIP_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +RANLIB = @RANLIB@ +RM_PROG = @RM_PROG@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +COMMON_INCLUDEDIR = $(top_srcdir)/CommonLibs +CONTROL_INCLUDEDIR = $(top_srcdir)/Control +GSM_INCLUDEDIR = $(top_srcdir)/GSM +SIP_INCLUDEDIR = $(top_srcdir)/SIP +SMS_INCLUDEDIR = $(top_srcdir)/SMS +TRX_INCLUDEDIR = $(top_srcdir)/TRXManager +GLOBALS_INCLUDEDIR = $(top_srcdir)/Globals +CLI_INCLUDEDIR = $(top_srcdir)/CLI +SQLITE_INCLUDEDIR = $(top_srcdir)/sqlite3 +SR_INCLUDEDIR = $(top_srcdir)/SR +STD_DEFINES_AND_INCLUDES = \ + -I$(COMMON_INCLUDEDIR) \ + -I$(CONTROL_INCLUDEDIR) \ + -I$(GSM_INCLUDEDIR) \ + -I$(SIP_INCLUDEDIR) \ + -I$(SMS_INCLUDEDIR) \ + -I$(TRX_INCLUDEDIR) \ + -I$(GLOBALS_INCLUDEDIR) \ + -I$(CLI_INCLUDEDIR) \ + -I$(SR_INCLUDEDIR) \ + -I$(SQLITE_INCLUDEDIR) + +COMMON_LA = $(top_builddir)/CommonLibs/libcommon.la +GSM_LA = $(top_builddir)/GSM/libGSM.la +SIP_LA = $(top_builddir)/SIP/libSIP.la +SMS_LA = $(top_builddir)/SMS/libSMS.la +TRX_LA = $(top_builddir)/TRXManager/libtrxmanager.la +CONTROL_LA = $(top_builddir)/Control/libcontrol.la +GLOBALS_LA = $(top_builddir)/Globals/libglobals.la +CLI_LA = $(top_builddir)/CLI/libcli.la +SR_LA = $(top_builddir)/SR/libSR.la +SQLITE_LA = $(top_builddir)/sqlite3/libsqlite.la +MOSTLYCLEANFILES = *~ +AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(USRP_CFLAGS) +AM_CXXFLAGS = -ldl -lpthread + +#rev2dir = $(datadir)/usrp/rev2 +#rev4dir = $(datadir)/usrp/rev4 + +#dist_rev2_DATA = std_inband.rbf +#dist_rev4_DATA = std_inband.rbf +EXTRA_DIST = \ + README \ + README.Talgorithm + +noinst_LTLIBRARIES = libtransceiver.la +libtransceiver_la_SOURCES = \ + radioInterface.cpp \ + sigProcLib.cpp \ + Transceiver.cpp \ + USRPDevice.cpp \ + DummyLoad.cpp + +noinst_HEADERS = \ + Complex.h \ + radioInterface.h \ + radioDevice.h \ + sigProcLib.h \ + Transceiver.h \ + USRPDevice.h \ + DummyLoad.h + +USRPping_SOURCES = USRPping.cpp +USRPping_LDADD = \ + libtransceiver.la \ + $(COMMON_LA) $(SQLITE_LA) \ + $(USRP_LIBS) + +transceiver_SOURCES = runTransceiver.cpp +transceiver_LDADD = \ + libtransceiver.la \ + $(GSM_LA) \ + $(COMMON_LA) $(SQLITE_LA) \ + $(USRP_LIBS) + +sigProcLibTest_SOURCES = sigProcLibTest.cpp +sigProcLibTest_LDADD = \ + libtransceiver.la \ + $(GSM_LA) \ + $(COMMON_LA) $(SQLITE_LA) \ + $(USRP_LIBS) + +all: all-am + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/Makefile.common $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Transceiver52M/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Transceiver52M/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libtransceiver.la: $(libtransceiver_la_OBJECTS) $(libtransceiver_la_DEPENDENCIES) + $(CXXLINK) $(libtransceiver_la_OBJECTS) $(libtransceiver_la_LIBADD) $(LIBS) + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +USRPping$(EXEEXT): $(USRPping_OBJECTS) $(USRPping_DEPENDENCIES) + @rm -f USRPping$(EXEEXT) + $(CXXLINK) $(USRPping_OBJECTS) $(USRPping_LDADD) $(LIBS) +sigProcLibTest$(EXEEXT): $(sigProcLibTest_OBJECTS) $(sigProcLibTest_DEPENDENCIES) + @rm -f sigProcLibTest$(EXEEXT) + $(CXXLINK) $(sigProcLibTest_OBJECTS) $(sigProcLibTest_LDADD) $(LIBS) +transceiver$(EXEEXT): $(transceiver_OBJECTS) $(transceiver_DEPENDENCIES) + @rm -f transceiver$(EXEEXT) + $(CXXLINK) $(transceiver_OBJECTS) $(transceiver_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DummyLoad.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Transceiver.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/USRPDevice.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/USRPping.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radioInterface.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/runTransceiver.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigProcLib.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigProcLibTest.Po@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.lo: +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES clean-noinstPROGRAMS \ + ctags distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am + + +#radioInterface.cpp +#ComplexTest.cpp +#sigProcLibTest.cpp +#sweepGenerator.cpp +#testRadio.cpp + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Transceiver52M/README b/Transceiver52M/README new file mode 100644 index 0000000..491693c --- /dev/null +++ b/Transceiver52M/README @@ -0,0 +1,35 @@ +The Transceiver + +The transceiver consists of three modules: + --- transceiver + --- radioInterface + --- USRPDevice + +The USRPDevice module is basically a driver that reads/writes +packets to a USRP with two RFX900 daughterboards, board +A is the Tx chain and board B is the Rx chain. + +The radioInterface module is basically an interface b/w the +transceiver and the USRP. It operates the basestation clock +based upon the sample count of received USRP samples. Packets +from the USRP are queued and segmented into GSM bursts that are +passed up to the transceiver; bursts from the transceiver are +passed down to the USRP. + +The transceiver basically operates "layer 0" of the GSM stack, +performing the modulation, detection, and demodulation of GSM +bursts. It communicates with the GSM stack via three UDP sockets, +one socket for data, one for control messages, and one socket to +pass clocking information. The transceiver contains a priority +queue to sort to-be-transmitted bursts, and a filler table to fill +in timeslots that do not have bursts in the priority queue. The +transceiver tries to stay ahead of the basestation clock, adapting +its latency when underruns are reported by the radioInterface/USRP. +Received bursts (from the radioInterface) pass through a simple +energy detector, a RACH or midamble correlator, and a DFE-based demodulator. + +NOTE: There's a SWLOOPBACK #define statement, where the USRP is replaced +with a memory buffer. In this mode, data written to the USRP is actually stored +in a buffer, and read commands to the USRP simply pull data from this buffer. +This was very useful in early testing, and still may be useful in testing basic +Transceiver and radioInterface functionality. diff --git a/Transceiver52M/README.DFEsymbolspaced b/Transceiver52M/README.DFEsymbolspaced new file mode 100644 index 0000000..f1ab479 --- /dev/null +++ b/Transceiver52M/README.DFEsymbolspaced @@ -0,0 +1,14 @@ +signalVectors G0, G1. i.e. G0(D) = 1 +2D + 3D^2 = [1 2 3] +G0(D) = 1/sqrt(SNR). +G1(D) = [h0 h1D .. h_(N-1)D^(N-1)] +for i = 0,1,...,N_f-1, + d = |G0(0)|^2+|G1(0)|^2 + l_i(D) = D^i ( G0(D)*G0'(0) + G1(D)*G1'(0) )/d + k = G1(0)/G0(0) + G0n(D) = G0(D)+k'*G1(D) + G1n(D) = (-G0(D)*k+G1(D))/D + G0(D) = G0n(D)/sqrt(1+k*k') + G1(D) = G1n(D)/sqrt(1+k*k') +end + + diff --git a/Transceiver52M/README.Talgorithm b/Transceiver52M/README.Talgorithm new file mode 100644 index 0000000..037d613 --- /dev/null +++ b/Transceiver52M/README.Talgorithm @@ -0,0 +1,15 @@ +Basic model: + +Have channel H = {h_0, h_1, ..., h_{K-1}}. +Have received sequence Y = {y_0, ..., y_{K+N}}. +Have transmitted sequence X = {x_0, ..., x_{N-1}}. +Denote state S_n = {x_n, x_{n-1}, ..., x_{n-L}}. + +Define a bag as an unordered collection with two operations, add and take. +We have three bags: + S: a bag of survivors. + F: a bag of available data structures. + +At time n, start with a non-empty bag S of survivors from time n-1. +Take a member out of S, and create all possible branches and their corresponding metrics. If metric ratio is above T, discard branch. Otherwise, check branch against entry in pruning table P. If branch metric is smaller than the existing entry's metric in P, then replace entry with branch. Otherwise, discard branch. +Once all possible branches of S have been created and pruned, S should be empty.Empty pruning table back into S, thus P is now empty. Repeat. diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp new file mode 100644 index 0000000..7cb2128 --- /dev/null +++ b/Transceiver52M/Transceiver.cpp @@ -0,0 +1,798 @@ +/* +* Copyright 2008, 2009, 2010 Free Software Foundation, Inc. +* +* This software is distributed under the terms of the GNU Public License. +* See the COPYING file in the main directory for details. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +/* + Compilation switches + TRANSMIT_LOGGING write every burst on the given slot to a log +*/ + + +#include +#include "Transceiver.h" +#include + + + +Transceiver::Transceiver(int wBasePort, + const char *TRXAddress, + int wSamplesPerSymbol, + GSM::Time wTransmitLatency, + RadioInterface *wRadioInterface) + :mDataSocket(wBasePort+2,TRXAddress,wBasePort+102), + mControlSocket(wBasePort+1,TRXAddress,wBasePort+101), + mClockSocket(wBasePort,TRXAddress,wBasePort+100) +{ + //GSM::Time startTime(0,0); + //GSM::Time startTime(gHyperframe/2 - 4*216*60,0); + GSM::Time startTime(random() % gHyperframe,0); + + mFIFOServiceLoopThread = new Thread(32768); ///< thread to push bursts into transmit FIFO + mControlServiceLoopThread = new Thread(32768); ///< thread to process control messages from GSM core + mTransmitPriorityQueueServiceLoopThread = new Thread(32768);///< thread to process transmit bursts from GSM core + + + mSamplesPerSymbol = wSamplesPerSymbol; + mRadioInterface = wRadioInterface; + mTransmitLatency = wTransmitLatency; + mTransmitDeadlineClock = startTime; + mLastClockUpdateTime = startTime; + mLatencyUpdateTime = startTime; + mRadioInterface->getClock()->set(startTime); + mMaxExpectedDelay = 0; + + // generate pulse and setup up signal processing library + gsmPulse = generateGSMPulse(2,mSamplesPerSymbol); + LOG(DEBUG) << "gsmPulse: " << *gsmPulse; + sigProcLibSetup(mSamplesPerSymbol); + + txFullScale = mRadioInterface->fullScaleInputValue(); + rxFullScale = mRadioInterface->fullScaleOutputValue(); + + // initialize filler tables with dummy bursts, initialize other per-timeslot variables + for (int i = 0; i < 8; i++) { + signalVector* modBurst = modulateBurst(gDummyBurst,*gsmPulse, + 8 + (i % 4 == 0), + mSamplesPerSymbol); + scaleVector(*modBurst,txFullScale); + fillerModulus[i]=26; + for (int j = 0; j < 102; j++) { + fillerTable[j][i] = new signalVector(*modBurst); + } + delete modBurst; + mChanType[i] = NONE; + channelResponse[i] = NULL; + DFEForward[i] = NULL; + DFEFeedback[i] = NULL; + channelEstimateTime[i] = startTime; + } + + mOn = false; + mTxFreq = 0.0; + mRxFreq = 0.0; + mPower = -10; + mEnergyThreshold = 5.0; // based on empirical data + prevFalseDetectionTime = startTime; +} + +Transceiver::~Transceiver() +{ + delete gsmPulse; + sigProcLibDestroy(); + mTransmitPriorityQueue.clear(); +} + + +void Transceiver::addRadioVector(BitVector &burst, + int RSSI, + GSM::Time &wTime) +{ + // modulate and stick into queue + signalVector* modBurst = modulateBurst(burst,*gsmPulse, + 8 + (wTime.TN() % 4 == 0), + mSamplesPerSymbol); + scaleVector(*modBurst,txFullScale * pow(10,-RSSI/10)); + radioVector *newVec = new radioVector(*modBurst,wTime); + mTransmitPriorityQueue.write(newVec); + + delete modBurst; +} + +#ifdef TRANSMIT_LOGGING +void Transceiver::unModulateVector(signalVector wVector) +{ + SoftVector *burst = demodulateBurst(wVector, + *gsmPulse, + mSamplesPerSymbol, + 1.0,0.0); + LOG(DEBUG) << "LOGGED BURST: " << *burst; + +/* + unsigned char burstStr[gSlotLen+1]; + SoftVector::iterator burstItr = burst->begin(); + for (int i = 0; i < gSlotLen; i++) { + // FIXME: Demod bits are inverted! + burstStr[i] = (unsigned char) ((*burstItr++)*255.0); + } + burstStr[gSlotLen]='\0'; + LOG(DEBUG) << "LOGGED BURST: " << burstStr; +*/ + delete burst; +} +#endif + +void Transceiver::pushRadioVector(GSM::Time &nowTime) +{ + + // dump stale bursts, if any + while (radioVector* staleBurst = mTransmitPriorityQueue.getStaleBurst(nowTime)) { + // Even if the burst is stale, put it in the fillter table. + // (It might be an idle pattern.) + LOG(NOTICE) << "dumping STALE burst in TRX->USRP interface"; + const GSM::Time& nextTime = staleBurst->time(); + int TN = nextTime.TN(); + int modFN = nextTime.FN() % fillerModulus[TN]; + delete fillerTable[modFN][TN]; + fillerTable[modFN][TN] = staleBurst; + } + + int TN = nowTime.TN(); + int modFN = nowTime.FN() % fillerModulus[nowTime.TN()]; + + // if queue contains data at the desired timestamp, stick it into FIFO + if (radioVector *next = (radioVector*) mTransmitPriorityQueue.getCurrentBurst(nowTime)) { + LOG(DEBUG) << "transmitFIFO: wrote burst " << next << " at time: " << nowTime; + delete fillerTable[modFN][TN]; + fillerTable[modFN][TN] = new signalVector(*(next)); + mRadioInterface->driveTransmitRadio(*(next),(mChanType[TN]==NONE)); //fillerTable[modFN][TN])); + delete next; +#ifdef TRANSMIT_LOGGING + if (nowTime.TN()==TRANSMIT_LOGGING) { + unModulateVector(*(fillerTable[modFN][TN])); + } +#endif + return; + } + + // otherwise, pull filler data, and push to radio FIFO + mRadioInterface->driveTransmitRadio(*(fillerTable[modFN][TN]),(mChanType[TN]==NONE)); +#ifdef TRANSMIT_LOGGING + if (nowTime.TN()==TRANSMIT_LOGGING) + unModulateVector(*fillerTable[modFN][TN]); +#endif + +} + +void Transceiver::setModulus(int timeslot) +{ + switch (mChanType[timeslot]) { + case NONE: + case I: + case II: + case III: + case FILL: + fillerModulus[timeslot] = 26; + break; + case IV: + case VI: + case V: + fillerModulus[timeslot] = 51; + break; + //case V: + case VII: + fillerModulus[timeslot] = 102; + break; + default: + break; + } +} + + +Transceiver::CorrType Transceiver::expectedCorrType(GSM::Time currTime) +{ + + unsigned burstTN = currTime.TN(); + unsigned burstFN = currTime.FN(); + + switch (mChanType[burstTN]) { + case NONE: + return OFF; + break; + case FILL: + return IDLE; + break; + case I: + return TSC; + /*if (burstFN % 26 == 25) + return IDLE; + else + return TSC;*/ + break; + case II: + if (burstFN % 2 == 1) + return IDLE; + else + return TSC; + break; + case III: + return TSC; + break; + case IV: + case VI: + return RACH; + break; + case V: { + int mod51 = burstFN % 51; + if ((mod51 <= 36) && (mod51 >= 14)) + return RACH; + else if ((mod51 == 4) || (mod51 == 5)) + return RACH; + else if ((mod51 == 45) || (mod51 == 46)) + return RACH; + else + return TSC; + break; + } + case VII: + if ((burstFN % 51 <= 14) && (burstFN % 51 >= 12)) + return IDLE; + else + return TSC; + break; + case LOOPBACK: + if ((burstFN % 51 <= 50) && (burstFN % 51 >=48)) + return IDLE; + else + return TSC; + break; + default: + return OFF; + break; + } + +} + +SoftVector *Transceiver::pullRadioVector(GSM::Time &wTime, + int &RSSI, + int &timingOffset) +{ + bool needDFE = (mMaxExpectedDelay > 1); + + radioVector *rxBurst = (radioVector *) mReceiveFIFO->get(); + + if (!rxBurst) return NULL; + + LOG(DEBUG) << "receiveFIFO: read radio vector at time: " << rxBurst->time() << ", new size: " << mReceiveFIFO->size(); + + int timeslot = rxBurst->time().TN(); + + CorrType corrType = expectedCorrType(rxBurst->time()); + + if ((corrType==OFF) || (corrType==IDLE)) { + delete rxBurst; + return NULL; + } + + // check to see if received burst has sufficient + signalVector *vectorBurst = rxBurst; + complex amplitude = 0.0; + float TOA = 0.0; + float avgPwr = 0.0; + if (!energyDetect(*vectorBurst,20*mSamplesPerSymbol,mEnergyThreshold,&avgPwr)) { + LOG(DEBUG) << "Estimated Energy: " << sqrt(avgPwr) << ", at time " << rxBurst->time(); + double framesElapsed = rxBurst->time()-prevFalseDetectionTime; + if (framesElapsed > 50) { // if we haven't had any false detections for a while, lower threshold + mEnergyThreshold -= 10.0/10.0; + prevFalseDetectionTime = rxBurst->time(); + } + delete rxBurst; + return NULL; + } + LOG(DEBUG) << "Estimated Energy: " << sqrt(avgPwr) << ", at time " << rxBurst->time(); + + // run the proper correlator + bool success = false; + if (corrType==TSC) { + LOG(DEBUG) << "looking for TSC at time: " << rxBurst->time(); + signalVector *channelResp; + double framesElapsed = rxBurst->time()-channelEstimateTime[timeslot]; + bool estimateChannel = false; + if ((framesElapsed > 50) || (channelResponse[timeslot]==NULL)) { + if (channelResponse[timeslot]) delete channelResponse[timeslot]; + if (DFEForward[timeslot]) delete DFEForward[timeslot]; + if (DFEFeedback[timeslot]) delete DFEFeedback[timeslot]; + channelResponse[timeslot] = NULL; + DFEForward[timeslot] = NULL; + DFEFeedback[timeslot] = NULL; + estimateChannel = true; + } + if (!needDFE) estimateChannel = false; + float chanOffset; + success = analyzeTrafficBurst(*vectorBurst, + mTSC, + 3.0, + mSamplesPerSymbol, + &litude, + &TOA, + mMaxExpectedDelay, + estimateChannel, + &channelResp, + &chanOffset); + if (success) { + LOG(DEBUG) << "FOUND TSC!!!!!! " << amplitude << " " << TOA; + mEnergyThreshold -= 1.0F/10.0F; + if (mEnergyThreshold < 0.0) mEnergyThreshold = 0.0; + SNRestimate[timeslot] = amplitude.norm2()/(mEnergyThreshold*mEnergyThreshold+1.0); // this is not highly accurate + if (estimateChannel) { + LOG(DEBUG) << "estimating channel..."; + channelResponse[timeslot] = channelResp; + chanRespOffset[timeslot] = chanOffset; + chanRespAmplitude[timeslot] = amplitude; + scaleVector(*channelResp, complex(1.0,0.0)/amplitude); + designDFE(*channelResp, SNRestimate[timeslot], 7, &DFEForward[timeslot], &DFEFeedback[timeslot]); + channelEstimateTime[timeslot] = rxBurst->time(); + LOG(DEBUG) << "SNR: " << SNRestimate[timeslot] << ", DFE forward: " << *DFEForward[timeslot] << ", DFE backward: " << *DFEFeedback[timeslot]; + } + } + else { + double framesElapsed = rxBurst->time()-prevFalseDetectionTime; + LOG(DEBUG) << "wTime: " << rxBurst->time() << ", pTime: " << prevFalseDetectionTime << ", fElapsed: " << framesElapsed; + mEnergyThreshold += 10.0F/10.0F*exp(-framesElapsed); + prevFalseDetectionTime = rxBurst->time(); + channelResponse[timeslot] = NULL; + } + } + else { + // RACH burst + success = detectRACHBurst(*vectorBurst, + 5.0, // detection threshold + mSamplesPerSymbol, + &litude, + &TOA); + if (success) { + LOG(DEBUG) << "FOUND RACH!!!!!! " << amplitude << " " << TOA; + mEnergyThreshold -= (1.0F/10.0F); + if (mEnergyThreshold < 0.0) mEnergyThreshold = 0.0; + channelResponse[timeslot] = NULL; + } + else { + double framesElapsed = rxBurst->time()-prevFalseDetectionTime; + mEnergyThreshold += (1.0F/10.0F)*exp(-framesElapsed); + prevFalseDetectionTime = rxBurst->time(); + } + } + LOG(DEBUG) << "energy Threshold = " << mEnergyThreshold; + + // demodulate burst + SoftVector *burst = NULL; + if ((rxBurst) && (success)) { + if ((corrType==RACH) || (!needDFE)) { + burst = demodulateBurst(*vectorBurst, + *gsmPulse, + mSamplesPerSymbol, + amplitude,TOA); + } + else { // TSC + scaleVector(*vectorBurst,complex(1.0,0.0)/amplitude); + burst = equalizeBurst(*vectorBurst, + TOA-chanRespOffset[timeslot], + mSamplesPerSymbol, + *DFEForward[timeslot], + *DFEFeedback[timeslot]); + } + wTime = rxBurst->time(); + // FIXME: what is full scale for the USRP? we get more that 12 bits of resolution... + RSSI = (int) floor(20.0*log10(rxFullScale/amplitude.abs())); + LOG(DEBUG) << "RSSI: " << RSSI; + timingOffset = (int) round(TOA*256.0/mSamplesPerSymbol); + } + + //if (burst) LOG(DEBUG) << "burst: " << *burst << '\n'; + + delete rxBurst; + + return burst; +} + +void Transceiver::start() +{ + mControlServiceLoopThread->start((void * (*)(void*))ControlServiceLoopAdapter,(void*) this); +} + +void Transceiver::reset() +{ + mTransmitPriorityQueue.clear(); + //mTransmitFIFO->clear(); + //mReceiveFIFO->clear(); +} + + +void Transceiver::driveControl() +{ + + int MAX_PACKET_LENGTH = 100; + + // check control socket + char buffer[MAX_PACKET_LENGTH]; + int msgLen = -1; + buffer[0] = '\0'; + + msgLen = mControlSocket.read(buffer); + + if (msgLen < 1) { + return; + } + + char cmdcheck[4]; + char command[MAX_PACKET_LENGTH]; + char response[MAX_PACKET_LENGTH]; + + sscanf(buffer,"%3s %s",cmdcheck,command); + + writeClockInterface(); + + if (strcmp(cmdcheck,"CMD")!=0) { + LOG(WARNING) << "bogus message on control interface"; + return; + } + LOG(INFO) << "command is " << buffer; + + if (strcmp(command,"POWEROFF")==0) { + // turn off transmitter/demod + sprintf(response,"RSP POWEROFF 0"); + } + else if (strcmp(command,"POWERON")==0) { + // turn on transmitter/demod + if (!mTxFreq || !mRxFreq) + sprintf(response,"RSP POWERON 1"); + else { + sprintf(response,"RSP POWERON 0"); + if (!mOn) { + // Prepare for thread start + mPower = -20; + mRadioInterface->start(); + generateRACHSequence(*gsmPulse,mSamplesPerSymbol); + + // Start radio interface threads. + mFIFOServiceLoopThread->start((void * (*)(void*))FIFOServiceLoopAdapter,(void*) this); + mTransmitPriorityQueueServiceLoopThread->start((void * (*)(void*))TransmitPriorityQueueServiceLoopAdapter,(void*) this); + writeClockInterface(); + + mOn = true; + } + } + } + else if (strcmp(command,"SETMAXDLY")==0) { + //set expected maximum time-of-arrival + int maxDelay; + sscanf(buffer,"%3s %s %d",cmdcheck,command,&maxDelay); + mMaxExpectedDelay = maxDelay; // 1 GSM symbol is approx. 1 km + sprintf(response,"RSP SETMAXDLY 0 %d",maxDelay); + } + else if (strcmp(command,"SETRXGAIN")==0) { + //set expected maximum time-of-arrival + int newGain; + sscanf(buffer,"%3s %s %d",cmdcheck,command,&newGain); + newGain = mRadioInterface->setRxGain(newGain); + sprintf(response,"RSP SETRXGAIN 0 %d",newGain); + } + else if (strcmp(command,"NOISELEV")==0) { + if (mOn) { + sprintf(response,"RSP NOISELEV 0 %d", + (int) round(20.0*log10(rxFullScale/mEnergyThreshold))); + } + else { + sprintf(response,"RSP NOISELEV 1 0"); + } + } + else if (strcmp(command,"SETPOWER")==0) { + // set output power in dB + int dbPwr; + sscanf(buffer,"%3s %s %d",cmdcheck,command,&dbPwr); + if (!mOn) + sprintf(response,"RSP SETPOWER 1 %d",dbPwr); + else { + mPower = dbPwr; + mRadioInterface->setPowerAttenuation(pow(10.0,dbPwr/10.0)); + sprintf(response,"RSP SETPOWER 0 %d",dbPwr); + } + } + else if (strcmp(command,"ADJPOWER")==0) { + // adjust power in dB steps + int dbStep; + sscanf(buffer,"%3s %s %d",cmdcheck,command,&dbStep); + if (!mOn) + sprintf(response,"RSP ADJPOWER 1 %d",mPower); + else { + mPower += dbStep; + sprintf(response,"RSP ADJPOWER 0 %d",mPower); + } + } +#define FREQOFFSET 0//11.2e3 + else if (strcmp(command,"RXTUNE")==0) { + // tune receiver + int freqKhz; + sscanf(buffer,"%3s %s %d",cmdcheck,command,&freqKhz); + mRxFreq = freqKhz*1.0e3+FREQOFFSET; + if (!mRadioInterface->tuneRx(mRxFreq)) { + LOG(ALERT) << "RX failed to tune"; + sprintf(response,"RSP RXTUNE 1 %d",freqKhz); + } + else + sprintf(response,"RSP RXTUNE 0 %d",freqKhz); + } + else if (strcmp(command,"TXTUNE")==0) { + // tune txmtr + int freqKhz; + sscanf(buffer,"%3s %s %d",cmdcheck,command,&freqKhz); + //freqKhz = 890e3; + mTxFreq = freqKhz*1.0e3+FREQOFFSET; + if (!mRadioInterface->tuneTx(mTxFreq)) { + LOG(ALERT) << "TX failed to tune"; + sprintf(response,"RSP TXTUNE 1 %d",freqKhz); + } + else + sprintf(response,"RSP TXTUNE 0 %d",freqKhz); + } + else if (strcmp(command,"SETTSC")==0) { + // set TSC + int TSC; + sscanf(buffer,"%3s %s %d",cmdcheck,command,&TSC); + if (mOn) + sprintf(response,"RSP SETTSC 1 %d",TSC); + else { + mTSC = TSC; + generateMidamble(*gsmPulse,mSamplesPerSymbol,TSC); + sprintf(response,"RSP SETTSC 0 %d",TSC); + } + } + else if (strcmp(command,"SETSLOT")==0) { + // set TSC + int corrCode; + int timeslot; + sscanf(buffer,"%3s %s %d %d",cmdcheck,command,×lot,&corrCode); + if ((timeslot < 0) || (timeslot > 7)) { + LOG(WARNING) << "bogus message on control interface"; + sprintf(response,"RSP SETSLOT 1 %d %d",timeslot,corrCode); + return; + } + mChanType[timeslot] = (ChannelCombination) corrCode; + setModulus(timeslot); + sprintf(response,"RSP SETSLOT 0 %d %d",timeslot,corrCode); + + } + else { + LOG(WARNING) << "bogus command " << command << " on control interface."; + } + + mControlSocket.write(response,strlen(response)+1); + +} + +bool Transceiver::driveTransmitPriorityQueue() +{ + + char buffer[gSlotLen+50]; + + // check data socket + size_t msgLen = mDataSocket.read(buffer); + + if (msgLen!=gSlotLen+1+4+1) { + LOG(ERR) << "badly formatted packet on GSM->TRX interface"; + return false; + } + + int timeSlot = (int) buffer[0]; + uint64_t frameNum = 0; + for (int i = 0; i < 4; i++) + frameNum = (frameNum << 8) | (0x0ff & buffer[i+1]); + + /* + if (GSM::Time(frameNum,timeSlot) > mTransmitDeadlineClock + GSM::Time(51,0)) { + // stale burst + //LOG(DEBUG) << "FAST! "<< GSM::Time(frameNum,timeSlot); + //writeClockInterface(); + }*/ + +/* + DAB -- Just let these go through the demod. + if (GSM::Time(frameNum,timeSlot) < mTransmitDeadlineClock) { + // stale burst from GSM core + LOG(NOTICE) << "STALE packet on GSM->TRX interface at time "<< GSM::Time(frameNum,timeSlot); + return false; + } +*/ + + // periodically update GSM core clock + LOG(DEBUG) << "mTransmitDeadlineClock " << mTransmitDeadlineClock + << " mLastClockUpdateTime " << mLastClockUpdateTime; + if (mTransmitDeadlineClock > mLastClockUpdateTime + GSM::Time(216,0)) + writeClockInterface(); + + + LOG(DEBUG) << "rcvd. burst at: " << GSM::Time(frameNum,timeSlot); + + int RSSI = (int) buffer[5]; + static BitVector newBurst(gSlotLen); + BitVector::iterator itr = newBurst.begin(); + char *bufferItr = buffer+6; + while (itr < newBurst.end()) + *itr++ = *bufferItr++; + + GSM::Time currTime = GSM::Time(frameNum,timeSlot); + + addRadioVector(newBurst,RSSI,currTime); + + LOG(DEBUG) "added burst - time: " << currTime << ", RSSI: " << RSSI; // << ", data: " << newBurst; + + return true; + + +} + +void Transceiver::driveReceiveFIFO() +{ + + SoftVector *rxBurst = NULL; + int RSSI; + int TOA; // in 1/256 of a symbol + GSM::Time burstTime; + + mRadioInterface->driveReceiveRadio(); + + rxBurst = pullRadioVector(burstTime,RSSI,TOA); + + if (rxBurst) { + + LOG(DEBUG) << "burst parameters: " + << " time: " << burstTime + << " RSSI: " << RSSI + << " TOA: " << TOA + << " bits: " << *rxBurst; + + char burstString[gSlotLen+10]; + burstString[0] = burstTime.TN(); + for (int i = 0; i < 4; i++) + burstString[1+i] = (burstTime.FN() >> ((3-i)*8)) & 0x0ff; + burstString[5] = RSSI; + burstString[6] = (TOA >> 8) & 0x0ff; + burstString[7] = TOA & 0x0ff; + SoftVector::iterator burstItr = rxBurst->begin(); + + for (unsigned int i = 0; i < gSlotLen; i++) { + burstString[8+i] =(char) round((*burstItr++)*255.0); + } + burstString[gSlotLen+9] = '\0'; + delete rxBurst; + + mDataSocket.write(burstString,gSlotLen+10); + } + +} + +void Transceiver::driveTransmitFIFO() +{ + + /** + Features a carefully controlled latency mechanism, to + assure that transmit packets arrive at the radio/USRP + before they need to be transmitted. + + Deadline clock indicates the burst that needs to be + pushed into the FIFO right NOW. If transmit queue does + not have a burst, stick in filler data. + */ + + + RadioClock *radioClock = (mRadioInterface->getClock()); + + if (mOn) { + //radioClock->wait(); // wait until clock updates + LOG(DEBUG) << "radio clock " << radioClock->get(); + while (radioClock->get() + mTransmitLatency > mTransmitDeadlineClock) { + // if underrun, then we're not providing bursts to radio/USRP fast + // enough. Need to increase latency by one GSM frame. + if (mRadioInterface->isUnderrun()) { + // only do latency update every 10 frames, so we don't over update + if (radioClock->get() > mLatencyUpdateTime + GSM::Time(10,0)) { + mTransmitLatency = mTransmitLatency + GSM::Time(1,0); + LOG(INFO) << "new latency: " << mTransmitLatency; + mLatencyUpdateTime = radioClock->get(); + } + } + else { + // if underrun hasn't occurred in the last sec (216 frames) drop + // transmit latency by a timeslot + if (mTransmitLatency > GSM::Time(1,1)) { + if (radioClock->get() > mLatencyUpdateTime + GSM::Time(216,0)) { + mTransmitLatency.decTN(); + LOG(INFO) << "reduced latency: " << mTransmitLatency; + mLatencyUpdateTime = radioClock->get(); + } + } + } + // time to push burst to transmit FIFO + pushRadioVector(mTransmitDeadlineClock); + mTransmitDeadlineClock.incTN(); + } + + } + // FIXME -- This should not be a hard spin. + // But any delay here causes us to throw omni_thread_fatal. + //else radioClock->wait(); +} + + + +void Transceiver::writeClockInterface() +{ + char command[50]; + // FIXME -- This should be adaptive. + sprintf(command,"IND CLOCK %llu",(unsigned long long) (mTransmitDeadlineClock.FN()+2)); + + LOG(INFO) << "ClockInterface: sending " << command; + + mClockSocket.write(command,strlen(command)+1); + + mLastClockUpdateTime = mTransmitDeadlineClock; + +} + + + + +void *FIFOServiceLoopAdapter(Transceiver *transceiver) +{ + while (1) { + transceiver->driveReceiveFIFO(); + transceiver->driveTransmitFIFO(); + pthread_testcancel(); + } + return NULL; +} + +void *ControlServiceLoopAdapter(Transceiver *transceiver) +{ + while (1) { + transceiver->driveControl(); + pthread_testcancel(); + } + return NULL; +} + +void *TransmitPriorityQueueServiceLoopAdapter(Transceiver *transceiver) +{ + while (1) { + bool stale = false; + // Flush the UDP packets until a successful transfer. + while (!transceiver->driveTransmitPriorityQueue()) { + stale = true; + } + if (stale) { + // If a packet was stale, remind the GSM stack of the clock. + transceiver->writeClockInterface(); + } + pthread_testcancel(); + } + return NULL; +} diff --git a/Transceiver52M/Transceiver.h b/Transceiver52M/Transceiver.h new file mode 100644 index 0000000..e724c03 --- /dev/null +++ b/Transceiver52M/Transceiver.h @@ -0,0 +1,207 @@ +/* +* Copyright 2008 Free Software Foundation, Inc. +* +* This software is distributed under the terms of the GNU Public License. +* See the COPYING file in the main directory for details. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +*/ + + + +/* + Compilation switches + TRANSMIT_LOGGING write every burst on the given slot to a log +*/ + +#include "radioInterface.h" +#include "Interthread.h" +#include "GSMCommon.h" +#include "Sockets.h" + +#include +#include + +/** Define this to be the slot number to be logged. */ +//#define TRANSMIT_LOGGING 1 + +/** The Transceiver class, responsible for physical layer of basestation */ +class Transceiver { + +private: + + GSM::Time mTransmitLatency; ///< latency between basestation clock and transmit deadline clock + GSM::Time mLatencyUpdateTime; ///< last time latency was updated + + UDPSocket mDataSocket; ///< socket for writing to/reading from GSM core + UDPSocket mControlSocket; ///< socket for writing/reading control commands from GSM core + UDPSocket mClockSocket; ///< socket for writing clock updates to GSM core + + VectorQueue mTransmitPriorityQueue; ///< priority queue of transmit bursts received from GSM core + VectorFIFO* mTransmitFIFO; ///< radioInterface FIFO of transmit bursts + VectorFIFO* mReceiveFIFO; ///< radioInterface FIFO of receive bursts + + Thread *mFIFOServiceLoopThread; ///< thread to push/pull bursts into transmit/receive FIFO + Thread *mControlServiceLoopThread; ///< thread to process control messages from GSM core + Thread *mTransmitPriorityQueueServiceLoopThread;///< thread to process transmit bursts from GSM core + + GSM::Time mTransmitDeadlineClock; ///< deadline for pushing bursts into transmit FIFO + GSM::Time mLastClockUpdateTime; ///< last time clock update was sent up to core + + RadioInterface *mRadioInterface; ///< associated radioInterface object + double txFullScale; ///< full scale input to radio + double rxFullScale; ///< full scale output to radio + + /** Codes for burst types of received bursts*/ + typedef enum { + OFF, ///< timeslot is off + TSC, ///< timeslot should contain a normal burst + RACH, ///< timeslot should contain an access burst + IDLE ///< timeslot is an idle (or dummy) burst + } CorrType; + + + /** Codes for channel combinations */ + typedef enum { + FILL, ///< Channel is transmitted, but unused + I, ///< TCH/FS + II, ///< TCH/HS, idle every other slot + III, ///< TCH/HS + IV, ///< FCCH+SCH+CCCH+BCCH, uplink RACH + V, ///< FCCH+SCH+CCCH+BCCH+SDCCH/4+SACCH/4, uplink RACH+SDCCH/4 + VI, ///< CCCH+BCCH, uplink RACH + VII, ///< SDCCH/8 + SACCH/8 + NONE, ///< Channel is inactive, default + LOOPBACK ///< similar go VII, used in loopback testing + } ChannelCombination; + + + /** unmodulate a modulated burst */ +#ifdef TRANSMIT_LOGGING + void unModulateVector(signalVector wVector); +#endif + + /** modulate and add a burst to the transmit queue */ + void addRadioVector(BitVector &burst, + int RSSI, + GSM::Time &wTime); + + /** Push modulated burst into transmit FIFO corresponding to a particular timestamp */ + void pushRadioVector(GSM::Time &nowTime); + + /** Pull and demodulate a burst from the receive FIFO */ + SoftVector *pullRadioVector(GSM::Time &wTime, + int &RSSI, + int &timingOffset); + + /** Set modulus for specific timeslot */ + void setModulus(int timeslot); + + /** return the expected burst type for the specified timestamp */ + CorrType expectedCorrType(GSM::Time currTime); + + /** send messages over the clock socket */ + void writeClockInterface(void); + + signalVector *gsmPulse; ///< the GSM shaping pulse for modulation + + int mSamplesPerSymbol; ///< number of samples per GSM symbol + + bool mOn; ///< flag to indicate that transceiver is powered on + ChannelCombination mChanType[8]; ///< channel types for all timeslots + double mTxFreq; ///< the transmit frequency + double mRxFreq; ///< the receive frequency + int mPower; ///< the transmit power in dB + unsigned mTSC; ///< the midamble sequence code + double mEnergyThreshold; ///< threshold to determine if received data is potentially a GSM burst + GSM::Time prevFalseDetectionTime; ///< last timestamp of a false energy detection + int fillerModulus[8]; ///< modulus values of all timeslots, in frames + signalVector *fillerTable[102][8]; ///< table of modulated filler waveforms for all timeslots + unsigned mMaxExpectedDelay; ///< maximum expected time-of-arrival offset in GSM symbols + + GSM::Time channelEstimateTime[8]; ///< last timestamp of each timeslot's channel estimate + signalVector *channelResponse[8]; ///< most recent channel estimate of all timeslots + float SNRestimate[8]; ///< most recent SNR estimate of all timeslots + signalVector *DFEForward[8]; ///< most recent DFE feedforward filter of all timeslots + signalVector *DFEFeedback[8]; ///< most recent DFE feedback filter of all timeslots + float chanRespOffset[8]; ///< most recent timing offset, e.g. TOA, of all timeslots + complex chanRespAmplitude[8]; ///< most recent channel amplitude of all timeslots + +public: + + /** Transceiver constructor + @param wBasePort base port number of UDP sockets + @param TRXAddress IP address of the TRX manager, as a string + @param wSamplesPerSymbol number of samples per GSM symbol + @param wTransmitLatency initial setting of transmit latency + @param radioInterface associated radioInterface object + */ + Transceiver(int wBasePort, + const char *TRXAddress, + int wSamplesPerSymbol, + GSM::Time wTransmitLatency, + RadioInterface *wRadioInterface); + + /** Destructor */ + ~Transceiver(); + + /** start the Transceiver */ + void start(); + + /** attach the radioInterface receive FIFO */ + void receiveFIFO(VectorFIFO *wFIFO) { mReceiveFIFO = wFIFO;} + + /** attach the radioInterface transmit FIFO */ + void transmitFIFO(VectorFIFO *wFIFO) { mTransmitFIFO = wFIFO;} + + +protected: + + /** drive reception and demodulation of GSM bursts */ + void driveReceiveFIFO(); + + /** drive transmission of GSM bursts */ + void driveTransmitFIFO(); + + /** drive handling of control messages from GSM core */ + void driveControl(); + + /** + drive modulation and sorting of GSM bursts from GSM core + @return true if a burst was transferred successfully + */ + bool driveTransmitPriorityQueue(); + + friend void *FIFOServiceLoopAdapter(Transceiver *); + + friend void *ControlServiceLoopAdapter(Transceiver *); + + friend void *TransmitPriorityQueueServiceLoopAdapter(Transceiver *); + + void reset(); +}; + +/** FIFO thread loop */ +void *FIFOServiceLoopAdapter(Transceiver *); + +/** control message handler thread loop */ +void *ControlServiceLoopAdapter(Transceiver *); + +/** transmit queueing thread loop */ +void *TransmitPriorityQueueServiceLoopAdapter(Transceiver *); + diff --git a/Transceiver52M/USRPDevice.cpp b/Transceiver52M/USRPDevice.cpp new file mode 100644 index 0000000..7644cc7 --- /dev/null +++ b/Transceiver52M/USRPDevice.cpp @@ -0,0 +1,631 @@ +/* +* Copyright 2008, 2009 Free Software Foundation, Inc. +* +* This software is distributed under the terms of the GNU Affero Public License. +* See the COPYING file in the main directory for details. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +*/ + + +/* + Compilation Flags + + SWLOOPBACK compile for software loopback testing +*/ + + +#include +#include +#include +#include "Threads.h" +#include "USRPDevice.h" + +#include + + +using namespace std; + +string write_it(unsigned v) { + string s = " "; + s[0] = (v>>16) & 0x0ff; + s[1] = (v>>8) & 0x0ff; + s[2] = (v) & 0x0ff; + return s; +} + + +const float USRPDevice::LO_OFFSET = 4.0e6; +const double USRPDevice::masterClockRate = (double) 52.0e6; + +bool USRPDevice::compute_regs(double freq, + unsigned *R, + unsigned *control, + unsigned *N, + double *actual_freq) +{ + if (freq < 1.2e9) { + DIV2 = 1; + freq_mult = 2; + } + else { + DIV2 = 0; + freq_mult = 1; + } + + float phdet_freq = masterClockRate/R_DIV; + int desired_n = (int) round(freq*freq_mult/phdet_freq); + *actual_freq = desired_n * phdet_freq/freq_mult; + float B = floor(desired_n/16); + float A = desired_n - 16*B; + unsigned B_DIV = int(B); + unsigned A_DIV = int(A); + if (B < A) return false; + *R = (R_RSV<<22) | + (BSC << 20) | + (TEST << 19) | + (LDP << 18) | + (ABP << 16) | + (R_DIV << 2); + *control = (P<<22) | + (PD<<20) | + (CP2 << 17) | + (CP1 << 14) | + (PL << 12) | + (MTLD << 11) | + (CPG << 10) | + (CP3S << 9) | + (PDP << 8) | + (MUXOUT << 5) | + (CR << 4) | + (PC << 2); + *N = (DIVSEL<<23) | + (DIV2<<22) | + (CPGAIN<<21) | + (B_DIV<<8) | + (N_RSV<<7) | + (A_DIV<<2); + return true; +} + + +bool USRPDevice::tx_setFreq(double freq, double *actual_freq) +{ + unsigned R, control, N; + if (!compute_regs(freq, &R, &control, &N, actual_freq)) return false; + if (R==0) return false; + + writeLock.lock(); + m_uTx->_write_spi(0,SPI_ENABLE_TX_A,SPI_FMT_MSB | SPI_FMT_HDR_0, + write_it((R & ~0x3) | 1)); + m_uTx->_write_spi(0,SPI_ENABLE_TX_A,SPI_FMT_MSB | SPI_FMT_HDR_0, + write_it((control & ~0x3) | 0)); + usleep(10000); + m_uTx->_write_spi(0,SPI_ENABLE_TX_A,SPI_FMT_MSB | SPI_FMT_HDR_0, + write_it((N & ~0x3) | 2)); + writeLock.unlock(); + + if (m_uTx->read_io(0) & PLL_LOCK_DETECT) return true; + if (m_uTx->read_io(0) & PLL_LOCK_DETECT) return true; + return false; +} + + +bool USRPDevice::rx_setFreq(double freq, double *actual_freq) +{ + unsigned R, control, N; + if (!compute_regs(freq, &R, &control, &N, actual_freq)) return false; + if (R==0) return false; + + writeLock.lock(); + m_uRx->_write_spi(0,SPI_ENABLE_RX_B,SPI_FMT_MSB | SPI_FMT_HDR_0, + write_it((R & ~0x3) | 1)); + m_uRx->_write_spi(0,SPI_ENABLE_RX_B,SPI_FMT_MSB | SPI_FMT_HDR_0, + write_it((control & ~0x3) | 0)); + usleep(10000); + m_uRx->_write_spi(0,SPI_ENABLE_RX_B,SPI_FMT_MSB | SPI_FMT_HDR_0, + write_it((N & ~0x3) | 2)); + writeLock.unlock(); + + if (m_uRx->read_io(1) & PLL_LOCK_DETECT) return true; + if (m_uRx->read_io(1) & PLL_LOCK_DETECT) return true; + return false; +} + + +USRPDevice::USRPDevice (double _desiredSampleRate) +{ + LOG(INFO) << "creating USRP device..."; + decimRate = (unsigned int) round(masterClockRate/_desiredSampleRate); + actualSampleRate = masterClockRate/decimRate; + rxGain = 0; + +#ifdef SWLOOPBACK + samplePeriod = 1.0e6/actualSampleRate; + loopbackBufferSize = 0; + gettimeofday(&lastReadTime,NULL); + firstRead = false; +#endif +} + +bool USRPDevice::make(bool wSkipRx) +{ + skipRx = wSkipRx; + + writeLock.unlock(); + + LOG(INFO) << "making USRP device.."; +#ifndef SWLOOPBACK + string rbf = "std_inband.rbf"; + //string rbf = "inband_1rxhb_1tx.rbf"; + m_uRx.reset(); + if (!skipRx) { + try { + m_uRx = usrp_standard_rx_sptr(usrp_standard_rx::make(0,decimRate,1,-1, + usrp_standard_rx::FPGA_MODE_NORMAL, + 1024,16*8,rbf)); +#ifdef HAVE_LIBUSRP_3_2 + m_uRx->set_fpga_master_clock_freq(masterClockRate); +#endif + } + + catch(...) { + LOG(ALERT) << "make failed on Rx"; + m_uRx.reset(); + return false; + } + + if (m_uRx->fpga_master_clock_freq() != masterClockRate) + { + LOG(ALERT) << "WRONG FPGA clock freq = " << m_uRx->fpga_master_clock_freq() + << ", desired clock freq = " << masterClockRate; + m_uRx.reset(); + return false; + } + } + + try { + m_uTx = usrp_standard_tx_sptr(usrp_standard_tx::make(0,decimRate*2,1,-1, + 1024,16*8,rbf)); +#ifdef HAVE_LIBUSRP_3_2 + m_uTx->set_fpga_master_clock_freq(masterClockRate); +#endif + } + + catch(...) { + LOG(ALERT) << "make failed on Tx"; + m_uTx.reset(); + return false; + } + + if (m_uTx->fpga_master_clock_freq() != masterClockRate) + { + LOG(ALERT) << "WRONG FPGA clock freq = " << m_uTx->fpga_master_clock_freq() + << ", desired clock freq = " << masterClockRate; + m_uTx.reset(); + return false; + } + + if (!skipRx) m_uRx->stop(); + m_uTx->stop(); + +#endif + + samplesRead = 0; + samplesWritten = 0; + started = false; + + return true; +} + + + +bool USRPDevice::start() +{ + LOG(INFO) << "starting USRP..."; +#ifndef SWLOOPBACK + if (!m_uRx && !skipRx) return false; + if (!m_uTx) return false; + + if (!skipRx) m_uRx->stop(); + m_uTx->stop(); + + writeLock.lock(); + // power up and configure daughterboards + m_uTx->_write_oe(0,0,0xffff); + m_uTx->_write_oe(0,(POWER_UP|RX_TXN|ENABLE), 0xffff); + m_uTx->write_io(0,(~POWER_UP|RX_TXN),(POWER_UP|RX_TXN|ENABLE)); + m_uTx->write_io(0,ENABLE,(RX_TXN | ENABLE)); + m_uTx->_write_fpga_reg(FR_ATR_MASK_0 ,0);//RX_TXN|ENABLE); + m_uTx->_write_fpga_reg(FR_ATR_TXVAL_0,0);//,0 |ENABLE); + m_uTx->_write_fpga_reg(FR_ATR_RXVAL_0,0);//,RX_TXN|0); + m_uTx->_write_fpga_reg(40,0); + m_uTx->_write_fpga_reg(42,0); + m_uTx->set_pga(0,m_uTx->pga_max()); // should be 20dB + m_uTx->set_pga(1,m_uTx->pga_max()); + m_uTx->set_mux(0x00000098); + LOG(INFO) << "TX pgas: " << m_uTx->pga(0) << ", " << m_uTx->pga(1); + writeLock.unlock(); + + if (!skipRx) { + writeLock.lock(); + m_uRx->_write_fpga_reg(FR_ATR_MASK_0 + 3*3,0); + m_uRx->_write_fpga_reg(FR_ATR_TXVAL_0 + 3*3,0); + m_uRx->_write_fpga_reg(FR_ATR_RXVAL_0 + 3*3,0); + m_uRx->_write_fpga_reg(43,0); + m_uRx->_write_oe(1,(POWER_UP|RX_TXN|ENABLE), 0xffff); + m_uRx->write_io(1,(~POWER_UP|RX_TXN|ENABLE),(POWER_UP|RX_TXN|ENABLE)); + //m_uRx->write_io(1,0,RX2_RX1N); // using Tx/Rx/ + m_uRx->write_io(1,RX2_RX1N,RX2_RX1N); // using Rx2 + m_uRx->set_adc_buffer_bypass(2,true); + m_uRx->set_adc_buffer_bypass(3,true); + m_uRx->set_mux(0x00000032); + writeLock.unlock(); + // FIXME -- This should be configurable. + setRxGain(47); //maxRxGain()); + } + + data = new short[currDataSize]; + dataStart = 0; + dataEnd = 0; + timeStart = 0; + timeEnd = 0; + timestampOffset = 0; + latestWriteTimestamp = 0; + lastPktTimestamp = 0; + hi32Timestamp = 0; + isAligned = false; + + + if (!skipRx) + started = (m_uRx->start() && m_uTx->start()); + else + started = m_uTx->start(); + return started; +#else + gettimeofday(&lastReadTime,NULL); + return true; +#endif +} + +bool USRPDevice::stop() +{ +#ifndef SWLOOPBACK + if (!m_uRx) return false; + if (!m_uTx) return false; + + // power down + m_uTx->write_io(0,(~POWER_UP|RX_TXN),(POWER_UP|RX_TXN|ENABLE)); + m_uRx->write_io(1,~POWER_UP,(POWER_UP|ENABLE)); + + delete[] currData; + + started = !(m_uRx->stop() && m_uTx->stop()); + return !started; +#else + return true; +#endif +} + +double USRPDevice::setTxGain(double dB) { + + writeLock.lock(); + if (dB > maxTxGain()) dB = maxTxGain(); + if (dB < minTxGain()) dB = minTxGain(); + + m_uTx->set_pga(0,dB); + m_uTx->set_pga(1,dB); + + LOG(NOTICE) << "Setting TX PGA to " << dB << " dB."; + + writeLock.unlock(); + + return dB; +} + + +double USRPDevice::setRxGain(double dB) { + + writeLock.lock(); + if (dB > maxRxGain()) dB = maxRxGain(); + if (dB < minRxGain()) dB = minRxGain(); + + double dBret = dB; + + dB = dB - minRxGain(); + + double rfMax = 70.0; + if (dB > rfMax) { + m_uRx->set_pga(2,dB-rfMax); + m_uRx->set_pga(3,dB-rfMax); + dB = rfMax; + } + else { + m_uRx->set_pga(2,0); + m_uRx->set_pga(3,0); + } + m_uRx->write_aux_dac(1,0, + (int) ceil((1.2 + 0.02 - (dB/rfMax))*4096.0/3.3)); + + LOG(DEBUG) << "Setting DAC voltage to " << (1.2+0.02 - (dB/rfMax)) << " " << (int) ceil((1.2 + 0.02 - (dB/rfMax))*4096.0/3.3); + + rxGain = dBret; + + writeLock.unlock(); + + return dBret; +} + + +// NOTE: Assumes sequential reads +int USRPDevice::readSamples(short *buf, int len, bool *overrun, + TIMESTAMP timestamp, + bool *underrun, + unsigned *RSSI) +{ +#ifndef SWLOOPBACK + if (!m_uRx) return 0; + + timestamp += timestampOffset; + + if (timestamp + len < timeStart) { + memset(buf,0,len*2*sizeof(short)); + return len; + } + + if (underrun) *underrun = false; + + uint32_t readBuf[2000]; + + while (1) { + //guestimate USB read size + int readLen=0; + { + int numSamplesNeeded = timestamp + len - timeEnd; + if (numSamplesNeeded <=0) break; + readLen = 512 * ((int) ceil((float) numSamplesNeeded/126.0)); + if (readLen > 8000) readLen= (8000/512)*512; + } + + // read USRP packets, parse and save A/D data as needed + readLen = m_uRx->read((void *)readBuf,readLen,overrun); + for(int pktNum = 0; pktNum < (readLen/512); pktNum++) { + // tmpBuf points to start of a USB packet + uint32_t* tmpBuf = (uint32_t *) (readBuf+pktNum*512/4); + TIMESTAMP pktTimestamp = usrp_to_host_u32(tmpBuf[1]); + uint32_t word0 = usrp_to_host_u32(tmpBuf[0]); + uint32_t chan = (word0 >> 16) & 0x1f; + unsigned payloadSz = word0 & 0x1ff; + LOG(DEBUG) << "first two bytes: " << hex << word0 << " " << dec << pktTimestamp; + + bool incrementHi32 = ((lastPktTimestamp & 0x0ffffffffll) > pktTimestamp); + if (incrementHi32 && (timeStart!=0)) { + LOG(DEBUG) << "high 32 increment!!!"; + hi32Timestamp++; + } + pktTimestamp = (((TIMESTAMP) hi32Timestamp) << 32) | pktTimestamp; + lastPktTimestamp = pktTimestamp; + + if (chan == 0x01f) { + // control reply, check to see if its ping reply + uint32_t word2 = usrp_to_host_u32(tmpBuf[2]); + if ((word2 >> 16) == ((0x01 << 8) | 0x02)) { + timestamp -= timestampOffset; + timestampOffset = pktTimestamp - pingTimestamp + PINGOFFSET; + LOG(DEBUG) << "updating timestamp offset to: " << timestampOffset; + timestamp += timestampOffset; + isAligned = true; + } + continue; + } + if (chan != 0) { + LOG(DEBUG) << "chan: " << chan << ", timestamp: " << pktTimestamp << ", sz:" << payloadSz; + continue; + } + if ((word0 >> 28) & 0x04) { + if (underrun) *underrun = true; + LOG(DEBUG) << "UNDERRUN in TRX->USRP interface"; + } + if (RSSI) *RSSI = (word0 >> 21) & 0x3f; + + if (!isAligned) continue; + + unsigned cursorStart = pktTimestamp - timeStart + dataStart; + while (cursorStart*2 > currDataSize) { + cursorStart -= currDataSize/2; + } + if (cursorStart*2 + payloadSz/2 > currDataSize) { + // need to circle around buffer + memcpy(data+cursorStart*2,tmpBuf+2,(currDataSize-cursorStart*2)*sizeof(short)); + memcpy(data,tmpBuf+2+(currDataSize/2-cursorStart),payloadSz-(currDataSize-cursorStart*2)*sizeof(short)); + } + else { + memcpy(data+cursorStart*2,tmpBuf+2,payloadSz); + } + if (pktTimestamp + payloadSz/2/sizeof(short) > timeEnd) + timeEnd = pktTimestamp+payloadSz/2/sizeof(short); + + LOG(DEBUG) << "timeStart: " << timeStart << ", timeEnd: " << timeEnd << ", pktTimestamp: " << pktTimestamp; + + } + } + + // copy desired data to buf + unsigned bufStart = dataStart+(timestamp-timeStart); + if (bufStart + len < currDataSize/2) { + LOG(DEBUG) << "bufStart: " << bufStart; + memcpy(buf,data+bufStart*2,len*2*sizeof(short)); + memset(data+bufStart*2,0,len*2*sizeof(short)); + } + else { + LOG(DEBUG) << "len: " << len << ", currDataSize/2: " << currDataSize/2 << ", bufStart: " << bufStart; + unsigned firstLength = (currDataSize/2-bufStart); + LOG(DEBUG) << "firstLength: " << firstLength; + memcpy(buf,data+bufStart*2,firstLength*2*sizeof(short)); + memset(data+bufStart*2,0,firstLength*2*sizeof(short)); + memcpy(buf+firstLength*2,data,(len-firstLength)*2*sizeof(short)); + memset(data,0,(len-firstLength)*2*sizeof(short)); + } + dataStart = (bufStart + len) % (currDataSize/2); + timeStart = timestamp + len; + + // do IQ swap here + for (int i = 0; i < len; i++) { + short tmp = usrp_to_host_short(buf[2*i]); + buf[2*i] = usrp_to_host_short(buf[2*i+1]); + buf[2*i+1] = tmp; + } + + return len; + +#else + if (loopbackBufferSize < 2) return 0; + int numSamples = 0; + struct timeval currTime; + gettimeofday(&currTime,NULL); + double timeElapsed = (currTime.tv_sec - lastReadTime.tv_sec)*1.0e6 + + (currTime.tv_usec - lastReadTime.tv_usec); + if (timeElapsed < samplePeriod) {return 0;} + int numSamplesToRead = (int) floor(timeElapsed/samplePeriod); + if (numSamplesToRead < len) return 0; + + if (numSamplesToRead > len) numSamplesToRead = len; + if (numSamplesToRead > loopbackBufferSize/2) { + firstRead =false; + numSamplesToRead = loopbackBufferSize/2; + } + memcpy(buf,loopbackBuffer,sizeof(short)*2*numSamplesToRead); + loopbackBufferSize -= 2*numSamplesToRead; + memcpy(loopbackBuffer,loopbackBuffer+2*numSamplesToRead, + sizeof(short)*loopbackBufferSize); + numSamples = numSamplesToRead; + if (firstRead) { + int new_usec = lastReadTime.tv_usec + (int) round((double) numSamplesToRead * samplePeriod); + lastReadTime.tv_sec = lastReadTime.tv_sec + new_usec/1000000; + lastReadTime.tv_usec = new_usec % 1000000; + } + else { + gettimeofday(&lastReadTime,NULL); + firstRead = true; + } + samplesRead += numSamples; + + return numSamples; +#endif +} + +int USRPDevice::writeSamples(short *buf, int len, bool *underrun, + unsigned long long timestamp, + bool isControl) +{ + writeLock.lock(); + +#ifndef SWLOOPBACK + if (!m_uTx) return 0; + + static uint32_t outData[128*20]; + + for (int i = 0; i < len*2; i++) { + buf[i] = host_to_usrp_short(buf[i]); + } + + int numWritten = 0; + unsigned isStart = 1; + unsigned RSSI = 0; + unsigned CHAN = (isControl) ? 0x01f : 0x00; + len = len*2*sizeof(short); + int numPkts = (int) ceil((float)len/(float)504); + unsigned isEnd = (numPkts < 2); + uint32_t *outPkt = outData; + int pktNum = 0; + while (numWritten < len) { + // pkt is pointer to start of a USB packet + uint32_t *pkt = outPkt + pktNum*128; + isEnd = (len - numWritten <= 504); + unsigned payloadLen = ((len - numWritten) < 504) ? (len-numWritten) : 504; + pkt[0] = (isStart << 12 | isEnd << 11 | (RSSI & 0x3f) << 5 | CHAN) << 16 | payloadLen; + pkt[1] = timestamp & 0x0ffffffffll; + memcpy(pkt+2,buf+(numWritten/sizeof(short)),payloadLen); + numWritten += payloadLen; + timestamp += payloadLen/2/sizeof(short); + isStart = 0; + pkt[0] = host_to_usrp_u32(pkt[0]); + pkt[1] = host_to_usrp_u32(pkt[1]); + pktNum++; + } + m_uTx->write((const void*) outPkt,sizeof(uint32_t)*128*numPkts,NULL); + + samplesWritten += len/2/sizeof(short); + writeLock.unlock(); + + return len/2/sizeof(short); +#else + int retVal = len; + memcpy(loopbackBuffer+loopbackBufferSize,buf,sizeof(short)*2*len); + samplesWritten += retVal; + loopbackBufferSize += retVal*2; + + return retVal; +#endif +} + +bool USRPDevice::updateAlignment(TIMESTAMP timestamp) +{ +#ifndef SWLOOPBACK + short data[] = {0x00,0x02,0x00,0x00}; + uint32_t *wordPtr = (uint32_t *) data; + *wordPtr = host_to_usrp_u32(*wordPtr); + bool tmpUnderrun; + if (writeSamples((short *) data,1,&tmpUnderrun,timestamp & 0x0ffffffffll,true)) { + pingTimestamp = timestamp; + return true; + } + return false; +#else + return true; +#endif +} + +#ifndef SWLOOPBACK +bool USRPDevice::setTxFreq(double wFreq) { + // Tune to wFreq+LO_OFFSET, to prevent LO bleedthrough from interfering with transmitted signal. + double actFreq; + if (!tx_setFreq(wFreq+1*LO_OFFSET,&actFreq)) return false; + bool retVal = m_uTx->set_tx_freq(0,(wFreq-actFreq)); + LOG(INFO) << "set TX: " << wFreq-actFreq << " actual TX: " << m_uTx->tx_freq(0); + return retVal; +}; + +bool USRPDevice::setRxFreq(double wFreq) { + // Tune to wFreq-2*LO_OFFSET, to + // 1) prevent LO bleedthrough (as with the setTxFreq method above) + // 2) The extra LO_OFFSET pushes potential transmitter energy (GSM BS->MS transmissions + // are 45Mhz above MS->BS transmissions) into a notch of the baseband lowpass filter + // in front of the ADC. This possibly gives us an extra 10-20dB Tx/Rx isolation. + double actFreq; + // FIXME -- This should bo configurable. + if (!rx_setFreq(wFreq-2*LO_OFFSET,&actFreq)) return false; + bool retVal = m_uRx->set_rx_freq(0,(wFreq-actFreq)); + LOG(DEBUG) << "set RX: " << wFreq-actFreq << " actual RX: " << m_uRx->rx_freq(0); + return retVal; +}; + +#else +bool USRPDevice::setTxFreq(double wFreq) { return true;}; +bool USRPDevice::setRxFreq(double wFreq) { return true;}; +#endif diff --git a/Transceiver52M/USRPDevice.h b/Transceiver52M/USRPDevice.h new file mode 100644 index 0000000..19aa043 --- /dev/null +++ b/Transceiver52M/USRPDevice.h @@ -0,0 +1,261 @@ +/* +* Copyright 2008 Free Software Foundation, Inc. +* +* This software is distributed under multiple licenses; see the COPYING file in the main directory for licensing information for this specific distribuion. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#ifndef _USRP_DEVICE_H_ +#define _USRP_DEVICE_H_ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "radioDevice.h" + +#ifdef HAVE_LIBUSRP_3_3 // [ +# include +# include +# include +#else // HAVE_LIBUSRP_3_3 ][ +# include "usrp_standard.h" +# include "usrp_bytesex.h" +# include "usrp_prims.h" +#endif // !HAVE_LIBUSRP_3_3 ] +#include +#include +#include +#include + + +/** Define types which are not defined in libusrp-3.1 */ +#ifndef HAVE_LIBUSRP_3_2 +#include +typedef boost::shared_ptr usrp_standard_tx_sptr; +typedef boost::shared_ptr usrp_standard_rx_sptr; +#endif // HAVE_LIBUSRP_3_2 + + + +/** A class to handle a USRP rev 4, with a two RFX900 daughterboards */ +class USRPDevice: public RadioDevice { + +private: + + static const double masterClockRate; ///< the USRP clock rate + double desiredSampleRate; ///< the desired sampling rate + usrp_standard_rx_sptr m_uRx; ///< the USRP receiver + usrp_standard_tx_sptr m_uTx; ///< the USRP transmitter + + double actualSampleRate; ///< the actual USRP sampling rate + unsigned int decimRate; ///< the USRP decimation rate + + unsigned long long samplesRead; ///< number of samples read from USRP + unsigned long long samplesWritten; ///< number of samples sent to USRP + + bool started; ///< flag indicates USRP has started + bool skipRx; ///< set if USRP is transmit-only. + + static const unsigned int currDataSize_log2 = 21; + static const unsigned long currDataSize = (1 << currDataSize_log2); + short *data; + unsigned long dataStart; + unsigned long dataEnd; + TIMESTAMP timeStart; + TIMESTAMP timeEnd; + bool isAligned; + + Mutex writeLock; + + short *currData; ///< internal data buffer when reading from USRP + TIMESTAMP currTimestamp; ///< timestamp of internal data buffer + unsigned currLen; ///< size of internal data buffer + + TIMESTAMP timestampOffset; ///< timestamp offset b/w Tx and Rx blocks + TIMESTAMP latestWriteTimestamp; ///< timestamp of most recent ping command + TIMESTAMP pingTimestamp; ///< timestamp of most recent ping response + static const TIMESTAMP PINGOFFSET = 272; ///< undetermined delay b/w ping response timestamp and true receive timestamp + unsigned long hi32Timestamp; + unsigned long lastPktTimestamp; + + double rxGain; + +#ifdef SWLOOPBACK + short loopbackBuffer[1000000]; + int loopbackBufferSize; + double samplePeriod; + + struct timeval startTime; + struct timeval lastReadTime; + bool firstRead; +#endif + + /** Mess of constants used to control various hardware on the USRP */ + static const unsigned POWER_UP = (1 << 7); + static const unsigned RX_TXN = (1 << 6); + static const unsigned RX2_RX1N = (1 << 6); + static const unsigned ENABLE = (1 << 5); + static const unsigned PLL_LOCK_DETECT = (1 << 2); + + static const unsigned SPI_ENABLE_TX_A = 0x10; + static const unsigned SPI_ENABLE_RX_A = 0x20; + static const unsigned SPI_ENABLE_TX_B = 0x40; + static const unsigned SPI_ENABLE_RX_B = 0x80; + + static const unsigned SPI_FMT_MSB = (0 << 7); + static const unsigned SPI_FMT_HDR_0 = (0 << 5); + + static const float LO_OFFSET; + //static const float LO_OFFSET = 4.0e6; + + static const unsigned R_DIV = 16; + static const unsigned P = 1; + static const unsigned CP2 = 7; + static const unsigned CP1 = 7; + static const unsigned DIVSEL = 0; + unsigned DIV2; // changes with GSM band + unsigned freq_mult; // changes with GSM band + static const unsigned CPGAIN = 0; + + // R-Register Common Values + static const unsigned R_RSV = 0; // bits 23,22 + static const unsigned BSC = 3; // bits 21,20 Div by 8 to be safe + static const unsigned TEST = 0; // bit 19 + static const unsigned LDP = 1; // bit 18 + static const unsigned ABP = 0; // bit 17,16 3ns + + // N-Register Common Values + static const unsigned N_RSV = 0; // bit 7 + + // Control Register Common Values + static const unsigned PD = 0; // bits 21,20 Normal operation + static const unsigned PL = 0; // bits 13,12 11mA + static const unsigned MTLD = 1; // bit 11 enabled + static const unsigned CPG = 0; // bit 10 CP setting 1 + static const unsigned CP3S = 0; // bit 9 Normal + static const unsigned PDP = 1; // bit 8 Positive + static const unsigned MUXOUT = 1;// bits 7:5 Digital Lock Detect + static const unsigned CR = 0; // bit 4 Normal + static const unsigned PC = 1; // bits 3,2 Core power 10mA + + // ATR register value + static const int FR_ATR_MASK_0 = 20; + static const int FR_ATR_TXVAL_0 = 21; + static const int FR_ATR_RXVAL_0 = 22; + + /** Compute register values to tune daughterboard to desired frequency */ + bool compute_regs(double freq, + unsigned *R, + unsigned *control, + unsigned *N, + double *actual_freq); + + /** Set the transmission frequency */ + bool tx_setFreq(double freq, double *actual_freq); + + /** Set the receiver frequency */ + bool rx_setFreq(double freq, double *actual_freq); + + public: + + /** Object constructor */ + USRPDevice (double _desiredSampleRate); + + /** Instantiate the USRP */ + bool make(bool skipRx = false); + + /** Start the USRP */ + bool start(); + + /** Stop the USRP */ + bool stop(); + + /** + Read samples from the USRP. + @param buf preallocated buf to contain read result + @param len number of samples desired + @param overrun Set if read buffer has been overrun, e.g. data not being read fast enough + @param timestamp The timestamp of the first samples to be read + @param underrun Set if USRP does not have data to transmit, e.g. data not being sent fast enough + @param RSSI The received signal strength of the read result + @return The number of samples actually read + */ + int readSamples(short *buf, int len, bool *overrun, + TIMESTAMP timestamp = 0xffffffff, + bool *underrun = NULL, + unsigned *RSSI = NULL); + /** + Write samples to the USRP. + @param buf Contains the data to be written. + @param len number of samples to write. + @param underrun Set if USRP does not have data to transmit, e.g. data not being sent fast enough + @param timestamp The timestamp of the first sample of the data buffer. + @param isControl Set if data is a control packet, e.g. a ping command + @return The number of samples actually written + */ + int writeSamples(short *buf, int len, bool *underrun, + TIMESTAMP timestamp = 0xffffffff, + bool isControl = false); + + /** Update the alignment between the read and write timestamps */ + bool updateAlignment(TIMESTAMP timestamp); + + /** Set the transmitter frequency */ + bool setTxFreq(double wFreq); + + /** Set the receiver frequency */ + bool setRxFreq(double wFreq); + + /** Returns the starting write Timestamp*/ + TIMESTAMP initialWriteTimestamp(void) { return 20000;} + + /** Returns the starting read Timestamp*/ + TIMESTAMP initialReadTimestamp(void) { return 20000;} + + /** returns the full-scale transmit amplitude **/ + double fullScaleInputValue() {return 13500.0;} + + /** returns the full-scale receive amplitude **/ + double fullScaleOutputValue() {return 9450.0;} + + /** sets the receive chan gain, returns the gain setting **/ + double setRxGain(double dB); + + /** get the current receive gain */ + double getRxGain(void) {return rxGain;} + + /** return maximum Rx Gain **/ + double maxRxGain(void) {return 97.0;} + + /** return minimum Rx Gain **/ + double minRxGain(void) {return 7.0;} + + /** sets the transmit chan gain, returns the gain setting **/ + double setTxGain(double dB); + + /** return maximum Tx Gain **/ + double maxTxGain(void) {return 0.0;} + + /** return minimum Rx Gain **/ + double minTxGain(void) {return -20.0;} + + + /** Return internal status values */ + inline double getTxFreq() { return 0;} + inline double getRxFreq() { return 0;} + inline double getSampleRate() {return actualSampleRate;} + inline double numberRead() { return samplesRead; } + inline double numberWritten() { return samplesWritten;} + +}; + +#endif // _USRP_DEVICE_H_ + diff --git a/Transceiver52M/USRPping.cpp b/Transceiver52M/USRPping.cpp new file mode 100644 index 0000000..b238c69 --- /dev/null +++ b/Transceiver52M/USRPping.cpp @@ -0,0 +1,96 @@ +/* +* Copyright 2008, 2009 Free Software Foundation, Inc. +* +* This software is distributed under the terms of the GNU Public License. +* See the COPYING file in the main directory for details. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +*/ + + + +#include +#include +#include +#include +#include "USRPDevice.h" + +ConfigurationTable gConfig; + +using namespace std; + +int main(int argc, char *argv[]) { + + // Configure logger. + if (argc>1) gLogInit(argv[1]); + else gLogInit("DEBUG"); + //if (argc>2) gSetLogFile(argv[2]); + + USRPDevice *usrp = new USRPDevice(52.0e6/192.0); + + usrp->make(); + + TIMESTAMP timestamp; + + usrp->setTxFreq(825.4e6); + usrp->setRxFreq(825.4e6); + + usrp->start(); + + usrp->setRxGain(57); + + LOG(INFO) << "Looping..."; + bool underrun; + + short data[]={0x00,0x02}; + + usrp->updateAlignment(20000); + usrp->updateAlignment(21000); + + int numpkts = 1; + short data2[512*2*numpkts]; + for (int i = 0; i < 512*numpkts; i++) { + data2[i<<1] = 10000;//4096*cos(2*3.14159*(i % 126)/126); + data2[(i<<1) + 1] = 10000;//4096*sin(2*3.14159*(i % 126)/126); + } + + for (int i = 0; i < 1; i++) + usrp->writeSamples((short*) data2,512*numpkts,&underrun,102000+i*1000); + + timestamp = 19000; + double sum = 0.0; + unsigned long num = 0; + while (1) { + short readBuf[512*2]; + int rd = usrp->readSamples(readBuf,512,&underrun,timestamp); + if (rd) { + LOG(INFO) << "rcvd. data@:" << timestamp; + for (int i = 0; i < 512; i++) { + uint32_t *wordPtr = (uint32_t *) &readBuf[2*i]; + *wordPtr = usrp_to_host_u32(*wordPtr); + printf ("%llu: %d %d\n", timestamp+i,readBuf[2*i],readBuf[2*i+1]); + sum += (readBuf[2*i+1]*readBuf[2*i+1] + readBuf[2*i]*readBuf[2*i]); + num++; + //if (num % 10000 == 0) printf("avg pwr: %f\n",sum/num); + } + timestamp += rd; + //usrp->writeSamples((short*) data2,512*numpkts,&underrun,timestamp+1000); + } + } + +} diff --git a/Transceiver52M/inband-signaling-usb b/Transceiver52M/inband-signaling-usb new file mode 100644 index 0000000..14f8347 --- /dev/null +++ b/Transceiver52M/inband-signaling-usb @@ -0,0 +1,314 @@ +This file specifies the format of USB packets used for in-band data +transmission and signaling on the USRP. All packets are 512-byte long, +and are transfered using USB "bulk" transfers. + +IN packets are sent towards the host. +OUT packets are sent away from the host. + +The layout is 32-bits wide. All data is transmitted in little-endian +format across the USB. + + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |O|U|D|S|E| RSSI | Chan | mbz | Tag | Payload Len | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Timestamp | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + + + + | Payload | + . . + . . + . . + | | + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ... | . + +-+-+-+-+-+-+-+ . + . . + . Padding . + . . + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + mbz Must be Zero: these bits must be zero in both IN and OUT packets. + + O Overrun Flag: set in an IN packet if an overrun condition was + detected. Must be zero in OUT packets. Overrun occurs when + the FPGA has data to transmit to the host and there is no + buffer space available. This generally indicates a problem on + the host. Either it is not keeping up, or it has configured + the FPGA to transmit data at a higher rate than the transport + (USB) can support. + + U Underrun Flag: set in an IN packet if an underrun condition + was detected. Must be zero in OUT packets. Underrun occurs + when the FPGA runs out of samples, and it's not between + bursts. See the "End of Burst flag" below. + + D Dropped Packet Flag: Set in an IN packet if the FPGA + discarded an OUT packet because its timestamp had already + passed. + + S Start of Burst Flag: Set in an OUT packet if the data is the + first segment of what is logically a continuous burst of data. + Must be zero in IN packets. + + E End of Burst Flag: Set in an OUT packet if the data is the + last segment of what is logically a continuous burst of data. + Must be zero in IN packets. Underruns are not reported + when the FPGA runs out of samples between bursts. + + + RSSI 6-bit Received Strength Signal Indicator: Must be zero in OUT + packets. In IN packets, indicates RSSI as reported by front end. + FIXME The format and interpretation are to be determined. + + Chan 5-bit logical channel number. Channel number 0x1f is reserved + for control information. See "Control Channel" below. Other + channels are "data channels." Each data channel is logically + independent of the others. A data channel payload field + contains a sequence of homogeneous samples. The format of the + samples is determined by the configuration associated with the + given channel. It is often the case that the payload field + contains 32-bit complex samples, each containing 16-bit real + and imaginary components. + + Tag 4-bit tag for matching IN packets with OUT packets. + [FIXME, write more...] + + Payload Len: 9-bit field that specifies the length of the payload + field in bytes. Must be in the range 0 to 504 inclusive. + + Timestamp: 32-bit timestamp. + On IN packets, the timestamp indicates the time at which the + first sample of the packet was produced by the A/D converter(s) + for that channel. On OUT packets, the timestamp specifies the + time at which the first sample in the packet should go out the + D/A converter(s) for that channel. If a packet reaches the + head of the transmit queue, and the current time is later than + the timestamp, an error is assumed to have occurred and the + packet is discarded. As a special case, the timestamp + 0xffffffff is interpreted as "Now". + + The time base is a free running 32-bit counter that is + incremented by the A/D sample-clock. + + Payload: Variable length field. Length is specified by the + Payload Len field. + + Padding: This field is 504 - Payload Len bytes long, and its content + is unspecified. This field pads the packet out to a constant + 512 bytes. + + + +"Data Channel" payload format: +------------------------------- + +If Chan != 0x1f, the packet is a "data packet" and the payload is a +sequence of homogeneous samples. The format of the samples is +determined by the configuration associated with the given channel. +It is often the case that the payload field contains 32-bit complex +samples, each containing 16-bit real and imaginary components. + + +"Control Channel" payload format: +--------------------------------- + +If Chan == 0x1f, the packet is a "control packet". The control channel +payload consists of a sequence of 0 or more sub-packets. + +Each sub-packet starts on a 32-bit boundary, and consists of an 8-bit +Opcode field, an 8-bit Length field, Length bytes of arguments, and 0, +1, 2 or 3 bytes of padding to align the tail of the sub-packet to +a 32-bit boundary. + +Control channel packets shall be processed at the head of the queue, +and shall observe the timestamp semantics described above. + + +General sub-packet format: +-------------------------- + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//-+-+-+-+-+-+-+-+ + | Opcode | Length | ... | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//-+-+-+-+-+-+-+-+ + + +Specific sub-packet formats: +---------------------------- + + RID: 6-bit Request-ID. Copied from request sub-packet into corresponding + reply sub-packet. RID allows the host to match requests and replies. + + Reg Number: 10-bit Register Number. + + + +Ping Fixed Length: + + Opcode: OP_PING_FIXED + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Opcode | 2 | RID | Ping Value | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +Ping Fixed Length Reply: + + Opcode: OP_PING_FIXED_REPLY + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Opcode | 2 | RID | Ping Value | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +Write Register: + + Opcode: OP_WRITE_REG + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Opcode | 6 | mbz | Reg Number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Register Value | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +Write Register Masked: + + Opcode: OP_WRITE_REG_MASKED + + REG[Num] = (REG[Num] & ~Mask) | (Value & Mask) + + That is, only the register bits that correspond to 1's in the + mask are written with the new value. + + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Opcode | 10 | mbz | Reg Number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Register Value | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Mask Value | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +Read Register: + + Opcode: OP_READ_REG + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Opcode | 2 | RID | Reg Number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +Read Register Reply: + + Opcode: OP_READ_REG_REPLY + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Opcode | 6 | RID | Reg Number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Register Value | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +I2C Write: + + Opcode: OP_I2C_WRITE + I2C Addr: 7-bit I2C address + Data: The bytes to write to the I2C bus + Length: Length of Data + 2 + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Opcode | Length | mbz | I2C Addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Data ... . + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +I2C Read: + + Opcode: OP_I2C_READ + I2C Addr: 7-bit I2C address + Nbytes: Number of bytes to read from I2C bus + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Opcode | 3 | RID | mbz | I2C Addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Nbytes | unspecified padding | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +I2C Read Reply: + + Opcode: OP_I2C_READ_REPLY + I2C Addr: 7-bit I2C address + Data: Length - 2 bytes of data read from I2C bus. + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Opcode | Length | RID | mbz | I2C Addr | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Data ... . + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +SPI Write: + + Opcode: OP_SPI_WRITE + Enables: Which SPI enables to assert (mask) + Format: Specifies format of SPI data and Opt Header Bytes + Opt Header Bytes: 2-byte field containing optional Tx bytes; see Format + Data: The bytes to write to the SPI bus + Length: Length of Data + 6 + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Opcode | Length | mbz | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Enables | Format | Opt Header Bytes | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Data ... . + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +SPI Read: + + Opcode: OP_SPI_READ + Enables: Which SPI enables to assert (mask) + Format: Specifies format of SPI data and Opt Header Bytes + Opt Header Bytes: 2-byte field containing optional Tx bytes; see Format + Nbytes: Number of bytes to read from SPI bus. + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Opcode | 7 | RID | mbz | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Enables | Format | Opt Header Bytes | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Nbytes | unspecified padding | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +SPI Read Reply: + + Opcode: OP_SPI_READ_REPLY + Data: Length - 2 bytes of data read from SPI bus. + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Opcode | Length | RID | mbz | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Data ... . + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +Delay: + + Opcode: OP_DELAY + Ticks: 16-bit unsigned delay count + + Delay Ticks clock ticks before executing next operation. + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Opcode | 2 | Ticks | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + diff --git a/Transceiver52M/pulseApproximate.m b/Transceiver52M/pulseApproximate.m new file mode 100644 index 0000000..2ff9234 --- /dev/null +++ b/Transceiver52M/pulseApproximate.m @@ -0,0 +1,15 @@ +pp = [0 0 0.015 0.18 0.7 0.96 0.7 0.18 0.015 0 0]; +t = -2.5:0.5:2.5; + +v = -0.000:-0.001:-1.999; + + +for ix1 = 1:length(v), + disp(ix1); + for ix2 = 1:length(v), + p = exp(v(ix1)*t.^2+v(ix2)*t.^4); + r(ix1,ix2) = norm(p./max(abs(p)) - pp./max(abs(pp))); + end; +end; + + diff --git a/Transceiver52M/radioDevice.h b/Transceiver52M/radioDevice.h new file mode 100644 index 0000000..9ca39da --- /dev/null +++ b/Transceiver52M/radioDevice.h @@ -0,0 +1,115 @@ +/* +* Copyright 2008 Free Software Foundation, Inc. +* +* This software is distributed under multiple licenses; see the COPYING file in the main directory for licensing information for this specific distribuion. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + +#ifndef __RADIO_DEVICE_H__ +#define __RADIO_DEVICE_H__ + + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +/** a 64-bit virtual timestamp for radio data */ +typedef unsigned long long TIMESTAMP; + +/** A class to handle a USRP rev 4, with a two RFX900 daughterboards */ +class RadioDevice { + + public: + + /** Start the USRP */ + virtual bool start()=0; + + /** Stop the USRP */ + virtual bool stop()=0; + + /** + Read samples from the radio. + @param buf preallocated buf to contain read result + @param len number of samples desired + @param overrun Set if read buffer has been overrun, e.g. data not being read fast enough + @param timestamp The timestamp of the first samples to be read + @param underrun Set if radio does not have data to transmit, e.g. data not being sent fast enough + @param RSSI The received signal strength of the read result + @return The number of samples actually read + */ + virtual int readSamples(short *buf, int len, bool *overrun, + TIMESTAMP timestamp, + bool *underrun, + unsigned *RSSI=NULL)=0; + /** + Write samples to the radio. + @param buf Contains the data to be written. + @param len number of samples to write. + @param underrun Set if radio does not have data to transmit, e.g. data not being sent fast enough + @param timestamp The timestamp of the first sample of the data buffer. + @param isControl Set if data is a control packet, e.g. a ping command + @return The number of samples actually written + */ + virtual int writeSamples(short *buf, int len, bool *underrun, + TIMESTAMP timestamp, + bool isControl=false)=0; + + /** Update the alignment between the read and write timestamps */ + virtual bool updateAlignment(TIMESTAMP timestamp)=0; + + /** Set the transmitter frequency */ + virtual bool setTxFreq(double wFreq)=0; + + /** Set the receiver frequency */ + virtual bool setRxFreq(double wFreq)=0; + + /** Returns the starting write Timestamp*/ + virtual TIMESTAMP initialWriteTimestamp(void)=0; + + /** Returns the starting read Timestamp*/ + virtual TIMESTAMP initialReadTimestamp(void)=0; + + /** returns the full-scale transmit amplitude **/ + virtual double fullScaleInputValue()=0; + + /** returns the full-scale receive amplitude **/ + virtual double fullScaleOutputValue()=0; + + /** sets the receive chan gain, returns the gain setting **/ + virtual double setRxGain(double dB)=0; + + /** gets the current receive gain **/ + virtual double getRxGain(void)=0; + + /** return maximum Rx Gain **/ + virtual double maxRxGain(void) = 0; + + /** return minimum Rx Gain **/ + virtual double minRxGain(void) = 0; + + /** sets the transmit chan gain, returns the gain setting **/ + virtual double setTxGain(double dB)=0; + + /** return maximum Tx Gain **/ + virtual double maxTxGain(void) = 0; + + /** return minimum Tx Gain **/ + virtual double minTxGain(void) = 0; + + /** Return internal status values */ + virtual double getTxFreq()=0; + virtual double getRxFreq()=0; + virtual double getSampleRate()=0; + virtual double numberRead()=0; + virtual double numberWritten()=0; + +}; + +#endif diff --git a/Transceiver52M/radioInterface.cpp b/Transceiver52M/radioInterface.cpp new file mode 100644 index 0000000..5266bfd --- /dev/null +++ b/Transceiver52M/radioInterface.cpp @@ -0,0 +1,315 @@ +/* +* Copyright 2008, 2009 Free Software Foundation, Inc. +* +* This software is distributed under the terms of the GNU Affero Public License. +* See the COPYING file in the main directory for details. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +*/ + +//#define NDEBUG +#include "radioInterface.h" +#include + + +GSM::Time VectorQueue::nextTime() const +{ + GSM::Time retVal; + ScopedLock lock(mLock); + while (mQ.size()==0) mWriteSignal.wait(mLock); + return mQ.top()->time(); +} + +radioVector* VectorQueue::getStaleBurst(const GSM::Time& targTime) +{ + ScopedLock lock(mLock); + if ((mQ.size()==0)) { + return NULL; + } + if (mQ.top()->time() < targTime) { + radioVector* retVal = mQ.top(); + mQ.pop(); + return retVal; + } + return NULL; +} + + +radioVector* VectorQueue::getCurrentBurst(const GSM::Time& targTime) +{ + ScopedLock lock(mLock); + if ((mQ.size()==0)) { + return NULL; + } + if (mQ.top()->time() == targTime) { + radioVector* retVal = mQ.top(); + mQ.pop(); + return retVal; + } + return NULL; +} + + + +RadioInterface::RadioInterface(RadioDevice *wRadio, + int wReceiveOffset, + int wRadioOversampling, + int wTransceiverOversampling, + GSM::Time wStartTime) + +{ + underrun = false; + + sendCursor = 0; + rcvCursor = 0; + mOn = false; + + mRadio = wRadio; + receiveOffset = wReceiveOffset; + samplesPerSymbol = wRadioOversampling; + mClock.set(wStartTime); + powerScaling = 1.0; +} + +RadioInterface::~RadioInterface(void) { + if (rcvBuffer!=NULL) delete rcvBuffer; + //mReceiveFIFO.clear(); +} + +double RadioInterface::fullScaleInputValue(void) { + return mRadio->fullScaleInputValue(); +} + +double RadioInterface::fullScaleOutputValue(void) { + return mRadio->fullScaleOutputValue(); +} + + +void RadioInterface::setPowerAttenuation(double dBAtten) +{ + float HWdBAtten = mRadio->setTxGain(-dBAtten); + dBAtten -= (-HWdBAtten); + float linearAtten = powf(10.0F,0.1F*dBAtten); + if (linearAtten < 1.0) + powerScaling = 1.0; + else + powerScaling = 1.0/sqrt(linearAtten); + LOG(INFO) << "setting HW gain to " << HWdBAtten << " and power scaling to " << powerScaling; +} + + +short *RadioInterface::radioifyVector(signalVector &wVector, short *retVector, double scale, bool zeroOut) +{ + + + signalVector::iterator itr = wVector.begin(); + short *shortItr = retVector; + if (zeroOut) { + while (itr < wVector.end()) { + *shortItr++ = 0; + *shortItr++ = 0; + itr++; + } + } + else if (scale != 1.0) { + while (itr < wVector.end()) { + *shortItr++ = (short) (itr->real()*scale); + *shortItr++ = (short) (itr->imag()*scale); + itr++; + } + } + else { + while (itr < wVector.end()) { + *shortItr++ = (short) (itr->real()); + *shortItr++ = (short) (itr->imag()); + itr++; + } + } + + return retVector; + +} + +void RadioInterface::unRadioifyVector(short *shortVector, signalVector& newVector) +{ + + signalVector::iterator itr = newVector.begin(); + short *shortItr = shortVector; + while (itr < newVector.end()) { + *itr++ = Complex(*shortItr,*(shortItr+1)); + //LOG(DEBUG) << (*(itr-1)); + shortItr += 2; + } + +} + + +bool started = false; + +void RadioInterface::pushBuffer(void) { + + if (sendCursor < 2*INCHUNK*samplesPerSymbol) return; + + // send resampleVector + int samplesWritten = mRadio->writeSamples(sendBuffer, + INCHUNK*samplesPerSymbol, + &underrun, + writeTimestamp); + //LOG(DEBUG) << "writeTimestamp: " << writeTimestamp << ", samplesWritten: " << samplesWritten; + + writeTimestamp += (TIMESTAMP) samplesWritten; + + if (sendCursor > 2*samplesWritten) + memcpy(sendBuffer,sendBuffer+samplesWritten*2,sizeof(short)*2*(sendCursor-2*samplesWritten)); + sendCursor = sendCursor - 2*samplesWritten; +} + + +void RadioInterface::pullBuffer(void) +{ + + bool localUnderrun; + + // receive receiveVector + short* shortVector = rcvBuffer+rcvCursor; + //LOG(DEBUG) << "Reading USRP samples at timestamp " << readTimestamp; + int samplesRead = mRadio->readSamples(shortVector,OUTCHUNK*samplesPerSymbol,&overrun,readTimestamp,&localUnderrun); + underrun |= localUnderrun; + readTimestamp += (TIMESTAMP) samplesRead; + while (samplesRead < OUTCHUNK*samplesPerSymbol) { + int oldSamplesRead = samplesRead; + samplesRead += mRadio->readSamples(shortVector+2*samplesRead, + OUTCHUNK*samplesPerSymbol-samplesRead, + &overrun, + readTimestamp, + &localUnderrun); + underrun |= localUnderrun; + readTimestamp += (TIMESTAMP) (samplesRead - oldSamplesRead); + } + //LOG(DEBUG) << "samplesRead " << samplesRead; + + rcvCursor += samplesRead*2; + +} + +bool RadioInterface::tuneTx(double freq) +{ + return mRadio->setTxFreq(freq); +} + +bool RadioInterface::tuneRx(double freq) +{ + return mRadio->setRxFreq(freq); +} + + +void RadioInterface::start() +{ + LOG(INFO) << "starting radio interface..."; + mAlignRadioServiceLoopThread.start((void * (*)(void*))AlignRadioServiceLoopAdapter, + (void*)this); + writeTimestamp = mRadio->initialWriteTimestamp(); + readTimestamp = mRadio->initialReadTimestamp(); + mRadio->start(); + LOG(DEBUG) << "Radio started"; + mRadio->updateAlignment(writeTimestamp-10000); + mRadio->updateAlignment(writeTimestamp-10000); + + sendBuffer = new short[2*2*INCHUNK*samplesPerSymbol]; + rcvBuffer = new short[2*2*OUTCHUNK*samplesPerSymbol]; + + mOn = true; + +} + +void *AlignRadioServiceLoopAdapter(RadioInterface *radioInterface) +{ + while (1) { + radioInterface->alignRadio(); + pthread_testcancel(); + } + return NULL; +} + +void RadioInterface::alignRadio() { + sleep(60); + mRadio->updateAlignment(writeTimestamp+ (TIMESTAMP) 10000); +} + +void RadioInterface::driveTransmitRadio(signalVector &radioBurst, bool zeroBurst) { + + if (!mOn) return; + + radioifyVector(radioBurst, sendBuffer+sendCursor, powerScaling, zeroBurst); + + sendCursor += (radioBurst.size()*2); + + pushBuffer(); +} + +void RadioInterface::driveReceiveRadio() { + + if (!mOn) return; + + if (mReceiveFIFO.size() > 8) return; + + pullBuffer(); + + GSM::Time rcvClock = mClock.get(); + rcvClock.decTN(receiveOffset); + unsigned tN = rcvClock.TN(); + int rcvSz = rcvCursor/2; + int readSz = 0; + const int symbolsPerSlot = gSlotLen + 8; + + // while there's enough data in receive buffer, form received + // GSM bursts and pass up to Transceiver + // Using the 157-156-156-156 symbols per timeslot format. + while (rcvSz > (symbolsPerSlot + (tN % 4 == 0))*samplesPerSymbol) { + signalVector rxVector((symbolsPerSlot + (tN % 4 == 0))*samplesPerSymbol); + unRadioifyVector(rcvBuffer+readSz*2,rxVector); + GSM::Time tmpTime = rcvClock; + if (rcvClock.FN() >= 0) { + //LOG(DEBUG) << "FN: " << rcvClock.FN(); + radioVector *rxBurst = NULL; + if (!loadTest) + rxBurst = new radioVector(rxVector,tmpTime); + else { + if (tN % 4 == 0) + rxBurst = new radioVector(*finalVec9,tmpTime); + else + rxBurst = new radioVector(*finalVec,tmpTime); + } + mReceiveFIFO.put(rxBurst); + } + mClock.incTN(); + rcvClock.incTN(); + //if (mReceiveFIFO.size() >= 16) mReceiveFIFO.wait(8); + //LOG(DEBUG) << "receiveFIFO: wrote radio vector at time: " << mClock.get() << ", new size: " << mReceiveFIFO.size() ; + readSz += (symbolsPerSlot+(tN % 4 == 0))*samplesPerSymbol; + rcvSz -= (symbolsPerSlot+(tN % 4 == 0))*samplesPerSymbol; + + tN = rcvClock.TN(); + } + + if (readSz > 0) { + memcpy(rcvBuffer,rcvBuffer+2*readSz,sizeof(short)*2*(rcvCursor-readSz)); + rcvCursor = rcvCursor-2*readSz; + } +} + diff --git a/Transceiver52M/radioInterface.h b/Transceiver52M/radioInterface.h new file mode 100644 index 0000000..1dfb37c --- /dev/null +++ b/Transceiver52M/radioInterface.h @@ -0,0 +1,243 @@ +/* +* Copyright 2008 Free Software Foundation, Inc. +* +* This software is distributed under multiple licenses; see the COPYING file in the main directory for licensing information for this specific distribuion. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + + + +#include "sigProcLib.h" +#include "GSMCommon.h" +#include "LinkedLists.h" +#include "radioDevice.h" + +/** samples per GSM symbol */ +#define SAMPSPERSYM 1 +#define INCHUNK (625) +#define OUTCHUNK (625) + +/** class used to organize GSM bursts by GSM timestamps */ +class radioVector : public signalVector { + +private: + + GSM::Time mTime; ///< the burst's GSM timestamp + +public: + /** constructor */ + radioVector(const signalVector& wVector, + GSM::Time& wTime): signalVector(wVector),mTime(wTime) {}; + + /** timestamp read and write operators */ + GSM::Time time() const { return mTime;} + void time(const GSM::Time& wTime) { mTime = wTime;} + + /** comparison operator, used for sorting */ + bool operator>(const radioVector& other) const {return mTime > other.mTime;} + +}; + +/** a priority queue of radioVectors, i.e. GSM bursts, sorted so that earliest element is at top */ +class VectorQueue : public InterthreadPriorityQueue { + +public: + + /** the top element of the queue */ + GSM::Time nextTime() const; + + /** + Get stale burst, if any. + @param targTime The target time. + @return Pointer to burst older than target time, removed from queue, or NULL. + */ + radioVector* getStaleBurst(const GSM::Time& targTime); + + /** + Get current burst, if any. + @param targTime The target time. + @return Pointer to burst at the target time, removed from queue, or NULL. + */ + radioVector* getCurrentBurst(const GSM::Time& targTime); + + +}; + +/** a FIFO of radioVectors */ +class VectorFIFO { + +private: + + PointerFIFO mQ; + Mutex mLock; + +public: + + unsigned size() {return mQ.size();} + + void put(radioVector *ptr) {ScopedLock lock(mLock); mQ.put((void*) ptr);} + + radioVector *get() { ScopedLock lock(mLock); return (radioVector*) mQ.get();} + +}; + + +/** the basestation clock class */ +class RadioClock { + +private: + + GSM::Time mClock; + Mutex mLock; + Signal updateSignal; + +public: + + /** Set clock */ + //void set(const GSM::Time& wTime) { ScopedLock lock(mLock); mClock = wTime; updateSignal.signal();} + void set(const GSM::Time& wTime) { ScopedLock lock(mLock); mClock = wTime; updateSignal.broadcast();;} + + /** Increment clock */ + //void incTN() { ScopedLock lock(mLock); mClock.incTN(); updateSignal.signal();} + void incTN() { ScopedLock lock(mLock); mClock.incTN(); updateSignal.broadcast();} + + /** Get clock value */ + GSM::Time get() { ScopedLock lock(mLock); return mClock; } + + /** Wait until clock has changed */ + //void wait() {ScopedLock lock(mLock); updateSignal.wait(mLock,1);} + // FIXME -- If we take away the timeout, a lot of threads don't start. Why? + void wait() {ScopedLock lock(mLock); updateSignal.wait(mLock);} + +}; + + +/** class to interface the transceiver with the USRP */ +class RadioInterface { + +private: + + Thread mAlignRadioServiceLoopThread; ///< thread that synchronizes transmit and receive sections + + VectorFIFO mReceiveFIFO; ///< FIFO that holds receive bursts + + RadioDevice *mRadio; ///< the USRP object + + short *sendBuffer; //[2*2*INCHUNK]; + unsigned sendCursor; + + short *rcvBuffer; //[2*2*OUTCHUNK]; + unsigned rcvCursor; + + bool underrun; ///< indicates writes to USRP are too slow + bool overrun; ///< indicates reads from USRP are too slow + TIMESTAMP writeTimestamp; ///< sample timestamp of next packet written to USRP + TIMESTAMP readTimestamp; ///< sample timestamp of next packet read from USRP + + RadioClock mClock; ///< the basestation clock! + + int samplesPerSymbol; ///< samples per GSM symbol + int receiveOffset; ///< offset b/w transmit and receive GSM timestamps, in timeslots + int mRadioOversampling; + int mTransceiverOversampling; + + bool mOn; ///< indicates radio is on + + double powerScaling; + + bool loadTest; + int mNumARFCNs; + signalVector *finalVec, *finalVec9; + + /** format samples to USRP */ + short *radioifyVector(signalVector &wVector, short *shortVector, double scale, bool zeroOut); + + /** format samples from USRP */ + void unRadioifyVector(short *shortVector, signalVector &wVector); + + /** push GSM bursts into the transmit buffer */ + void pushBuffer(void); + + /** pull GSM bursts from the receive buffer */ + void pullBuffer(void); + +public: + + /** start the interface */ + void start(); + + /** constructor */ + RadioInterface(RadioDevice* wRadio = NULL, + int receiveOffset = 3, + int wRadioOversampling = SAMPSPERSYM, + int wTransceiverOversampling = SAMPSPERSYM, + GSM::Time wStartTime = GSM::Time(0)); + + /** destructor */ + ~RadioInterface(); + + void setSamplesPerSymbol(int wSamplesPerSymbol) {if (!mOn) samplesPerSymbol = wSamplesPerSymbol;} + + int getSamplesPerSymbol() { return samplesPerSymbol;} + + /** check for underrun, resets underrun value */ + bool isUnderrun() { bool retVal = underrun; underrun = false; return retVal;} + + /** attach an existing USRP to this interface */ + void attach(RadioDevice *wRadio, int wRadioOversampling) {if (!mOn) {mRadio = wRadio; mRadioOversampling = SAMPSPERSYM;} } + + /** return the receive FIFO */ + VectorFIFO* receiveFIFO() { return &mReceiveFIFO;} + + /** return the basestation clock */ + RadioClock* getClock(void) { return &mClock;}; + + /** set receive gain */ + double setRxGain(double dB) {if (mRadio) return mRadio->setRxGain(dB); else return -1;} + + /** get receive gain */ + double getRxGain(void) {if (mRadio) return mRadio->getRxGain(); else return -1;} + + + /** set transmit frequency */ + bool tuneTx(double freq); + + /** set receive frequency */ + bool tuneRx(double freq); + + /** drive transmission of GSM bursts */ + void driveTransmitRadio(signalVector &radioBurst, bool zeroBurst); + + /** drive reception of GSM bursts */ + void driveReceiveRadio(); + + void setPowerAttenuation(double atten); + + /** returns the full-scale transmit amplitude **/ + double fullScaleInputValue(); + + /** returns the full-scale receive amplitude **/ + double fullScaleOutputValue(); + + +protected: + + /** drive synchronization of Tx/Rx of USRP */ + void alignRadio(); + + /** reset the interface */ + void reset(); + + friend void *AlignRadioServiceLoopAdapter(RadioInterface*); + +}; + +/** synchronization thread loop */ +void *AlignRadioServiceLoopAdapter(RadioInterface*); diff --git a/Transceiver52M/runTransceiver.cpp b/Transceiver52M/runTransceiver.cpp new file mode 100644 index 0000000..d51720c --- /dev/null +++ b/Transceiver52M/runTransceiver.cpp @@ -0,0 +1,123 @@ +/* +* Copyright 2008, 2009, 2010 Free Software Foundation, Inc. +* Copyright 2010 Kestrel Signal Processing, Inc. +* +* This software is distributed under the terms of the GNU Affero Public License. +* See the COPYING file in the main directory for details. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +*/ + + + +#include "Transceiver.h" +#include "USRPDevice.h" +#include "DummyLoad.h" + +#include +#include + +#include +#include +#include + +using namespace std; + +ConfigurationTable gConfig("/etc/OpenBTS/OpenBTS.db"); + + +volatile bool gbShutdown = false; +static void ctrlCHandler(int signo) +{ + cout << "Received shutdown signal" << endl;; + gbShutdown = true; +} + + +int main(int argc, char *argv[]) +{ + if ( signal( SIGINT, ctrlCHandler ) == SIG_ERR ) + { + cerr << "Couldn't install signal handler for SIGINT" << endl; + exit(1); + } + + if ( signal( SIGTERM, ctrlCHandler ) == SIG_ERR ) + { + cerr << "Couldn't install signal handler for SIGTERM" << endl; + exit(1); + } + // Configure logger. + gLogInit("transceiver",gConfig.getStr("Log.Level").c_str(),LOG_LOCAL7); + + int numARFCN=1; + + LOG(NOTICE) << "starting transceiver with " << numARFCN << " ARFCNs (argc=" << argc << ")"; + + srandom(time(NULL)); + + int mOversamplingRate = numARFCN/2 + numARFCN; + //DYNDevice *usrp = new DYNDevice(mOversamplingRate*1625.0e3/6.0); + USRPDevice *usrp = new USRPDevice(mOversamplingRate*1625.0e3/6.0); + //DummyLoad *usrp = new DummyLoad(mOversamplingRate*1625.0e3/6.0); + usrp->make(); + + RadioInterface* radio = new RadioInterface(usrp,3,SAMPSPERSYM,mOversamplingRate,false); + Transceiver *trx = new Transceiver(5700,"127.0.0.1",SAMPSPERSYM,GSM::Time(2,0),radio); + trx->receiveFIFO(radio->receiveFIFO()); +/* + signalVector *gsmPulse = generateGSMPulse(2,1); + BitVector normalBurstSeg = "0000101010100111110010101010010110101110011000111001101010000"; + BitVector normalBurst(BitVector(normalBurstSeg,gTrainingSequence[0]),normalBurstSeg); + signalVector *modBurst = modulateBurst(normalBurst,*gsmPulse,8,1); + signalVector *modBurst9 = modulateBurst(normalBurst,*gsmPulse,9,1); + signalVector *interpolationFilter = createLPF(0.6/mOversamplingRate,6*mOversamplingRate,1); + signalVector totalBurst1(*modBurst,*modBurst9); + signalVector totalBurst2(*modBurst,*modBurst); + signalVector totalBurst(totalBurst1,totalBurst2); + scaleVector(totalBurst,usrp->fullScaleInputValue()); + double beaconFreq = -1.0*(numARFCN-1)*200e3; + signalVector finalVec(625*mOversamplingRate); + for (int j = 0; j < numARFCN; j++) { + signalVector *frequencyShifter = new signalVector(625*mOversamplingRate); + frequencyShifter->fill(1.0); + frequencyShift(frequencyShifter,frequencyShifter,2.0*M_PI*(beaconFreq+j*400e3)/(1625.0e3/6.0*mOversamplingRate)); + signalVector *interpVec = polyphaseResampleVector(totalBurst,mOversamplingRate,1,interpolationFilter); + multVector(*interpVec,*frequencyShifter); + addVector(finalVec,*interpVec); + } + signalVector::iterator itr = finalVec.begin(); + short finalVecShort[2*finalVec.size()]; + short *shortItr = finalVecShort; + while (itr < finalVec.end()) { + *shortItr++ = (short) (itr->real()); + *shortItr++ = (short) (itr->imag()); + itr++; + } + usrp->loadBurst(finalVecShort,finalVec.size()); +*/ + trx->start(); + //int i = 0; + while(!gbShutdown) { sleep(1); }//i++; if (i==60) break;} + + cout << "Shutting down transceiver..." << endl; + +// trx->stop(); + delete trx; +// delete radio; +} diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp new file mode 100644 index 0000000..fe09c16 --- /dev/null +++ b/Transceiver52M/sigProcLib.cpp @@ -0,0 +1,1486 @@ +/* +* Copyright 2008 Free Software Foundation, Inc. +* +* This software is distributed under the terms of the GNU Affero Public License. +* See the COPYING file in the main directory for details. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +*/ + + + +#define NDEBUG + +#include "sigProcLib.h" +#include "GSMCommon.h" + +#include + +#define TABLESIZE 1024 + +/** Lookup tables for trigonometric approximation */ +float cosTable[TABLESIZE+1]; // add 1 element for wrap around +float sinTable[TABLESIZE+1]; + +/** Constants */ +static const float M_PI_F = (float)M_PI; +static const float M_2PI_F = (float)(2.0*M_PI); +static const float M_1_2PI_F = 1/M_2PI_F; + +/** Static vectors that contain a precomputed +/- f_b/4 sinusoid */ +signalVector *GMSKRotation = NULL; +signalVector *GMSKReverseRotation = NULL; + +/** Static ideal RACH and midamble correlation waveforms */ +typedef struct { + signalVector *sequence; + signalVector *sequenceReversedConjugated; + float TOA; + complex gain; +} CorrelationSequence; + +CorrelationSequence *gMidambles[] = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}; +CorrelationSequence *gRACHSequence = NULL; + +void sigProcLibDestroy(void) { + if (GMSKRotation) { + delete GMSKRotation; + GMSKRotation = NULL; + } + if (GMSKReverseRotation) { + delete GMSKReverseRotation; + GMSKReverseRotation = NULL; + } + for (int i = 0; i < 8; i++) { + if (gMidambles[i]!=NULL) { + if (gMidambles[i]->sequence) delete gMidambles[i]->sequence; + if (gMidambles[i]->sequenceReversedConjugated) delete gMidambles[i]->sequenceReversedConjugated; + delete gMidambles[i]; + gMidambles[i] = NULL; + } + } + if (gRACHSequence) { + if (gRACHSequence->sequence) delete gRACHSequence->sequence; + if (gRACHSequence->sequenceReversedConjugated) delete gRACHSequence->sequenceReversedConjugated; + delete gRACHSequence; + gRACHSequence = NULL; + } +} + + + +// dB relative to 1.0. +// if > 1.0, then return 0 dB +float dB(float x) { + + float arg = 1.0F; + float dB = 0.0F; + + if (x >= 1.0F) return 0.0F; + if (x <= 0.0F) return -200.0F; + + float prevArg = arg; + float prevdB = dB; + float stepSize = 16.0F; + float dBstepSize = 12.0F; + while (stepSize > 1.0F) { + do { + prevArg = arg; + prevdB = dB; + arg /= stepSize; + dB -= dBstepSize; + } while (arg > x); + arg = prevArg; + dB = prevdB; + stepSize *= 0.5F; + dBstepSize -= 3.0F; + } + return ((arg-x)*(dB-3.0F) + (x-arg*0.5F)*dB)/(arg - arg*0.5F); + +} + +// 10^(-dB/10), inverse of dB func. +float dBinv(float x) { + + float arg = 1.0F; + float dB = 0.0F; + + if (x >= 0.0F) return 1.0F; + if (x <= -200.0F) return 0.0F; + + float prevArg = arg; + float prevdB = dB; + float stepSize = 16.0F; + float dBstepSize = 12.0F; + while (stepSize > 1.0F) { + do { + prevArg = arg; + prevdB = dB; + arg /= stepSize; + dB -= dBstepSize; + } while (dB > x); + arg = prevArg; + dB = prevdB; + stepSize *= 0.5F; + dBstepSize -= 3.0F; + } + + return ((dB-x)*(arg*0.5F)+(x-(dB-3.0F))*(arg))/3.0F; + +} + +float vectorNorm2(const signalVector &x) +{ + signalVector::const_iterator xPtr = x.begin(); + float Energy = 0.0; + for (;xPtr != x.end();xPtr++) { + Energy += xPtr->norm2(); + } + return Energy; +} + + +float vectorPower(const signalVector &x) +{ + return vectorNorm2(x)/x.size(); +} + +/** compute cosine via lookup table */ +float cosLookup(const float x) +{ + float arg = x*M_1_2PI_F; + while (arg > 1.0F) arg -= 1.0F; + while (arg < 0.0F) arg += 1.0F; + + const float argT = arg*((float)TABLESIZE); + const int argI = (int)argT; + const float delta = argT-argI; + const float iDelta = 1.0F-delta; + return iDelta*cosTable[argI] + delta*cosTable[argI+1]; +} + +/** compute sine via lookup table */ +float sinLookup(const float x) +{ + float arg = x*M_1_2PI_F; + while (arg > 1.0F) arg -= 1.0F; + while (arg < 0.0F) arg += 1.0F; + + const float argT = arg*((float)TABLESIZE); + const int argI = (int)argT; + const float delta = argT-argI; + const float iDelta = 1.0F-delta; + return iDelta*sinTable[argI] + delta*sinTable[argI+1]; +} + + +/** compute e^(-jx) via lookup table. */ +complex expjLookup(float x) +{ + float arg = x*M_1_2PI_F; + while (arg > 1.0F) arg -= 1.0F; + while (arg < 0.0F) arg += 1.0F; + + const float argT = arg*((float)TABLESIZE); + const int argI = (int)argT; + const float delta = argT-argI; + const float iDelta = 1.0F-delta; + return complex(iDelta*cosTable[argI] + delta*cosTable[argI+1], + iDelta*sinTable[argI] + delta*sinTable[argI+1]); +} + +/** Library setup functions */ +void initTrigTables() { + for (int i = 0; i < TABLESIZE+1; i++) { + cosTable[i] = cos(2.0*M_PI*i/TABLESIZE); + sinTable[i] = sin(2.0*M_PI*i/TABLESIZE); + } +} + +void initGMSKRotationTables(int samplesPerSymbol) { + GMSKRotation = new signalVector(157*samplesPerSymbol); + GMSKReverseRotation = new signalVector(157*samplesPerSymbol); + signalVector::iterator rotPtr = GMSKRotation->begin(); + signalVector::iterator revPtr = GMSKReverseRotation->begin(); + float phase = 0.0; + while (rotPtr != GMSKRotation->end()) { + *rotPtr++ = expjLookup(phase); + *revPtr++ = expjLookup(-phase); + phase += M_PI_F/2.0F/(float) samplesPerSymbol; + } +} + +void sigProcLibSetup(int samplesPerSymbol) { + initTrigTables(); + initGMSKRotationTables(samplesPerSymbol); +} + +void GMSKRotate(signalVector &x) { + signalVector::iterator xPtr = x.begin(); + signalVector::iterator rotPtr = GMSKRotation->begin(); + if (x.isRealOnly()) { + while (xPtr < x.end()) { + *xPtr = *rotPtr++ * (xPtr->real()); + xPtr++; + } + } + else { + while (xPtr < x.end()) { + *xPtr = *rotPtr++ * (*xPtr); + xPtr++; + } + } +} + +void GMSKReverseRotate(signalVector &x) { + signalVector::iterator xPtr= x.begin(); + signalVector::iterator rotPtr = GMSKReverseRotation->begin(); + if (x.isRealOnly()) { + while (xPtr < x.end()) { + *xPtr = *rotPtr++ * (xPtr->real()); + xPtr++; + } + } + else { + while (xPtr < x.end()) { + *xPtr = *rotPtr++ * (*xPtr); + xPtr++; + } + } +} + + +signalVector* convolve(const signalVector *a, + const signalVector *b, + signalVector *c, + ConvType spanType, + unsigned startIx, + unsigned len) +{ + if ((a==NULL) || (b==NULL)) return NULL; + int La = a->size(); + int Lb = b->size(); + + int startIndex; + unsigned int outSize; + switch (spanType) { + case FULL_SPAN: + startIndex = 0; + outSize = La+Lb-1; + break; + case OVERLAP_ONLY: + startIndex = La; + outSize = abs(La-Lb)+1; + break; + case START_ONLY: + startIndex = 0; + outSize = La; + break; + case WITH_TAIL: + startIndex = Lb; + outSize = La; + break; + case NO_DELAY: + if (Lb % 2) + startIndex = Lb/2; + else + startIndex = Lb/2-1; + outSize = La; + break; + case CUSTOM: + startIndex = startIx; + outSize = len; + break; + default: + return NULL; + } + + + if (c==NULL) + c = new signalVector(outSize); + else if (c->size()!=outSize) + return NULL; + + signalVector::const_iterator aStart = a->begin(); + signalVector::const_iterator bStart = b->begin(); + signalVector::const_iterator aEnd = a->end(); + signalVector::const_iterator bEnd = b->end(); + signalVector::iterator cPtr = c->begin(); + int t = startIndex; + int stopIndex = startIndex + outSize; + switch (b->getSymmetry()) { + case NONE: + { + while (t < stopIndex) { + signalVector::const_iterator aP = aStart+t; + signalVector::const_iterator bP = bStart; + if (a->isRealOnly() && b->isRealOnly()) { + float sum = 0.0; + while (bP < bEnd) { + if (aP < aStart) break; + if (aP < aEnd) sum += (aP->real())*(bP->real()); + aP--; + bP++; + } + *cPtr++ = sum; + } + else if (a->isRealOnly()) { + complex sum = 0.0; + while (bP < bEnd) { + if (aP < aStart) break; + if (aP < aEnd) sum += (*bP)*(aP->real()); + aP--; + bP++; + } + *cPtr++ = sum; + } + else if (b->isRealOnly()) { + complex sum = 0.0; + while (bP < bEnd) { + if (aP < aStart) break; + if (aP < aEnd) sum += (*aP)*(bP->real()); + aP--; + bP++; + } + *cPtr++ = sum; + } + else { + complex sum = 0.0; + while (bP < bEnd) { + if (aP < aStart) break; + if (aP < aEnd) sum += (*aP)*(*bP); + aP--; + bP++; + } + *cPtr++ = sum; + } + t++; + } + } + break; + case ABSSYM: + { + complex sum = 0.0; + bool isOdd = (bool) (Lb % 2); + if (isOdd) + bEnd = bStart + (Lb+1)/2; + else + bEnd = bStart + Lb/2; + while (t < stopIndex) { + signalVector::const_iterator aP = aStart+t; + signalVector::const_iterator aPsym = aP-Lb+1; + signalVector::const_iterator bP = bStart; + sum = 0.0; + if (!b->isRealOnly()) { + while (bP < bEnd) { + if (aP < aStart) break; + if (aP == aPsym) + sum+= (*aP)*(*bP); + else if ((aP < aEnd) && (aPsym >= aStart)) + sum+= ((*aP)+(*aPsym))*(*bP); + else if (aP < aEnd) + sum += (*aP)*(*bP); + else if (aPsym >= aStart) + sum += (*aPsym)*(*bP); + aP--; + aPsym++; + bP++; + } + } + else { + while (bP < bEnd) { + if (aP < aStart) break; + if (aP == aPsym) + sum+= (*aP)*(bP->real()); + else if ((aP < aEnd) && (aPsym >= aStart)) + sum+= ((*aP)+(*aPsym))*(bP->real()); + else if (aP < aEnd) + sum += (*aP)*(bP->real()); + else if (aPsym >= aStart) + sum += (*aPsym)*(bP->real()); + aP--; + aPsym++; + bP++; + } + } + *cPtr++ = sum; + t++; + } + } + break; + default: + return NULL; + break; + } + + + return c; +} + + +signalVector* generateGSMPulse(int symbolLength, + int samplesPerSymbol) +{ + + int numSamples = samplesPerSymbol*symbolLength + 1; + signalVector *x = new signalVector(numSamples); + signalVector::iterator xP = x->begin(); + int centerPoint = (numSamples-1)/2; + for (int i = 0; i < numSamples; i++) { + float arg = (float) (i-centerPoint)/(float) samplesPerSymbol; + *xP++ = 0.96*exp(-1.1380*arg*arg-0.527*arg*arg*arg*arg); // GSM pulse approx. + } + + float avgAbsval = sqrtf(vectorNorm2(*x)/samplesPerSymbol); + xP = x->begin(); + for (int i = 0; i < numSamples; i++) + *xP++ /= avgAbsval; + x->isRealOnly(true); + x->setSymmetry(ABSSYM); + return x; +} + +signalVector* frequencyShift(signalVector *y, + signalVector *x, + float freq, + float startPhase, + float *finalPhase) +{ + + if (!x) return NULL; + + if (y==NULL) { + y = new signalVector(x->size()); + y->isRealOnly(x->isRealOnly()); + if (y==NULL) return NULL; + } + + if (y->size() < x->size()) return NULL; + + float phase = startPhase; + signalVector::iterator yP = y->begin(); + signalVector::iterator xPEnd = x->end(); + signalVector::iterator xP = x->begin(); + + if (x->isRealOnly()) { + while (xP < xPEnd) { + (*yP++) = expjLookup(phase)*( (xP++)->real() ); + phase += freq; + } + } + else { + while (xP < xPEnd) { + (*yP++) = (*xP++)*expjLookup(phase); + phase += freq; + } + } + + + if (finalPhase) *finalPhase = phase; + + return y; +} + +signalVector* reverseConjugate(signalVector *b) +{ + signalVector *tmp = new signalVector(b->size()); + tmp->isRealOnly(b->isRealOnly()); + signalVector::iterator bP = b->begin(); + signalVector::iterator bPEnd = b->end(); + signalVector::iterator tmpP = tmp->end()-1; + if (!b->isRealOnly()) { + while (bP < bPEnd) { + *tmpP-- = bP->conj(); + bP++; + } + } + else { + while (bP < bPEnd) { + *tmpP-- = bP->real(); + bP++; + } + } + + return tmp; +} + +signalVector* correlate(signalVector *a, + signalVector *b, + signalVector *c, + ConvType spanType, + bool bReversedConjugated, + unsigned startIx, + unsigned len) +{ + signalVector *tmp = NULL; + + if (!bReversedConjugated) { + tmp = reverseConjugate(b); + } + else { + tmp = b; + } + + c = convolve(a,tmp,c,spanType,startIx,len); + + if (!bReversedConjugated) delete tmp; + + return c; +} + + +/* soft output slicer */ +bool vectorSlicer(signalVector *x) +{ + + signalVector::iterator xP = x->begin(); + signalVector::iterator xPEnd = x->end(); + while (xP < xPEnd) { + *xP = (complex) (0.5*(xP->real()+1.0F)); + if (xP->real() > 1.0) *xP = 1.0; + if (xP->real() < 0.0) *xP = 0.0; + xP++; + } + return true; +} + +signalVector *modulateBurst(const BitVector &wBurst, + const signalVector &gsmPulse, + int guardPeriodLength, + int samplesPerSymbol) +{ + + //static complex staticBurst[157]; + + int burstSize = samplesPerSymbol*(wBurst.size()+guardPeriodLength); + //signalVector modBurst((complex *) staticBurst,0,burstSize); + signalVector modBurst(burstSize);// = new signalVector(burstSize); + modBurst.isRealOnly(true); + //memset(staticBurst,0,sizeof(complex)*burstSize); + modBurst.fill(0.0); + signalVector::iterator modBurstItr = modBurst.begin(); + +#if 0 + // if wBurst is already differentially decoded + *modBurstItr = 2.0*(wBurst[0] & 0x01)-1.0; + signalVector::iterator prevVal = modBurstItr; + for (unsigned int i = 1; i < wBurst.size(); i++) { + modBurstItr += samplesPerSymbol; + if (wBurst[i] & 0x01) + *modBurstItr = *prevVal * complex(0.0,1.0); + else + *modBurstItr = *prevVal * complex(0.0,-1.0); + prevVal = modBurstItr; + } +#else + // if wBurst are the raw bits + for (unsigned int i = 0; i < wBurst.size(); i++) { + *modBurstItr = 2.0*(wBurst[i] & 0x01)-1.0; + modBurstItr += samplesPerSymbol; + } + + // shift up pi/2 + // ignore starting phase, since spec allows for discontinuous phase + GMSKRotate(modBurst); +#endif + modBurst.isRealOnly(false); + + // filter w/ pulse shape + signalVector *shapedBurst = convolve(&modBurst,&gsmPulse,NULL,NO_DELAY); + + //delete modBurst; + + return shapedBurst; + +} + +float sinc(float x) +{ + if ((x >= 0.01F) || (x <= -0.01F)) return (sinLookup(x)/x); + return 1.0F; +} + +void delayVector(signalVector &wBurst, + float delay) +{ + + int intOffset = (int) floor(delay); + float fracOffset = delay - intOffset; + + // do fractional shift first, only do it for reasonable offsets + if (fabs(fracOffset) > 1e-2) { + // create sinc function + signalVector sincVector(21); + sincVector.isRealOnly(true); + signalVector::iterator sincBurstItr = sincVector.begin(); + for (int i = 0; i < 21; i++) + *sincBurstItr++ = (complex) sinc(M_PI_F*(i-10-fracOffset)); + + signalVector shiftedBurst(wBurst.size()); + convolve(&wBurst,&sincVector,&shiftedBurst,NO_DELAY); + wBurst.clone(shiftedBurst); + } + + if (intOffset < 0) { + intOffset = -intOffset; + signalVector::iterator wBurstItr = wBurst.begin(); + signalVector::iterator shiftedItr = wBurst.begin()+intOffset; + while (shiftedItr < wBurst.end()) + *wBurstItr++ = *shiftedItr++; + while (wBurstItr < wBurst.end()) + *wBurstItr++ = 0.0; + } + else { + signalVector::iterator wBurstItr = wBurst.end()-1; + signalVector::iterator shiftedItr = wBurst.end()-1-intOffset; + while (shiftedItr >= wBurst.begin()) + *wBurstItr-- = *shiftedItr--; + while (wBurstItr >= wBurst.begin()) + *wBurstItr-- = 0.0; + } +} + +signalVector *gaussianNoise(int length, + float variance, + complex mean) +{ + + signalVector *noise = new signalVector(length); + signalVector::iterator nPtr = noise->begin(); + float stddev = sqrtf(variance); + while (nPtr < noise->end()) { + float u1 = (float) rand()/ (float) RAND_MAX; + while (u1==0.0) + u1 = (float) rand()/ (float) RAND_MAX; + float u2 = (float) rand()/ (float) RAND_MAX; + float arg = 2.0*M_PI*u2; + *nPtr = mean + stddev*complex(cos(arg),sin(arg))*sqrtf(-2.0*log(u1)); + nPtr++; + } + + return noise; +} + +complex interpolatePoint(const signalVector &inSig, + float ix) +{ + + int start = (int) (floor(ix) - 10); + if (start < 0) start = 0; + int end = (int) (floor(ix) + 11); + if ((unsigned) end > inSig.size()-1) end = inSig.size()-1; + + complex pVal = 0.0; + if (!inSig.isRealOnly()) { + for (int i = start; i < end; i++) + pVal += inSig[i] * sinc(M_PI_F*(i-ix)); + } + else { + for (int i = start; i < end; i++) + pVal += inSig[i].real() * sinc(M_PI_F*(i-ix)); + } + + return pVal; +} + + + +complex peakDetect(const signalVector &rxBurst, + float *peakIndex, + float *avgPwr) +{ + + + complex maxVal = 0.0; + float maxIndex = -1; + float sumPower = 0.0; + + for (unsigned int i = 0; i < rxBurst.size(); i++) { + float samplePower = rxBurst[i].norm2(); + if (samplePower > maxVal.real()) { + maxVal = samplePower; + maxIndex = i; + } + sumPower += samplePower; + } + + // interpolate around the peak + // to save computation, we'll use early-late balancing + float earlyIndex = maxIndex-1; + float lateIndex = maxIndex+1; + + float incr = 0.5; + while (incr > 1.0/1024.0) { + complex earlyP = interpolatePoint(rxBurst,earlyIndex); + complex lateP = interpolatePoint(rxBurst,lateIndex); + if (earlyP < lateP) + earlyIndex += incr; + else if (earlyP > lateP) + earlyIndex -= incr; + else break; + incr /= 2.0; + lateIndex = earlyIndex + 2.0; + } + + maxIndex = earlyIndex + 1.0; + maxVal = interpolatePoint(rxBurst,maxIndex); + + if (peakIndex!=NULL) + *peakIndex = maxIndex; + + if (avgPwr!=NULL) + *avgPwr = (sumPower-maxVal.norm2()) / (rxBurst.size()-1); + + return maxVal; + +} + +void scaleVector(signalVector &x, + complex scale) +{ + signalVector::iterator xP = x.begin(); + signalVector::iterator xPEnd = x.end(); + if (!x.isRealOnly()) { + while (xP < xPEnd) { + *xP = *xP * scale; + xP++; + } + } + else { + while (xP < xPEnd) { + *xP = xP->real() * scale; + xP++; + } + } +} + +/** in-place conjugation */ +void conjugateVector(signalVector &x) +{ + if (x.isRealOnly()) return; + signalVector::iterator xP = x.begin(); + signalVector::iterator xPEnd = x.end(); + while (xP < xPEnd) { + *xP = xP->conj(); + xP++; + } +} + + +// in-place addition!! +bool addVector(signalVector &x, + signalVector &y) +{ + signalVector::iterator xP = x.begin(); + signalVector::iterator yP = y.begin(); + signalVector::iterator xPEnd = x.end(); + signalVector::iterator yPEnd = y.end(); + while ((xP < xPEnd) && (yP < yPEnd)) { + *xP = *xP + *yP; + xP++; yP++; + } + return true; +} + +// in-place multiplication!! +bool multVector(signalVector &x, + signalVector &y) +{ + signalVector::iterator xP = x.begin(); + signalVector::iterator yP = y.begin(); + signalVector::iterator xPEnd = x.end(); + signalVector::iterator yPEnd = y.end(); + while ((xP < xPEnd) && (yP < yPEnd)) { + *xP = (*xP) * (*yP); + xP++; yP++; + } + return true; +} + + +void offsetVector(signalVector &x, + complex offset) +{ + signalVector::iterator xP = x.begin(); + signalVector::iterator xPEnd = x.end(); + if (!x.isRealOnly()) { + while (xP < xPEnd) { + *xP += offset; + xP++; + } + } + else { + while (xP < xPEnd) { + *xP = xP->real() + offset; + xP++; + } + } +} + +bool generateMidamble(signalVector &gsmPulse, + int samplesPerSymbol, + int TSC) +{ + + if ((TSC < 0) || (TSC > 7)) + return false; + + if (gMidambles[TSC]) { + if (gMidambles[TSC]->sequence!=NULL) delete gMidambles[TSC]->sequence; + if (gMidambles[TSC]->sequenceReversedConjugated!=NULL) delete gMidambles[TSC]->sequenceReversedConjugated; + } + + signalVector emptyPulse(1); + *(emptyPulse.begin()) = 1.0; + + // only use middle 16 bits of each TSC + signalVector *middleMidamble = modulateBurst(gTrainingSequence[TSC].segment(5,16), + emptyPulse, + 0, + samplesPerSymbol); + signalVector *midamble = modulateBurst(gTrainingSequence[TSC], + gsmPulse, + 0, + samplesPerSymbol); + + if (midamble == NULL) return false; + if (middleMidamble == NULL) return false; + + // NOTE: Because ideal TSC 16-bit midamble is 66 symbols into burst, + // the ideal TSC has an + 180 degree phase shift, + // due to the pi/2 frequency shift, that + // needs to be accounted for. + // 26-midamble is 61 symbols into burst, has +90 degree phase shift. + scaleVector(*middleMidamble,complex(-1.0,0.0)); + scaleVector(*midamble,complex(0.0,1.0)); + + signalVector *autocorr = correlate(midamble,middleMidamble,NULL,NO_DELAY); + + if (autocorr == NULL) return false; + + gMidambles[TSC] = new CorrelationSequence; + gMidambles[TSC]->sequence = middleMidamble; + gMidambles[TSC]->sequenceReversedConjugated = reverseConjugate(middleMidamble); + gMidambles[TSC]->gain = peakDetect(*autocorr,&gMidambles[TSC]->TOA,NULL); + + LOG(DEBUG) << "midamble autocorr: " << *autocorr; + + LOG(DEBUG) << "TOA: " << gMidambles[TSC]->TOA; + + //gMidambles[TSC]->TOA -= 5*samplesPerSymbol; + + delete autocorr; + delete midamble; + + return true; +} + +bool generateRACHSequence(signalVector &gsmPulse, + int samplesPerSymbol) +{ + + if (gRACHSequence) { + if (gRACHSequence->sequence!=NULL) delete gRACHSequence->sequence; + if (gRACHSequence->sequenceReversedConjugated!=NULL) delete gRACHSequence->sequenceReversedConjugated; + } + + signalVector *RACHSeq = modulateBurst(gRACHSynchSequence, + gsmPulse, + 0, + samplesPerSymbol); + + assert(RACHSeq); + + signalVector *autocorr = correlate(RACHSeq,RACHSeq,NULL,NO_DELAY); + + assert(autocorr); + + gRACHSequence = new CorrelationSequence; + gRACHSequence->sequence = RACHSeq; + gRACHSequence->sequenceReversedConjugated = reverseConjugate(RACHSeq); + gRACHSequence->gain = peakDetect(*autocorr,&gRACHSequence->TOA,NULL); + + delete autocorr; + + return true; + +} + + +bool detectRACHBurst(signalVector &rxBurst, + float detectThreshold, + int samplesPerSymbol, + complex *amplitude, + float* TOA) +{ + + //static complex staticData[500]; + + //signalVector correlatedRACH(staticData,0,rxBurst.size()); + signalVector correlatedRACH(rxBurst.size()); + correlate(&rxBurst,gRACHSequence->sequenceReversedConjugated,&correlatedRACH,NO_DELAY,true); + + float meanPower; + complex peakAmpl = peakDetect(correlatedRACH,TOA,&meanPower); + + float valleyPower = 0.0; + + // check for bogus results + if ((*TOA < 0.0) || (*TOA > correlatedRACH.size())) { + *amplitude = 0.0; + return false; + } + complex *peakPtr = correlatedRACH.begin() + (int) rint(*TOA); + + LOG(DEBUG) << "RACH corr: " << correlatedRACH; + + float numSamples = 0.0; + for (int i = 57*samplesPerSymbol; i <= 107*samplesPerSymbol;i++) { + if (peakPtr+i >= correlatedRACH.end()) + break; + valleyPower += (peakPtr+i)->norm2(); + numSamples++; + } + + if (numSamples < 2) { + *amplitude = 0.0; + return false; + } + + float RMS = sqrtf(valleyPower/(float) numSamples)+0.00001; + float peakToMean = peakAmpl.abs()/RMS; + + LOG(DEBUG) << "RACH peakAmpl=" << peakAmpl << " RMS=" << RMS << " peakToMean=" << peakToMean; + *amplitude = peakAmpl/(gRACHSequence->gain); + + *TOA = (*TOA) - gRACHSequence->TOA - 8*samplesPerSymbol; + + LOG(DEBUG) << "RACH thresh: " << peakToMean; + + return (peakToMean > detectThreshold); +} + +bool energyDetect(signalVector &rxBurst, + unsigned windowLength, + float detectThreshold, + float *avgPwr) +{ + + signalVector::const_iterator windowItr = rxBurst.begin(); //+rxBurst.size()/2 - 5*windowLength/2; + float energy = 0.0; + if (windowLength < 0) windowLength = 20; + if (windowLength > rxBurst.size()) windowLength = rxBurst.size(); + for (unsigned i = 0; i < windowLength; i++) { + energy += windowItr->norm2(); + windowItr+=4; + } + if (avgPwr) *avgPwr = energy/windowLength; + LOG(DEBUG) << "detected energy: " << energy/windowLength; + return (energy/windowLength > detectThreshold*detectThreshold); +} + + +bool analyzeTrafficBurst(signalVector &rxBurst, + unsigned TSC, + float detectThreshold, + int samplesPerSymbol, + complex *amplitude, + float *TOA, + unsigned maxTOA, + bool requestChannel, + signalVector **channelResponse, + float *channelResponseOffset) +{ + + assert(TSC<8); + assert(amplitude); + assert(TOA); + assert(gMidambles[TSC]); + + if (maxTOA < 3*samplesPerSymbol) maxTOA = 3*samplesPerSymbol; + unsigned spanTOA = maxTOA; + if (spanTOA < 5*samplesPerSymbol) spanTOA = 5*samplesPerSymbol; + + unsigned startIx = (66-spanTOA)*samplesPerSymbol; + unsigned endIx = (66+16+spanTOA)*samplesPerSymbol; + unsigned windowLen = endIx - startIx; + unsigned corrLen = 2*maxTOA+1; + + unsigned expectedTOAPeak = (unsigned) round(gMidambles[TSC]->TOA + (gMidambles[TSC]->sequenceReversedConjugated->size()-1)/2); + + signalVector burstSegment(rxBurst.begin(),startIx,windowLen); + + //static complex staticData[200]; + //signalVector correlatedBurst(staticData,0,corrLen); + signalVector correlatedBurst(corrLen); + correlate(&burstSegment, gMidambles[TSC]->sequenceReversedConjugated, + &correlatedBurst, CUSTOM,true, + expectedTOAPeak-maxTOA,corrLen); + + float meanPower; + *amplitude = peakDetect(correlatedBurst,TOA,&meanPower); + float valleyPower = 0.0; //amplitude->norm2(); + complex *peakPtr = correlatedBurst.begin() + (int) rint(*TOA); + + // check for bogus results + if ((*TOA < 0.0) || (*TOA > correlatedBurst.size())) { + *amplitude = 0.0; + return false; + } + + int numRms = 0; + for (int i = 2*samplesPerSymbol; i <= 5*samplesPerSymbol;i++) { + if (peakPtr - i >= correlatedBurst.begin()) { + valleyPower += (peakPtr-i)->norm2(); + numRms++; + } + if (peakPtr + i < correlatedBurst.end()) { + valleyPower += (peakPtr+i)->norm2(); + numRms++; + } + } + + if (numRms < 2) { + // check for bogus results + *amplitude = 0.0; + return false; + } + + float RMS = sqrtf(valleyPower/(float)numRms)+0.00001; + float peakToMean = (amplitude->abs())/RMS; + + // NOTE: Because ideal TSC is 66 symbols into burst, + // the ideal TSC has an +/- 180 degree phase shift, + // due to the pi/4 frequency shift, that + // needs to be accounted for. + + *amplitude = (*amplitude)/gMidambles[TSC]->gain; + *TOA = (*TOA) - (maxTOA); + + LOG(DEBUG) << "TCH peakAmpl=" << amplitude->abs() << " RMS=" << RMS << " peakToMean=" << peakToMean << " TOA=" << *TOA; + + LOG(DEBUG) << "autocorr: " << correlatedBurst; + + if (requestChannel && (peakToMean > detectThreshold)) { + float TOAoffset = maxTOA; //gMidambles[TSC]->TOA+(66*samplesPerSymbol-startIx); + delayVector(correlatedBurst,-(*TOA)); + // midamble only allows estimation of a 6-tap channel + signalVector channelVector(6*samplesPerSymbol); + float maxEnergy = -1.0; + int maxI = -1; + for (int i = 0; i < 7; i++) { + if (TOAoffset+(i-5)*samplesPerSymbol + channelVector.size() > correlatedBurst.size()) continue; + if (TOAoffset+(i-5)*samplesPerSymbol < 0) continue; + correlatedBurst.segmentCopyTo(channelVector,(int) floor(TOAoffset+(i-5)*samplesPerSymbol),channelVector.size()); + float energy = vectorNorm2(channelVector); + if (energy > 0.95*maxEnergy) { + maxI = i; + maxEnergy = energy; + } + } + + *channelResponse = new signalVector(channelVector.size()); + correlatedBurst.segmentCopyTo(**channelResponse,(int) floor(TOAoffset+(maxI-5)*samplesPerSymbol),(*channelResponse)->size()); + scaleVector(**channelResponse,complex(1.0,0.0)/gMidambles[TSC]->gain); + LOG(DEBUG) << "channelResponse: " << **channelResponse; + + if (channelResponseOffset) + *channelResponseOffset = 5*samplesPerSymbol-maxI; + + } + + return (peakToMean > detectThreshold); + +} + +signalVector *decimateVector(signalVector &wVector, + int decimationFactor) +{ + + if (decimationFactor <= 1) return NULL; + + signalVector *decVector = new signalVector(wVector.size()/decimationFactor); + decVector->isRealOnly(wVector.isRealOnly()); + + signalVector::iterator vecItr = decVector->begin(); + for (unsigned int i = 0; i < wVector.size();i+=decimationFactor) + *vecItr++ = wVector[i]; + + return decVector; +} + + +SoftVector *demodulateBurst(signalVector &rxBurst, + const signalVector &gsmPulse, + int samplesPerSymbol, + complex channel, + float TOA) + +{ + scaleVector(rxBurst,((complex) 1.0)/channel); + delayVector(rxBurst,-TOA); + + signalVector *shapedBurst = &rxBurst; + + // shift up by a quarter of a frequency + // ignore starting phase, since spec allows for discontinuous phase + GMSKReverseRotate(*shapedBurst); + + // run through slicer + if (samplesPerSymbol > 1) { + signalVector *decShapedBurst = decimateVector(*shapedBurst,samplesPerSymbol); + shapedBurst = decShapedBurst; + } + + LOG(DEBUG) << "shapedBurst: " << *shapedBurst; + + vectorSlicer(shapedBurst); + + SoftVector *burstBits = new SoftVector(shapedBurst->size()); + + SoftVector::iterator burstItr = burstBits->begin(); + signalVector::iterator shapedItr = shapedBurst->begin(); + for (; shapedItr < shapedBurst->end(); shapedItr++) + *burstItr++ = shapedItr->real(); + + if (samplesPerSymbol > 1) delete shapedBurst; + + return burstBits; + +} + + +// 1.0 is sampling frequency +// must satisfy cutoffFreq > 1/filterLen +signalVector *createLPF(float cutoffFreq, + int filterLen, + float gainDC) +{ + + signalVector *LPF = new signalVector(filterLen-1); + LPF->isRealOnly(true); + LPF->setSymmetry(ABSSYM); + signalVector::iterator itr = LPF->begin(); + double sum = 0.0; + for (int i = 1; i < filterLen; i++) { + float ys = sinc(M_2PI_F*cutoffFreq*((float)i-(float)(filterLen)/2.0F)); + float yg = 4.0F * cutoffFreq; + // Blackman -- less brickwall (sloping transition) but larger stopband attenuation + float yw = 0.42 - 0.5*cos(((float)i)*M_2PI_F/(float)(filterLen)) + 0.08*cos(((float)i)*2*M_2PI_F/(float)(filterLen)); + // Hamming -- more brickwall with smaller stopband attenuation + //float yw = 0.53836F - 0.46164F * cos(((float)i)*M_2PI_F/(float)(filterLen+1)); + *itr++ = (complex) ys*yg*yw; + sum += ys*yg*yw; + } + + float normFactor = gainDC/sum; //sqrtf(gainDC/vectorNorm2(*LPF)); + // normalize power + itr = LPF->begin(); + for (int i = 1; i < filterLen; i++) { + *itr = *itr*normFactor; + itr++; + } + return LPF; + +} + + + +#define POLYPHASESPAN 10 + +// assumes filter group delay is 0.5*(length of filter) +signalVector *polyphaseResampleVector(signalVector &wVector, + int P, int Q, + signalVector *LPF) + +{ + + bool deleteLPF = false; + + if (LPF==NULL) { + float cutoffFreq = (P < Q) ? (1.0/(float) Q) : (1.0/(float) P); + LPF = createLPF(cutoffFreq/3.0,100*POLYPHASESPAN+1,Q); + deleteLPF = true; + } + + signalVector *resampledVector = new signalVector((int) ceil(wVector.size()*(float) P / (float) Q)); + resampledVector->fill(0); + resampledVector->isRealOnly(wVector.isRealOnly()); + signalVector::iterator newItr = resampledVector->begin(); + + //FIXME: need to update for real-only vectors + int outputIx = (LPF->size()+1)/2/Q; //((P > Q) ? P : Q); + while (newItr < resampledVector->end()) { + int outputBranch = (outputIx*Q) % P; + int inputOffset = (outputIx*Q - outputBranch)/P; + signalVector::const_iterator inputItr = wVector.begin() + inputOffset; + signalVector::const_iterator filtItr = LPF->begin() + outputBranch; + while (inputItr >= wVector.end()) { + inputItr--; + filtItr+=P; + } + complex sum = 0.0; + if ((LPF->getSymmetry()!=ABSSYM) || (P>1)) { + if (!LPF->isRealOnly()) { + while ( (inputItr >= wVector.begin()) && (filtItr < LPF->end()) ) { + sum += (*inputItr)*(*filtItr); + inputItr--; + filtItr += P; + } + } + else { + while ( (inputItr >= wVector.begin()) && (filtItr < LPF->end()) ) { + sum += (*inputItr)*(filtItr->real()); + inputItr--; + filtItr += P; + } + } + } + else { + signalVector::const_iterator revInputItr = inputItr- LPF->size() + 1; + signalVector::const_iterator filtMidpoint = LPF->begin()+(LPF->size()-1)/2; + if (!LPF->isRealOnly()) { + while (filtItr <= filtMidpoint) { + if (inputItr < revInputItr) break; + if (inputItr == revInputItr) + sum += (*inputItr)*(*filtItr); + else if ( (inputItr < wVector.end()) && (revInputItr >= wVector.begin()) ) + sum += (*inputItr + *revInputItr)*(*filtItr); + else if ( inputItr < wVector.end() ) + sum += (*inputItr)*(*filtItr); + else if ( revInputItr >= wVector.begin() ) + sum += (*revInputItr)*(*filtItr); + inputItr--; + revInputItr++; + filtItr++; + } + } + else { + while (filtItr <= filtMidpoint) { + if (inputItr < revInputItr) break; + if (inputItr == revInputItr) + sum += (*inputItr)*(filtItr->real()); + else if ( (inputItr < wVector.end()) && (revInputItr >= wVector.begin()) ) + sum += (*inputItr + *revInputItr)*(filtItr->real()); + else if ( inputItr < wVector.end() ) + sum += (*inputItr)*(filtItr->real()); + else if ( revInputItr >= wVector.begin() ) + sum += (*revInputItr)*(filtItr->real()); + inputItr--; + revInputItr++; + filtItr++; + } + } + } + *newItr = sum; + newItr++; + outputIx++; + } + + if (deleteLPF) delete LPF; + + return resampledVector; +} + + +signalVector *resampleVector(signalVector &wVector, + float expFactor, + complex endPoint) + +{ + + if (expFactor < 1.0) return NULL; + + signalVector *retVec = new signalVector((int) ceil(wVector.size()*expFactor)); + + float t = 0.0; + + signalVector::iterator retItr = retVec->begin(); + while (retItr < retVec->end()) { + unsigned tLow = (unsigned int) floor(t); + unsigned tHigh = tLow + 1; + if (tLow > wVector.size()-1) break; + if (tHigh > wVector.size()) break; + complex lowPoint = wVector[tLow]; + complex highPoint = (tHigh == wVector.size()) ? endPoint : wVector[tHigh]; + complex a = (tHigh-t); + complex b = (t-tLow); + *retItr = (a*lowPoint + b*highPoint); + t += 1.0/expFactor; + } + + return retVec; + +} + + +// Assumes symbol-spaced sampling!!! +// Based upon paper by Al-Dhahir and Cioffi +bool designDFE(signalVector &channelResponse, + float SNRestimate, + int Nf, + signalVector **feedForwardFilter, + signalVector **feedbackFilter) +{ + + signalVector G0(Nf); + signalVector G1(Nf); + signalVector::iterator G0ptr = G0.begin(); + signalVector::iterator G1ptr = G1.begin(); + signalVector::iterator chanPtr = channelResponse.begin(); + + int nu = channelResponse.size()-1; + + *G0ptr = 1.0/sqrtf(SNRestimate); + for(int j = 0; j <= nu; j++) { + *G1ptr = chanPtr->conj(); + G1ptr++; chanPtr++; + } + + signalVector *L[Nf]; + signalVector::iterator Lptr; + float d; + for(int i = 0; i < Nf; i++) { + d = G0.begin()->norm2() + G1.begin()->norm2(); + L[i] = new signalVector(Nf+nu); + Lptr = L[i]->begin()+i; + G0ptr = G0.begin(); G1ptr = G1.begin(); + while ((G0ptr < G0.end()) && (Lptr < L[i]->end())) { + *Lptr = (*G0ptr*(G0.begin()->conj()) + *G1ptr*(G1.begin()->conj()) )/d; + Lptr++; + G0ptr++; + G1ptr++; + } + complex k = (*G1.begin())/(*G0.begin()); + + if (i != Nf-1) { + signalVector G0new = G1; + scaleVector(G0new,k.conj()); + addVector(G0new,G0); + + signalVector G1new = G0; + scaleVector(G1new,k*(-1.0)); + addVector(G1new,G1); + delayVector(G1new,-1.0); + + scaleVector(G0new,1.0/sqrtf(1.0+k.norm2())); + scaleVector(G1new,1.0/sqrtf(1.0+k.norm2())); + G0 = G0new; + G1 = G1new; + } + } + + *feedbackFilter = new signalVector(nu); + L[Nf-1]->segmentCopyTo(**feedbackFilter,Nf,nu); + scaleVector(**feedbackFilter,(complex) -1.0); + conjugateVector(**feedbackFilter); + + signalVector v(Nf); + signalVector::iterator vStart = v.begin(); + signalVector::iterator vPtr; + *(vStart+Nf-1) = (complex) 1.0; + for(int k = Nf-2; k >= 0; k--) { + Lptr = L[k]->begin()+k+1; + vPtr = vStart + k+1; + complex v_k = 0.0; + for (int j = k+1; j < Nf; j++) { + v_k -= (*vPtr)*(*Lptr); + vPtr++; Lptr++; + } + *(vStart + k) = v_k; + } + + *feedForwardFilter = new signalVector(Nf); + signalVector::iterator w = (*feedForwardFilter)->begin(); + for (int i = 0; i < Nf; i++) { + delete L[i]; + complex w_i = 0.0; + int endPt = ( nu < (Nf-1-i) ) ? nu : (Nf-1-i); + vPtr = vStart+i; + chanPtr = channelResponse.begin(); + for (int k = 0; k < endPt+1; k++) { + w_i += (*vPtr)*(chanPtr->conj()); + vPtr++; chanPtr++; + } + *w = w_i/d; + w++; + } + + + return true; + +} + +// Assumes symbol-rate sampling!!!! +SoftVector *equalizeBurst(signalVector &rxBurst, + float TOA, + int samplesPerSymbol, + signalVector &w, // feedforward filter + signalVector &b) // feedback filter +{ + + delayVector(rxBurst,-TOA); + + signalVector* postForwardFull = convolve(&rxBurst,&w,NULL,FULL_SPAN); + + signalVector* postForward = new signalVector(rxBurst.size()); + postForwardFull->segmentCopyTo(*postForward,w.size()-1,rxBurst.size()); + delete postForwardFull; + + signalVector::iterator dPtr = postForward->begin(); + signalVector::iterator dBackPtr; + signalVector::iterator rotPtr = GMSKRotation->begin(); + signalVector::iterator revRotPtr = GMSKReverseRotation->begin(); + + signalVector *DFEoutput = new signalVector(postForward->size()); + signalVector::iterator DFEItr = DFEoutput->begin(); + + // NOTE: can insert the midamble and/or use midamble to estimate BER + for (; dPtr < postForward->end(); dPtr++) { + dBackPtr = dPtr-1; + signalVector::iterator bPtr = b.begin(); + while ( (bPtr < b.end()) && (dBackPtr >= postForward->begin()) ) { + *dPtr = *dPtr + (*bPtr)*(*dBackPtr); + bPtr++; + dBackPtr--; + } + *dPtr = *dPtr * (*revRotPtr); + *DFEItr = *dPtr; + // make decision on symbol + *dPtr = (dPtr->real() > 0.0) ? 1.0 : -1.0; + //*DFEItr = *dPtr; + *dPtr = *dPtr * (*rotPtr); + DFEItr++; + rotPtr++; + revRotPtr++; + } + + vectorSlicer(DFEoutput); + + SoftVector *burstBits = new SoftVector(postForward->size()); + SoftVector::iterator burstItr = burstBits->begin(); + DFEItr = DFEoutput->begin(); + for (; DFEItr < DFEoutput->end(); DFEItr++) + *burstItr++ = DFEItr->real(); + + delete postForward; + + delete DFEoutput; + + return burstBits; +} diff --git a/Transceiver52M/sigProcLib.h b/Transceiver52M/sigProcLib.h new file mode 100644 index 0000000..f9f0dce --- /dev/null +++ b/Transceiver52M/sigProcLib.h @@ -0,0 +1,386 @@ +/* +* Copyright 2008 Free Software Foundation, Inc. +* +* This software is distributed under multiple licenses; see the COPYING file in the main directory for licensing information for this specific distribuion. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +*/ + + + +#include "Vector.h" +#include "Complex.h" +#include "GSMTransfer.h" + + +using namespace GSM; + +/** Indicated signalVector symmetry */ +typedef enum Symmetry { + NONE = 0, + ABSSYM = 1 +}; + +/** Convolution type indicator */ +typedef enum ConvType { + FULL_SPAN = 0, + OVERLAP_ONLY = 1, + START_ONLY = 2, + WITH_TAIL = 3, + NO_DELAY = 4, + CUSTOM = 5, + UNDEFINED = 255 +}; + +/** the core data structure of the Transceiver */ +class signalVector: public Vector +{ + + private: + + Symmetry symmetry; ///< the symmetry of the vector + bool realOnly; ///< true if vector is real-valued, not complex-valued + + public: + + /** Constructors */ + signalVector(int dSize=0, Symmetry wSymmetry = NONE): + Vector(dSize), + realOnly(false) + { + symmetry = wSymmetry; + }; + + signalVector(complex* wData, size_t start, + size_t span, Symmetry wSymmetry = NONE): + Vector(NULL,wData+start,wData+start+span), + realOnly(false) + { + symmetry = wSymmetry; + }; + + signalVector(const signalVector &vec1, const signalVector &vec2): + Vector(vec1,vec2), + realOnly(false) + { + symmetry = vec1.symmetry; + }; + + signalVector(const signalVector &wVector): + Vector(wVector.size()), + realOnly(false) + { + wVector.copyTo(*this); + symmetry = wVector.getSymmetry(); + }; + + /** symmetry operators */ + Symmetry getSymmetry() const { return symmetry;}; + void setSymmetry(Symmetry wSymmetry) { symmetry = wSymmetry;}; + + /** real-valued operators */ + bool isRealOnly() const { return realOnly;}; + void isRealOnly(bool wOnly) { realOnly = wOnly;}; +}; + +/** Convert a linear number to a dB value */ +float dB(float x); + +/** Convert a dB value into a linear value */ +float dBinv(float x); + +/** Compute the energy of a vector */ +float vectorNorm2(const signalVector &x); + +/** Compute the average power of a vector */ +float vectorPower(const signalVector &x); + +/** Setup the signal processing library */ +void sigProcLibSetup(int samplesPerSymbol); + +/** Destroy the signal processing library */ +void sigProcLibDestroy(void); + +/** + Convolve two vectors. + @param a,b The vectors to be convolved. + @param c, A preallocated vector to hold the convolution result. + @param spanType The type/span of the convolution. + @return The convolution result. +*/ +signalVector* convolve(const signalVector *a, + const signalVector *b, + signalVector *c, + ConvType spanType, + unsigned startIx = 0, + unsigned len = 0); + +/** + Generate the GSM pulse. + @param samplesPerSymbol The number of samples per GSM symbol. + @param symbolLength The size of the pulse. + @return The GSM pulse. +*/ +signalVector* generateGSMPulse(int samplesPerSymbol, + int symbolLength); + +/** + Frequency shift a vector. + @param y The frequency shifted vector. + @param x The vector to-be-shifted. + @param freq The digital frequency shift + @param startPhase The starting phase of the oscillator + @param finalPhase The final phase of the oscillator + @return The frequency shifted vector. +*/ +signalVector* frequencyShift(signalVector *y, + signalVector *x, + float freq = 0.0, + float startPhase = 0.0, + float *finalPhase=NULL); + +/** + Correlate two vectors. + @param a,b The vectors to be correlated. + @param c, A preallocated vector to hold the correlation result. + @param spanType The type/span of the correlation. + @return The correlation result. +*/ +signalVector* correlate(signalVector *a, + signalVector *b, + signalVector *c, + ConvType spanType, + bool bReversedConjugated = false, + unsigned startIx = 0, + unsigned len = 0); + +/** Operate soft slicer on real-valued portion of vector */ +bool vectorSlicer(signalVector *x); + +/** GMSK modulate a GSM burst of bits */ +signalVector *modulateBurst(const BitVector &wBurst, + const signalVector &gsmPulse, + int guardPeriodLength, + int samplesPerSymbol); + +/** Sinc function */ +float sinc(float x); + +/** Delay a vector */ +void delayVector(signalVector &wBurst, + float delay); + +/** Add two vectors in-place */ +bool addVector(signalVector &x, + signalVector &y); + +/** Multiply two vectors in-place*/ +bool multVector(signalVector &x, + signalVector &y); + +/** Generate a vector of gaussian noise */ +signalVector *gaussianNoise(int length, + float variance = 1.0, + complex mean = complex(0.0)); + +/** + Given a non-integer index, interpolate a sample. + @param inSig The signal from which to interpolate. + @param ix The index. + @return The interpolated signal value. +*/ +complex interpolatePoint(const signalVector &inSig, + float ix); + +/** + Given a correlator output, locate the correlation peak. + @param rxBurst The correlator result. + @param peakIndex Pointer to value to receive interpolated peak index. + @param avgPower Power to value to receive mean power. + @return Peak value. +*/ +complex peakDetect(const signalVector &rxBurst, + float *peakIndex, + float *avgPwr); + +/** + Apply a scalar to a vector. + @param x The vector of interest. + @param scale The scalar. +*/ +void scaleVector(signalVector &x, + complex scale); + +/** + Add a constant offset to a vecotr. + @param x The vector of interest. + @param offset The offset. +*/ +void offsetVector(signalVector &x, + complex offset); + +/** + Generate a modulated GSM midamble, stored within the library. + @param gsmPulse The GSM pulse used for modulation. + @param samplesPerSymbol The number of samples per GSM symbol. + @param TSC The training sequence [0..7] + @return Success. +*/ +bool generateMidamble(signalVector &gsmPulse, + int samplesPerSymbol, + int TSC); +/** + Generate a modulated RACH sequence, stored within the library. + @param gsmPulse The GSM pulse used for modulation. + @param samplesPerSymbol The number of samples per GSM symbol. + @return Success. +*/ +bool generateRACHSequence(signalVector &gsmPulse, + int samplesPerSymbol); + +/** + Energy detector, checks to see if received burst energy is above a threshold. + @param rxBurst The received GSM burst of interest. + @param windowLength The number of burst samples used to compute burst energy + @param detectThreshold The detection threshold, a linear value. + @param avgPwr The average power of the received burst. + @return True if burst energy is above threshold. +*/ +bool energyDetect(signalVector &rxBurst, + unsigned windowLength, + float detectThreshold, + float *avgPwr = NULL); + +/** + RACH correlator/detector. + @param rxBurst The received GSM burst of interest. + @param detectThreshold The threshold that the received burst's post-correlator SNR is compared against to determine validity. + @param samplesPerSymbol The number of samples per GSM symbol. + @param amplitude The estimated amplitude of received RACH burst. + @param TOA The estimate time-of-arrival of received RACH burst. + @return True if burst SNR is larger that the detectThreshold value. +*/ +bool detectRACHBurst(signalVector &rxBurst, + float detectThreshold, + int samplesPerSymbol, + complex *amplitude, + float* TOA); + +/** + Normal burst correlator, detector, channel estimator. + @param rxBurst The received GSM burst of interest. + + @param detectThreshold The threshold that the received burst's post-correlator SNR is compared against to determine validity. + @param samplesPerSymbol The number of samples per GSM symbol. + @param amplitude The estimated amplitude of received TSC burst. + @param TOA The estimate time-of-arrival of received TSC burst. + @param maxTOA The maximum expected time-of-arrival + @param requestChannel Set to true if channel estimation is desired. + @param channelResponse The estimated channel. + @param channelResponseOffset The time offset b/w the first sample of the channel response and the reported TOA. + @return True if burst SNR is larger that the detectThreshold value. +*/ +bool analyzeTrafficBurst(signalVector &rxBurst, + unsigned TSC, + float detectThreshold, + int samplesPerSymbol, + complex *amplitude, + float *TOA, + unsigned maxTOA, + bool requestChannel = false, + signalVector** channelResponse = NULL, + float *channelResponseOffset = NULL); + +/** + Decimate a vector. + @param wVector The vector of interest. + @param decimationFactor The amount of decimation, i.e. the decimation factor. + @return The decimated signal vector. +*/ +signalVector *decimateVector(signalVector &wVector, + int decimationFactor); + +/** + Demodulates a received burst using a soft-slicer. + @param rxBurst The burst to be demodulated. + @param gsmPulse The GSM pulse. + @param samplesPerSymbol The number of samples per GSM symbol. + @param channel The amplitude estimate of the received burst. + @param TOA The time-of-arrival of the received burst. + @return The demodulated bit sequence. +*/ +SoftVector *demodulateBurst(signalVector &rxBurst, + const signalVector &gsmPulse, + int samplesPerSymbol, + complex channel, + float TOA); + +/** + Creates a simple Kaiser-windowed low-pass FIR filter. + @param cutoffFreq The digital 3dB bandwidth of the filter. + @param filterLen The number of taps in the filter. + @param gainDC The DC gain of the filter. + @return The desired LPF +*/ +signalVector *createLPF(float cutoffFreq, + int filterLen, + float gainDC = 1.0); + +/** + Change sampling rate of a vector via polyphase resampling. + @param wVector The vector to be resampled. + @param P The numerator, i.e. the amount of upsampling. + @param Q The denominator, i.e. the amount of downsampling. + @param LPF An optional low-pass filter used in the resampling process. + @return A vector resampled at P/Q of the original sampling rate. +*/ +signalVector *polyphaseResampleVector(signalVector &wVector, + int P, int Q, + signalVector *LPF); + +/** + Change the sampling rate of a vector via linear interpolation. + @param wVector The vector to be resampled. + @param expFactor Ratio of new sampling rate/original sampling rate. + @param endPoint ??? + @return A vector resampled a expFactor*original sampling rate. +*/ +signalVector *resampleVector(signalVector &wVector, + float expFactor, + complex endPoint); + +/** + Design the necessary filters for a decision-feedback equalizer. + @param channelResponse The multipath channel that we're mitigating. + @param SNRestimate The signal-to-noise estimate of the channel, a linear value + @param Nf The number of taps in the feedforward filter. + @param feedForwardFilter The designed feed forward filter. + @param feedbackFilter The designed feedback filter. + @return True if DFE can be designed. +*/ +bool designDFE(signalVector &channelResponse, + float SNRestimate, + int Nf, + signalVector **feedForwardFilter, + signalVector **feedbackFilter); + +/** + Equalize/demodulate a received burst via a decision-feedback equalizer. + @param rxBurst The received burst to be demodulated. + @param TOA The time-of-arrival of the received burst. + @param samplesPerSymbol The number of samples per GSM symbol. + @param w The feed forward filter of the DFE. + @param b The feedback filter of the DFE. + @return The demodulated bit sequence. +*/ +SoftVector *equalizeBurst(signalVector &rxBurst, + float TOA, + int samplesPerSymbol, + signalVector &w, + signalVector &b); diff --git a/Transceiver52M/sigProcLibTest.cpp b/Transceiver52M/sigProcLibTest.cpp new file mode 100644 index 0000000..1c2a1af --- /dev/null +++ b/Transceiver52M/sigProcLibTest.cpp @@ -0,0 +1,168 @@ +/* +* Copyright 2011 Free Software Foundation, Inc. +* Copyright 2008, 2010 Kestrel Signal Processing, Inc. +* +* This software is distributed under the terms of the GNU Affero Public License. +* See the COPYING file in the main directory for details. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +*/ + +/* +Contributors: +Harvind S. Samra, hssamra@kestrelsp.com +*/ + + +#include "sigProcLib.h" +//#include "radioInterface.h" +#include +#include + +using namespace std; + +ConfigurationTable gConfig; + +int main(int argc, char **argv) { + + gLogInit("sigProcLibTest","DEBUG"); + + int samplesPerSymbol = 1; + + int TSC = 2; + + sigProcLibSetup(samplesPerSymbol); + + signalVector *gsmPulse = generateGSMPulse(2,samplesPerSymbol); + cout << *gsmPulse << endl; + + BitVector RACHBurstStart = "01010101"; + BitVector RACHBurstRest = "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + + BitVector RACHBurst(BitVector(RACHBurstStart,gRACHSynchSequence),RACHBurstRest); + + + signalVector *RACHSeq = modulateBurst(RACHBurst, + *gsmPulse, + 9, + samplesPerSymbol); + + generateRACHSequence(*gsmPulse,samplesPerSymbol); + + complex a; float t; + detectRACHBurst(*RACHSeq, 5, samplesPerSymbol,&a,&t); + + //cout << *RACHSeq << endl; + //signalVector *autocorr = correlate(RACHSeq,RACHSeq,NULL,NO_DELAY); + + //cout << *autocorr; + + //exit(1); + + + /*signalVector x(6500); + x.fill(1.0); + + frequencyShift(&x,&x,0.48*M_PI); + + signalVector *y = polyphaseResampleVector(x,96,65,NULL); + + cout << *y << endl; + + exit(1);*/ + + //CommSig normalBurstSeg = "0000000000000000000000000000000000000000000000000000000000000"; + + BitVector normalBurstSeg = "0000101010100111110010101010010110101110011000111001101010000"; + + BitVector normalBurst(BitVector(normalBurstSeg,gTrainingSequence[TSC]),normalBurstSeg); + + + generateMidamble(*gsmPulse,samplesPerSymbol,TSC); + + + signalVector *modBurst = modulateBurst(normalBurst,*gsmPulse, + 0,samplesPerSymbol); + + + //delayVector(*rsVector2,6.932); + + complex ampl = 1; + float TOA = 0; + + //modBurst = rsVector2; + //delayVector(*modBurst,0.8); + + /* + signalVector channelResponse(4); + signalVector::iterator c=channelResponse.begin(); + *c = (complex) 9000.0; c++; + *c = (complex) 0.4*9000.0; c++; c++; + *c = (complex) -1.2*0; + + signalVector *guhBurst = convolve(modBurst,&channelResponse,NULL,NO_DELAY); + delete modBurst; modBurst = guhBurst; + */ + + signalVector *chanResp; + /* + double noisePwr = 0.001/sqrtf(2); + signalVector *noise = gaussianNoise(modBurst->size(),noisePwr); + */ + float chanRespOffset; + analyzeTrafficBurst(*modBurst,TSC,8.0,samplesPerSymbol,&l,&TOA,1,true,&chanResp,&chanRespOffset); + //addVector(*modBurst,*noise); + + cout << "ampl:" << ampl << endl; + cout << "TOA: " << TOA << endl; + //cout << "chanResp: " << *chanResp << endl; + SoftVector *demodBurst = demodulateBurst(*modBurst,*gsmPulse,samplesPerSymbol,(complex) ampl, TOA); + + cout << *demodBurst << endl; + + /* + COUT("chanResp: " << *chanResp); + + signalVector *w,*b; + designDFE(*chanResp,1.0/noisePwr,7,&w,&b); + COUT("w: " << *w); + COUT("b: " << *b); + + + SoftSig *DFEBurst = equalizeBurst(*modBurst,TOA-chanRespOffset,samplesPerSymbol,*w,*b); + COUT("DFEBurst: " << *DFEBurst); + + delete gsmPulse; + delete RACHSeq; + delete modBurst; + delete sendLPF; + delete rcvLPF; + delete rsVector; + //delete rsVector2; + delete autocorr; + delete chanResp; + delete noise; + delete demodBurst; + delete w; + delete b; + delete DFEBurst; + */ + + sigProcLibDestroy(); + +} diff --git a/Transceiver52M/std_inband.rbf b/Transceiver52M/std_inband.rbf new file mode 100755 index 0000000000000000000000000000000000000000..63842b74a1e5ab8922f179fa1f769092903cfccc GIT binary patch literal 176507 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

2`UdMeIUn_zTFdoXM`m5jCuZkMX+h~O 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/dev/null 2>&1; then +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi @@ -59,20 +86,18 @@ fi # 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.) -as_nl=' -' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. -case $0 in +case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done IFS=$as_save_IFS ;; @@ -83,32 +108,270 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 fi -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +# 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. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error ERROR [LINENO LOG_FD] +# --------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with status $?, using 1 if that was 0. +as_fn_error () +{ + as_status=$?; test $as_status -eq 0 && as_status=1 + if test "$3"; then + as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + fi + $as_echo "$as_me: error: $1" >&2 + as_fn_exit $as_status +} # as_fn_error -# Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -122,13 +385,17 @@ else as_basename=false fi +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi -# Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | +$as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -143,292 +410,19 @@ echo X/"$0" | } s/.*/./; q'` -# CDPATH. -$as_unset CDPATH +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits -if test "x$CONFIG_SHELL" = x; then - if (eval ":") 2>/dev/null; then - as_have_required=yes -else - as_have_required=no -fi - - if test $as_have_required = yes && (eval ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : -else - as_candidate_shells= - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - case $as_dir in - /*) - for as_base in sh bash ksh sh5; do - as_candidate_shells="$as_candidate_shells $as_dir/$as_base" - done;; - esac -done -IFS=$as_save_IFS - - - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test $exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } - -_ASEOF -}; then - break -fi - -fi - - done - - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - - if test $as_have_required = no; then - echo This script requires a shell more modern than all the - echo shells that I found on your system. Please install a - echo modern shell, or manually run the script under such a - echo shell if you do have one. - { (exit 1); exit 1; } -fi - - -fi - -fi - - - -(eval "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0") || { - echo No shell found that supports shell functions. - echo Please tell autoconf@gnu.org about your system, - echo including any error possibly output before this - echo message -} - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= @@ -445,8 +439,7 @@ test \$exitcode = 0") || { s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the @@ -456,49 +449,40 @@ test \$exitcode = 0") || { exit } - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in +case `echo -n x` in #((((( -n*) - case `echo 'x\c'` in + case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir - mkdir conf$$.dir + mkdir conf$$.dir 2>/dev/null fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln + fi else as_ln_s='cp -p' fi @@ -506,25 +490,34 @@ rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then - as_mkdir_p=: + as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi -# Find out whether ``test -x'' works. Don't use a zero-byte file, as -# systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - as_executable_p="test -x" +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' else - as_executable_p=: + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' fi -rm -f conf$$.file +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -534,7 +527,6 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} @@ -688,7 +680,8 @@ tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 -exec 7<&0 &1 +test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, @@ -706,7 +699,6 @@ cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='openbts' @@ -714,170 +706,184 @@ PACKAGE_TARNAME='openbts' PACKAGE_VERSION='P2.8TRUNK' PACKAGE_STRING='openbts P2.8TRUNK' PACKAGE_BUGREPORT='' +PACKAGE_URL='' ac_unique_file="config/Makefile.am" # Factoring default headers for most tests. ac_includes_default="\ #include -#if HAVE_SYS_TYPES_H +#ifdef HAVE_SYS_TYPES_H # include #endif -#if HAVE_SYS_STAT_H +#ifdef HAVE_SYS_STAT_H # include #endif -#if STDC_HEADERS +#ifdef STDC_HEADERS # include # include #else -# if HAVE_STDLIB_H +# ifdef HAVE_STDLIB_H # include # endif #endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif -#if HAVE_STRINGS_H +#ifdef HAVE_STRINGS_H # include #endif -#if HAVE_INTTYPES_H +#ifdef HAVE_INTTYPES_H # include #endif -#if HAVE_STDINT_H +#ifdef HAVE_STDINT_H # include #endif -#if HAVE_UNISTD_H +#ifdef HAVE_UNISTD_H # include #endif" -ac_subst_vars='SHELL -PATH_SEPARATOR -PACKAGE_NAME -PACKAGE_TARNAME -PACKAGE_VERSION -PACKAGE_STRING -PACKAGE_BUGREPORT -exec_prefix -prefix -program_transform_name -bindir -sbindir -libexecdir -datarootdir -datadir -sysconfdir -sharedstatedir -localstatedir -includedir -oldincludedir -docdir -infodir -htmldir -dvidir -pdfdir -psdir -libdir -localedir -mandir -DEFS -ECHO_C -ECHO_N -ECHO_T -LIBS -build_alias -host_alias -target_alias -build -build_cpu -build_vendor -build_os -host -host_cpu -host_vendor -host_os -target -target_cpu -target_vendor -target_os -INSTALL_PROGRAM -INSTALL_SCRIPT -INSTALL_DATA -CYGPATH_W -PACKAGE -VERSION -ACLOCAL -AUTOCONF -AUTOMAKE -AUTOHEADER -MAKEINFO -install_sh -STRIP -INSTALL_STRIP_PROGRAM -mkdir_p -AWK -SET_MAKE -am__leading_dot -AMTAR -am__tar -am__untar -CC -CFLAGS -LDFLAGS -CPPFLAGS -ac_ct_CC -EXEEXT -OBJEXT -DEPDIR -am__include -am__quote -AMDEP_TRUE -AMDEP_FALSE -AMDEPBACKSLASH -CCDEPMODE -am__fastdepCC_TRUE -am__fastdepCC_FALSE -CCAS -CCASFLAGS -CXX -CXXFLAGS -ac_ct_CXX -CXXDEPMODE -am__fastdepCXX_TRUE -am__fastdepCXX_FALSE -LN_S -RM_PROG -GREP -EGREP -ECHO -AR -RANLIB -DLLTOOL -AS -OBJDUMP -CPP -CXXCPP -F77 -FFLAGS -ac_ct_F77 -LIBTOOL -PKG_CONFIG -OSIP_CFLAGS -OSIP_LIBS -ORTP_CFLAGS -ORTP_LIBS -LIBUSB_CFLAGS -LIBUSB_LIBS +ac_subst_vars='LTLIBOBJS LIBOBJS -LTLIBOBJS' +LIBUSB_LIBS +LIBUSB_CFLAGS +ORTP_LIBS +ORTP_CFLAGS +OSIP_LIBS +OSIP_CFLAGS +PKG_CONFIG +LIBTOOL +ac_ct_F77 +FFLAGS +F77 +CXXCPP +CPP +OBJDUMP +AS +DLLTOOL +RANLIB +AR +ECHO +EGREP +GREP +RM_PROG +LN_S +am__fastdepCXX_FALSE +am__fastdepCXX_TRUE +CXXDEPMODE +ac_ct_CXX +CXXFLAGS +CXX +CCASFLAGS +CCAS +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_os +target_vendor +target_cpu +target +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_dependency_tracking +enable_shared +enable_static +enable_fast_install +with_gnu_ld +enable_libtool_lock +with_pic +with_tags +' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS +LIBS CPPFLAGS CCAS CCASFLAGS @@ -900,6 +906,8 @@ LIBUSB_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null @@ -998,13 +1006,20 @@ do datarootdir=$ac_optarg ;; -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval enable_$ac_feature=no ;; + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; @@ -1017,13 +1032,20 @@ do dvidir=$ac_optarg ;; -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval enable_$ac_feature=\$ac_optarg ;; + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ @@ -1214,22 +1236,36 @@ do ac_init_version=: ;; -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval with_$ac_package=\$ac_optarg ;; + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval with_$ac_package=no ;; + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. @@ -1249,25 +1285,25 @@ do | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } + -*) as_fn_error "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information." ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error "invalid variable name: \`$ac_envvar'" ;; + esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; @@ -1276,23 +1312,36 @@ done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } + as_fn_error "missing argument to $ac_option" fi -# Be sure to have absolute directory names. +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } + 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' @@ -1306,7 +1355,7 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes @@ -1322,23 +1371,21 @@ test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { echo "$as_me: error: Working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } + as_fn_error "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } + as_fn_error "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$0" || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X"$0" | + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1365,13 +1412,11 @@ else fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } + as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 - { (exit 1); exit 1; }; } + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then @@ -1419,9 +1464,9 @@ Configuration: Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] + [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] + [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify @@ -1431,25 +1476,25 @@ for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/openbts] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/openbts] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF @@ -1473,6 +1518,7 @@ if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build @@ -1496,7 +1542,8 @@ Some influential environment variables: CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + 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 CCAS assembler compiler command (defaults to CC) CCASFLAGS assembler compiler flags (defaults to CFLAGS) @@ -1518,6 +1565,7 @@ Some influential environment variables: Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. +Report bugs to the package provider. _ACEOF ac_status=$? fi @@ -1525,15 +1573,17 @@ fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -1569,7 +1619,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix echo && $SHELL "$ac_srcdir/configure" --help=recursive else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1579,21 +1629,698 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF openbts configure P2.8TRUNK -generated by GNU Autoconf 2.60 +generated by GNU Autoconf 2.65 -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +Copyright (C) 2009 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_cxx_try_compile LINENO +# ---------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } >/dev/null && { + 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_header_mongrel + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_header_compile + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_func + +# ac_fn_cxx_try_cpp LINENO +# ------------------------ +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_cpp + +# ac_fn_cxx_try_link LINENO +# ------------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_link + +# ac_fn_cxx_check_func LINENO FUNC VAR +# ------------------------------------ +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_cxx_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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_cxx_check_func + +# ac_fn_f77_try_compile LINENO +# ---------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_f77_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_f77_try_compile + +# ac_fn_f77_try_link LINENO +# ------------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_f77_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_f77_try_link + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + 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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_type 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 openbts $as_me P2.8TRUNK, which was -generated by GNU Autoconf 2.60. Invocation command line was +generated by GNU Autoconf 2.65. Invocation command line was $ $0 $@ @@ -1629,8 +2356,8 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done + $as_echo "PATH: $as_dir" + done IFS=$as_save_IFS } >&5 @@ -1664,12 +2391,12 @@ do | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" + as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else @@ -1685,13 +2412,13 @@ do -* ) ac_must_keep_next=true ;; esac fi - ac_configure_args="$ac_configure_args '$ac_arg'" + as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there @@ -1716,12 +2443,13 @@ _ASBOX case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( - *) $as_unset $ac_var ;; + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -1750,9 +2478,9 @@ _ASBOX do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - echo "$ac_var='\''$ac_val'\''" + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo @@ -1767,9 +2495,9 @@ _ASBOX do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - echo "$ac_var='\''$ac_val'\''" + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi @@ -1785,83 +2513,88 @@ _ASBOX echo fi test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h +$as_echo "/* confdefs.h */" > confdefs.h + # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF - cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF - cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF - cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF - cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + # Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - set x "$CONFIG_SITE" + ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then - set x "$prefix/share/config.site" "$prefix/etc/config.site" + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site else - set x "$ac_default_prefix/share/config.site" \ - "$ac_default_prefix/etc/config.site" + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site fi -shift -for ac_site_file +for ac_site_file in "$ac_site_file1" "$ac_site_file2" do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi @@ -1875,68 +2608,56 @@ for ac_var in $ac_precious_vars; do eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + { $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) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + { $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 - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in - *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi - - - - - - - - - - - - - - - - - - - - - - - - +## -------------------- ## +## Main body of script. ## +## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -1949,24 +2670,16 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in . "$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 + for ac_t in install-sh install.sh shtool; do + if test -f "$ac_dir/$ac_t"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/$ac_t -c" + break 2 + fi + done done if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in . \"$srcdir\"/." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in . \"$srcdir\"/." >&2;} - { (exit 1); exit 1; }; } + as_fn_error "cannot find install-sh, install.sh, or shtool in . \"$srcdir\"/." "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -1983,35 +2696,27 @@ ac_config_headers="$ac_config_headers config.h" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 -echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 -{ echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6; } -if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if test "${ac_cv_build+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } + 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` || - { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 -echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi -{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 -echo "$as_me: error: invalid value of canonical build" >&2;} - { (exit 1); exit 1; }; };; +*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -2027,28 +2732,24 @@ IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac -{ echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6; } -if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if test "${ac_cv_host+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 -echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 -echo "$as_me: error: invalid value of canonical host" >&2;} - { (exit 1); exit 1; }; };; +*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -2064,28 +2765,24 @@ IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac -{ echo "$as_me:$LINENO: checking target system type" >&5 -echo $ECHO_N "checking target system type... $ECHO_C" >&6; } -if test "${ac_cv_target+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 +$as_echo_n "checking target system type... " >&6; } +if test "${ac_cv_target+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || - { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 -echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5 -echo "${ECHO_T}$ac_cv_target" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 +$as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; -*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 -echo "$as_me: error: invalid value of canonical target" >&2;} - { (exit 1); exit 1; }; };; +*) as_fn_error "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' @@ -2122,22 +2819,23 @@ am__api_version="1.9" # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. -{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +if test "${ac_cv_path_install+set}" = set; then : + $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. @@ -2145,7 +2843,7 @@ case $as_dir/ in # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; }; then + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -2155,17 +2853,29 @@ case $as_dir/ in # program-specific install script used by HP pwplus--don't use. : else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi fi fi done done ;; esac -done + + done IFS=$as_save_IFS +rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then @@ -2178,8 +2888,8 @@ fi INSTALL=$ac_install_sh fi fi -{ echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -2189,8 +2899,8 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file @@ -2213,11 +2923,8 @@ if ( # 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". - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file @@ -2226,26 +2933,20 @@ then # Ok. : else - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! -Check your system clock" >&5 -echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 fi -{ echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. echo might interpret backslashes. +# Double any \ or $. # By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm -f conftest.sed +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` @@ -2256,8 +2957,8 @@ if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then @@ -2297,10 +2998,10 @@ 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. @@ -2310,36 +3011,37 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - { echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi test -n "$AWK" && break done -{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } -set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh @@ -2356,12 +3058,12 @@ esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } SET_MAKE= else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -2377,9 +3079,7 @@ rmdir .tst 2>/dev/null # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi # test whether we have cygpath @@ -2432,10 +3132,10 @@ 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. @@ -2445,25 +3145,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - { echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2472,10 +3172,10 @@ 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. @@ -2485,25 +3185,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then - { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then @@ -2511,12 +3211,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP @@ -2553,8 +3249,8 @@ am__doit: .PHONY: am__doit END # If we don't find an include directive, just comment out the code. -{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none @@ -2581,12 +3277,12 @@ if test "$am__include" = "#"; then fi -{ echo "$as_me:$LINENO: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then +if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi @@ -2614,10 +3310,10 @@ 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2627,25 +3323,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2654,10 +3350,10 @@ 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -2667,25 +3363,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -2693,12 +3389,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -2711,10 +3403,10 @@ 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2724,25 +3416,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2751,10 +3443,10 @@ 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2765,18 +3457,18 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then @@ -2795,11 +3487,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2810,10 +3502,10 @@ 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2823,25 +3515,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2854,10 +3546,10 @@ 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -2867,25 +3559,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2897,12 +3589,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -2912,51 +3600,37 @@ fi fi -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "no acceptable C compiler found in \$PATH +See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. -echo "$as_me:$LINENO: checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (ac_try="$ac_compiler --version >&5" +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler --version >&5") 2>&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -2968,59 +3642,55 @@ main () } _ACEOF ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" +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. -{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -# -# List of possible output files, starting from the most likely. -# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) -# only as a last resort. b.out is created by i960 compilers. -ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' -# -# The IRIX 6 linker writes into existing files which may not be -# executable, retaining their permissions. Remove them first so a -# subsequent execution test works. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + ac_rmfiles= for ac_file in $ac_files do case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles -if { (ac_try="$ac_link_default" +if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. -for ac_file in $ac_files +for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi @@ -3037,76 +3707,44 @@ done test "$ac_cv_exeext" = no && ac_cv_exeext= else - echo "$as_me: failed program was:" >&5 + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ as_fn_set_status 77 +as_fn_error "C compiler cannot create executables +See \`config.log' for more details." "$LINENO" 5; }; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } fi - +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext -{ echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6; } -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -{ echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } - -rm -f a.out a.exe conftest$ac_cv_exeext b.out +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } -{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6; } - -{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } -if { (ac_try="$ac_link" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +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=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $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 @@ -3114,37 +3752,90 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." "$LINENO" 5; } fi - -rm -f conftest$ac_cv_exeext -{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6; } +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT -{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if test "${ac_cv_objext+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3156,51 +3847,46 @@ main () } _ACEOF rm -f conftest.o conftest.obj -if { (ac_try="$ac_compile" +if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "cannot compute suffix of object files: cannot compile +See \`config.log' for more details." "$LINENO" 5; } fi - rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${ac_cv_c_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3214,71 +3900,34 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no + ac_compiler_gnu=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } -GCC=`test $ac_compiler_gnu = yes && echo yes` +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3289,51 +3938,11 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3344,52 +3953,12 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_compile "$LINENO"; then : - ac_c_werror_flag=$ac_save_c_werror_flag +else + ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3400,59 +3969,18 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then @@ -3468,18 +3996,14 @@ else CFLAGS= fi fi -{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${ac_cv_prog_cc_c89+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -3536,48 +4060,9 @@ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done @@ -3588,17 +4073,19 @@ fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6; } ;; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; xno) - { echo "$as_me:$LINENO: result: unsupported" >&5 -echo "${ECHO_T}unsupported" >&6; } ;; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" - { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac +if test "x$ac_cv_prog_cc_c89" != xno; then : +fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -3608,10 +4095,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= -{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up @@ -3698,8 +4185,8 @@ else fi fi -{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type @@ -3736,10 +4223,10 @@ if test -z "$CXX"; 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. @@ -3749,25 +4236,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then - { echo "$as_me:$LINENO: result: $CXX" >&5 -echo "${ECHO_T}$CXX" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -3780,10 +4267,10 @@ if test -z "$CXX"; 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. @@ -3793,25 +4280,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then - { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 -echo "${ECHO_T}$ac_ct_CXX" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -3823,12 +4310,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX @@ -3838,49 +4321,36 @@ fi fi fi # Provide some information about the compiler. -echo "$as_me:$LINENO: checking for C++ compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (ac_try="$ac_compiler --version >&5" +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler --version >&5") 2>&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done -{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } -if test "${ac_cv_cxx_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${ac_cv_cxx_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3894,71 +4364,34 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no + ac_compiler_gnu=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi -{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } -GXX=`test $ac_compiler_gnu = yes && echo yes` +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS -{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 -echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } -if test "${ac_cv_prog_cxx_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } +if test "${ac_cv_prog_cxx_g+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3969,51 +4402,11 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CXXFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -4024,52 +4417,12 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cxx_werror_flag=$ac_save_cxx_werror_flag +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -4080,59 +4433,18 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi -{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then @@ -4156,10 +4468,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= -{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } -if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up @@ -4246,8 +4558,8 @@ else fi fi -{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type @@ -4263,22 +4575,23 @@ else fi -{ echo "$as_me:$LINENO: checking whether ln -s works" >&5 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } fi -{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } -set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh @@ -4295,101 +4608,22 @@ esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } SET_MAKE= else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; }; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done -IFS=$as_save_IFS - - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' # Extract the first word of "rm", so it can be a program name with args. set dummy rm; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_RM_PROG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_RM_PROG+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $RM_PROG in [\\/]* | ?:[\\/]*) @@ -4401,14 +4635,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_RM_PROG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -4416,11 +4650,11 @@ esac fi RM_PROG=$ac_cv_path_RM_PROG if test -n "$RM_PROG"; then - { echo "$as_me:$LINENO: result: $RM_PROG" >&5 -echo "${ECHO_T}$RM_PROG" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM_PROG" >&5 +$as_echo "$RM_PROG" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -4428,7 +4662,7 @@ fi # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then +if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; @@ -4451,7 +4685,7 @@ else fi # Check whether --enable-static was given. -if test "${enable_static+set}" = set; then +if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; @@ -4475,7 +4709,7 @@ fi # Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then +if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; @@ -4498,10 +4732,10 @@ else fi -{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 -echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } -if test "${lt_cv_path_SED+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${lt_cv_path_SED+set}" = set; then : + $as_echo_n "(cached) " >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. @@ -4552,48 +4786,43 @@ done fi SED=$lt_cv_path_SED -{ echo "$as_me:$LINENO: result: $SED" >&5 -echo "${ECHO_T}$SED" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 +$as_echo "$SED" >&6; } -{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 -echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } -if test "${ac_cv_path_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Extract the first word of "grep ggrep" to use in msg output -if test -z "$GREP"; then -set dummy grep ggrep; ac_prog_name=$2 -if test "${ac_cv_path_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${ac_cv_path_GREP+set}" = set; then : + $as_echo_n "(cached) " >&6 else + if test -z "$GREP"; then ac_path_GREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_executable_p "$ac_path_GREP"; } || continue - # Check for GNU ac_path_GREP and select it if it is found. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - echo 'GREP' >> "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` + as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" @@ -4605,77 +4834,61 @@ case `"$ac_path_GREP" --version 2>&1` in rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_GREP_found && break 3 + $ac_path_GREP_found && break 3 + done + done done -done - -done IFS=$as_save_IFS - - -fi - -GREP="$ac_cv_path_GREP" -if test -z "$GREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi - + if test -z "$ac_cv_path_GREP"; then + as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi else ac_cv_path_GREP=$GREP fi - fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 -echo "${ECHO_T}$ac_cv_path_GREP" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" -{ echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then : + $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else - # Extract the first word of "egrep" to use in msg output -if test -z "$EGREP"; then -set dummy egrep; ac_prog_name=$2 -if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + if test -z "$EGREP"; then ac_path_EGREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_executable_p "$ac_path_EGREP"; } || continue - # Check for GNU ac_path_EGREP and select it if it is found. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - echo 'EGREP' >> "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` + as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" @@ -4687,39 +4900,28 @@ case `"$ac_path_EGREP" --version 2>&1` in rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_EGREP_found && break 3 + $ac_path_EGREP_found && break 3 + done + done done -done - -done IFS=$as_save_IFS - - -fi - -EGREP="$ac_cv_path_EGREP" -if test -z "$EGREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi - + if test -z "$ac_cv_path_EGREP"; then + as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi else ac_cv_path_EGREP=$EGREP fi - fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 -echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" # Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then +if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no @@ -4728,8 +4930,8 @@ fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. - { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -4758,14 +4960,14 @@ echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } ;; esac elif test "$with_gnu_ld" = yes; then - { echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } else - { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } fi -if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +if test "${lt_cv_path_LD+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR @@ -4795,19 +4997,17 @@ fi LD="$lt_cv_path_LD" if test -n "$LD"; then - { echo "$as_me:$LINENO: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +$as_echo "$LD" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } -if test "${lt_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +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 test "${lt_cv_prog_gnu_ld+set}" = set; then : + $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &1 &5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld -{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; } -if test "${lt_cv_ld_reload_flag+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 test "${lt_cv_ld_reload_flag+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi -{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; @@ -4849,10 +5049,10 @@ case $host_os in ;; esac -{ echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; } -if test "${lt_cv_path_NM+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD-compatible nm" >&5 +$as_echo_n "checking for BSD-compatible nm... " >&6; } +if test "${lt_cv_path_NM+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. @@ -4891,14 +5091,14 @@ else test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi -{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 -echo "${ECHO_T}$lt_cv_path_NM" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } NM="$lt_cv_path_NM" -{ echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 -echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6; } -if test "${lt_cv_deplibs_check_method+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognise dependent libraries" >&5 +$as_echo_n "checking how to recognise dependent libraries... " >&6; } +if test "${lt_cv_deplibs_check_method+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= @@ -5067,8 +5267,8 @@ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*) esac fi -{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown @@ -5084,7 +5284,7 @@ compiler=$CC # Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then +if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi @@ -5096,11 +5296,11 @@ case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" @@ -5114,12 +5314,12 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 5117 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + echo '#line 5317 "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) @@ -5152,11 +5352,11 @@ ia64-*-hpux*) x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then case "`/usr/bin/file conftest.o`" in *32-bit*) case $host in @@ -5199,10 +5399,10 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" - { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; } -if test "${lt_cv_cc_needs_belf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $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 test "${lt_cv_cc_needs_belf+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -5210,11 +5410,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -5225,50 +5421,13 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - lt_cv_cc_needs_belf=no + lt_cv_cc_needs_belf=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -5276,8 +5435,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi -{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" @@ -5287,10 +5446,10 @@ echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_DLLTOOL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DLLTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. @@ -5300,25 +5459,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then - { echo "$as_me:$LINENO: result: $DLLTOOL" >&5 -echo "${ECHO_T}$DLLTOOL" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5327,10 +5486,10 @@ 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. @@ -5340,25 +5499,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then - { echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5 -echo "${ECHO_T}$ac_ct_DLLTOOL" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then @@ -5366,12 +5525,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL @@ -5383,10 +5538,10 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_AS+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AS+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$AS"; then ac_cv_prog_AS="$AS" # Let the user override the test. @@ -5396,25 +5551,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AS="${ac_tool_prefix}as" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi AS=$ac_cv_prog_AS if test -n "$AS"; then - { echo "$as_me:$LINENO: result: $AS" >&5 -echo "${ECHO_T}$AS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 +$as_echo "$AS" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5423,10 +5578,10 @@ if test -z "$ac_cv_prog_AS"; then ac_ct_AS=$AS # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_AS+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_AS+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. @@ -5436,25 +5591,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AS="as" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then - { echo "$as_me:$LINENO: result: $ac_ct_AS" >&5 -echo "${ECHO_T}$ac_ct_AS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 +$as_echo "$ac_ct_AS" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_AS" = x; then @@ -5462,12 +5617,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AS=$ac_ct_AS @@ -5479,10 +5630,10 @@ fi 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. @@ -5492,25 +5643,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then - { echo "$as_me:$LINENO: result: $OBJDUMP" >&5 -echo "${ECHO_T}$OBJDUMP" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5519,10 +5670,10 @@ 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. @@ -5532,25 +5683,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then - { echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 -echo "${ECHO_T}$ac_ct_OBJDUMP" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then @@ -5558,12 +5709,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP @@ -5584,15 +5731,15 @@ 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 -{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +{ $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 test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + if test "${ac_cv_prog_CPP+set}" = set; 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" @@ -5606,11 +5753,7 @@ do # 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include @@ -5619,90 +5762,34 @@ cat >>conftest.$ac_ext <<_ACEOF #endif Syntax error _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi - rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then +if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. ac_preproc_ok=: break fi - rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then +if $ac_preproc_ok; then : break fi @@ -5714,8 +5801,8 @@ fi else ac_cv_prog_CPP=$CPP fi -{ echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do @@ -5725,11 +5812,7 @@ do # 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include @@ -5738,97 +5821,40 @@ cat >>conftest.$ac_ext <<_ACEOF #endif Syntax error _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi - rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then +if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. ac_preproc_ok=: break fi - rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : +if $ac_preproc_ok; then : + else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { { $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 @@ -5838,16 +5864,12 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${ac_cv_header_stdc+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -5862,64 +5884,23 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_stdc=no + 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + 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 - : + $EGREP "memchr" >/dev/null 2>&1; then : + else ac_cv_header_stdc=no fi @@ -5929,18 +5910,14 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + 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 - : + $EGREP "free" >/dev/null 2>&1; then : + else ac_cv_header_stdc=no fi @@ -5950,14 +5927,10 @@ 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 + if test "$cross_compiling" = yes; then : : else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -5984,130 +5957,36 @@ main () return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : +if ac_fn_c_try_run "$LINENO"; then : + else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no + ac_cv_header_stdc=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +{ $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 -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF +$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=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Header=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_Header'}'` = yes; then +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 +" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -6115,164 +5994,12 @@ fi done - for ac_header in dlfcn.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -else - # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } - -# Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +do : + ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" +if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define HAVE_DLFCN_H 1 _ACEOF fi @@ -6289,11 +6016,11 @@ ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -{ echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 -echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 +$as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then - if test "${ac_cv_prog_CXXCPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + if test "${ac_cv_prog_CXXCPP+set}" = set; then : + $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" @@ -6307,11 +6034,7 @@ do # 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include @@ -6320,90 +6043,34 @@ cat >>conftest.$ac_ext <<_ACEOF #endif Syntax error _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_cxx_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi - rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then +if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. ac_preproc_ok=: break fi - rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then +if $ac_preproc_ok; then : break fi @@ -6415,8 +6082,8 @@ fi else ac_cv_prog_CXXCPP=$CXXCPP fi -{ echo "$as_me:$LINENO: result: $CXXCPP" >&5 -echo "${ECHO_T}$CXXCPP" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 +$as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do @@ -6426,11 +6093,7 @@ do # 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include @@ -6439,97 +6102,40 @@ cat >>conftest.$ac_ext <<_ACEOF #endif Syntax error _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_cxx_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi - rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then +if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. ac_preproc_ok=: break fi - rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : +if $ac_preproc_ok; then : + else - { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." "$LINENO" 5; } fi ac_ext=cpp @@ -6546,14 +6152,14 @@ ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then - for ac_prog in g77 f77 xlf frt pgf77 cf77 fort77 fl32 af77 f90 xlf90 pgf90 pghpf epcf90 gfortran g95 f95 fort xlf95 ifort ifc efc pgf95 lf95 ftn + for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_F77+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. @@ -6563,25 +6169,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then - { echo "$as_me:$LINENO: result: $F77" >&5 -echo "${ECHO_T}$F77" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $F77" >&5 +$as_echo "$F77" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6590,14 +6196,14 @@ fi fi if test -z "$F77"; then ac_ct_F77=$F77 - for ac_prog in g77 f77 xlf frt pgf77 cf77 fort77 fl32 af77 f90 xlf90 pgf90 pghpf epcf90 gfortran g95 f95 fort xlf95 ifort ifc efc pgf95 lf95 ftn + for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_F77+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. @@ -6607,25 +6213,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_F77="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then - { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 -echo "${ECHO_T}$ac_ct_F77" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_F77" >&5 +$as_echo "$ac_ct_F77" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6637,12 +6243,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac F77=$ac_ct_F77 @@ -6651,50 +6253,41 @@ fi # Provide some information about the compiler. -echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (ac_try="$ac_compiler --version >&5" +$as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler --version >&5") 2>&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F -{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; } -if test "${ac_cv_f77_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran 77 compiler" >&5 +$as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; } +if test "${ac_cv_f77_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me @@ -6702,116 +6295,42 @@ else end _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_f77_try_compile "$LINENO"; then : ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no + ac_compiler_gnu=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi -{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_compiler_gnu" >&5 +$as_echo "$ac_cv_f77_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= -{ echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 -echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; } -if test "${ac_cv_prog_f77_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $F77 accepts -g" >&5 +$as_echo_n "checking whether $F77 accepts -g... " >&6; } +if test "${ac_cv_prog_f77_g+set}" = set; then : + $as_echo_n "(cached) " >&6 else FFLAGS=-g -cat >conftest.$ac_ext <<_ACEOF +cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_f77_try_compile "$LINENO"; then : ac_cv_prog_f77_g=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_prog_f77_g=no + ac_cv_prog_f77_g=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 -echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_g" >&5 +$as_echo "$ac_cv_prog_f77_g" >&6; } if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then @@ -6828,7 +6347,11 @@ else fi fi -G77=`test $ac_compiler_gnu = yes && echo yes` +if test $ac_compiler_gnu = yes; then + G77=yes +else + G77= +fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -6840,10 +6363,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments -{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 -echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } -if test "${lt_cv_sys_max_cmd_len+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${lt_cv_sys_max_cmd_len+set}" = set; then : + $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" @@ -6919,21 +6442,21 @@ else fi if test -n $lt_cv_sys_max_cmd_len ; then - { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 -echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } else - { echo "$as_me:$LINENO: result: none" >&5 -echo "${ECHO_T}none" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } fi # Check for command to grab the raw symbol name followed by C symbol from nm. -{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 -echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; } -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : + $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. @@ -7026,18 +6549,18 @@ void nm_test_func(){} int main(){nm_test_var='a';nm_test_func();return(0);} EOF - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm - if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 + 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=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s "$nlist"; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -7088,11 +6611,11 @@ EOF lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext}; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" @@ -7126,17 +6649,17 @@ 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 - { echo "$as_me:$LINENO: result: failed" >&5 -echo "${ECHO_T}failed" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } else - { echo "$as_me:$LINENO: result: ok" >&5 -echo "${ECHO_T}ok" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } fi -{ echo "$as_me:$LINENO: checking for objdir" >&5 -echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } -if test "${lt_cv_objdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if test "${lt_cv_objdir+set}" = set; then : + $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null @@ -7148,8 +6671,8 @@ else fi rmdir .libs 2>/dev/null fi -{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 -echo "${ECHO_T}$lt_cv_objdir" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir @@ -7200,10 +6723,10 @@ with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AR+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. @@ -7213,25 +6736,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then - { echo "$as_me:$LINENO: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -7240,10 +6763,10 @@ if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. @@ -7253,25 +6776,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then - { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 -echo "${ECHO_T}$ac_ct_AR" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then @@ -7279,12 +6802,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR @@ -7296,10 +6815,10 @@ fi 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -7309,25 +6828,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then - { echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -7336,10 +6855,10 @@ 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. @@ -7349,25 +6868,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then - { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then @@ -7375,12 +6894,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB @@ -7392,10 +6907,10 @@ 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. @@ -7405,25 +6920,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - { echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -7432,10 +6947,10 @@ 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 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. @@ -7445,25 +6960,25 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then - { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then @@ -7471,12 +6986,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP @@ -7529,10 +7040,10 @@ cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $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 test "${lt_cv_path_MAGIC_CMD+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) @@ -7582,19 +7093,19 @@ fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then - { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then - { echo "$as_me:$LINENO: checking for file" >&5 -echo $ECHO_N "checking for file... $ECHO_C" >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) @@ -7644,11 +7155,11 @@ fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then - { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi else @@ -7664,7 +7175,7 @@ enable_dlopen=no enable_win32_dll=yes # Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then +if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi @@ -7672,7 +7183,7 @@ test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic was given. -if test "${with_pic+set}" = set; then +if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default @@ -7723,12 +7234,12 @@ if test "$GCC" = no; then esac fi if test -n "$lt_prog_cc_shlib"; then - { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5 -echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5 +$as_echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;} if echo "$old_CC $old_CFLAGS " | grep "[ ]$lt_prog_cc_shlib[ ]" >/dev/null; then : else - { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5 -echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5 +$as_echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;} lt_cv_prog_cc_can_build_shared=no fi fi @@ -7737,10 +7248,10 @@ fi # # Check to make sure the static flag actually works. # -{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6; } -if test "${lt_prog_compiler_static_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_prog_compiler_static works" >&5 +$as_echo_n "checking if $compiler static flag $lt_prog_compiler_static works... " >&6; } +if test "${lt_prog_compiler_static_works+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" @@ -7760,8 +7271,8 @@ else LDFLAGS="$save_LDFLAGS" fi -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 -echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_static_works" >&5 +$as_echo "$lt_prog_compiler_static_works" >&6; } if test x"$lt_prog_compiler_static_works" = xyes; then : @@ -7778,10 +7289,10 @@ if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' -{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext @@ -7796,11 +7307,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7799: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7310: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7803: \$? = $ac_status" >&5 + echo "$as_me:7314: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -7811,8 +7322,8 @@ else $rm conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" @@ -7826,8 +7337,8 @@ lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= -{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } +{ $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 test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' @@ -8013,18 +7524,18 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } esac fi -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +$as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then -{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } -if test "${lt_prog_compiler_pic_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${lt_prog_compiler_pic_works+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext @@ -8039,11 +7550,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8042: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7553: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8046: \$? = $ac_status" >&5 + echo "$as_me:7557: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -8054,8 +7565,8 @@ else $rm conftest* fi -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_works" >&5 +$as_echo "$lt_prog_compiler_pic_works" >&6; } if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in @@ -8078,10 +7589,10 @@ case "$host_os" in ;; esac -{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 test "${lt_cv_prog_compiler_c_o+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null @@ -8099,11 +7610,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8102: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7613: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8106: \$? = $ac_status" >&5 + echo "$as_me:7617: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -8123,34 +7634,34 @@ else $rm conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user - { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no - { echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi -{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= @@ -8466,11 +7977,7 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~ # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -8481,55 +7988,16 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" @@ -8541,11 +8009,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -8556,55 +8020,16 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" @@ -9026,8 +8451,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi esac fi -{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5 -echo "${ECHO_T}$ld_shlibs" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" @@ -9052,16 +8477,16 @@ 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. - { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + { $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; } $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext @@ -9074,11 +8499,11 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + 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=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } then archive_cmds_need_lc=no else @@ -9089,16 +8514,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& cat conftest.err 1>&5 fi $rm conftest* - { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 -echo "${ECHO_T}$archive_cmds_need_lc" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 +$as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac -{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= @@ -9637,12 +9062,12 @@ uts4*) dynamic_linker=no ;; esac -{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no -{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ @@ -9666,8 +9091,8 @@ else # directories. hardcode_action=unsupported fi -{ echo "$as_me:$LINENO: result: $hardcode_action" >&5 -echo "${ECHO_T}$hardcode_action" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink; then # Fast installation is not supported @@ -9680,29 +9105,29 @@ fi striplib= old_striplib= -{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi ;; *) - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } ;; esac fi @@ -9734,18 +9159,14 @@ else darwin*) # if libdl is installed we need to link against it - { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -9763,55 +9184,18 @@ return dlopen (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dl_dlopen=no + ac_cv_lib_dl_dlopen=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } -if test $ac_cv_lib_dl_dlopen = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else @@ -9824,118 +9208,18 @@ fi ;; *) - { echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_shl_load || defined __stub___shl_load -choke me -#endif - -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_shl_load=no -fi - -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } -if test $ac_cv_func_shl_load = yes; then + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else - { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $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 test "${ac_cv_lib_dld_shl_load+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -9953,169 +9237,32 @@ return shl_load (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dld_shl_load=no + ac_cv_lib_dld_shl_load=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } -if test $ac_cv_lib_dld_shl_load = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else - { echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_dlopen || defined __stub___dlopen -choke me -#endif - -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_dlopen=no -fi - -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } -if test $ac_cv_func_dlopen = yes; then + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else - { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -10133,69 +9280,28 @@ return dlopen (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dl_dlopen=no + ac_cv_lib_dl_dlopen=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } -if test $ac_cv_lib_dl_dlopen = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else - { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -10213,69 +9319,28 @@ return dlopen (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_svld_dlopen=no + ac_cv_lib_svld_dlopen=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } -if test $ac_cv_lib_svld_dlopen = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else - { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $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 test "${ac_cv_lib_dld_dld_link+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -10293,55 +9358,18 @@ return dld_link (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dld_dld_link=no + ac_cv_lib_dld_dld_link=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } -if test $ac_cv_lib_dld_dld_link = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi @@ -10380,10 +9408,10 @@ fi save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" - { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $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 test "${lt_cv_dlopen_self+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross @@ -10391,7 +9419,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in @@ -10473,15 +9501,15 @@ rm -fr conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" - { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $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 test "${lt_cv_dlopen_self_static+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross @@ -10489,7 +9517,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in @@ -10571,8 +9599,8 @@ rm -fr conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" @@ -10594,13 +9622,13 @@ fi # Report which librarie types wil actually be built -{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } -{ echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6; } +{ $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; } -{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and @@ -10620,15 +9648,15 @@ aix4* | aix5*) fi ;; esac -{ echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } -{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes -{ echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh @@ -10719,8 +9747,8 @@ if test -f "$ltmain"; then cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" - { echo "$as_me:$LINENO: creating $ofile" >&5 -echo "$as_me: creating $ofile" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ofile" >&5 +$as_echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL @@ -11112,25 +10140,25 @@ CC="$lt_save_CC" # Check whether --with-tags was given. -if test "${with_tags+set}" = set; then +if test "${with_tags+set}" = set; then : withval=$with_tags; tagnames="$withval" fi if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then - { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 -echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: output file \`$ofile' does not exist" >&5 +$as_echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then - { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 -echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: output file \`$ofile' does not look like a libtool script" >&5 +$as_echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else - { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 -echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 +$as_echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi @@ -11144,17 +10172,13 @@ echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; - *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 -echo "$as_me: error: invalid tag name: $tagname" >&2;} - { (exit 1); exit 1; }; } + *) as_fn_error "invalid tag name: $tagname" "$LINENO" 5 ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then - { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 -echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "tag name \"$tagname\" already exists" "$LINENO" 5 fi # Update the list of available tags. @@ -11259,7 +10283,7 @@ if test "$GXX" = yes; then # Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then +if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no @@ -11268,8 +10292,8 @@ fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. - { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -11298,14 +10322,14 @@ echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } ;; esac elif test "$with_gnu_ld" = yes; then - { echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } else - { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } fi -if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +if test "${lt_cv_path_LD+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR @@ -11335,19 +10359,17 @@ fi LD="$lt_cv_path_LD" if test -n "$LD"; then - { echo "$as_me:$LINENO: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +$as_echo "$LD" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } -if test "${lt_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +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 test "${lt_cv_prog_gnu_ld+set}" = set; then : + $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &1 &5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld @@ -11410,8 +10432,8 @@ else fi # PORTME: fill in a description of your system's C++ link characteristics -{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) @@ -11502,11 +10524,7 @@ case $host_os in # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -11517,55 +10535,16 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_cxx_try_link "$LINENO"; then : aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" @@ -11578,11 +10557,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -11593,55 +10568,16 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_cxx_try_link "$LINENO"; then : aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" @@ -12305,8 +11241,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ld_shlibs_CXX=no ;; esac -{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -echo "${ECHO_T}$ld_shlibs_CXX" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" @@ -12323,11 +11259,11 @@ private: }; EOF -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. @@ -12422,8 +11358,8 @@ lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= -{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } +{ $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; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then @@ -12684,18 +11620,18 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } esac fi -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 +$as_echo "$lt_prog_compiler_pic_CXX" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then -{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; } -if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } +if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext @@ -12710,11 +11646,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12713: $lt_compile\"" >&5) + (eval echo "\"\$as_me:11649: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:12717: \$? = $ac_status" >&5 + echo "$as_me:11653: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -12725,8 +11661,8 @@ else $rm conftest* fi -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_works_CXX" >&5 +$as_echo "$lt_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in @@ -12749,10 +11685,10 @@ case "$host_os" in ;; esac -{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null @@ -12770,11 +11706,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12773: $lt_compile\"" >&5) + (eval echo "\"\$as_me:11709: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:12777: \$? = $ac_status" >&5 + echo "$as_me:11713: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -12794,34 +11730,34 @@ else $rm conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user - { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no - { echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi -{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in @@ -12845,8 +11781,8 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar ;; esac -{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -echo "${ECHO_T}$ld_shlibs_CXX" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" @@ -12871,16 +11807,16 @@ 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. - { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + { $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; } $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext @@ -12893,11 +11829,11 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } then archive_cmds_need_lc_CXX=no else @@ -12908,16 +11844,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& cat conftest.err 1>&5 fi $rm conftest* - { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5 +$as_echo "$archive_cmds_need_lc_CXX" >&6; } ;; esac fi ;; esac -{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= @@ -13456,12 +12392,12 @@ uts4*) dynamic_linker=no ;; esac -{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no -{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ @@ -13485,8 +12421,8 @@ else # directories. hardcode_action_CXX=unsupported fi -{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 -echo "${ECHO_T}$hardcode_action_CXX" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 +$as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported @@ -13499,29 +12435,29 @@ fi striplib= old_striplib= -{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi ;; *) - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } ;; esac fi @@ -13553,18 +12489,14 @@ else darwin*) # if libdl is installed we need to link against it - { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -13582,55 +12514,18 @@ return dlopen (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dl_dlopen=no + ac_cv_lib_dl_dlopen=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } -if test $ac_cv_lib_dl_dlopen = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else @@ -13643,118 +12538,18 @@ fi ;; *) - { echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_shl_load || defined __stub___shl_load -choke me -#endif - -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_shl_load=no -fi - -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } -if test $ac_cv_func_shl_load = yes; then + ac_fn_cxx_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else - { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $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 test "${ac_cv_lib_dld_shl_load+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -13772,169 +12567,32 @@ return shl_load (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dld_shl_load=no + ac_cv_lib_dld_shl_load=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } -if test $ac_cv_lib_dld_shl_load = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else - { echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_dlopen || defined __stub___dlopen -choke me -#endif - -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_dlopen=no -fi - -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } -if test $ac_cv_func_dlopen = yes; then + ac_fn_cxx_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else - { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -13952,69 +12610,28 @@ return dlopen (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dl_dlopen=no + ac_cv_lib_dl_dlopen=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } -if test $ac_cv_lib_dl_dlopen = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else - { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -14032,69 +12649,28 @@ return dlopen (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_svld_dlopen=no + ac_cv_lib_svld_dlopen=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } -if test $ac_cv_lib_svld_dlopen = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else - { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $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 test "${ac_cv_lib_dld_dld_link+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -14112,55 +12688,18 @@ return dld_link (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dld_dld_link=no + ac_cv_lib_dld_dld_link=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } -if test $ac_cv_lib_dld_dld_link = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi @@ -14199,10 +12738,10 @@ fi save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" - { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $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 test "${lt_cv_dlopen_self+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross @@ -14210,7 +12749,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in @@ -14292,15 +12831,15 @@ rm -fr conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" - { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $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 test "${lt_cv_dlopen_self_static+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross @@ -14308,7 +12847,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in @@ -14390,8 +12929,8 @@ rm -fr conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" @@ -14890,13 +13429,13 @@ compiler=$CC compiler_F77=$CC cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` -{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } -{ echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6; } +{ $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; } -{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and @@ -14913,15 +13452,15 @@ aix4* | aix5*) test "$enable_shared" = yes && enable_static=no ;; esac -{ echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } -{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes -{ echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } test "$ld_shlibs_F77" = no && can_build_shared=no @@ -14932,8 +13471,8 @@ lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= -{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } +{ $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 test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' @@ -15119,18 +13658,18 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } esac fi -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_F77" >&5 +$as_echo "$lt_prog_compiler_pic_F77" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then -{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; } -if test "${lt_prog_compiler_pic_works_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... " >&6; } +if test "${lt_prog_compiler_pic_works_F77+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext @@ -15145,11 +13684,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15148: $lt_compile\"" >&5) + (eval echo "\"\$as_me:13687: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:15152: \$? = $ac_status" >&5 + echo "$as_me:13691: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -15160,8 +13699,8 @@ else $rm conftest* fi -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_works_F77" >&5 +$as_echo "$lt_prog_compiler_pic_works_F77" >&6; } if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in @@ -15184,10 +13723,10 @@ case "$host_os" in ;; esac -{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null @@ -15205,11 +13744,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15208: $lt_compile\"" >&5) + (eval echo "\"\$as_me:13747: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:15212: \$? = $ac_status" >&5 + echo "$as_me:13751: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -15229,34 +13768,34 @@ else $rm conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_F77" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_F77" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user - { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no - { echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi -{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag_F77= @@ -15572,60 +14111,21 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~ # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_f77_try_link "$LINENO"; then : aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" @@ -15637,60 +14137,21 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF + cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_f77_try_link "$LINENO"; then : aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" @@ -16112,8 +14573,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi esac fi -{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 -echo "${ECHO_T}$ld_shlibs_F77" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_F77" >&5 +$as_echo "$ld_shlibs_F77" >&6; } test "$ld_shlibs_F77" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" @@ -16138,16 +14599,16 @@ 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. - { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + { $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; } $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext @@ -16160,11 +14621,11 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } then archive_cmds_need_lc_F77=no else @@ -16175,16 +14636,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& cat conftest.err 1>&5 fi $rm conftest* - { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_F77" >&5 +$as_echo "$archive_cmds_need_lc_F77" >&6; } ;; esac fi ;; esac -{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= @@ -16723,12 +15184,12 @@ uts4*) dynamic_linker=no ;; esac -{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no -{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ @@ -16752,8 +15213,8 @@ else # directories. hardcode_action_F77=unsupported fi -{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 -echo "${ECHO_T}$hardcode_action_F77" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_F77" >&5 +$as_echo "$hardcode_action_F77" >&6; } if test "$hardcode_action_F77" = relink; then # Fast installation is not supported @@ -16766,29 +15227,29 @@ fi striplib= old_striplib= -{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi ;; *) - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } ;; esac fi @@ -17249,10 +15710,10 @@ if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' -{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext @@ -17267,11 +15728,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17270: $lt_compile\"" >&5) + (eval echo "\"\$as_me:15731: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:17274: \$? = $ac_status" >&5 + echo "$as_me:15735: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -17282,8 +15743,8 @@ else $rm conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" @@ -17297,8 +15758,8 @@ lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= -{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } +{ $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 test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' @@ -17484,18 +15945,18 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } esac fi -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_GCJ" >&5 +$as_echo "$lt_prog_compiler_pic_GCJ" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then -{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; } -if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... " >&6; } +if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext @@ -17510,11 +15971,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17513: $lt_compile\"" >&5) + (eval echo "\"\$as_me:15974: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:17517: \$? = $ac_status" >&5 + echo "$as_me:15978: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -17525,8 +15986,8 @@ else $rm conftest* fi -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_works_GCJ" >&5 +$as_echo "$lt_prog_compiler_pic_works_GCJ" >&6; } if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in @@ -17549,10 +16010,10 @@ case "$host_os" in ;; esac -{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } -if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then : + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null @@ -17570,11 +16031,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17573: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16034: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:17577: \$? = $ac_status" >&5 + echo "$as_me:16038: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -17594,34 +16055,34 @@ else $rm conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_GCJ" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user - { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no - { echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi -{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag_GCJ= @@ -17937,11 +16398,7 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~ # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -17952,55 +16409,16 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" @@ -18012,11 +16430,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -18027,55 +16441,16 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" @@ -18497,8 +16872,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi esac fi -{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 -echo "${ECHO_T}$ld_shlibs_GCJ" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_GCJ" >&5 +$as_echo "$ld_shlibs_GCJ" >&6; } test "$ld_shlibs_GCJ" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" @@ -18523,16 +16898,16 @@ 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. - { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + { $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; } $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext @@ -18545,11 +16920,11 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } then archive_cmds_need_lc_GCJ=no else @@ -18560,16 +16935,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& cat conftest.err 1>&5 fi $rm conftest* - { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_GCJ" >&5 +$as_echo "$archive_cmds_need_lc_GCJ" >&6; } ;; esac fi ;; esac -{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= @@ -19108,12 +17483,12 @@ uts4*) dynamic_linker=no ;; esac -{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no -{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ @@ -19137,8 +17512,8 @@ else # directories. hardcode_action_GCJ=unsupported fi -{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 -echo "${ECHO_T}$hardcode_action_GCJ" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_GCJ" >&5 +$as_echo "$hardcode_action_GCJ" >&6; } if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported @@ -19151,29 +17526,29 @@ fi striplib= old_striplib= -{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi ;; *) - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } ;; esac fi @@ -19205,18 +17580,14 @@ else darwin*) # if libdl is installed we need to link against it - { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -19234,55 +17605,18 @@ return dlopen (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dl_dlopen=no + ac_cv_lib_dl_dlopen=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } -if test $ac_cv_lib_dl_dlopen = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else @@ -19295,118 +17629,18 @@ fi ;; *) - { echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_shl_load || defined __stub___shl_load -choke me -#endif - -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_shl_load=no -fi - -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } -if test $ac_cv_func_shl_load = yes; then + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else - { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $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 test "${ac_cv_lib_dld_shl_load+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -19424,169 +17658,32 @@ return shl_load (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dld_shl_load=no + ac_cv_lib_dld_shl_load=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } -if test $ac_cv_lib_dld_shl_load = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else - { echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_dlopen || defined __stub___dlopen -choke me -#endif - -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_dlopen=no -fi - -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } -if test $ac_cv_func_dlopen = yes; then + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else - { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -19604,69 +17701,28 @@ return dlopen (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dl_dlopen=no + ac_cv_lib_dl_dlopen=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } -if test $ac_cv_lib_dl_dlopen = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else - { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -19684,69 +17740,28 @@ return dlopen (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_svld_dlopen=no + ac_cv_lib_svld_dlopen=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } -if test $ac_cv_lib_svld_dlopen = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else - { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $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 test "${ac_cv_lib_dld_dld_link+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -19764,55 +17779,18 @@ return dld_link (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dld_dld_link=no + ac_cv_lib_dld_dld_link=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } -if test $ac_cv_lib_dld_dld_link = yes; then +{ $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" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi @@ -19851,10 +17829,10 @@ fi save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" - { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $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 test "${lt_cv_dlopen_self+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross @@ -19862,7 +17840,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in @@ -19944,15 +17922,15 @@ rm -fr conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" - { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $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 test "${lt_cv_dlopen_self_static+set}" = set; then : + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross @@ -19960,7 +17938,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in @@ -20042,8 +18020,8 @@ rm -fr conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" @@ -20918,9 +18896,7 @@ CC="$lt_save_CC" ;; *) - { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 -echo "$as_me: error: Unsupported tag name: $tagname" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "Unsupported tag name: $tagname" "$LINENO" 5 ;; esac @@ -20938,9 +18914,7 @@ echo "$as_me: error: Unsupported tag name: $tagname" >&2;} chmod +x "$ofile" else rm -f "${ofile}T" - { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 -echo "$as_me: error: unable to update list of available tagged configurations." >&2;} - { (exit 1); exit 1; }; } + as_fn_error "unable to update list of available tagged configurations." "$LINENO" 5 fi fi @@ -20974,16 +18948,12 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool' -{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 test "${ac_cv_header_stdc+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -20998,64 +18968,23 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_stdc=no + 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 >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + 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 - : + $EGREP "memchr" >/dev/null 2>&1; then : + else ac_cv_header_stdc=no fi @@ -21065,18 +18994,14 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + 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 - : + $EGREP "free" >/dev/null 2>&1; then : + else ac_cv_header_stdc=no fi @@ -21086,14 +19011,10 @@ 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 + if test "$cross_compiling" = yes; then : : else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -21120,209 +19041,31 @@ main () return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : +if ac_fn_c_try_run "$LINENO"; then : + else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no + ac_cv_header_stdc=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +{ $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 -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF +$as_echo "#define STDC_HEADERS 1" >>confdefs.h fi - for ac_header in byteswap.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -else - # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } - -# Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +do : + ac_fn_c_check_header_mongrel "$LINENO" "byteswap.h" "ac_cv_header_byteswap_h" "$ac_includes_default" +if test "x$ac_cv_header_byteswap_h" = x""yes; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define HAVE_BYTESWAP_H 1 _ACEOF fi @@ -21330,16 +19073,12 @@ fi done -{ echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; } -if test "${ac_cv_c_const+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +if test "${ac_cv_c_const+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -21349,10 +19088,10 @@ main () #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; - const charset x; + const charset cs; /* SunOS 4.1.1 cc rejects this. */ - char const *const *ccp; - char **p; + char const *const *pcpcc; + char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; @@ -21361,11 +19100,11 @@ main () an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; - ccp = &g + (g ? g-g : 0); + pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ - ++ccp; - p = (char**) ccp; - ccp = (char const *const *) p; + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; @@ -21392,79 +19131,36 @@ main () const int foo = 10; if (!foo) return 0; } - return !x[0] && !zero.x; + return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_c_const=no + ac_cv_c_const=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -echo "${ECHO_T}$ac_cv_c_const" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then -cat >>confdefs.h <<\_ACEOF -#define const -_ACEOF +$as_echo "#define const /**/" >>confdefs.h fi -{ echo "$as_me:$LINENO: checking for inline" >&5 -echo $ECHO_N "checking for inline... $ECHO_C" >&6; } -if test "${ac_cv_c_inline+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if test "${ac_cv_c_inline+set}" = set; then : + $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; @@ -21473,56 +19169,16 @@ $ac_kw foo_t foo () {return 0; } #endif _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 -echo "${ECHO_T}$ac_cv_c_inline" >&6; } - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; @@ -21539,78 +19195,9 @@ _ACEOF ;; esac -{ echo "$as_me:$LINENO: checking for size_t" >&5 -echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } -if test "${ac_cv_type_size_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -typedef size_t ac__type_new_; -int -main () -{ -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_size_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +if test "x$ac_cv_type_size_t" = x""yes; then : - ac_cv_type_size_t=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 -echo "${ECHO_T}$ac_cv_type_size_t" >&6; } -if test $ac_cv_type_size_t = yes; then - : else cat >>confdefs.h <<_ACEOF @@ -21619,16 +19206,12 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 -echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; } -if test "${ac_cv_header_time+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 +$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } +if test "${ac_cv_header_time+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -21643,345 +19226,244 @@ return 0; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_time=no + ac_cv_header_time=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 -echo "${ECHO_T}$ac_cv_header_time" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 +$as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then -cat >>confdefs.h <<\_ACEOF -#define TIME_WITH_SYS_TIME 1 -_ACEOF +$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi -{ echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 -echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6; } -if test "${ac_cv_c_bigendian+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if test "${ac_cv_c_bigendian+set}" = set; then : + $as_echo_n "(cached) " >&6 else - # See if sys/param.h defines the BYTE_ORDER macro. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include -#include + #include int main () { -#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN - bogus endian macros -#endif +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include -#include + #include int main () { #if BYTE_ORDER != BIG_ENDIAN - not big endian -#endif + not big endian + #endif ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_c_bigendian=no + ac_cv_c_bigendian=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # It does not; compile a test program. -if test "$cross_compiling" = yes; then - # try to guess the endianness by grepping values into an object file - ac_cv_c_bigendian=unknown - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; -short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; -void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } -short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; -short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; -void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } +#include + int main () { - _ascii (); _ebcdic (); +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes -fi -if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi -fi else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - + ac_cv_c_bigendian=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_bigendian=no else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_c_bigendian=yes + ac_cv_c_bigendian=yes fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +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_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 -echo "${ECHO_T}$ac_cv_c_bigendian" >&6; } -case $ac_cv_c_bigendian in - yes) +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h -cat >>confdefs.h <<\_ACEOF -#define WORDS_BIGENDIAN 1 -_ACEOF - ;; - no) - ;; - *) - { { echo "$as_me:$LINENO: error: unknown endianness -presetting ac_cv_c_bigendian=no (or yes) will help" >&5 -echo "$as_me: error: unknown endianness -presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} - { (exit 1); exit 1; }; } ;; -esac + ;; #( + *) + as_fn_error "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac # Defines OSIP_CFLAGS, OSIP_INCLUDEDIR, and OSIP_LIBS @@ -21991,10 +19473,10 @@ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) @@ -22006,14 +19488,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -22021,11 +19503,11 @@ esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then - { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -22034,10 +19516,10 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) @@ -22049,14 +19531,14 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -22064,11 +19546,11 @@ esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then - { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 -echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then @@ -22076,12 +19558,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG @@ -22093,33 +19571,33 @@ fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 - { echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 -echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no -{ echo "$as_me:$LINENO: checking for OSIP" >&5 -echo $ECHO_N "checking for OSIP... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OSIP" >&5 +$as_echo_n "checking for OSIP... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$OSIP_CFLAGS"; then pkg_cv_OSIP_CFLAGS="$OSIP_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libosip2\"") >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libosip2\""; } >&5 ($PKG_CONFIG --exists --print-errors "libosip2") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then pkg_cv_OSIP_CFLAGS=`$PKG_CONFIG --cflags "libosip2" 2>/dev/null` else pkg_failed=yes @@ -22133,11 +19611,11 @@ if test -n "$PKG_CONFIG"; then pkg_cv_OSIP_LIBS="$OSIP_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libosip2\"") >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libosip2\""; } >&5 ($PKG_CONFIG --exists --print-errors "libosip2") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then pkg_cv_OSIP_LIBS=`$PKG_CONFIG --libs "libosip2" 2>/dev/null` else pkg_failed=yes @@ -22164,7 +19642,7 @@ fi # Put the nasty error message in config.log where it belongs echo "$OSIP_PKG_ERRORS" >&5 - { { echo "$as_me:$LINENO: error: Package requirements (libosip2) were not met: + as_fn_error "Package requirements (libosip2) were not met: $OSIP_PKG_ERRORS @@ -22174,21 +19652,11 @@ installed software in a non-standard prefix. Alternatively, you may set the environment variables OSIP_CFLAGS and OSIP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. -" >&5 -echo "$as_me: error: Package requirements (libosip2) were not met: - -$OSIP_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables OSIP_CFLAGS -and OSIP_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&2;} - { (exit 1); exit 1; }; } +" "$LINENO" 5 elif test $pkg_failed = untried; then - { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -22197,42 +19665,31 @@ and OSIP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . -See \`config.log' for more details." >&5 -echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables OSIP_CFLAGS -and OSIP_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +See \`config.log' for more details." "$LINENO" 5; } else OSIP_CFLAGS=$pkg_cv_OSIP_CFLAGS OSIP_LIBS=$pkg_cv_OSIP_LIBS - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } : fi # Defines ORTP_CFLAGS, ORTP_INCLUDEDIR, and ORTP_LIBS pkg_failed=no -{ echo "$as_me:$LINENO: checking for ORTP" >&5 -echo $ECHO_N "checking for ORTP... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ORTP" >&5 +$as_echo_n "checking for ORTP... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$ORTP_CFLAGS"; then pkg_cv_ORTP_CFLAGS="$ORTP_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"ortp\"") >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ortp\""; } >&5 ($PKG_CONFIG --exists --print-errors "ortp") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then pkg_cv_ORTP_CFLAGS=`$PKG_CONFIG --cflags "ortp" 2>/dev/null` else pkg_failed=yes @@ -22246,11 +19703,11 @@ if test -n "$PKG_CONFIG"; then pkg_cv_ORTP_LIBS="$ORTP_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"ortp\"") >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ortp\""; } >&5 ($PKG_CONFIG --exists --print-errors "ortp") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then pkg_cv_ORTP_LIBS=`$PKG_CONFIG --libs "ortp" 2>/dev/null` else pkg_failed=yes @@ -22277,7 +19734,7 @@ fi # Put the nasty error message in config.log where it belongs echo "$ORTP_PKG_ERRORS" >&5 - { { echo "$as_me:$LINENO: error: Package requirements (ortp) were not met: + as_fn_error "Package requirements (ortp) were not met: $ORTP_PKG_ERRORS @@ -22287,21 +19744,11 @@ installed software in a non-standard prefix. Alternatively, you may set the environment variables ORTP_CFLAGS and ORTP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. -" >&5 -echo "$as_me: error: Package requirements (ortp) were not met: - -$ORTP_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables ORTP_CFLAGS -and ORTP_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&2;} - { (exit 1); exit 1; }; } +" "$LINENO" 5 elif test $pkg_failed = untried; then - { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -22310,42 +19757,31 @@ and ORTP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . -See \`config.log' for more details." >&5 -echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables ORTP_CFLAGS -and ORTP_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +See \`config.log' for more details." "$LINENO" 5; } else ORTP_CFLAGS=$pkg_cv_ORTP_CFLAGS ORTP_LIBS=$pkg_cv_ORTP_LIBS - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } : fi # Defines LIBUSB_TRANSFER_CANCELLED, LIBUSB_TRANSFER_COMPLETED, LIBUSB_SUCCESS, LIBUSB_ERROR_* pkg_failed=no -{ echo "$as_me:$LINENO: checking for LIBUSB" >&5 -echo $ECHO_N "checking for LIBUSB... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBUSB" >&5 +$as_echo_n "checking for LIBUSB... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$LIBUSB_CFLAGS"; then pkg_cv_LIBUSB_CFLAGS="$LIBUSB_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libusb-1.0\"") >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libusb-1.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libusb-1.0") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then pkg_cv_LIBUSB_CFLAGS=`$PKG_CONFIG --cflags "libusb-1.0" 2>/dev/null` else pkg_failed=yes @@ -22359,11 +19795,11 @@ if test -n "$PKG_CONFIG"; then pkg_cv_LIBUSB_LIBS="$LIBUSB_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libusb-1.0\"") >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libusb-1.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libusb-1.0") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then pkg_cv_LIBUSB_LIBS=`$PKG_CONFIG --libs "libusb-1.0" 2>/dev/null` else pkg_failed=yes @@ -22390,7 +19826,7 @@ fi # Put the nasty error message in config.log where it belongs echo "$LIBUSB_PKG_ERRORS" >&5 - { { echo "$as_me:$LINENO: error: Package requirements (libusb-1.0) were not met: + as_fn_error "Package requirements (libusb-1.0) were not met: $LIBUSB_PKG_ERRORS @@ -22400,21 +19836,11 @@ installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBUSB_CFLAGS and LIBUSB_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. -" >&5 -echo "$as_me: error: Package requirements (libusb-1.0) were not met: - -$LIBUSB_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables LIBUSB_CFLAGS -and LIBUSB_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&2;} - { (exit 1); exit 1; }; } +" "$LINENO" 5 elif test $pkg_failed = untried; then - { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -22423,23 +19849,12 @@ and LIBUSB_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . -See \`config.log' for more details." >&5 -echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables LIBUSB_CFLAGS -and LIBUSB_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +See \`config.log' for more details." "$LINENO" 5; } else LIBUSB_CFLAGS=$pkg_cv_LIBUSB_CFLAGS LIBUSB_LIBS=$pkg_cv_LIBUSB_LIBS - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } : fi @@ -22477,12 +19892,13 @@ _ACEOF case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( - *) $as_unset $ac_var ;; + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -22490,8 +19906,8 @@ 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 - # substitution turns \\\\ into \\, and sed turns \\ into \). + # `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" @@ -22514,12 +19930,12 @@ echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && - { echo "$as_me:$LINENO: updating cache $cache_file" >&5 -echo "$as_me: updating cache $cache_file" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else - { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 -echo "$as_me: not updating unwritable cache $cache_file" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -22535,11 +19951,11 @@ ac_ltlibobjs= 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=`echo "$ac_i" | sed "$ac_script"` + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. - ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs @@ -22547,33 +19963,27 @@ LTLIBOBJS=$ac_ltlibobjs if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + as_fn_error "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + as_fn_error "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + as_fn_error "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi + : ${CONFIG_STATUS=./config.status} +ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. @@ -22583,55 +19993,79 @@ cat >$CONFIG_STATUS <<_ACEOF debug=false ac_cs_recheck=false ac_cs_silent=false + SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi @@ -22640,20 +20074,18 @@ fi # 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.) -as_nl=' -' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. -case $0 in +case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done IFS=$as_save_IFS ;; @@ -22664,32 +20096,111 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 fi -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +# 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. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error ERROR [LINENO LOG_FD] +# --------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with status $?, using 1 if that was 0. +as_fn_error () +{ + as_status=$?; test $as_status -eq 0 && as_status=1 + if test "$3"; then + as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + fi + $as_echo "$as_me: error: $1" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + -# Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -22703,13 +20214,17 @@ else as_basename=false fi +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi -# Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | +$as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -22724,122 +20239,130 @@ echo X/"$0" | } s/.*/./; q'` -# CDPATH. -$as_unset CDPATH - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in +case `echo -n x` in #((((( -n*) - case `echo 'x\c'` in + case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir - mkdir conf$$.dir + mkdir conf$$.dir 2>/dev/null fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln + fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + + +} # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then - as_mkdir_p=: + as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi -# Find out whether ``test -x'' works. Don't use a zero-byte file, as -# systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - as_executable_p="test -x" +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' else - as_executable_p=: + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' fi -rm -f conf$$.file +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -22849,13 +20372,19 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 -# Save the log message, to keep $[0] and so on meaningful, and to +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by openbts $as_me P2.8TRUNK, which was -generated by GNU Autoconf 2.60. Invocation command line was +generated by GNU Autoconf 2.65. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -22868,7 +20397,16 @@ on `(hostname || uname -n) 2>/dev/null | sed 1q` _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" @@ -22876,22 +20414,25 @@ config_commands="$ac_config_commands" _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. -Usage: $0 [OPTIONS] [FILE]... +Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE Configuration files: $config_files @@ -22902,27 +20443,29 @@ $config_headers Configuration commands: $config_commands -Report bugs to ." +Report bugs to the package provider." _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ openbts config.status P2.8TRUNK -configured by $0, generated by GNU Autoconf 2.60, - with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" +configured by $0, generated by GNU Autoconf 2.65, + with options \\"\$ac_cs_config\\" -Copyright (C) 2006 Free Software Foundation, Inc. +Copyright (C) 2009 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' +AWK='$AWK' +test -n "\$AWK" || AWK=awk _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do @@ -22944,34 +20487,40 @@ do -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - echo "$ac_cs_version"; exit ;; + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - { echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; };; + as_fn_error "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; --help | --hel | -h ) - echo "$ac_cs_usage"; exit ;; + $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. - -*) { echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } ;; + -*) as_fn_error "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; - *) ac_config_targets="$ac_config_targets $1" + *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac @@ -22986,27 +20535,29 @@ if $ac_cs_silent; then fi _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - CONFIG_SHELL=$SHELL + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' export CONFIG_SHELL - exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + exec "\$@" fi _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - echo "$ac_log" + $as_echo "$ac_log" } >&5 _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # @@ -23014,7 +20565,7 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets @@ -23041,9 +20592,7 @@ do "SR/Makefile") CONFIG_FILES="$CONFIG_FILES SR/Makefile" ;; "sqlite3/Makefile") CONFIG_FILES="$CONFIG_FILES sqlite3/Makefile" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; + *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -23070,7 +20619,7 @@ $debug || trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 + trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. @@ -23081,227 +20630,140 @@ $debug || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} +} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 -# -# Set up the sed scripts for CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF - +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -SHELL!$SHELL$ac_delim -PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim -PACKAGE_NAME!$PACKAGE_NAME$ac_delim -PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim -PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim -PACKAGE_STRING!$PACKAGE_STRING$ac_delim -PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim -exec_prefix!$exec_prefix$ac_delim -prefix!$prefix$ac_delim -program_transform_name!$program_transform_name$ac_delim -bindir!$bindir$ac_delim -sbindir!$sbindir$ac_delim -libexecdir!$libexecdir$ac_delim -datarootdir!$datarootdir$ac_delim -datadir!$datadir$ac_delim -sysconfdir!$sysconfdir$ac_delim -sharedstatedir!$sharedstatedir$ac_delim -localstatedir!$localstatedir$ac_delim -includedir!$includedir$ac_delim -oldincludedir!$oldincludedir$ac_delim -docdir!$docdir$ac_delim -infodir!$infodir$ac_delim -htmldir!$htmldir$ac_delim -dvidir!$dvidir$ac_delim -pdfdir!$pdfdir$ac_delim -psdir!$psdir$ac_delim -libdir!$libdir$ac_delim -localedir!$localedir$ac_delim -mandir!$mandir$ac_delim -DEFS!$DEFS$ac_delim -ECHO_C!$ECHO_C$ac_delim -ECHO_N!$ECHO_N$ac_delim -ECHO_T!$ECHO_T$ac_delim -LIBS!$LIBS$ac_delim -build_alias!$build_alias$ac_delim -host_alias!$host_alias$ac_delim -target_alias!$target_alias$ac_delim -build!$build$ac_delim -build_cpu!$build_cpu$ac_delim -build_vendor!$build_vendor$ac_delim -build_os!$build_os$ac_delim -host!$host$ac_delim -host_cpu!$host_cpu$ac_delim -host_vendor!$host_vendor$ac_delim -host_os!$host_os$ac_delim -target!$target$ac_delim -target_cpu!$target_cpu$ac_delim -target_vendor!$target_vendor$ac_delim -target_os!$target_os$ac_delim -INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim -INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim -INSTALL_DATA!$INSTALL_DATA$ac_delim -CYGPATH_W!$CYGPATH_W$ac_delim -PACKAGE!$PACKAGE$ac_delim -VERSION!$VERSION$ac_delim -ACLOCAL!$ACLOCAL$ac_delim -AUTOCONF!$AUTOCONF$ac_delim -AUTOMAKE!$AUTOMAKE$ac_delim -AUTOHEADER!$AUTOHEADER$ac_delim -MAKEINFO!$MAKEINFO$ac_delim -install_sh!$install_sh$ac_delim -STRIP!$STRIP$ac_delim -INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim -mkdir_p!$mkdir_p$ac_delim -AWK!$AWK$ac_delim -SET_MAKE!$SET_MAKE$ac_delim -am__leading_dot!$am__leading_dot$ac_delim -AMTAR!$AMTAR$ac_delim -am__tar!$am__tar$ac_delim -am__untar!$am__untar$ac_delim -CC!$CC$ac_delim -CFLAGS!$CFLAGS$ac_delim -LDFLAGS!$LDFLAGS$ac_delim -CPPFLAGS!$CPPFLAGS$ac_delim -ac_ct_CC!$ac_ct_CC$ac_delim -EXEEXT!$EXEEXT$ac_delim -OBJEXT!$OBJEXT$ac_delim -DEPDIR!$DEPDIR$ac_delim -am__include!$am__include$ac_delim -am__quote!$am__quote$ac_delim -AMDEP_TRUE!$AMDEP_TRUE$ac_delim -AMDEP_FALSE!$AMDEP_FALSE$ac_delim -AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim -CCDEPMODE!$CCDEPMODE$ac_delim -am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim -am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim -CCAS!$CCAS$ac_delim -CCASFLAGS!$CCASFLAGS$ac_delim -CXX!$CXX$ac_delim -CXXFLAGS!$CXXFLAGS$ac_delim -ac_ct_CXX!$ac_ct_CXX$ac_delim -CXXDEPMODE!$CXXDEPMODE$ac_delim -am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim -am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim -LN_S!$LN_S$ac_delim -RM_PROG!$RM_PROG$ac_delim -GREP!$GREP$ac_delim -_ACEOF + . ./conf$$subs.sh || + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done +rm -f conf$$subs.sh -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` -fi - -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF -CEOF$ac_eof +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK _ACEOF - - -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -EGREP!$EGREP$ac_delim -ECHO!$ECHO$ac_delim -AR!$AR$ac_delim -RANLIB!$RANLIB$ac_delim -DLLTOOL!$DLLTOOL$ac_delim -AS!$AS$ac_delim -OBJDUMP!$OBJDUMP$ac_delim -CPP!$CPP$ac_delim -CXXCPP!$CXXCPP$ac_delim -F77!$F77$ac_delim -FFLAGS!$FFLAGS$ac_delim -ac_ct_F77!$ac_ct_F77$ac_delim -LIBTOOL!$LIBTOOL$ac_delim -PKG_CONFIG!$PKG_CONFIG$ac_delim -OSIP_CFLAGS!$OSIP_CFLAGS$ac_delim -OSIP_LIBS!$OSIP_LIBS$ac_delim -ORTP_CFLAGS!$ORTP_CFLAGS$ac_delim -ORTP_LIBS!$ORTP_LIBS$ac_delim -LIBUSB_CFLAGS!$LIBUSB_CFLAGS$ac_delim -LIBUSB_LIBS!$LIBUSB_LIBS$ac_delim -LIBOBJS!$LIBOBJS$ac_delim -LTLIBOBJS!$LTLIBOBJS$ac_delim +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ + || as_fn_error "could not setup config files machinery" "$LINENO" 5 _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 22; then - break - elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` -fi - -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end -_ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF -:end -s/|#_!!_#|//g -CEOF$ac_eof -_ACEOF - - # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty @@ -23317,20 +20779,128 @@ s/^[^=]*=[ ]*$// }' fi -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF -for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_t=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_t"; then + break + elif $ac_last_try; then + as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 -echo "$as_me: error: Invalid tag $ac_tag." >&2;} - { (exit 1); exit 1; }; };; + :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -23358,26 +20928,34 @@ echo "$as_me: error: Invalid tag $ac_tag." >&2;} [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -echo "$as_me: error: cannot find input file: $ac_f" >&2;} - { (exit 1); exit 1; }; };; + as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac - ac_file_inputs="$ac_file_inputs $ac_f" + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ - configure_input="Generated from "`IFS=: - echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin";; + *:-:* | *:-) cat >"$tmp/stdin" \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -23387,7 +20965,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -echo X"$ac_file" | +$as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -23405,55 +20983,15 @@ echo X"$ac_file" | q } s/.*/./; q'` - { as_dir="$ac_dir" - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } + as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -23493,12 +21031,12 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix esac _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= - -case `sed -n '/datarootdir/ { +ac_sed_dataroot=' +/datarootdir/ { p q } @@ -23506,36 +21044,37 @@ case `sed -n '/datarootdir/ { /@docdir@/p /@infodir@/p /@localedir@/p -/@mandir@/p -' $ac_file_inputs` in +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; + s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub $extrasub _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s&@configure_input@&$configure_input&;t t +s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t @@ -23545,135 +21084,64 @@ s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack -" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 -echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in - -) cat "$tmp/out"; rm -f "$tmp/out";; - *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; - esac + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # -_ACEOF - -# Transform confdefs.h into a sed script `conftest.defines', that -# substitutes the proper values into config.h.in to produce config.h. -rm -f conftest.defines conftest.tail -# First, append a space to every undef/define line, to ease matching. -echo 's/$/ /' >conftest.defines -# Then, protect against being on the right side of a sed subst, or in -# an unquoted here document, in config.status. If some macros were -# called several times there might be several #defines for the same -# symbol, which is useless. But do not sort them, since the last -# AC_DEFINE must be honored. -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where -# NAME is the cpp macro being defined, VALUE is the value it is being given. -# PARAMS is the parameter list in the macro definition--in most cases, it's -# just an empty string. -ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' -ac_dB='\\)[ (].*,\\1define\\2' -ac_dC=' ' -ac_dD=' ,' - -uniq confdefs.h | - sed -n ' - t rset - :rset - s/^[ ]*#[ ]*define[ ][ ]*// - t ok - d - :ok - s/[\\&,]/\\&/g - s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p - s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p - ' >>conftest.defines - -# Remove the space that was appended to ease matching. -# Then replace #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -# (The regexp can be short, since the line contains either #define or #undef.) -echo 's/ $// -s,^[ #]*u.*,/* & */,' >>conftest.defines - -# Break up conftest.defines: -ac_max_sed_lines=50 - -# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" -# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" -# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" -# et cetera. -ac_in='$ac_file_inputs' -ac_out='"$tmp/out1"' -ac_nxt='"$tmp/out2"' - -while : -do - # Write a here document: - cat >>$CONFIG_STATUS <<_ACEOF - # First, check the format of the line: - cat >"\$tmp/defines.sed" <<\\CEOF -/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def -/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def -b -:def -_ACEOF - sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS - ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in - sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail - grep . conftest.tail >/dev/null || break - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines conftest.tail - -echo "ac_result=$ac_in" >>$CONFIG_STATUS -cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then - echo "/* $configure_input */" >"$tmp/config.h" - cat "$ac_result" >>"$tmp/config.h" - if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" + } >"$tmp/config.h" \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} else - rm -f $ac_file - mv "$tmp/config.h" $ac_file + rm -f "$ac_file" + mv "$tmp/config.h" "$ac_file" \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 fi else - echo "/* $configure_input */" - cat "$ac_result" + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error "could not create -" "$LINENO" 5 fi - rm -f "$tmp/out12" -# Compute $ac_file's index in $config_headers. +# Compute "$ac_file"'s index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in - $ac_file | $ac_file:* ) + "$ac_file" | "$ac_file":* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done -echo "timestamp for $ac_file" >`$as_dirname -- $ac_file || -$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X$ac_file : 'X\(//\)[^/]' \| \ - X$ac_file : 'X\(//\)$' \| \ - X$ac_file : 'X\(/\)' \| . 2>/dev/null || -echo X$ac_file | +echo "timestamp for "$ac_file"" >`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -23693,8 +21161,8 @@ echo X$ac_file | s/.*/./; q'`/stamp-h$_am_stamp_count ;; - :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 -echo "$as_me: executing $ac_file commands" >&6;} + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac @@ -23715,7 +21183,7 @@ $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || -echo X"$mf" | +$as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -23759,7 +21227,7 @@ $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || -echo X"$file" | +$as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -23777,47 +21245,7 @@ echo X"$file" | q } s/.*/./; q'` - { as_dir=$dirpart/$fdir - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } + as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done @@ -23828,11 +21256,13 @@ done done # for ac_tag -{ (exit 0); exit 0; } +as_fn_exit 0 _ACEOF -chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save +test $ac_write_fail = 0 || + as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 + # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. @@ -23852,6 +21282,10 @@ if test "$no_create" != yes; then exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } + $ac_cs_success || as_fn_exit $? +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi